繁体   English   中英

使用Graphics2D旋转形状

[英]Rotate shapes using Graphics2D

当我添加函数g2d.rotate(some Number) ,屏幕上根本没有显示任何形状,并且没有此功能,一切正常。

问题是什么?

public void paintComponent(Graphics g) {
    super.paintComponent(g);
  Graphics2D g2d = (Graphics2D)g;
    g2d.setColor(color);
    Polygon polygon = new Polygon(xCordinate,yCordinate,4);

   // g2d.rotate(Math.toRadians(45));
    g2d.draw(polygon);
    g2d.fill(polygon);
}

在主要方面:

public class Main extends JPanel {
    Camera c=new Camera(100, 50, (Math.PI)*2, 0, 150,200,Math.PI,Color.MAGENTA);
    //Camera c1=new Camera(100, 50, (Math.PI)*2, 0, 150,200,0,Color.black);
   public static void main(String[] a) {
      JFrame f = new JFrame();
      f.setSize(400, 400);
      f.add(new Main());
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setVisible(true);
   }

   public void paint(Graphics g) {
      //c1.paintComponent(g);
      c.paintComponent(g);

}
}

您发布的代码有几个问题:

  1. 不要覆盖paint()。 您永远不要直接调用paintComponent()。 您只需将组件添加到面板中,它将自动绘制。 阅读有关Custom Painting的Swing教程,以获取更多信息和示例。

  2. 您的多边形没有任何要点。 您需要添加4点。

  3. 旋转形状时,还需要对其进行平移。

签出玩形状旋转图标 源代码向您展示了如何进行旋转,或者您可以按原样使用类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM