三维可视化
文章平均质量分 51
osg vtk
土拨鼠不是老鼠
这个作者很懒,什么都没留下…
展开
-
利用FCL实现更加精准的碰撞检测
我们看如下这张图,碰撞的逻辑就是,在一个三维场景中,构造一个实体,比如下边的BoxA,然后在物理引擎比如bullet中,或者专用的碰撞检测库中也构造一个对应的实体,比如BoxB。之前用bullet做个尝试,基本的图形能满足需求,比如球,盒子,但是项目中涉及到点云的碰撞,而bullet中处理点云,没有找到好的处理方式。但是FCL可以将点云转变成fcl中对应的实体,因此最终选择了FCL进行碰撞检测,这里列出FCL中大概的步骤。因此我们在FCL中构造对应实体的时候,可以直接用三角面。1,FCL中构造实体。原创 2024-04-25 10:23:39 · 955 阅读 · 0 评论 -
C#通过Qt使用VTK
一个项目,界面是C# 开发的,但是业务上有三维可视化的需求,VTK基于C#的绑定版本需要收费,并且资料很少。因此将VTK嵌入到Qt里,并封装成一个dll,通过接口提供给C#访问。2,exe路径下 需要把自己的dll ,Qt的dll 以及VTK的dll 全部放进去。1,首先看pro文件,主要是dll编译配置,和第三方库引用及VTK的依赖库。3,Widget 写法,可以参考这篇文章(),它可以将Qt的窗口给C#使用。1,引用dll 并调用接口。这里用到了一第三方库()或者看仓库上的源码。原创 2024-04-24 07:02:49 · 557 阅读 · 0 评论 -
Qt 集成OSG
Qt 集成OSG原创 2024-04-22 14:58:56 · 676 阅读 · 0 评论 -
Qt 集成VTK
Qt的debug模式需要加载VTK的debug库,同样 release模式需要加载release库。不然会出现这个错误“QWidget: Must construct a QApplication before a QWidget”。4. 我们以显示一个stl文件为例。原创 2024-04-23 09:10:41 · 706 阅读 · 0 评论 -
实现VTK vtkAssembly单个部件的鼠标操作
实现VTK vtkAssembly单个部件的鼠标操作原创 2022-04-12 12:32:39 · 3092 阅读 · 0 评论 -
VTK可移动三维坐标轴 vtkMovableAxesWidget
一.需求实现一个可移动,可旋转的三位坐标轴。二,步骤1.继承 vtkAbstractWidget。将鼠标事件传递给vtkWidgetRepresentation。2.继承 vtkWidgetRepresentation 。实现控件长什么样子,三个轴,三个圈。怎么交互,操纵轴,操纵圈该怎么动。三,实现1,绘制轴和圈vtkMovableAxesRepresentation::vtkMovableAxesRepresentation(){ // The initial s.原创 2022-05-26 16:38:40 · 4386 阅读 · 9 评论 -
VTK 碰撞检测
需求:机械手运动仿真,实时检测是否与周边物体发生碰撞实现:1,VTK的碰撞检测原理就是 求物体的包围盒,然后检测包围盒与线、面、或者另一个包围盒是否相交。包围盒主要包括球体、轴对齐包围盒(AABB)、有向包围盒(OBB)和凸包(Convex Hull),参考(VTK笔记——轴对齐包围盒(AABB) - 灰信网(软件开发博客聚合))2,VTK自带了一个vtkCollisionDetectionFilter过滤器,来计算碰撞检测,此过滤器利用的就是OBB包围盒,使用简单,只需提供两个物体的数据集和矩阵即可。3,原创 2022-07-06 15:24:40 · 2012 阅读 · 16 评论 -
OSG 碰撞检测 五个面的盒子
机器人整体与盒子的五个面求交集,盒子以一个Group 存在与场景中,这样便于移动。碰撞检测时,先获取盒子的包围盒,然后将包围盒裁剪成五个小包围盒 分别于机器人进行检测。机器人仿真运动时,将物体放到盒子里,需要对盒子的面 进行检测。...原创 2022-09-01 16:36:56 · 856 阅读 · 3 评论 -
osg bullet
osg路径,osgworks 路径,bullet路径。2,cmake 配置。2,cmake 配置。2,cmake 配置。原创 2022-09-09 18:31:13 · 311 阅读 · 1 评论 -
OSG 绘制贝塞尔曲线
在某网友的版本上增加了颜色。原创 2022-10-10 17:15:00 · 614 阅读 · 4 评论 -
利用osg 实现机械手运动阴影效果
osg 机械臂 运动阴影效果原创 2022-10-25 09:56:57 · 407 阅读 · 0 评论 -
使用VTK 对stl模型进行分割
VTK 分割原创 2023-05-22 09:27:41 · 615 阅读 · 0 评论 -
VTK 判断一个坐标点是否在一个stl内
利用 vtkCellLocator FindClosestPoint 找到模型上距离给定点最近的一点,计算两点的距离 ,小于某一阈值 则认为此点在模型上。需求:给定一个点(x,y,z),判断是否在stl模型内。原创 2023-05-22 09:42:28 · 200 阅读 · 0 评论 -
VTK stl模型上绘制点
1,因为VTK中的点 在场景中是一个正方形,无法特和到模型表面,所以不能直接使用vtkPoint绘制,这里采用vtkRegularPolygonSource 这个类,并将点的法向量设置给他,这样就是一个比较贴合的点了。3,因为 向量 可能不在一个方向因此绘制出来的点 可能看不见,因此需要 使用vtkLinearExtrusionFilter 进行两次计算。需求:导入多个stl模型 ,并提供已知点,将点会知道模型上的对应位置。100个点 大概1.48s。原创 2023-05-23 10:34:20 · 238 阅读 · 0 评论 -
处理VTK9.2 vtkSTLReader 读取中文文件失败
vs中使用 vtkSTLReader 读取文件,若文件名为中文则需要进行转码,将GBK转为utf-8。原创 2023-06-15 18:17:38 · 344 阅读 · 0 评论 -
VTK 悬浮显示 actor详细
1,利用vtkInteractorStyleTrackballCamera 的OnMouseMove 事件 判断是否处于悬浮状态。2,判断悬浮后,首先将世界坐标转为屏幕坐标,然后分别绘制文字和背景,当不处于悬浮时,移除文字和背景。需求:场景中一个actor,鼠标悬浮时 显示此actor的信息。原创 2023-06-27 18:13:21 · 398 阅读 · 0 评论