Javascript 这句话的意思是什么;x*Math.cos(角度)-y*Math.sin(角度)“;?
上述表达式取自以下方法。 我知道要围绕中心旋转一个点,我们必须Javascript 这句话的意思是什么;x*Math.cos(角度)-y*Math.sin(角度)“;?,javascript,expression,trigonometry,Javascript,Expression,Trigonometry,上述表达式取自以下方法。 我知道要围绕中心旋转一个点,我们必须 将点移动到原点 进行旋转和旋转 向后移动点 但我不明白的是: r[0] = x * Math.cos(angle) - y * Math.sin(angle); ^ | why we use the minus sign here? r[1] = x * Math.sin(
r[0] = x * Math.cos(angle) - y * Math.sin(angle);
^
|
why we use the minus sign here?
r[1] = x * Math.sin(angle) + y * Math.cos(angle);
^
|
And why here we use plus sign instead of minus?
Vec2.prototype.rotate = function (center, angle) {
//rotate in counterclockwise
var r = [];
var x = this.x - center.x;
var y = this.y - center.y;
r[0] = x * Math.cos(angle) - y * Math.sin(angle);
r[1] = x * Math.sin(angle) + y * Math.cos(angle);
r[0] += center.x;
r[1] += center.y;
return new Vec2(r[0], r[1]);
};
这本书本来应该很棒,但它没有解释它简单地说出的大部分代码。我明白了!刚刚看了Peyam博士在transformation matrix上的视频 为了得到x'和y',我们将变换矩阵乘以当前坐标(x,y)
你在读哪本书?它们是系统的组成部分。我感兴趣的部分是:x′=xcosθ−伊辛θ这本书是《构建2d游戏物理引擎》@EllsonMendes:Niet的评论有一个链接可以解释这一点。本质上,
(x,y)
通过角度θ
的逆时针旋转可以通过x
和y
到x'
和y'
的转换来完成,一旦你标准化到(0,0)
的中心。