2011-04-15 84 views
0

我是一個新手,以拉斐爾lib下,我的問題是以下幾點:的JavaScript拉斐爾圈元素

我可以使用路徑的具體方法(如getTotalLength()getPointAtLength())爲圓形元素 - 這將是非常有益的(並在begining我覺得莫名其妙圈從路徑繼承 - 所以這應該是可能的...但它根本不工作:(),即

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); 

感謝任何評論了/提示/解釋, 鮑里斯塔拉。

+0

我明白總長的事情,但從哪個起點應該getPointAtLength()計數? – Infeligo 2011-04-15 07:10:23

回答

1

可悲的是你不能。 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) 
+0

感謝這個信息,我得到了一個點,它是相當容易繪製與「路徑」使用cicrle,這是最合適的 – Borys 2011-04-21 04:46:33