適切なx = cos(theta)、y = sin(theta)関数を使って円の下半分を描画しようとしています。私はにMath.PIから2シータ*にMath.PIを繰り返す場合は、私が代わりに円の上半分を取得しているようだ:キャンバスに円の下半分を描く方法
私はこのコードスニペットで間違って何をやっている:
window.onload = function()
{
var canvas = document.getElementById('circle-canvas');
if (canvas && canvas.getContext) {
var context = canvas.getContext('2d');
if (context) {
context.strokeStyle = "#369";
context.lineWidth = 4;
j = canvas.width/2;
k = canvas.height/2;
r = canvas.width/4;
function computeX(theta, r, j, k){ return r * Math.cos(theta) + j; }
function computeY(theta, r, j, k){ return r * Math.sin(theta) + k; }
start = Math.PI;
context.lineTo(computeX(start, r, j, k), computeY(start, r, j, k));
for(var theta = start; theta <= (2*Math.PI); theta += .1)
{
x = computeX(theta, r, j, k);
y = computeY(theta, r, j, k),
context.lineTo(x, y);
}
context.stroke();
context.closePath();
}
}
}
EDIT: 私はアーク関数を知っています。私は円弧の個々の点を計算する必要があるより大きな問題の一部として使用されるので、この方法で円弧を実装する必要があります。
を働く前に?通常使用されている座標系とキャンバスで使用されている座標系を比較します(y座標が上がったり下がっていますか?) –