拉斐尔围绕中心点的不规则路径

Raphael.js irregular path around a center point

本文关键字:不规则 路径 中心点      更新时间:2023-09-26

我有一个中心点,有18个轴,每20度向外。如何绘制一条从任何一点沿着一条路径到下一条路径的路径。例如,在0deg从中心向外20px处开始,然后在20deg处绘制到40px处,然后在40deg处绘画到100px处,等等。

我开始走一些路(对不起),但在文档中找不到任何我想做的事情(至少没有公开)。我想也许getPointAtLength会是答案,但没能实现。

您需要建立一个字符串来定义路径,如中所述http://raphaeljs.com/reference.html#Paper.path,这将需要一些三角法。假设你有一个中心点在(cx,cy)和一个半径数组:

var commands = 'M';
var radii = [20, 40, 100, ...];
var cx = 200;
var cy = 200;
for (var i=0; i<18; i++) {
    var theta = Math.PI * i/9;
    var x = cx + radii[i] * Math.cos(theta);
    var y = cy + radii[i] * Math.sin(theta);
    commands += x + ' ' + y + ' ';
}
var p = paper.path(commands);