Laden...

3D Box erstellen

Erstellt von Atomroflman vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.554 Views
A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 16 Jahren
3D Box erstellen

Ich versuche einen Quader auf einer PictureBox darzustellen, dabei sollen die Dimensionen in jeweils einer TextBox für X,Y,Z eingegeben werden.
Bisher ist es mir gelungen den Quader zu zeichnen aber der Quader soll gedreht werden können. Ich habe dazu eine Klasse geschrieben die aus den angegebenen Größen für den Quader die Eckpunkte als 3 dimensionalen Vektor erfasst und danach in zum Zeichnen die Punkte auf 2 Dimensionen abbildet. Das Ergebnis ist ein Quader der im Wireframe dargestellt wird. Das Problem an der Sache ist aber dass nur die Ansicht von vorne möglich ist.

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

5.742 Beiträge seit 2007
vor 16 Jahren

Hallo Atomroflman,

herzlich willkommen hier im Forum!

für solche Aufgaben sollte man besser DirectX oder WPF verwenden - alleine mit WinForms und GDI+ ist das sehr kompliziert.

822 Beiträge seit 2005
vor 16 Jahren

Hy

Wie stellst du den Quader dar?
*DirectX *OpenGL *GDI+ *...

sbertl

//edit: verdammt, zu spät ^^

5.658 Beiträge seit 2006
vor 16 Jahren

Naja, wenn du die Klasse schon fertig hast und die Ansicht auf "vorne" beschränkt hast, nehme ich mal an, daß du einfach die z-Werte ignorierst und eine isometrische Ansicht hast.

Wenn du das Objekt von einer beliebigen Position aus betrachten möchtest, geht das am einfachsten mit einer sogenannten ViewMatrix. Mithilfe dieser Matrix kannst du alle Eckpunkte des Quaders in das Koordinatensystem der virtuellen Kamera transformieren und dann so zeichnen, wie du es bisher machst.

Wie du die ViewMatrix erstellst findest du im Internet irgendwo, oder du verwendest die Matrix.CreateViewMatrix-Methode von DirectX.

Weeks of programming can save you hours of planning

A
Atomroflman Themenstarter:in
266 Beiträge seit 2007
vor 16 Jahren

Ich stelle den Quader mit nur mit DrawLine dar... und die Eckpunkte berechne ich mit einer eigenen Klasse...
Wie kann ich DirectX in mein programm einbinden ?(

Die Ansicht ist übrigends so dass man die Box quasi als Wireframe sehen kann da sie nicht texturiert ist und die Hidden Lines auch nicht beachtet werden...

Und Danke fürs Willkommen 😁

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

5.658 Beiträge seit 2006
vor 16 Jahren

Zu DirectX findest du ein paar Beiträge im Forum und jede Menge Tutorials im Internet. Aber du kannst wie gesagt auch deine bisherigen Zeichenfunktionen nutzen, um die transformierten Punkte und Linien zu zeichnen.

Weeks of programming can save you hours of planning

822 Beiträge seit 2005
vor 16 Jahren

Wenn du wirklich 3 dimensional mit GDI+ arbeiten willst, empfehle ich dir diesen Artikel:

http://www.codeproject.com/csharp/csgdiplus3d.asp

Wenn du Direct3D lernen willst, dann schau dir mal dieses Tutorial an:

[Artikel] Managed Direct3D Tutorial

sbertl