2012-11-27 15 views
-2

我正在尝试开发一个使用html5和canvas/KineticJS的小应用程序。我想追踪一些从2d点开始到无限的光线,只需设置一个自定义角度。例如,如果我设置90°,应用程序应该渲染四条光线(两条直线,一条垂直线和一条水平线,在我的2D点相遇)。如果我设置60度,我应该看到3条直线,像一个星号*用javascript绘制自定义数量的直线1点1

回答

1

你永远要得出的最长行是画布的对角线尺寸:

var r = Math.sqrt(Math.pow(canvas.width, 2) + Math.pow(canvas.height, 2)); 

使用sincos到在该半径计算每个端点:

var theta = delta * Math.PI/180.0; 
var dx = r * Math.cos(n * theta); 
var dy = r * Math.sin(n * theta); 

然后,只画从(X,Y)行到(x + DX,Y + DY)。 Simples。

+1

p.s.当我说简单时,我的意思是说。当我还是个小孩的时候,我正在写代码来做这件事。 – Alnitak

+0

谢谢Alnitak – user1857561