>

Hausaufgabe Java

#
Ich soll mit Hilfe von Java ein Haus mit GPanel-Koordinaten "malen". Hab keine Ahnung wie das gehen soll und hoffe auf eure Hilfe.  

Mit sowas bekomm ich angeblich ein Quadrat:


import ch.aplu.util.*;

class Grafik2
{
 Grafik2()
 {
   GPanel p = new GPanel(0, 20, 0, 20);
   
   p.line(0, 0, 20, 20);
   p.line(0, 20, 20, 0);
   p.move(10, 10);
   p.circle(10);
 }

 public static void main(String[] args)
 {
   new Grafik2();
 }
}


Sagt mir gar nichts aber es soll halt ein Quelltext geschrieben werden der sowas darstellt:

"Haus"

Hier soll ich es dann testen...

Danke im Vorraus  
#
bigmack123 schrieb:
Ich soll mit Hilfe von Java ein Haus mit GPanel-Koordinaten "malen". Hab keine Ahnung wie das gehen soll und hoffe auf eure Hilfe.  

Mit sowas bekomm ich angeblich ein Quadrat:


import ch.aplu.util.*;

class Grafik2
{
 Grafik2()
 {
   GPanel p = new GPanel(0, 20, 0, 20);
   
   p.line(0, 0, 20, 20);
   p.line(0, 20, 20, 0);
   p.move(10, 10);
   p.circle(10);
 }

 public static void main(String[] args)
 {
   new Grafik2();
 }
}


Sagt mir gar nichts aber es soll halt ein Quelltext geschrieben werden der sowas darstellt:

"Haus"

Hier soll ich es dann testen...

Danke im Vorraus    



hmmm, wie komplex soll das haus denn werden? an sich fehlt zum quadrat ja nur noch ein rechteck oben drauf?  ,-)

ich kenn mich zwar mit java aus, aber hab bisher wenig mit graphischen objekten und deren positionierung gearbeitet. Ich kenn leider den datentypen GPanel und dessen eigenschaften nicht.

hier ist er: http://www.aplu.ch/classdoc/util/ch/aplu/util/GPanel.html


wie ich den code verstehe:

p ist vom typen "GPanel" und scheint ein graphisches objekt zu sein.

dann wird zum objekt p die eigenschaft "line" auf einen bestimmten wert gesetzt, der scheinbar vier koordinaten enthält, die aber in der nächsten zeile auch gleich wieder überschrieben werden! (übertragungsfehler?)

danach werden die eigenschaften ".move" und ".circle" gesetzt. im anschluss wird die klasse geladen und das grade definierte objekt erstellt. mehr kann ich bis hierhin nicht helfen. vielleicht reichts ja schon...
#
Ein einfaches Haus solls sein.

http://img183.imageshack.us/img183/131/haus.jpg So halt. Mit Fenster und Tür  
#
Weiß jemand noch was?  
#
#
#
bigmack123 schrieb:

Mit sowas bekomm ich angeblich ein Quadrat:
...
Hier soll ich es dann testen...

Offenbar hast du es nicht getestet, denn damit bekommst du kein Quadrat.

Mit GPanel p = new GPanel(0, 20, 0, 20); erzeugst du ein Grafik-Panel p mit den Maßen 20 x 20.

p.line(X-Koordinate-Startpunkt, Y-Koordinate-Startpunkt, X-Koordinate-Endpunkt, Y-Koordinate-Endpunkt) zeichnet in dein Panel p eine gerade Linie vom Start- zum Endpunkt.
Also zeichnet dein Beispiel zwei diagonale Linien:
p.line(0, 0, 20, 20); von links unten (0/0) nach rechts oben (20/20)
p.line(0, 20, 20, 0); von links oben (0/20) nach rechts unten (20/0)
Dann gehst du zum Punkt (10/10)
p.move(10, 10);
und zeichnest um diesen eine Kreis mit Radius 10
p.circle(10);

Wenn du also ein Haus malen sollst, musst du auch zuerst ein Grafikpanel p erzeugen, und dann mit p.line() einfach die jeweiligen Linien zeichnen.

GPanel p = new GPanel(0, 30, 0, 30);

p.line(5, 5, 25, 5);
p.line(25, 5, 25, 20);
p.line(25, 20, 5, 20);
p.line(5, 20, 5, 5);

Das hier würde z.B. ein Panel (30x30) erstellen und darin ein Rechteck zeichnen. Dach Fenster und Tür bekommst du jetzt bestimmt selbst hin...
#
Juhu, ich habs hinbekommen


// MyGPanel.java

import ch.aplu.util.GPanel;

class MyGPanel
{
 GPanel p = new GPanel(0,40,0,40);  
 

 MyGPanel()
 {
  p.line(5, 5, 25, 5);
p.line(25, 5, 25, 25);
p.line(25, 25, 5, 25);
p.line(5, 25, 5, 5);
p.line(5, 25, 15, 35);
p.line(15, 35, 25, 25);
p.line(14, 5, 14, 15);
p.line(14, 15, 19, 15);
p.line(19, 15, 19, 5);
p.line(8, 20, 8, 24);
p.line(8, 24, 12, 24);
p.line(12, 24, 12, 20);
p.line(12, 20, 8, 20);
 }    

 public static void main(String[] args)
 {
   new MyGPanel();
 }
}
#
Klasse. Vielen Dank an alle. Nach Grabbi80's Beitrag hab ichs selbst probiert aber es war nich ganz ein Dach was ich hatte und Dank Darmstaedter_Adler hab ich sogar das Dach hingekriegt  

Danke Danke Danke  


Teilen