#javascript #raphael
#javascript #рафаэль
Вопрос:
Я новичок в Raphael lib, мой вопрос заключается в следующем:
могу ли я использовать методы, специфичные для пути (например, getTotalLength()
или getPointAtLength()
) для элемента circle — это было бы весьма полезно (и в начале я думал, что circle каким-то образом наследуется от path — так что это должно быть возможно… но это просто не работает 🙁 ), т.Е..
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);
спасибо за любые комментарии / подсказки / объяснения по этому поводу,
Борис
Комментарии:
1. Я понимаю, что такое общая длина, но с какой начальной точки следует рассчитывать getPointAtLength()?
Ответ №1:
К сожалению, вы не можете. Circle является собственным элементом svg. Было бы не слишком сложно написать некоторые функции, которые повторяют эти действия, зависящие от пути:
Получить максимальную длину:
2*pi*radius
getPointAtLength:
Вам пришлось бы выяснить, где «начинается» путь круга, но с этим набором это что-то вроде:
rad = (length / total_length) * 2*pi
y = center_y (sin(rad) * radius)
x = center_x (cos(rad) * radius)
Комментарии:
1. спасибо за эту информацию, я дошел до того, что довольно легко нарисовать круг с использованием «пути», и это наиболее подходит