我试图将形状旋转 90 度。
我的形状由一个类保持,该类具有 (x,y) 的几个点和 (point1,point2) 的线,所有线共同构成形状。
实际上,为了将形状旋转 90(或任何其他角度)度,它应该通过以下公式转换形状的点 -
(x,y) -> ( x*cos(90)+y*sin(90) , -x*sin(90)+y*cos(90) )
所以为了实现上述我尝试了以下操作(它对作为形状组成部分的每个点进行操作) -
float x, y;
// get the current point location ...
x = currentPoint.x;
y = currentPoint.y;
// create the cos , sin
float cosA = (float) Math.cos(Math.toRadians(90));
float sinA = (float) Math.sin(Math.toRadians(90));
currentPoint.x = (int) (x * cosA + y * sinA);
currentPoint.y = (int) (-x * sinA + y * cosA);
但是当我在这个旋转之后绘制形状时,它会给出非常奇怪的结果。
你能在这个实现中检测到错误吗?