平面内直角坐标系中坐标旋转变换公式

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站


首先上公式:

逆时针(如下图):
x1=xcos(β)-ysin(β);
y1=ycos(β)+xsin(β);

顺时针(图未给出):
x1=xcos(β)+ysin(β);
y1=ycos(β)-xsin(β);

其中x,y表示物体相对于旋转点旋转β的角度之前的坐标,x1,y1表示物体旋转β后相对于旋转点的坐标。此公式仅为在下图坐标中的变换公式,坐标系的选取不同可能会有不同的结果,但是推导方式一样,请大家注意。

下面是推导过程:

从数学上来说,此公式可以用来计算某个点绕另外一点旋转一定角度后的坐标,例如:A(x,y)绕B(a,b)旋转β度后的位置为C(c,d),则x,y,a,b,β,c,d有如下关系式:

这里写图片描述


1.设A点旋转前的角度为δ,则旋转(逆时针)到C点后角度为δ+β

2.求A,B两点的距离:dist1=|AB|=y/sin(δ)=x/cos(δ)

3.求C,B两点的距离:dist2=|CB|=d/sin(δ+β)=c/cos(δ+β)

4.显然dist1=dist2,设dist1=r所以:
  r=x/cos(δ)=y/sin(δ)=d/sin(δ+β)=c/cos(δ+β)
  
5.由三角函数两角和差公式知:
  sin(δ+β)=sin(δ)cos(β)+cos(δ)sin(β)
  cos(δ+β)=cos(δ)cos(β)-sin(δ)sin(β)
  
  所以得出:
c=r*cos(δ+β)=r*cos(δ)cos(β)-r*sin(δ)sin(β)=xcos(β)-ysin(β)
  d=r*sin(δ+β)=r*sin(δ)cos(β)+r*cos(δ)sin(β)=ycos(β)+xsin(β)

即旋转后的坐标c,d只与旋转前的坐标x,y及旋转的角度β有关
从图中可以很容易理解出A点旋转后的C点总是在圆周上运动,圆周的半径为|AB|,利用这点就可以使物体绕圆周运动,即旋转物体。

另外,顺时针旋转可以理解为逆时针一个负角度,根据sin(),cos()的奇偶性,即sin(-β)=-sin(β),cos(-β)=cos(β),可得顺时针旋转的变换公式:

x1=xcos(β)+ysin(β);
y1=ycos(β)-xsin(β);

点这里可以跳转到人工智能网站

发表评论