【问题标题】:Java, not applicable for the arguments,affine transform?Java,不适用于参数,仿射变换?
【发布时间】:2020-06-20 16:27:03
【问题描述】:
public void paint(Graphics g) {
        Rectangle rectangle = new Rectangle(100,100,100,100);
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform transform = new AffineTransform();
        transform.rotate(
                Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                rectangle.getY() + rectangle.height/2
        );
        g2d.draw(transform); 
}

我正在尝试围绕中心旋转一个矩形,但它不起作用。 我收到此错误:

Graphics2D 类型中的 draw(Shape) 方法不适用于参数 (AffineTransform)

【问题讨论】:

    标签: java affinetransform


    【解决方案1】:

    错误提示你不能用transform调用这个方法。

    您应该尝试先调用setTransform,然后再调用矩形draw

    public void paint(Graphics g) {
            Rectangle rectangle = new Rectangle(100,100,100,100);
            Graphics2D g2d = (Graphics2D) g;
            AffineTransform transform = new AffineTransform();
            transform.rotate(
                    Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                    rectangle.getY() + rectangle.height/2
            );
            g2d.setTransform(transform);
            g2d.draw(rectangle); 
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      相关资源
      最近更新 更多