[java]drawArc
domxaline
-
domxaline -
domxaline -
Bonjour,
j'ai besoin une explication
pour dessiner drawArc:
j'ai compris les paramètres x,y,width,height;
mais je ne comprend pas les parametres suivantes
startAngle,arcAngle
quelqu'un peut m'expliquer avec un dessin svp
j'ai besoin une explication
pour dessiner drawArc:
g.drawArc(100, 20, 100, 90, 0, 135);
g.drawArc(100, 140, 200, 90, 20, 150);
j'ai compris les paramètres x,y,width,height;
mais je ne comprend pas les parametres suivantes
startAngle,arcAngle
quelqu'un peut m'expliquer avec un dessin svp
5 réponses
-
C'est pour ce genre de questions qu'il y a une documentation exhaustive en Java :
public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
Je cite :
"The resulting arc begins at startAngle and extends for arcAngle degrees, using the current color. Angles are interpreted such that 0 degrees is at the 3 o'clock position. A positive value indicates a counter-clockwise rotation while a negative value indicates a clockwise rotation."
Mais le plus simple pour comprendre comment ça marche c'est de faire quelques tests dans un coin pour tester différentes valeurs. -
" startAngle - the beginning angle.
arcAngle - the angular extent of the arc, relative to the start angle."
j'ai besoin un dessin svp
si ça vous dérange pas -
Comme je l'ai dis, "le plus simple pour comprendre comment ça marche c'est de faire quelques tests dans un coin pour tester différentes valeurs."
Exemple :
import java.awt.Graphics; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class TestArc { public static void main(String[] args) { // Frame 1 final JSpinner startAngle = new JSpinner(new SpinnerNumberModel(0, -360, +360, 5)); final JSpinner arcAngle = new JSpinner(new SpinnerNumberModel(0, -360, +360, 5)); final JFrame frame1 = new JFrame(); frame1.setLayout(new GridLayout(2,2)); frame1.add(new JLabel("startAngle")); frame1.add(startAngle); frame1.add(new JLabel("arcAngle")); frame1.add(arcAngle); frame1.pack(); frame1.setLocationRelativeTo(null); frame1.setVisible(true); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Frame 2 final JFrame frame2 = new JFrame() { @Override public void paint(Graphics g) { super.paint(g); int border = 40; g.drawRect(border,border,getWidth()-2*border,getHeight()-2*border); g.fillArc(border,border,getWidth()-2*border,getHeight()-2*border,(int) startAngle.getValue(),(int) arcAngle.getValue()); } }; frame2.setBounds(frame1.getX()+frame1.getWidth(),frame1.getY(),200,200); frame2.setVisible(true); frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Events ChangeListener listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { frame2.repaint(); } }; startAngle.addChangeListener(listener); arcAngle.addChangeListener(listener); } } -
il y une erreur dans le prg la ligne suivant est soulingé
g.fillArc(border,border,getWidth()-2*border,getHeight()-2*border,(int) startAngle.getValue(),(int) arcAngle.getValue());Cannot cast from Object to int at TestArc.main(TestArc.java:40)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -