2010-10-29 8 views
1

je dois dessiner une tarte Arc en Java avec un angle de départ 350 et l'angle final système 20.Les de cordinate je suis est comme suit: -Dessin Arc en Java

 |0 
     | 
270-----------90 
     | 
     |180 

Le problème ici est que l'angle de départ est plus grand que l'angle final. Pour l'autre sens, j'ai réussi à dessiner l'arc.Une aide serait géniale.

Répondre

6

Vous aurez un angle de départ et un angle d'extension et non un angle d'extrémité. Donc, je ne pense pas que vous auriez du mal à dessiner un arc.

import java.awt.Graphics; 
import javax.swing.JFrame; 

public class Test extends JFrame{ 
    public static void main(String[] args){ 
     new Test(); 
    } 
    public Test(){ 
     this.setSize(400,400); 
     this.setVisible(true); 
    } 
    public void paint(Graphics g) { 
     g.fillArc(100, 100, 100, 100, 70, 30); 
    } 
} 

enter image description here

Vous pouvez également utiliser la classe Arc2D aussi bien. Encore une chose à noter qu'en Java, c'est le mécanisme de coordination par défaut.

 |90 
     | 
180-----------0 
     | 
     |270 
+0

En fait, ceci est pour un composant d'oscillation personnalisé. Je fais un double curseur circulaire de pouce. Un arc-en-ciel avec la transparence est exigé pour indiquer la région choisie. Je fais face à un problème quand l'angle de départ est supérieur angle final. – Emil

+0

@Emil: Vous devriez oublier l'angle de fin ici. Arc a toujours un angle de départ et une étendue. Même si vous avez un angle de fin, vous devriez le traduire explicitement dans l'arc de Java. – bragboy

+0

@Emil: Pouvez-vous poster du code, je peux vous aider .. – bragboy

2

utilisation (450 - angle)% 360 pour commuter les angles. Concept 450 = 180 + 270;