Problem mit drawArc()

KarlPichler

Mitglied
Hallo Java Experten, ich bnötige wieder einmal eure hilfe.

Möchte mit meiner App eine Bahngenerierungstool verwirklichen. Funktioniert auch fast alles wunderbar.

Problem: ich zeichne die Kurven auf ein JPanel
Java:
g.drawArc(x, y, width, height, AngleStart, AngleEnd);

Beim Ausführen wird die Kurve angezeigt, Allerdings nur die wirkliche Krümmung und nicht die gesamte Kurve. siehe Bild im Anhang.

Habe die Positionen überprüft und diese sind korrekt.

Hat jemand eine Idee? wäre dankbar für jeden Tipp.

lg
 

Anhänge

  • problem.jpg
    problem.jpg
    4,1 KB · Aufrufe: 7
Kannst du bitte deinen kompletten Paint-Block posten, damit ich da einen besseren Zusammenhang habe.

Wie man eine Kurve zeichnet weiß ich auch. ;)
 
glaub ich dir! ;)

Java:
public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        calculateDrawing();

        for (int i=0; i < 30; i++) {

            RectColor = new Color(Randomize(255),Randomize(255),Randomize(255));
            
            g2.setStroke(new BasicStroke(8));             
            g2.setColor(RectColor);
            //g.fillRect(RectLeft, RectTop, RectWidth-1, RectHeight-1);
            if(sectionsInt[i][6]<=4)
            {   
                RectTop = sectionsInt[i][0];
                RectLeft = sectionsInt[i][1];
                RectWidth = sectionsInt[i][2];
                RectHeight = sectionsInt[i][3];
                g2.drawLine(RectLeft, RectTop, RectWidth, RectHeight); 
            }
            if(sectionsInt[i][6] >4 )
            {
                CurveX =sectionsInt[i][0];
                CurveY =sectionsInt[i][1];
                CurveWidth =sectionsInt[i][2];
                CurveHeight=sectionsInt[i][3];
                CurveStartAngle =sectionsInt[i][4];
                curveArcAngle =sectionsInt[i][5];
                //g.drawArc(0, 0, 150, 150, 90,-90);
                g.drawArc(CurveX, CurveY, CurveWidth, CurveHeight, CurveStartAngle, curveArcAngle);
            }
        }
 
Hast du dir schon mal die Werte (CurveX, CurveY, CurveWidth, etc.) ausgeben lassen, um zu sehen, ob es überhaupt die Werte sind die du auch erwartest?
 
ein beispiel

Java:
 g.drawArc(0, 0, 150, 150, 90,-90);

der violette punkt markiert die 0/0 Position

dennoch fängt die kurve nicht bei 0/0 an.
 

Anhänge

  • problem.jpg
    problem.jpg
    3,4 KB · Aufrufe: 6
Kann es sein, dass du die Kurve vor oder zwischendurch zeichnest, während noch andere Objekte gezeichnet werden? Dann kann es sein, dass die Kurve übermalt wird.
 
Zurück