Entwickler-Ecke

Sonstiges (Delphi) - Drehen eines Würfels um die x-Achse


chrizp - Mo 01.12.03 15:23
Titel: Drehen eines Würfels um die x-Achse
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


Payne85 - 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 :wink:
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


Klabautermann - 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 - 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 :oops:

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 - 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 - 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 - 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.


Udontknow - 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 - 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


Anonymous - 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 - Mi 03.12.03 20:18

Ein echter Würfel ist natürlich dreidimensional, aber nicht auf einem 2-dimensionalen Bildschirm. :lol:


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


Seniman - Mi 03.12.03 22:12

Diese Vermutung hatte ich auch.


chrizp - Do 04.12.03 01:14

Hallo!

Vorab schon mal Danke für die rege Beteiligung. :D

Zum eigentlichen Problem möchte ich erläutern, dass es sich tatsächlich um einen 3-Dimensionalen Würfel handelt. :wink:

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