2012-08-12 13 views
16

Ich habe Probleme beim Zeichnen eines Dreiecks mit der draw(Graphics g)-Methode in Java. ich ein Rechteck wie so ziehen:Triangle Draw-Methode

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); 

Wo p „die linke obere Ecke der Formen“ darstellt. Wie würde ich das Dreieck auf die gleiche Weise zeichnen?

Kann mir jemand ein Beispiel für ein Standarddreieck geben?

Antwort

27

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

mit Polygonen Diese Methoden funktionieren. Sie können das Präfix draw in fill ändern, wenn Sie das durch den Punktsatz definierte Polygon füllen möchten. Ich habe die Dokumentationslinks eingefügt. Schau dir an, wie man sie benutzt.

Es gibt auch die GeneralPath Klasse. Es kann mit Graphics2D verwendet werden, das in der Lage ist, Shapes zu zeichnen. Werfen Sie einen Blick:

+0

drawPolygon war genau das, wonach ich suchte! Danke –

+0

@JonSnow: Gern geschehen! – davidbuzatto

0

Es gibt keinen Befehl direkt zum Zeichnen von Dreieck. Für das Zeichnen eines Dreiecks müssen wir hier das Konzept der Linien verwenden.

d.h. g.DrawLines (Koordinaten von Punkten)

1

Verwenden Sie einen Linienalgorithmus, um Punkt A mit Punkt C zu verbinden, und in einer äußeren Schleife Punkt A mit demselben Linienalgorithmus in Richtung Punkt B wandern und mit den wandernden Koordinaten diese Linie wiederholen . Sie können wahrscheinlich auch ein z-Delta einschließen, mit dem auch iterativ inkrementiert wird. Für den Linienalgorithmus berechnen Sie einfach zwei oder drei Steigungen für die Delta-Änderung jeder Koordinate und setzen eine Steigung auf 1, nachdem Sie die beiden anderen proportional geändert haben, sodass sie unter 1 liegen. Dies ist sehr wichtig für das Zeichnen geschlossener geometrischer Flächen zwischen verbundenen Gitterpartikeln. Sehen Sie sich das Beispiel Qt Elastic Nodes an und stellen Sie sich nun vor, dass Sie Dreiecke zwischen den Knoten ziehen, nachdem Sie diese über ein Skelett gestreckt haben. As long as it will remain online

0

Es gibt keine direkte Methode zum Zeichnen eines Dreiecks. Sie können hierfür die Methode drawPolygon() verwenden. Es dauert 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 Array x und y Koordinaten in Array y und Anzahl der Punkte, die gleich den Elementen der beiden Arrays sein wird in Dreieck sich 3 x Koordinaten und 3 y-Koordinaten haben, was bedeutet, man 3 Punkte insgesamt haben) Angenommen, Sie das Dreieck unter Verwendung der folgenden Punkte ziehen möchte. (100,50),(70,100),(130,100) die public void paint(Graphics g) folgenden innen Do:

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

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

Verwandte Themen