Autor |
Beitrag |
chrizp
Hält's aus hier
Beiträge: 5
Win ME
|
Verfasst: Mo 01.12.03 15:23
Hallo!
Ich habe eine Hausarbeit in meinem Info-Unterricht bekommen, von der ich keine Ahnung habe, wie ich sie lösen soll:
Ich soll eine einfache Prozedur schreiben mit der per buttonclick ein Würfel, der aus 27 kleinen Würfeln (also 3*3*3) zusammengesetzt ist, um 90 Grad gegen den Uhrzeigersinn um die x-Achse gedreht wird.
Da von dieser Aufgabe abhängt, ob ich dieses Jahr einen Ausfall bekomme, oder nicht hoffe ich sehr auf eure Hilfe
Grüße
Chris
Zuletzt bearbeitet von chrizp am Mo 01.12.03 22:05, insgesamt 1-mal bearbeitet
|
|
Payne85
      
Beiträge: 53
Win2k
D3 Pers, D7
|
Verfasst: Mo 01.12.03 15:55
Herzlich Willkommen im Delphi Forum
Also hättest du nicht erwähnt das es sich um eine dringende Schulaufgabe handelt, hättest du womöglich sehr viel mehr Chancen auf Hilfe
Ich kann dir Leider nicht helfen, aber guck dir doch mal die OpenGL Tuturials an. Die Aufgabe ist wohl zu Lösen, wenn man sich ein bisschen mit der Materie beschäftigt. Wenn du wenigstens mal konkrete Fragen zur programmierung stellen würdest. Erwarte nicht das dir hier welche die Fertige Aufgabe posten. Viel Glück bei deinem Vorhaben, bei konkreteren Fragen bekommst du sicherlich gute hilfe hier.
Mfg
_________________ Mitleid gibts umsonst, Neid muss man sich verdienen...
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 01.12.03 16:07
Hallo,
dein Titel enspricht nicht unseren Richtlinien. Diese sagen zu dem Thema:
Delphi-Forum Richtlinien hat folgendes geschrieben: |
1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. Eine Pseudocodezeile oder die Nennung des Objektes, um welches es sich in dem Beitrag handelt, helfen da schon mehr weiter. |
Andere bitte das den Titel, indem du deinen ersten Beitrag dieses Threads noch einmal Editierst. Einfach bei dem Beitrag auf Edit clicken, den Titel ändern und wieder auf Absenden.
Gruß
Klabautermann
|
|
chrizp 
Hält's aus hier
Beiträge: 5
Win ME
|
Verfasst: Mo 01.12.03 22:12
Hallo,
danke für eure Antworten.
Natürlich erwarte ich nicht wirklich, dass mir die komplette Aufgabe gepostet wird...
Auf die Tutorials hätte ich nun wirklich auch selbst kommen können
Einen Lösungsansatz habe ich mir schon zurechtgebastelt:
Ich schreibe die veränderten Positionen der einzelnen Würfel in einen zweiten, den ich nur als Zwischenspeicher benutze und überschreibe mit diesen neuen Werten dann den Urspungswürfel. - Oder ist das zu umständlich?
Nun muß ich nur noch rausfinden, wie ich das schreibe, na ja, ich werd mal die Tutorials durchstöbern...
Gruß
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Di 02.12.03 09:39
Hallo!
Ich würde eine Funktion schreiben:
Quelltext 1:
| function GedrehterWuerfel(Wuerfel:TWuerfel):TWuerfel |
Es ist jeder Punkt des Würfels als Vektor (x,y,z) festgehalten, ja? Also musst du doch nur eine Vektortransformation mithilfe einer Drehmatrix für jeden Vektor vornehmen.
Cu,
Udontknow
PS:
Was heisst "um die X-Achse"? Um die Achse des Würfels oder des Koordinatensystems?
Bei letzterem:
Wenn die Mitte des Würfels natürlich nicht bei (0,0,0) ist, musst du vorher eine Translation auf (0,0,0) durchführen und nach der Anwendung der Matrix diese Translation wieder rückgängig machen.
|
|
Seniman
      
Beiträge: 42
D6 Pers
|
Verfasst: Di 02.12.03 22:12
Hallo chrizp,
kannst du bitte schreiben, woraus genau dein Würfel besteht (klar aus 27 kleinen Würfel)? Ich meine, sind die Koordinaten der kleinen Würfel gegeben? Ist der Würfel irgendwie gedreht oder gerade? Wie wird das ganze Graphisch dargestellt?
Die Antworten auf diese Fragen würden mir bei der Lösung deines Problem sehr helfen.
Ansonsten ist dein Vorschlag mit dem zweiten Würfel im Zwischenspeicher ganz brauchbar.
Grüße
Seniman
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mi 03.12.03 03:48
Ist das ganze überhaupt eine 2- oder 3-dimensionale Frage ? Soll nur die Draufsicht auf den Würfel angezeigt werden, oder alles auch noch mit grafischer Seitenansicht etc. ? Dann wirds nämlich echt kompliziert. Aber egal wie, die Koordinaten müssen auf jeden Fall auf den Ursprung (0,0) zurückgerechnet werden, wie Udontknow schon gesagt hat.
_________________ Gruß
Hansa
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mi 03.12.03 09:53
Also, ein Würfel ist für mich immer 3-dimensional. Bei 2 Dimensionen ist es ein Quadrat.
Cu,
Udontknow
|
|
barfuesser
      
Beiträge: 324
|
Verfasst: Mi 03.12.03 18:36
Udontknow hat folgendes geschrieben: | Also, ein Würfel ist für mich immer 3-dimensional. Bei 2 Dimensionen ist es ein Quadrat.
Cu,
Udontknow |
Und bei 4 Dimensionen und mehr?
barfuesser
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 03.12.03 19:02
(leicht OT, aber:)
...ist es kein Würfel mehr, sondern mehrere Würfel nebeneinander ;) und danach würfel nebeneinander übereinander. Und danach Würfel nebeneinander übereinander hintereinander. Und danach Würfel nebeneinander übereinander hintereinander nebeneinander.... ;)
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mi 03.12.03 20:18
Ein echter Würfel ist natürlich dreidimensional, aber nicht auf einem 2-dimensionalen Bildschirm. 
_________________ Gruß
Hansa
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Mi 03.12.03 21:28
Ähhh, ich weiß nicht ob das jeder hier mitbekommen hat, aber es geht hier um Informatik-Unterricht.
Ich wüsste nicht, daß bei uns irgendwas in Richtung 3D-Programmierung mit OpenGL/DirectX läuft, und ich vermute, daß es eher darum geht, ein dreidimensionales Array of Integer zu "drehen", indem die Zahlen jeweils verschoben werden. Als Visualisierung vermute ich daher auch ein Stringgrid und nur eine Seitenansicht des "Würfels".
Wenn ich falsch liege, müsste chrizp mal mehr Informationen liefern 
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Seniman
      
Beiträge: 42
D6 Pers
|
Verfasst: Mi 03.12.03 22:12
Diese Vermutung hatte ich auch.
|
|
chrizp 
Hält's aus hier
Beiträge: 5
Win ME
|
Verfasst: Do 04.12.03 01:14
Hallo!
Vorab schon mal Danke für die rege Beteiligung.
Zum eigentlichen Problem möchte ich erläutern, dass es sich tatsächlich um einen 3-Dimensionalen Würfel handelt.
Zu euren Fragen: Die Koordinaten der kleinen Würfel sind gegeben und der Würfel ist gerade. Er soll über die Achse des Würfels gedreht werden. Die Ausgabe erfolgt über eine Paintbox. In der Schule verwenden wir Delphi 4 (hat mich zwar keiner gefragt, aber könnte vielleicht trotzdem interessant sein).
Würde es helfen, wenn ich das Programm, das diesen Würfel erstellt, poste?
schönen Gruß
Chris
|
|
Adrian
      
Beiträge: 314
|
Verfasst: Fr 05.12.03 10:21
Servus!
Die Zeichenroutine des Würfels wäre praktisch. Vielleicht kann ich meine angestaubten Kenntnisse in Vektorgeometrie darauf anwenden.
Gruß,
Adrian
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Fr 05.12.03 10:57
Das Programm ist nicht nötig, wichtig ist das Format. Gib uns doch bitte mal die Datenstruktur des Würfels, also Record, Array o.ä.
Cu,
Udontknow
|
|
chrizp 
Hält's aus hier
Beiträge: 5
Win ME
|
Verfasst: Mi 10.12.03 17:31
Hallo zusammen,
es handelt sich um einen array of integer (wenn man das so ausdrückt...) Ich bin bei meiner Recherche leider noch nicht viel weitergekommen...
Grüße
Chris
|
|
Udontknow
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mi 10.12.03 18:01
Poste bitte mal die Array-Definition!
Bist du in Mathe fit? Sagt dir Vektortransformation, Rechnen mit Matrizen usw. etwas?
Cu,
Udontknow
|
|
chrizp 
Hält's aus hier
Beiträge: 5
Win ME
|
Verfasst: Fr 12.12.03 16:21
Hallo!
Ich möchte mich sehr bei euch für die Denkanstöße bedanken.
Ich habe heute morgen das Problem mit einem Freund gelöst und erfolgreich im Info-Unterricht vorgetragen, dennoch habe ich mich sehr über eure Versuche mir zu helfen gefreut.
Viele Grüße
Chris
|
|
ErnestoChe
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: Fr 12.12.03 17:05
Hi,
@chrizp
könntest du die Lösung hier posten? Würde bestimmt den einen oder anderen interessieren.
MFG
- Ernesto -
|
|