为了账号安全,请及时绑定邮箱和手机立即绑定

在java中使用rotate90两次旋转数组180度

在java中使用rotate90两次旋转数组180度

拉丁的传说 2021-11-17 17:33:38
我对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 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我猜您使用的是自己的 Point2D 类而不是 java.awt.geom.Point2D (因为后者似乎没有提供 rotate90 方法)。


就我所见,以 (0,0) 为中心的逆时针旋转在数学上是正确的。


然而,旋转两次 90° 就像旋转 180° 或只是取向量的倒数。那么为什么不使用


void rotate180() {

   x = -x;

   y = -y;

}


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信