使用HTML5画布绘制极向量?

时间:2014-11-12 20:44:01

标签: javascript canvas

编辑:已解决。 Math.atan2()的Switched Math.asin()。

我尝试使用JavaScript绘制极地矢量(半径,角度)到画布上的点,给定通过鼠标点击获得的X,Y坐标。这看起来很简单,但到目前为止我还没有让它起作用。

我做了什么:

window.onload=init();
var canv, ctx, H, W;
var A, th;

function clickAction(e) {
    var pos=getMousePos(e);
    var x=pos.x;
    var y=pos.y;
    var A=Math.sqrt(x*x+y*y);
    var th=Math.asin(-y/A)*(180/Math.PI);

    drawVec(x,y);  //draws a line to (x,y) from center
    ctx.beginPath();
    ctx.arc(0,0,50,0,th); ctx.stroke();

    console.log(x,y, th);
}

 function init() {
    canv=document.getElementById("canv");
    ctx=canv.getContext('2d');
    H=canv.height;  W=canv.width;

    ctx.translate(W/2, H/2);
    drawAxes();

    canv.addEventListener('mousedown', clickAction);    
}

弧应该从x轴(角度= 0)到你点击的任何地方,逆时针(角度= theta)。但事实并非如此。 drawAxes(),drawVec()和getMousePos()是直截了当的,所以我没有包含它们。

感谢。

0 个答案:

没有答案