我對java相當(dāng)陌生。我只是想消除我的疑惑。這是否將陣列旋轉(zhuǎn) 90 度,然后再旋轉(zhuǎn) 90 度,因為它是在相同的方法中還是沒有。這是我的rotate90代碼:void rotate90() { int temp = x; x = -y; y = temp;}這是調(diào)用方法: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 回答

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗 獲得超8個贊
我猜您使用的是自己的 Point2D 類而不是 java.awt.geom.Point2D (因為后者似乎沒有提供 rotate90 方法)。
就我所見,以 (0,0) 為中心的逆時針旋轉(zhuǎn)在數(shù)學(xué)上是正確的。
然而,旋轉(zhuǎn)兩次 90° 就像旋轉(zhuǎn) 180° 或只是取向量的倒數(shù)。那么為什么不使用
void rotate180() {
x = -x;
y = -y;
}
添加回答
舉報
0/150
提交
取消