图片
PointMirror.png计算
计算C点关于对称轴AB的对称点D:
以向量AC为起始边,AB为终边的角的角度应与以向量AB为起始边,AD为终边的角的角度相等;
故,以向量AC为起始边,AB为终边的角为,
则D点为C点绕A点旋转。
代码
double theta = atan2(B.y - A.y, B.x - A.x) - atan2(C.y - A.y, C.x - A.x);
double theta2 = theta * 2;
D.x = A.x + (x - A.x) * cos(theta2) - (y - A.y) * sin(theta2);
D.y = A.y + (x - A.x) * sin(theta2) + (y - A.y) * cos(theta2);
网友评论