在java中旋转

时间:2013-02-28 20:03:35

标签: java acm-java-libraries

我有一个简单的问题,我无法找到答案。在eclipse中,我有一个简单的GRectGOval。如何将它们顺时针旋转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度。

2 个答案:

答案 0 :(得分:0)

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

如果您的轮换有限,我认为作为下一个最佳课程,您可以在GOval的情况下创建多个对象。例如,如果创建ovalH和ovalV,则可以进行0度,90度,180度和270度旋转。

答案 1 :(得分:0)

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

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

但是,这个的支点是左上角。