Προς το περιεχόμενο

3d object wpf platform (help)


Evgenios1

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σε ολους εχω κανει αυτο το προγραμμα (Σ:f8_003.zip), αυτο ειναι με 2d controls θελω να το κανω σε 3d control (δλδ αντι να τα προβαλω σε τετραγωνα, να τα προβαλω σε κυβακια).

Εχω καταφερει να φτιαξω (δυναμικο) 3d control (το οποιο μπορει να ενσοματοσει buttons img etc.) αλλα... ολο το control ειναι μαζι με τη Viewport3D :/ (Eδω με χαλασε)

 

Το προβλημα:

η class ContainerUIElement3D ειναι sealed :shock: και δε μπορω να κανω

>
//cube control 
public class cUser : ContainerUIElement3D
{
 ....
public cUser(SixControlStruct six, Point3D loc)
{
}
...
}

ετσι ωστε να τη καλω καπος ετσι

>
...
froeach(UserInfo  us in userinfos)
{
   viewport3d.Children.Add(new SixControlStruct(us),myrandom.Next());
} 

Μιπος υπαρχει κανας αλος τροπος με τον οποιο μπορω να φτιαξω ενα 3d object ως μια class (και να μπορει να δεχτει Visual2DViewport3d) η οποιο μπωρει να κοuμποσει σαν Visual (Viewport3D.Children) σε μια Viewport3D

 

(εψαξα στο κγουκγλ.κομ αλλα τιτποτα)

f8.003.zip

Δημοσ.

Δλδ να κανω τουτο εδω

 

 

><ContainerUIElement3D>
                   <ContainerUIElement3D.Transform>
                       <Transform3DGroup>
                       <RotateTransform3D>
                           <RotateTransform3D.Rotation>
                               <AxisAngleRotation3D x:Name="RotateX" Axis="1,0,0" Angle="0"/>
                               </RotateTransform3D.Rotation>
                       </RotateTransform3D>
                           <RotateTransform3D>
                               <RotateTransform3D.Rotation>
                                   <AxisAngleRotation3D x:Name="RotateY" Axis="0,1,0" Angle="0"/>
                               </RotateTransform3D.Rotation>
                           </RotateTransform3D>
                           <RotateTransform3D>
                               <RotateTransform3D.Rotation>
                                   <AxisAngleRotation3D x:Name="RotateZ" Axis="0,0,1" Angle="0"/>
                               </RotateTransform3D.Rotation>
                           </RotateTransform3D>
                       </Transform3DGroup>
                   </ContainerUIElement3D.Transform>
                   <Viewport2DVisual3D>
                       <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           -1,1,1 
                                           -1,-1,1 
                                           1,-1,1 
                                           1,1,1"
                           TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                   <Grid Width="900" Height="900" Background="Transparent"  >
                       <TextBlock Name="fLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="fright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="fup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="fdown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       <Grid Margin="50,40,50,40" x:Name="ControlFace"/>
                   </Grid>
               </Viewport2DVisual3D>
                   <Viewport2DVisual3D>
                      
                           <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           -1,1,-1 
                                           -1,1,1 
                                           1,1,1 
                                           1,1,-1"
                           TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                   <Grid  Width="900" Height="800" x:Name="ControlTop">
                       <TextBlock Name="tLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="tright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="tup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="tdown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       
                   </Grid>
               </Viewport2DVisual3D>
                   <Viewport2DVisual3D>
                       <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           -1,1,-1 
                                           -1,-1,-1 
                                           1,-1,-1 
                                           1,1,-1"
                           TextureCoordinates=" 0,1 0,0 1,0 1,1" TriangleIndices="3 2 0 2 1 0"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                       <Grid Width="900" Height="800" Background="Transparent" x:Name="ControlBack">
                       <TextBlock Name="bLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="bright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="bup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="bdown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       
                           </Grid>
                   </Viewport2DVisual3D>
                   <Viewport2DVisual3D>

                       <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           -1,-1,1 
                                           -1,-1,-1 
                                           1,-1,-1 
                                           1,-1,1"
                           TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 2 3 0 1 2"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                   <Grid Width="900" Height="800" x:Name="ControlBottom">
                       <TextBlock Name="bbLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="bbright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="bbup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="bbdown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       
                   </Grid>
               </Viewport2DVisual3D>
                   <Viewport2DVisual3D>
                       <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           -1,1,-1 
                                           -1,-1,-1 
                                           -1,-1,1 
                                           -1,1,1"
                           TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                   <Grid Width="900" Height="800"  x:Name="ControlLeft">
                       <TextBlock Name="lLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="lright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="lup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="ldown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       
                   </Grid>
               </Viewport2DVisual3D>
                   <Viewport2DVisual3D>
                       <Viewport2DVisual3D.Geometry>
                           <MeshGeometry3D Positions="
                                           1,1,-1 
                                           1,-1,-1 
                                           1,-1,1 
                                           1,1,1"
                           TextureCoordinates=" 1,0 1,1 0,1 0,0" TriangleIndices="3 2 0 2 1 0"/>
                       </Viewport2DVisual3D.Geometry>
                       <Viewport2DVisual3D.Material>
                           <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
                       </Viewport2DVisual3D.Material>
                   <Grid Width="900" Height="800"  x:Name="ControlRight">
                       <TextBlock Name="rLeft" Text="←" FontSize="36" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Center" />
                       <TextBlock Name="rright" Text="→" FontSize="36" Background="Transparent" HorizontalAlignment="Right" VerticalAlignment="Center" />
                       <TextBlock Name="rup" Text="↑" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Top" />
                       <TextBlock Name="rdown" Text="↓" FontSize="36" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Bottom" />
                       
                   </Grid>
               </Viewport2DVisual3D>
               </ContainerUIElement3D>

 

 

ως μια class

(Eαν γηνετε να κρατισω και το χaml θα'ναι καλυτερα)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...