JavaScript Рафаэль элемент круга - PullRequest
0 голосов
/ 15 апреля 2011

Я новичок в Raphael lib, мой вопрос следующий:

Могу ли я использовать специфичные для пути методы (например, getTotalLength() или getPointAtLength()) для элемента круга - это было бы весьма полезно (и в начале я подумал, что круг каким-то образом наследуется от пути - так что это должно быть возможно). ... но это просто не работает :(), т.е.

var cir = paper.circle(100, 100, 20);
var totalength=cir.getTotalLength();
paper.text(50,150,'Length=('+totalength+')',20);
var pt = cir.getPointAtLength(0);
paper.text(50,250,'Point=('+pt.x+','+pt.y+')',20);

спасибо за любые комментарии / подсказки / объяснения по этому поводу, Borys

1 Ответ

1 голос
/ 17 апреля 2011

К сожалению, вы не можете.Circle - это собственный элемент SVG.Было бы не сложно написать некоторые функции, которые бы повторяли эти специфичные для пути действия:

getTotalLength:

2*pi*radius

getPointAtLength: вам нужно выяснить, где находится путь круга 'начинается », но с этим набором это что-то вроде:

rad = (length / total_length) * 2*pi
y = center_y + (sin(rad) * radius)
x = center_x + (cos(rad) * radius)
...