【问题标题】:Java how to use clear() from acm?Java如何使用来自acm的clear()?
【发布时间】:2013-07-01 15:50:58
【问题描述】:

我创建了一个对象(GPolygon),将它添加到画布,我旋转它,然后我想重置旋转,回到开始的地方。我查看 acm 页面,有一个名为 clear() 的方法,但我无法访问它,可能是因为受到保护。 来自http://www-cs-faculty.stanford.edu/~eroberts//jtf/javadoc/complete/acm/graphics/GPolygon.html#clear()的短信

如何在这个对象上使用 clear() 方法? 这是我的多边形代码: Java

    GPolygon patrat=new GPolygon(30,30);
    patrat.setFilled(true);
    patrat.setColor(Color.RED);
    patrat.addVertex(0, 0);
    patrat.addEdge(20, 0);
    patrat.addEdge(0,20);
    add(patrat);
    patrat.rotate(10);

谢谢!

【问题讨论】:

    标签: java rotation acm-java-libraries gpolygon


    【解决方案1】:

    当你想重置旋转时,你可以调用 patrat.rotate(-10)。

    通常,您使用受保护的 clear() 方法的方式是通过继承(即 MyClass 扩展 GPolygon 等)。

    【讨论】:

    • 是的,但我举一个简单的例子,我的程序在任何鼠标移动时都采用不同的角度,我不能(我认为)用 -angle 实现它。关于我已经将 myclass 扩展到 GraphicProgram 的扩展,我必须创建另一个类?
    • 你能在程序开始时将初始旋转存储在一个变量中吗?然后,您可以调用 patrat.rotate(startrot);当您希望重置旋转时。
    • 没有看到代码,我不确定您应该如何更改现有程序以合并 GPolygon 的继承。我会创建一个类(例如 MyPolygon 扩展 GPolygon),它将定义您在程序中想要的特定行为(即旋转、颜色等)。然后,您可以将 MyPolygon 实例化为您的类中扩展 GraphicProgram 的对象。希望这会有所帮助/有意义!
    • 是的。非常感谢奥利维亚。
    猜你喜欢
    • 2016-09-22
    • 2013-04-29
    • 2011-04-17
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多