2012-06-08 7 views
6

Ich habe diesen Code, der einen Würfel in WPF Viewport3D zieht:Erstellen eines Drahtrahmen 3D-Würfel

 <Viewport3D Name="viewport3D1"> 
      <Viewport3D.Camera> 
       <PerspectiveCamera x:Name="camMain" Position="6 5 4" LookDirection="-6 -5 -4"> 
       </PerspectiveCamera> 
      </Viewport3D.Camera> 
      <ModelVisual3D> 
       <ModelVisual3D.Content> 
        <DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1"> 
        </DirectionalLight> 
       </ModelVisual3D.Content> 
      </ModelVisual3D> 
      <ModelVisual3D> 
       <ModelVisual3D.Content> 
        <GeometryModel3D> 
         <GeometryModel3D.Geometry> 
          <MeshGeometry3D x:Name="meshMain" 
           Positions="0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1" 
           TriangleIndices="2 3 1 2 1 0 7 1 3 7 5 1 6 5 7 6 4 5 6 2 0 2 0 4 2 7 3 2 6 7 0 1 5 0 5 4"> 
          </MeshGeometry3D> 
         </GeometryModel3D.Geometry> 
         <GeometryModel3D.Material> 
          <DiffuseMaterial x:Name="matDiffuseMain"> 
           <DiffuseMaterial.Brush> 
            <SolidColorBrush Color="Red"/> 
           </DiffuseMaterial.Brush> 
          </DiffuseMaterial> 
         </GeometryModel3D.Material> 
        </GeometryModel3D> 
       </ModelVisual3D.Content> 
      </ModelVisual3D> 
     </Viewport3D> 

Dies ergibt folgendes Ergebnis:

Wie als machen machen Drahtrahmen?

Antwort

8

Werfen Sie einen Blick auf die LinesVisual3D Klasse in der (freien) Helix 3D Toolkit (https://github.com/helix-toolkit). Dies ist eine Version der "Bildschirm-Raumlinien", mit der Sie Drahtgitter wie in Ihrem Beispiel zeichnen können.

Ich empfehle die Helix 3D Toolkit, wenn Sie irgendwelche WPF 3D arbeiten.

0

Vielleicht kann dies helfen:

   <GeometryModel3D.Material> 
        <DiffuseMaterial x:Name="matDiffuseMain"> 
         <DiffuseMaterial.Brush> 
          <SolidColorBrush Color="Red" Opacity="0.5" /> 
         </DiffuseMaterial.Brush> 
        </DiffuseMaterial> 
       </GeometryModel3D.Material> 
       <GeometryModel3D.BackMaterial> 
        <DiffuseMaterial x:Name="matDiffuseMain2"> 
         <DiffuseMaterial.Brush> 
          <SolidColorBrush Color="Red" Opacity="0.5" /> 
         </DiffuseMaterial.Brush> 
        </DiffuseMaterial> 
       </GeometryModel3D.BackMaterial> 
+0

Danke, aber es ist nicht wirklich das, wonach ich suche. Gibt es eine Möglichkeit, den gleichen Effekt wie auf dem Bild zu erzielen? –

+0

Ich denke das nur, wenn man die Leitungen als verbundene enge Röhren oder Boxen baut. Sie müssen daran denken, dass in der 3d Welt eine 2d Linie kein Aussehen hat. es sei denn, es ist möglich, eine einfache Linie in 3dViewport zu zeichnen - ist das möglich? Überprüfen Sie diese auch: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b0c79d04-37af-489f-8601-ee9c76dd12cf/ –