翼度科技»论坛 编程开发 .net 查看内容

WPF3D关于HelixToolkit-3D呈现的交互处理

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
关于HelixToolkit-这个3D呈现的交互处理推荐使用,因为功能比较强大一个开源3D库,根据MIT许可证获得许可。MIT许可证非常宽松,允许在专有软件中使用。该库基于 .NET,目前专注于 WPF 平台。HelixToolkit是.NET Framework的一个开源3D图形库,它主要用于创建和操作3D图形1。HelixToolkit包含许多实用的3D图形工具,例如3D视图、3D模型、3D场景、3D渲染、3D动画等,它们可以帮助开发者快速创建出高质量的3D图形应用程序1。HelixToolkit的文档和教程可以在官方网站上找到,开发者可以根据需要查看和使用地址:https://github.com/helix-toolkit   Nuget安装
  1. <Grid>
  2.    
  3.    
  4.    
  5.    
  6.    
  7.    
  8.    
  9.    
  10.    
  11.    
  12.    
  13.     <h:HelixViewport3D ShowViewCube="True"
  14.                ViewCubeWidth="100"
  15.                ViewCubeHeight="100"
  16.                ViewCubeHorizontalPosition="Right"
  17.                ViewCubeVerticalPosition="Bottom"
  18.                ViewCubeFrontText="前"
  19.                ViewCubeTopText="上"
  20.                ViewCubeBackText="后"
  21.                ViewCubeLeftText="左"
  22.                ViewCubeRightText="右"
  23.                ViewCubeBottomText="下"
  24.                
  25.                ShowCoordinateSystem="True"
  26.                CoordinateSystemLabelForeground="#5000"
  27.                CoordinateSystemHorizontalPosition="Left"
  28.                CoordinateSystemVerticalPosition="Bottom" Margin="-10,0,10,0"
  29.                >
  30.         
  31.         <h:HelixViewport3D.Camera>
  32.             
  33.             
  34.             
  35.             
  36.             
  37.             
  38.             
  39.             <PerspectiveCamera Position="10,10,10"
  40.     LookDirection="-2,-2,-2"
  41.     FieldOfView="50"
  42.     UpDirection="0,1,0"
  43.     FarPlaneDistance="1000"
  44.     NearPlaneDistance="1">
  45.                
  46.                 <PerspectiveCamera.Transform>
  47.                     
  48.                     <Transform3DGroup>
  49.                         
  50.                         <RotateTransform3D CenterX="3" CenterY="0" CenterZ="0">
  51.                            
  52.                             <RotateTransform3D.Rotation>
  53.                                 
  54.                                 
  55.                                 
  56.                                 <AxisAngleRotation3D Angle="0" Axis="0 1 0" x:Name="aar"/>
  57.                             </RotateTransform3D.Rotation>
  58.                         </RotateTransform3D>
  59.                         
  60.                         
  61.                         <TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0" x:Name="tt"/>
  62.                         
  63.                         
  64.                         
  65.                         <ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>
  66.                     </Transform3DGroup>
  67.                 </PerspectiveCamera.Transform>
  68.             </PerspectiveCamera>
  69.             
  70.             
  71.             
  72.         </h:HelixViewport3D.Camera>
  73.         
  74.         
  75.         <h:HelixViewport3D.RotateGesture>
  76.             
  77.             
  78.             <MouseGesture MouseAction="LeftClick"/>
  79.         </h:HelixViewport3D.RotateGesture>
  80.         
  81.         <h:HelixViewport3D.PanGesture>
  82.             
  83.             <MouseGesture MouseAction="RightClick"/>
  84.         </h:HelixViewport3D.PanGesture>
  85.         
  86.         
  87.         
  88.         <ModelVisual3D>
  89.             
  90.             <ModelVisual3D.Content>
  91.                
  92.                 <Model3DGroup>
  93.                     
  94.                     
  95.                     <AmbientLight Color="White"/>
  96.                     
  97.                     
  98.                     
  99.                     
  100.                     
  101.                     
  102.                     
  103.                     
  104.                     
  105.                     
  106.                     
  107.                     
  108.                     
  109.                 </Model3DGroup>
  110.             </ModelVisual3D.Content>
  111.         </ModelVisual3D>
  112.         
  113.         
  114.         
  115.         
  116.         
  117.         <ModelUIElement3D  MouseLeftButtonDown="ModelUIElement3D_MouseLeftButtonDown">
  118.             <ModelUIElement3D.Model>
  119.                
  120.                 <GeometryModel3D>
  121.                     
  122.                     
  123.                     <GeometryModel3D.Material>
  124.                         <MaterialGroup>
  125.                            
  126.                            
  127.                            
  128.                            
  129.                            
  130.                             <DiffuseMaterial>
  131.                                 <DiffuseMaterial.Brush>
  132.                                     <ImageBrush ImageSource="Arrow.png"/>
  133.                                 </DiffuseMaterial.Brush>
  134.                             </DiffuseMaterial>
  135.                            
  136.                            
  137.                            
  138.                         </MaterialGroup>
  139.                     </GeometryModel3D.Material>
  140.                     
  141.                     <GeometryModel3D.BackMaterial>
  142.                         <DiffuseMaterial Brush="Green"/>
  143.                     </GeometryModel3D.BackMaterial>
  144.                     
  145.                     <GeometryModel3D.Geometry>
  146.                         
  147.                         
  148.                         
  149.                         
  150.                         <MeshGeometry3D Positions="0,0,0     3,0,0      3,2,0      0,2,0"
  151.                       TriangleIndices="0,2,3 0,1,2"
  152.                              TextureCoordinates="1,1 1,0 0,0 0,1"/>
  153.                         
  154.                         
  155.                         
  156.                         
  157.                         
  158.                     </GeometryModel3D.Geometry>
  159.                 </GeometryModel3D>
  160.             </ModelUIElement3D.Model>
  161.         </ModelUIElement3D>
  162.         
  163.         <Viewport2DVisual3D>
  164.             
  165.             <Viewport2DVisual3D.Geometry>
  166.                
  167.                
  168.                
  169.                
  170.                 <MeshGeometry3D Positions="0,0,1     3,0,1      3,2,1      0,2,1"
  171.                      TriangleIndices="0,2,3 0,1,2"
  172.                      TextureCoordinates="0,1 1,1 1,0 0,0"/>
  173.             </Viewport2DVisual3D.Geometry>
  174.             
  175.             <Viewport2DVisual3D.Material>
  176.                
  177.                 <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/>
  178.             </Viewport2DVisual3D.Material>
  179.             <Border>
  180.                 <Button Content="Hello" Click="Button_Click"/>
  181.             </Border>
  182.         </Viewport2DVisual3D>
  183.         
  184.         
  185.         <ModelUIElement3D>
  186.             <ModelUIElement3D.Model>
  187.                
  188.                 <GeometryModel3D>
  189.                     
  190.                     
  191.                     <GeometryModel3D.Material>
  192.                         <MaterialGroup>
  193.                            
  194.                            
  195.                            
  196.                             <DiffuseMaterial Brush="Red"/>
  197.                            
  198.                            
  199.                            
  200.                            
  201.                            
  202.                         </MaterialGroup>
  203.                     </GeometryModel3D.Material>
  204.                     
  205.                     <GeometryModel3D.BackMaterial>
  206.                         <DiffuseMaterial Brush="Blue"/>
  207.                     </GeometryModel3D.BackMaterial>
  208.                     
  209.                     <GeometryModel3D.Geometry>
  210.                         
  211.                         
  212.                         
  213.                         <MeshGeometry3D Positions="3,2,1     3,2,0      3,0,0      3,0,1"
  214.            TriangleIndices="0,3,1    1,3,2"/>
  215.                     </GeometryModel3D.Geometry>
  216.                 </GeometryModel3D>
  217.             </ModelUIElement3D.Model>
  218.         </ModelUIElement3D>
  219.     </h:HelixViewport3D>
  220. </Grid>
复制代码
  代码实例效果图:

代码实例:
来源:https://www.cnblogs.com/wjygxjz/archive/2023/10/16/17766612.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具