-2
我正在尝试开发一个使用html5和canvas/KineticJS的小应用程序。我想追踪一些从2d点开始到无限的光线,只需设置一个自定义角度。例如,如果我设置90°,应用程序应该渲染四条光线(两条直线,一条垂直线和一条水平线,在我的2D点相遇)。如果我设置60度,我应该看到3条直线,像一个星号*用javascript绘制自定义数量的直线1点1
我正在尝试开发一个使用html5和canvas/KineticJS的小应用程序。我想追踪一些从2d点开始到无限的光线,只需设置一个自定义角度。例如,如果我设置90°,应用程序应该渲染四条光线(两条直线,一条垂直线和一条水平线,在我的2D点相遇)。如果我设置60度,我应该看到3条直线,像一个星号*用javascript绘制自定义数量的直线1点1
你永远要得出的最长行是画布的对角线尺寸:
var r = Math.sqrt(Math.pow(canvas.width, 2) + Math.pow(canvas.height, 2));
使用sin
和cos
到在该半径计算每个端点:
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。
p.s.当我说简单时,我的意思是说。当我还是个小孩的时候,我正在写代码来做这件事。 – Alnitak
谢谢Alnitak – user1857561