Ich versuche ein Dreieck zu füllen
Ich versuche zu füllen, ein Dreieck. Ich habe versucht, es selbst zu tun, mit
g.fillPolygon(Triangle.x1, Triangle.x2, Triangle.x3, Triangle.y1,
Triangle.y2, Triangle.y3);
aber ich erhalte einige Fehler. Kann mir jemand helfen mit diesem?
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Vehicle extends JFrame
{
final int WIDTH = 900; int HEIGHT = 650;
public Vehicle()
{
//the following code creates the JFrame
super("Radical Racing");
setSize(WIDTH,HEIGHT);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public void paint(Graphics g)
{
g.setColor(Color.DARK_GRAY);
g.fillRect(0,0,WIDTH,HEIGHT);
int x1, y1 ,x2, y2, x3,y3;
x1 = x2 = x3 = 200;
y1 = y2 = y3 = 390;
{
triangle (g, x1=174, y1, x2=204, y2, x3=189, y3=360);
}
g.setColor(Color.green);
g.fillPolygon(Triangle.x1, Triangle.x2, Triangle.x3, Triangle.y1, Triangle.y2, Triangle.y3);
triangle(g,x1,y1,x2,y2,x3,y3);
}
void triangle(Graphics g,int x1,int y1,
int x2, int y2, int x3, int y3){
g.drawLine (x1, y1, x2, y2);
g.drawLine (x2, y2, x3, y3);
g.drawLine (x3, y3, x1, y1);
}
public static void main(String[]args)
{
new Vehicle();
}
}
- Sie sollten wahrscheinlich hinzufügen von Java als ein tag, um diese, damit die Menschen wissen, welche Sprache Sie verwenden. Dies würde helfen, direkte Menschen auf Ihre Frage, die eher in der Lage sein zu helfen.
- Welche Fehler sind Sie immer
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist willkommen und ich schlage vor, verwenden Sie die oracle java-api manchmal. Es ist wirklich Entwickler freundlich. 🙂
Haben Sie keine Dreieck-Klasse mit statischen x1 Felder... warum also Dreieck.x1...? 🙂 Und warum eigenen block aufrufen Dreieck()?
nvrfrgt Antwort funktioniert und behebt alle bugs, die Sie haben (Sie gab ihm einen +1), aber es gibt einige andere Dinge, die man bereinigen, die es Wert sind, im Auge zu behalten (und zu lang waren für einen Kommentar).
First off, ich denke, du meintest für
HEIGHT
endgültig? Sonst machen es die Kleinbuchstaben.Eine performance-Sache, die einen Unterschied machen könnte später, wenn Sie zeichnen eine Reihe von Renn-Dreiecke oder ähnliches - Sie zeichnen das gleiche Dreieck doppelt (nie ändern Ihre x-und y-Werte), so dass diese verschwendet wird.
Wie Sie initialisiert Ihre x-und y-Werte ist nicht die sauberste entweder. Setzen Sie Sie alle auf bestimmte zahlen, und dann drehen Sie um und ändern Sie in der nächsten Zeile. Warum haben die ursprünglichen Werte? Das snippet unten macht mehr Sinn, für mich jedenfalls (aber das scheint immer noch etwas zu magic numbery)
Wenn Sie gehen, um zu zeichnen Sie das Dreieck und füllen Sie es in der gleichen Farbe, dann zeichnen Sie die Linien möglicherweise nicht für Sie (macht 1pixel Unterschied?). Wenn das der Fall ist, können Sie das Dreieck () - Aufruf, oder ersetzen Sie die Dreieck-Implementierung mit der fülle ein polygon. Am Ende, so etwas ist ein wenig mehr schlank (immer noch arbeiten können, es aber):
ersten Satz Farbe:
Dann füllen Sie es: