user12447991 :
Whenever I use g.drawArc
when g
is a Graphics
object, it always starts at start point and finished at the end point, but always clockwise. I want to have an arc that starts from 90 degrees, and goes counter clockwise to 270 degrees, but it always went clockwise. I tried putting 90 degrees to -90 degrees, but it treats negative numbers as 0. How do I approach this?
MadProgrammer :
Ok, so, not having any issues on my end
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();
}
}
}
Some notes:
0
is always points to the right (both images start at 0)- The
arcAngle
is the number of degrees from thestartAngle
to draw (ie "extent"), which is why the images look inverted.
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=418216&siteId=1