Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用g.drawArc()逆时针旋转形成圆弧?_Java_Graphics - Fatal编程技术网

Java 如何使用g.drawArc()逆时针旋转形成圆弧?

Java 如何使用g.drawArc()逆时针旋转形成圆弧?,java,graphics,Java,Graphics,每当我使用g.drawArc时,当g是Graphics对象时,它总是从起点开始,在终点结束,但总是顺时针。我想要一个90度开始的圆弧,逆时针到270度,但它总是顺时针。我试着把90度放到-90度,但它把负数当作0。我该怎么做呢?好的,我这边没有任何问题 一些注意事项: 0始终指向右侧(两个图像都从0开始) arcAngle是从startAngle到绘制的度数(即“范围”),这就是图像看起来倒置的原因 我尝试将90度设置为-90度,但它将负数视为0。这不是状态:正值表示逆时针旋转,而负值表示顺

每当我使用
g.drawArc
时,当
g
Graphics
对象时,它总是从起点开始,在终点结束,但总是顺时针。我想要一个90度开始的圆弧,逆时针到270度,但它总是顺时针。我试着把90度放到-90度,但它把负数当作0。我该怎么做呢?

好的,我这边没有任何问题

一些注意事项:

  • 0
    始终指向右侧(两个图像都从0开始)
  • arcAngle
    是从
    startAngle
    到绘制的度数(即“范围”),这就是图像看起来倒置的原因
我尝试将90度设置为-90度,但它将负数视为0。这不是状态:正值表示逆时针旋转,而负值表示顺时针旋转。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {
    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(200, 200);
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);

            Graphics2D g2d = (Graphics2D) g.create();

            g2d.setColor(Color.RED);
            g2d.drawArc(10, 10, 80, 80, 0, -270);
            g2d.setColor(Color.BLUE);
            g2d.drawArc(100, 10, 80, 80, 0, 270);

            g2d.dispose();            
        }

    }
}