我对java相当陌生。我只是想消除我的疑惑。这是否将阵列旋转 90 度,然后再旋转 90 度,因为它是在相同的方法中还是没有。这是我的rotate90代码:void rotate90() { int temp = x; x = -y; y = temp;}这是调用方法:static void randomPattern(Screen2D window) { while (notFull()) { walk.clear(); Point2D start = getFreePoint(); recursiveSelfAvoidingWalk(0, start.x, start.y); for (Point2D pt: walk) { pt.rotate90(); pt.translate(Screen2D.HEIGHT-1, 0); } Point2D [] pts = walk.toArray(new Point2D[] {}); PolyLine myWalk = new PolyLine(pts, '#'); myWalk.setParent(window); myWalk.draw(); for (Point2D pt: walk) { pt.rotate90(); pt.rotate90(); pt.translate(Screen2D.WIDTH, Screen2D.HEIGHT); } myWalk.draw(); } window.display();}
1 回答
![?](http://img1.sycdn.imooc.com/533e50ed0001cc5b02000200-100-100.jpg)
猛跑小猪
TA贡献1858条经验 获得超8个赞
我猜您使用的是自己的 Point2D 类而不是 java.awt.geom.Point2D (因为后者似乎没有提供 rotate90 方法)。
就我所见,以 (0,0) 为中心的逆时针旋转在数学上是正确的。
然而,旋转两次 90° 就像旋转 180° 或只是取向量的倒数。那么为什么不使用
void rotate180() {
x = -x;
y = -y;
}
添加回答
举报
0/150
提交
取消