private void fixedRotate(int o,int i,double t,double x,double y) { translate(o, i, -x, -y); rotate(o, i, t); translate(o, i, x, y); }private void rotate(int o,int i,double t) { double x1, y1; x1 = x[o, i]; y1 = y[o, i]; x[o, i] = x1 * Math.Cos(t) - y1 * Math.Sin(t); y[o, i] = x1 * Math.Sin(t) + y1 * Math.Cos(t); }因此,从 translate() 方法,该点指向 (0,0) 点。然后旋转完成,点再次平移。但是在 rotate() 方法中,x1 和 x2 将始终为 0。所以 x[o,i] y[o,i] 都是 0。据我所知,这段代码应该将点返回到同一个地方。但是代码运行良好。请解释。提前致谢!
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
好吧,我想通了。方法中的 x 和 yfixedRotation()
表示多边形的中心。这意味着如果它是一个正方形,则正方形的中点被转换为 center(0,0) 点
- 1 回答
- 0 关注
- 408 浏览
添加回答
举报
0/150
提交
取消