it-swarm.com.de

Triangle Draw-Methode

Ich habe Probleme beim Zeichnen eines Dreiecks mit der draw(Graphics g)-Methode in Java ..__ Ich kann ein Rechteck so zeichnen:

public void draw(Graphics g) {
    g.setColor(colorFill);
    g.fillRect(p.x, p.y, width, height);
    g.setColor(colorBorder);
    g.drawRect(p.x, p.y, width, height);
    drawHandles(g);

Dabei steht p für "die obere linke Ecke der Formen". Wie würde ich das Dreieck auf dieselbe Weise zeichnen?

Könnte mir jemand ein Beispiel für ein Standarddreieck geben?

17
Jon Snow

Es gibt weder in Graphics noch in Graphics2D eine drawTriangle-Methode. Sie müssen es selbst tun. Sie können drei Linien mit der drawLine-Methode zeichnen oder eine dieser Methoden verwenden:

Diese Methoden arbeiten mit Polygonen. Sie können das Präfix draw in fill ändern, wenn Sie das durch die Punktmenge definierte Polygon füllen möchten. Ich habe die Dokumentationslinks eingefügt. Werfen Sie einen Blick, um zu lernen, wie man sie benutzt.

Es gibt auch die GeneralPath Klasse. Es kann mit Graphics2D verwendet werden, das Shapes zeichnen kann. Schau mal:

27
davidbuzatto

Sie sollten versuchen, die Shapes-API zu verwenden.

Schauen Sie sich JPanel repaint von einer anderen Klasse an, bei der es um das Zeichnen von Dreiecken geht. Schauen Sie sich die getPath-Methode für einige Ideen an

Sie sollten sich auch über GeneralPath & Drawing Arbitrary Shapes informieren.

Diese Methode ist sehr einfach für AffineTransformation s auf

3
MadProgrammer

Verwenden Sie einen Linienalgorithmus, um Punkt A mit Punkt C zu verbinden. Lassen Sie Punkt A in einer äußeren Schleife mit demselben Linienalgorithmus in Richtung B wandern und wiederholen Sie das Ziehen dieser Linie mit den Wanderkoordinaten. Sie können wahrscheinlich auch ein Z-Delta hinzufügen, mit dem auch iterativ inkrementiert wird. Berechnen Sie für den Linienalgorithmus einfach zwei oder drei Steigungen für die Deltaänderung jeder Koordinate und setzen Sie eine Steigung auf 1, nachdem Sie die beiden anderen proportional geändert haben, so dass sie unter 1 liegen. Dies ist sehr wichtig für das Zeichnen geschlossener geometrischer Bereiche zwischen verbundenen Netzpartikeln. Schauen Sie sich das Beispiel für Qt Elastic Nodes an und stellen Sie sich nun vor, Sie zeichnen Dreiecke zwischen den Knoten, nachdem Sie diese über ein Skelett gezogen haben . Solange es online bleibt

1
Chuck

Das Zeichnungsdreieck ist in der Standard-Java-Bibliothek nicht enthalten. Ich habe hier Beispielcode gesehen:

http://www.dreamincode.net/forums/topic/52352-draw-line-triangle/

1
Naidu Ypvs

es gibt keinen Befehl, ein Dreieck direkt zu zeichnen. Für das Zeichnen eines Dreiecks müssen wir hier das Konzept der Linien verwenden.

d. g.drawLines (Koordinaten von Punkten)

0

Es gibt keine direkte Methode zum Zeichnen eines Dreiecks. Sie können die drawPolygon () - Methode für diese .. verwenden. Sie benötigt drei Parameter in der folgenden Form: drawPolygon(int x[],int y[], int number_of_points);Um ein Dreieck zu zeichnen: (Geben Sie die x-Koordinaten in Feld x und y-Koordinaten in Feld y und die Anzahl der Punkte an, die den Elementen beider Arrays entspricht. Wie im Dreieck haben Sie 3 x Koordinaten und 3 y Koordinaten, was bedeutet, dass Sie 3 Punkte haben total.) Angenommen, Sie möchten das Dreieck mit den folgenden Punkten zeichnen: (100,50),(70,100),(130,100)Machen Sie Folgendes innerhalb von public void Paint(Graphics g):

int x[]={100,70,130};
int y[]={50,100,100};
g.drawPolygon(x,y,3);

Ebenso können Sie eine beliebige Form mit beliebig vielen Punkten zeichnen.

0
Oshin