一个点绕另一个点旋转之后的坐标计算

在这里插入图片描述
p点绕原点旋转角度Q,求p1坐标;
采用极坐标的方法求解
对于p点:
x = r * cos(a);
y = r * sin(a);
对于p1点:
x1 = r * cos(a+Q)= r * [cosacosQ - sinasinQ] = xcosQ - ysinQ;
y1 = r * sin(a+Q) = r * [sinacosQ + sinQcosa] = ycosQ + xsinQ;

在这里插入图片描述
x1 = r * cos(a+Q)= r * [cosacosQ - sinasinQ] = xcosQ - ysinQ + x2;
y1 = r * sin(a+Q) = r * [sinacosQ + sinQcosa] = ycosQ + xsinQ + y2;

// 返回点p以点o为圆心逆时针旋转alpha(单位:弧度)后所在的位置 
POINT rotate(POINT o,double alpha,POINT p) 
{ 
	POINT tp; 
	p.x-=o.x; 
	p.y-=o.y; 
	tp.x=p.x*cos(alpha)-p.y*sin(alpha)+o.x; 
	tp.y=p.y*cos(alpha)+p.x*sin(alpha)+o.y; 
	return tp; 
} 

版权声明:本文为weixin_42097108原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。