早教吧 育儿知识 作业答案 考试题库 百科 知识分享

这个点绕点的旋转公式怎么会改变距离?最近开发一款游戏,需要一个点绕另一个点旋转,但是两点距离不能变,标准公式如下:设(X0,Y0)是固定点,(X,Y)是旋转点,(X',Y')是(X,Y)绕(X0,Y0)旋转角度A后的坐

题目详情
这个点绕点的旋转公式怎么会改变距离?
最近开发一款游戏,需要一个点绕另一个点旋转,但是两点距离不能变,标准公式如下:
设(X0,Y0)是固定点,(X,Y)是旋转点,(X',Y')是(X,Y)绕(X0,Y0)旋转角度A后的坐标,那么
X' = (X-X0)*cos(A)-(Y-Y0)*sin(A)+X0
Y' = (X-X0)*sin(A) +(Y-Y0)*cos(A)+Y0
但是旋转后两点之间的距离也发生了变化.怎么破?
▼优质解答
答案和解析

1、x,y距X0,Y0距离及倾角

  距离 L=((x-x0)^2+(y-y0)^2)^0.5

 倾角β=atan((y-y0)/(x-x0))

2、旋转

x'=x0+L*cos(A+β)

y'=y0+L*sin(A+β)

返回验证

A+β=atan((y'-y0)/(x'-x0))

tan/sin/cos所在象限不同,因此需判断象限问题.例如:A+β在第二象限,计算机计算结果会在第四象限(atan导致),因此A+β+pi()结果就满足了

给悬赏呀!前面atan写错了