2011-04-15 57 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