首页 > 其他分享 >HelixToolkit使用教程

HelixToolkit使用教程

时间:2024-10-12 16:34:18浏览次数:7  
标签:GeometryModel3D 教程 model1 sp mesh HelixToolkit 使用 new materialGroup

HelixToolkit使用总结:

问题点:

        3d光源

        相机

        网格信息

1、配置HelixViewPort3d基本参数

2、配置相机参数和相机位置:HelixViewPort3D.DefaultCamera

        设置相机的放置方向和观看位置

  <hv:HelixViewport3D.DefaultCamera>
                <PerspectiveCamera LookDirection="-587.475,-330.619,-229.365" Position="587.475,330.619,256.278" UpDirection="-0.248,-0.139,0.959" FieldOfView="45" NearPlaneDistance="0.1"/>
            </hv:HelixViewport3D.DefaultCamera>

3、配置光线:hv:SunLight

4、配置坐标网格 hv:GridLinesVisual3D

<hv:GridLinesVisual3D Width="10000" Length="10000" MinorDistance="50" MajorDistance="50" Thickness="2" Fill="White"/>

5、配置模型的属性ModelVisual3D两个属性

1)、材质和外观

GeometryModel3D

1、Material

2、Geometry

 GeometryModel3D model1 = d.Children[i] as GeometryModel3D;
 var materialGroup = new MaterialGroup();
 DiffuseMaterial diffMat = new DiffuseMaterial(new SolidColorBrush(Colors.Gray));
 materialGroup.Children.Add(diffMat);
 model1.Material = materialGroup;
 model1.BackMaterial = materialGroup;

对模型位置修改:

        1)模型内位置的修改

对象的平移:

 GeometryModel3D model1 = d.Children[0] as GeometryModel3D;
                    MeshGeometry3D mesh = model1.Geometry as MeshGeometry3D;
                    var res = mesh.Positions;
                    for (int i = 0; i < res.Count; i++)
                    {
                        var sp = mesh.Positions[i];
                        mesh.Positions[i] = new Point3D() { X = sp.X, Y =sp.Y, Z =sp.Z+ 10 };
                    }
                   
                    model1.Geometry = mesh;

UI界面更新外观和位置:

<GeometryModel3D>
                                <GeometryModel3D.Material>
                                    <DiffuseMaterial Brush="Green"/>
                                </GeometryModel3D.Material>
                                <GeometryModel3D.Geometry>
                                    <MeshGeometry3D Positions="0,0,0 2,0,0 2,2,0 0,2,0"
TriangleIndices="0,1,2 0,2,3">
                                    </MeshGeometry3D>
                                </GeometryModel3D.Geometry>
                            </GeometryModel3D> 

2)整体模型位置的修改

        通过对前台代码的修改即可。或者是使用mvvm进行绑定修改

效果图如下:

 

 实现对模型的运动控制

标签:GeometryModel3D,教程,model1,sp,mesh,HelixToolkit,使用,new,materialGroup
From: https://www.cnblogs.com/aijiao/p/18460796

相关文章

  • 如何使用helixtoolkit对Mesh3D的每个点进行不同的着色?
    首先,HelixToolkit是一个开源的3D图形库,可以用于在WPF应用程序中创建交互式的3D视觉效果。而Mesh3D是HelixToolkit中用于呈现3D网格的类。要对Mesh3D的每个点进行不同的着色,可以通过以下步骤实现:创建一个用于呈现Mesh3D的场景。可以使用HelixViewport3D控件来承载3D场景。定义......
  • H7-TOOL的LUA小程序教程第14期:任意波形信号发生器,0-20mA输出和微型数控电源(2024-10-1
    LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需......
  • github action的使用
    近年来,我一直在使用jenkins来部署自己的项目,发现太耗内存了,因此将自动化部迁的操作改为使用githubaction。初始化action配置选择一个合适的action类型,比如webpack、gitPage、Nodejs等等。比如我这里选择了webpack,选择完成后可以看到在仓库里多了一个文件.github/workflo......
  • Express的使用笔记3 中间件
    日志中间件//挂载会每个接口都执行这段代码app.use((req,res,next)=>{console.log(req.method,req.url,Date.now())next()//下一个中间件})2.中间件的顺序很重要如果有一个普通接口写在上面代码之前,那么就不会进入上面的函数中但是如果在接口中第二个回调......
  • 使用Lua语言破解滑块验证码的完整流程解析
    本文将使用Lua语言来破解滑块验证码,带领大家一步步实现验证码破解,包括获取图片、计算滑块移动距离、生成滑动轨迹等。下载验证码图片首先,我们要获取滑块的前景图片和背景图片。使用Lua中的socket.http来进行HTTP请求并下载图片。lualocalhttp=require("socket.ht......
  • C# 使用反射机制适配多个不同供应商提供的可统一接口化的行为(方法)
    1、定义一个接口(IMedicareControlFee)定义行为;定义一个适配器(IMedicareControlFeeAdapter)可应对多厂商(多态);usingSystem;usingSystem.Diagnostics;usingSystem.IO;usingJetSun.Infrastructure;usingJetSun.Infrastructure.Services;usingMicrosoft.Practices.Unity;usi......
  • 基于FIFO使用UART实现FPGA板与PC通信
    基于FIFO使用UART实现FPGA板与PC通信1.UART简介UART(通用异步收发传输器)是一种常用的串行通信协议,广泛用于FPGA与外部设备(如PC、传感器等)之间的通信。UART通信的核心是将并行数据转换为串行数据传输,然后在接收端再将串行数据恢复为并行数据。UART协议特点:异步通信:无需时钟......
  • python redis使用教程
    文章目录安装Redispython安装redis库使用Python连接Redis使用Redis实现缓存Redis中的常用缓存操作Redis缓存策略发布与订阅事务安装RedisRedisWindows最新安装教程(2024.10.10)python安装redis库pipinstallredisE:\Redis-x64-3.2.......
  • Doris FE内存占用持续上升直至无法使用
    环境操作系统:CentOSLinuxrelease7.6.1810(Core)Doris版本:doris-2.1.5-bin-x64Java版本:jdk1.8.0_1813台机器组成的集群所在场景做大数据项目时使用Doris的catalog将来自不同主机的多个MySQL库相同的表数据汇总到另一个主机的MySQL库,就注册了多个catalog用于连接不同的......
  • 【大模型开源教程】上海交通大学动手学大模型+威斯康辛大学从零构建大模型!(附PDF)
    上海交通大学的大模型超超超级牛掰的大模型编程实战课公开了,课件+教程,本套实战教程旨在提供大模型相关的入门编程参考。通过简单实践,帮助同学快速入门大模型,更好地开展课程设计或学术研究。另外非常感谢以下老师和同学对本项目的支持与贡献:上海交通大学袁童鑫上海交通......