Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Draw a 3D Model

<Window x: Class="WpfApplication1.Window1"   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Background="Black"   Title="" Height="300" Width="300" Loaded="Window1_Loaded">   <Window.Resources>     <MeshGeometry3D x:Key="triangleMesh" Positions="-1,-1,0 1,-2,-1 1,1,0" TriangleIndices="0 1 2" />   </Window.Resources>   <Viewport3D x:Name="vp">     <Viewport3D.Camera>       <PerspectiveCamera LookDirection="0,0,-1" Position="0,0,5" />     </Viewport3D.Camera>     <ModelVisual3D>       <ModelVisual3D.Content>         <PointLight Position="0,-1,1" Color="White" />       </ModelVisual3D.Content>     </ModelVisual3D>   </Viewport3D> </Window> //File:Window.xaml.vb Imports System.Windows Imports System.Windows.Media Imports System.Windows.Media.Media3D Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Public Sub New()       InitializeComponent()     End Sub     Private Sub Window1_Loaded(sender As Object, e As RoutedEventArgs)       Dim triangleMesh As MeshGeometry3D = DirectCast(TryFindResource("triangleMesh"), MeshGeometry3D)       For i As Integer = 0 To 3         Dim modelVisual3D As New ModelVisual3D()         Dim geometryModel3D As New GeometryModel3D()         geometryModel3D.Geometry = triangleMesh         geometryModel3D.Material = New DiffuseMaterial(Brushes.Firebrick)         modelVisual3D.Content = geometryModel3D         Dim rotateTransform As New RotateTransform3D()         rotateTransform.Rotation = New AxisAngleRotation3D(New Vector3D(0, 0, -1), i * 40)         modelVisual3D.Transform = rotateTransform         vp.Children.Add(modelVisual3D)       Next     End Sub   End Class End Namespace