2

我有一个简单的问题,我找不到答案。在 Eclipse 中,我有一个简单的GRectand GOval。我怎样才能将它们顺时针旋转 90 度?我试过了movemovePolar但没有任何效果。这是代码:

import acm.graphics.*;
import acm.program.*;
import java.awt.*;

public class asd extends GraphicsProgram {

    public void run() {
        double x = (getWidth() - FIGURE_WIDTH) / 2;
        double y = (getHeight() - FIGURE_HEIGHT) / 2;
        GRect rect = new GRect(x, y, FIGURE_WIDTH, FIGURE_HEIGHT);
        rect.setFilled(true);
        rect.setColor(Color.RED);
        add(rect);
        GOval oval = new GOval(x, y, FIGURE_WIDTH, FIGURE_HEIGHT);
        oval.setFilled(true);
        oval.setFillColor(Color.GREEN);
        add(oval);
}

我想顺时针旋转这个 90 度。

4

2 回答 2

0

您不能旋转 acm.graphics 中除 GPolygon 之外的任何对象。当然,您可以轻松地将 GRect 建模为 GPolygon,但我认为 GOval 必须由多边形近似才能使用此方案。

如果您的轮换有限,我想作为下一个最佳课程,您可以在 GOval 的情况下创建多个对象。例如,如果您创建椭圆H 和椭圆V,则您有0、90、180 和270 度的旋转。

于 2014-02-04T16:24:55.423 回答
0

您实际上可以使用 rotate() 方法在 ACM 库中旋转 GObject 形状。例如:

GRect rect1 = new GRect(100, 100, 50, 50);
rect1.setFilled(true);
add(rect1);
rect1.rotate(90);

但是,它的轴心点是左上角。

于 2017-12-15T12:01:09.920 回答