之前使用一篇博文记录了如何利用vtk的轮廓提取技术生成一个函数模型,里面提到使用vtk生成的模型数据,需要转换为OCC数据类型用于CAD建模使用。 查询了许多资料,IVTK是可以做到将OCC的数据直接转换为VTK的数据,但是似乎没有反向转换的途径,最后只能自己动手,丰衣足食。 整个数据转换流程大概是这样。 vtkDataSet 提供了GetPoint()和GetCell()两个函数获取点与单元,只要传入单元的ID即可。 这里需要用到BRep_Builder,这个类用于构建一些OCC的拓扑数据结构。 void Mak…

2022年3月22日 0条评论 1692点热度 1人点赞 大脸猫 阅读全文

FreeCAD文件框架有两个程序入口,一个是通过命令行的方式打开时使用,一个在程序正常运行时使用。 这个流程图列举了三种以命令参数的形式打开文档的方式: 以控制台模式启动 这个模式直接调用App::Application::runApplication(),在这个函数中获取命令行中的参数,通过参数提供的路径打开文档。 以GUI方式启动,单实例模式 这个模式会调用Gui::Application::runApplication(),在这个函数中判断是否是单实例模式。在这个模式里如果程序已经被启动了一次,那么会通过lo…

2022年3月16日 0条评论 1737点热度 2人点赞 大脸猫 阅读全文

这篇博文记录一个解决函数体建模的初步思路。 项目开发需要使用函数描述一个三维模型,然后显示出模型的样子,大概原理是: 现有函数 F(x,y,z)= C  ,然后给函数参数限定限定一个范围 如 { |x| < 2,|y| < 2 ,|z| < 2},对函数F求解,C < 0 的区域构成模型。 目前有两种显示方案,一种是本文记录的方案,继承vtkImplicitFuction 实现一个隐函数类,然后求得该隐函数在函数区域内,C=0的等值面。这样相当于获取了模型的表面,然后使用OCC的面缝补算法,…

2022年3月8日 0条评论 1459点热度 1人点赞 大脸猫 阅读全文

在工程中设置加入  H5_BUILT_AS_DYNAMIC_LIB 宏

2022年3月4日 0条评论 1162点热度 0人点赞 大脸猫 阅读全文

Unity 2D碰撞检测 前言 游戏的制作过程中常常需要检测两个物体是否接触,unity为了方便开发者实现这样的功能提供了collider 和 rigbody 这两个组件。 collider它会为Game Obejct提供一个碰撞包围盒,然后每间隔0.02秒会计算一次包围盒是否和其他的包围盒重合,由此来检测物体的碰撞。 rigibody也称之为刚体,它会为Game Object 提供一系列的物理效果,如重力、摩擦力、弹力、受力反馈等,这里不多叙述unity物理引擎的使用,只记录rigibody在碰撞检测中发挥的作用…

2022年3月4日 0条评论 5943点热度 13人点赞 大脸猫 阅读全文

Unity制作的游戏由场景组成,场景中所有的物体都被成为Game Object,而精灵(Sprite)也是其中的一种。它在场景中有着十分广泛的用途,常常被用于实现游戏中控制的主角、ncp、怪物等。这里用于记录如何创建一个精灵并简单的使用它。 在创建一个精灵之前得先拥有一个Unity 2D的工程。 创建一个精灵最简单的方式就是在工程页面,右键工程名->GameObject->2D Object->Sprites->Square 依次选择,然后在给它取一个心爱的名称,这就是创建一个精灵的完整过程…

2022年3月4日 0条评论 4832点热度 3人点赞 大脸猫 阅读全文

C++类命名空间语法: <namespace>::<className> 但是在qss中,::符号已经被小部件语法使用,所以正确的语法是使用--表示命名空间,即 <namespace>--<className> namespace T{ class Widget{ ...... } } app.setStyleSleet("T--Widget{....}");

2022年2月28日 0条评论 1123点热度 0人点赞 大脸猫 阅读全文

如果遇到这样的问题,并且控件继承与QWidget,那么这个方案也许能解决问题。 void SubWidget::paintEvent(QPaintEvent* event) { QStyleOption opt; opt.init(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); } 只需要重写控件的paintEvent()函数即可。 参照QtHelp :https://doc…

2022年2月28日 0条评论 1390点热度 0人点赞 大脸猫 阅读全文

符号化是使用符号表示数据的一种可视化技术,符号可以简单也可以非常复杂, 在 VTK中 vtkGlyph3D 类可以创建一个具有大小、方向和用颜色表示的符号,输入数据对象中的每一个点都可以用符号来可视化。 vtkGlyph3D是一个过滤器,他会将固定的几何数据(符号数据)复制到输入的数据集的每一个点上,符号是通过void SetSourceData (vtkPolyData *pd)函数设置的,vectorMod和scalarMod会决定符号的方向和缩放比例。甚至还可以定义一个符号表,使用scalar的幅度对应每一个…

2022年2月26日 0条评论 1497点热度 2人点赞 大脸猫 阅读全文

QPropertyAnimaiton依托与QT的Property系统,使用时只需要提供一个QWidget对象,然后设置好控制动画的Property名称,再为这个属性设置好变化范围,最后调整动画的播放时间,调用start()函数就可以实现动画。 void setPropertyName(const QByteArray &propertyName) 这个函数的功能是为动画设置一个property参数,这个property需要执行表演的Widget对象包含,这里只需要传入property的名称即可。 这里是原生…

2022年2月25日 0条评论 2307点热度 3人点赞 大脸猫 阅读全文
123456