![]()
|
|
Visual Basic Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Imports GDI3D Public Class Form1 Private Sample_Graphics As Graphics3D Private Sample_Mesh As Mesh Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer, True) ' Das Mesh wird geladen Sample_Mesh = Mesh.FromFile("C:\Dokumente und Einstellungen\Lukas\Desktop\untitled3.obj") ' Initialisierung der Graphics3D-Instanz und der Matrizen Sample_Graphics = New Graphics3D(Me.ClientSize) Sample_Graphics.Transform_World = Matrix.Identity Sample_Graphics.Transform_View = Matrix.Translation(0, 0, -5) Sample_Graphics.Transform_Projection = Matrix.Projection(Math.PI / 4, Me.ClientSize.Width / Me.ClientSize.Height, 0.1, 1000) End Sub Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint ' Das Mesh soll sich um die Y-Achse drehen (Wichtig: Die Winkel sind in Radiant anzugeben) Sample_Graphics.Transform_World = Matrix.Rotate_Y_Axis(Now.Millisecond * (Math.PI * 2) / 1000) ' Das Mesh wird gezeichnet Sample_Graphics.Draw_Mesh(e.Graphics, Sample_Mesh, Color.FromArgb(240, 100, 20), GDI3D.Graphics3D.DrawMode.Fill Or GDI3D.Graphics3D.DrawMode.Wireframe) Me.Invalidate() End Sub Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize ' Da sich nun das Sichtfenster verändert hat, muss auch die Zeichenfläche und ' das Seitenverhältnis der Projektion verändert werden If Sample_Graphics IsNot Nothing Then Sample_Graphics.Bounds = Me.ClientSize Sample_Graphics.Transform_Projection = Matrix.Projection(Math.PI / 4, Me.ClientSize.Width / Me.ClientSize.Height, 0.1, 1000) End If End Sub End Class |

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »yeti2078« (22. Juni 2010, 21:41)
Benutzer, die diesen Beitrag hilfreich fanden:
CHULIO, big-d, Cronoxyd, Heronger, Jopi24, alexanderw890i, FreakJNS, AliveDevil, vbExtremeFan

Benutzerinformationen überspringen
Dabei seit: 10. Oktober 2009
Wohnort: k
Frühere Benutzernamen: m0nst3rkill3r
Zitat von »"http://forums.macrumors.com/showpost.php?s=9e0078570b2b62fd044cc1b13d212b09&p=4777525&postcount=1064"«
When talking about how apple cannot influence the future of computers, you also forgot to mention that the internet was created on a network of macs to start with. Thats why every online PeeCee has a MAC code. Even my PSP needs a MAC code to get online....

auf jedenfall weitermachen Hab keine obj. files.. vll. kanste eins hochladen?, und echt gute Arbeit!, wusste garnicht das man aus 2d 3d machen kann
Zitat
Sample_Mesh = Mesh.FromFile("C:\Dokumente und Einstellungen\Lukas\Desktop\untitled3.obj")

Benutzerinformationen überspringen
Dabei seit: 11. Oktober 2009
Wohnort: Rosenheim
Frühere Benutzernamen: ClipKing

Das (zur Zeit einzige) unterstützte Dateiformat ist das *Obj-Format von Wavefront. Nahezu jede Modeller-Software (auch Blender!) kann dieses Format exportieren.
Benutzerinformationen überspringen
Dabei seit: 11. Oktober 2009
Wohnort: Rosenheim
Frühere Benutzernamen: ClipKing

Die Drehung im Raum beruht auf dieser Methode, ja.
Zitat
ich schätze mal, dass das ganze auf Eulerscher Rotation basiert.

Zur Zeit wird alles mit mit FillPolygon und DrawPolygon gezeichnet.
Zitat
und diese dann mit Regions/Paths zeichnet?
Benutzerinformationen überspringen
Dabei seit: 30. Oktober 2009
Wohnort: Berlin
Frühere Benutzernamen: Confix.npage.de
Bei mir kommt leider eine Felermeldung beim Testen:
"Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.."
PS: Das ist wohl einer der besten (oder das beste?) Libary![]()
3d, directX, GDI, GDI 3D, GDI+, GDI3D, Graphics, Graphics 3D, Graphics3D