求一个旋转算法现已知两个点:P0(x0,y0)和P1(x1,y1),还有一个角度r(单位为degree),求p1绕p0旋

求一个旋转算法
现已知两个点:P0(x0,y0)和P1(x1,y1),还有一个角度r(单位为degree),求p1绕p0旋转r度后的坐标x2,y2
可以用三角函数(单位:radians),但不能用反三角函数(像sin^-1)
第二相 1年前 已收到1个回答 举报

yidongzhang 幼苗

共回答了18个问题采纳率:94.4% 举报

很简单,但是要利用复数的一些性质:
首先用P1-P0的到一个向量(x1-x0,y1-y0)
这里用到一个复数z1=r1*exp(i*theta1)
那么z1*z2=r1*r2*exp[i*(theta1+theta2)]
那么只要[(x1-x0)+i*(y1-y0)]*[cosr*pi/180+i*sinr*pi/180]的结果是一个复数
设为x+i*y
那么你要的答案(x2,y2)=(x+x0,y+y0)

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 2.153 s. - webmaster@yulucn.com