java - java中的旋转圆弧

标签 java rotation automatic-ref-counting

大家好,我有一个像这样的弧线

g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));

现在我需要使用 java.awt.geom 包的 AffineTransform 类来旋转这个弧,所以我必须把它放在

public  void AffineTransform(AffineTransform Tx){
 AffineTransform rtt = new AffineTransform();
      rtt.rotate(Math.toRadians(62));

 }

所以我创建了一个对象,我告诉这个对象旋转 62 度,我希望它们以弧度为单位,所以我进行变换。接下来我该怎么做才能让我的圆弧以这些弧度旋转。我真的是一个新手,所以最好有详细的解释......

最佳答案

相反,Graphics2D 类本身具有旋转函数,(更简单、更短):

  1. rotate(double theta):将当前的Graphics2D变换与旋转变换连接起来。后续渲染相对于之前的原点旋转指定的弧度。

  2. rotate(double theta, double x, double y):将当前的 Graphics2D 变换与平移的旋转变换连接起来。此操作相当于以下调用序列:

    translate(x, y);
    rotate(theta);
    translate(-x, -y);
    

但是,旋转后我想恢复图形状态:尝试创建一个图形对象并在绘制完成后将其丢弃:

   Graphics2D g2d = (Graphics2D)g.create();
   g2d.rotate(theta);
   g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));
   g2d.dispose();

或者如果不喜欢创建和处置:

   g2d.rotate(theta);
   g2d.draw(new Arc2D.Double(200, 200,100,200,90.123, 135.3456,Arc2D.OPEN));
   g2d.rotate(-theta);

关于java - java中的旋转圆弧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20105618/

相关文章:

c++ - 使用 glm 的旋转功能时预期的旋转方向是什么?

objective-c - 局部变量、优化和 ARC

ios - 关闭旋转?

Xamarin 表单 XAML 标签轮换

ios - 如何防止 IBOutlet 属性被释放(iOS 使用 ARC)

ios - ARC 的 CoreAnimation 内存问题

java - 以编程方式解决数独

java - 适用于 EJB2 和 EJB3 的 Maven 普通项目

java - Neo4j 3.5 全文搜索仅使用嵌入式 API,无需 Cypher

java - 当我编译此代码时,出现“整数太大”之类的错误。虽然我声明它很长,但我不知道为什么它显示错误?