rechtecke...
-
hallo leute,
naja ich bin eigendlich eienr der C++'ler aber in der schule machen wir (leider unglücklicherweise dummerweise weil der lehrer doof ist ;)) java
wir benutzen das buch "Java lernen mit BlueJ" von David J. Barnes und Micheal Kölling
da sind in den ersten kapiteln klassen für rechtecke, kreise und dreicke zu zeichnen gegeben
(so anch folgendem motto:public static void main() { Dreieck e = new Dreieck(50, 10); e.sichtbarMachen() }
und schon sieht man das dreieck)
wir sollten diese klassen erweitern um sie halt für mehr sachen brauchen zu könnendas problem ist: die klasse rechteck hat als memebrvariablen x und y coordinate und die breite und höhe...
ich hätte aber gerne eine viereck klasse die auch schiefe rechtecke zeichnen kann
also mit der man zum beispiel ein rechteck rotieren lassen kannwie krieg ich das hin?
der zeichnen code für das recht eck ist so:
private void zeichnen() { if (istSichtbar) { Leinwand leinwand = Leinwand.gibLeinwand(); leinwand.zeichne(this, farbe, new Rectangle(xPosition, yPosition, breite, hoehe)); Leinwand.warte(10); } }
soweit ichw eis kann man doch polygone zeichnen und die eckpunkte in einem array übergeben?!? ginge das hier auch?
-
einfach vier eckpunkte speichern und das rechteck dann selber zeichenen
// Pseudocode class Rechteck { private Point[] point; public Rechteck(Point[] points) { point = new Point[4]; point[0] = new Point(points[0].x, points[0].y); // usw... } public void draw(Graphics g) { for(int i=0; i<3; i++) g.drawLine(point[i].x, point[i].y, point[i+1].x, point[i+1.y]); g.drawLine(point[3].x, point[3].y, point[0].x, point[0].y); } public void rotate(float degrees) { float arc = (2 * Math.PI * degrees) / 360; float sin = (float)Math.sin(arc); float cos = (float)Math.cos(arc); for(int i=0; i<4; i++) { point[i].x = point[i].x * sin - point[i].y * cos; point[i].y = point[i].x * cos + point[i].y * sin; } }
so könnte man das machen. keine garantie für fehlerfreiheit.
oh ok, ich seh gerade, ihr benutzt da irgendein seltsames framework ("gibLeinwand()" - ich lach mich schief. warum nicht gleich: "gibLeinwandOderEsSetztWas()" ;))
auf jeden fall musst du da dann rausfinden, wie du damit zeichnest.
mein beispiel funktioniert im wesentlichen mit swing und awt.
-
na habs jetzt raus
ja das framework ist halt was für schüler
aber java halt und nicht das göttliche !!! ---> C++ <---!!!naja es reicht einfach nur wenn man new Polygon([],[], int) übergibt...