Элемент круга Рафаэля JavaScript

#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. спасибо за эту информацию, я дошел до того, что довольно легко нарисовать круг с использованием «пути», и это наиболее подходит