-2

html5とcanvas/KineticJSを使用して小さなアプリケーションを開発しようとしています。カスタムの角度度を設定するだけで、2Dポイントから無限遠までの多数の光線をトレースしたいと思います。たとえば、90°に設定した場合、アプリは4つの光線をレンダリングする必要があります(2つの直線、1つは垂直、もう1つは水平で2Dポイントで交わります)。60°に設定すると、アスタリスクのように3本の直線が表示されます*

4

1 に答える 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)に線を引きます。シンプル。

于 2012-11-27T19:17:50.750 に答える