三角学问题:圆圈与矩形相交

时间:2017-11-18 04:01:07

标签: javascript html5-canvas trigonometry

我一直在尝试制作一个程序,其中一个球从一个旋转的矩形反弹,我不得不学习一些基本的三角学,但是当我运行它时我注意到的是它是半不准确的。就像每当球击中矩形只是略微偏离中心时,它就会向右或者以一个不想要的方向反弹。为了更好地了解我的问题,如果您去了my fiddle,我将不胜感激。

我认为这是数学方面的问题,(考虑到我的成绩直到10年级或11年级才会学到它),但可能更多。

这是数学函数:

function getNormal(a) {
    return {
        x: Math.sin(a),
        y: Math.cos(a)
    }
}

function reflect(n, v) {
    let d = 2 * dot(v, n);
    v.x -= d * n.x;
    v.y -= d * n.y;
    return v;
}

function dot(v1, v2) {
    return v1.x * v2.x + v1.y * v2.y;
}

1 个答案:

答案 0 :(得分:0)

似乎a是切向角(表面线的角度),在这种情况下,您的正常计算是错误的

    x: - Math.sin(a),
    y: Math.cos(a)

    (or for opposite normal)
    x: Math.sin(a),
    y: - Math.cos(a)

还有一个可能的问题 - 三角函数是否以您的语言使用弧度或度数?