自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

积累点滴,保持自我

遇见问题,解决问题

  • 博客(846)
  • 资源 (16)
  • 收藏
  • 关注

转载 OCC -C++ 应用程序性能优化

系统在接收到一定大小内存请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块等)找到合适大小的内存块。对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方程,以及非线性优化的一些算法,如BFGS,FRPR,PSO等等用于多元函数的极值求解,所以这些数值算法的性能直接影响系统的性能。与没有使用内存优化的时候0.1相比,使用了内存优化处理的要快40%左右。

2024-04-11 17:27:56 20

转载 OpenCASCADE Connect Edges to Wires

不规则的任意形状的曲面片,只能通过WIRE来限定。两种方式的处理逻辑是不同的,对于第一种依次添加EDGE的方式,则要求添加的EDGE是相连的。功能与ShapeAnalysis_FreeBounds中的ConnectEdgesToWires类似,但多个要求,这些EDGE都是一个FACE上的EDGE,而且对这些EDGE的Orientation也有要求。有时在构造WIRE的时候,拿到的是一些无序的EDGE,如何将无序的EDGE生成WIRE,OpenCASCADE中提供了多种方法,下面分别来对这些方法进行介绍。

2024-04-11 17:00:55 18

转载 OpenCASCADE STEP Color

Abstract. STEP AP214的STEP中是带有颜色信息的,OCCT可以读取其中的颜色信息。本文介绍一种比官方XCAFDoc_ColorTool更方便的获取方法。

2024-04-11 16:30:04 17

转载 opencascade常用资料整合

KGV大佬将occt draw工具移植到了web端,测试occt编译为webassembly的能力和性能,大佬博客有几篇文章进行了详细解读,我已经翻译并且发布在本人知乎上了。根据作者说是用的.net后端运行的occt,前端用three.js显示的。一个开源CAD技术博客,有很多关于occt的内容,还有其他开源CAD方案的讨论,作者还开发了一个在线CAD工具,不过是用openscad做的。OCCT 12年资深工程师做的教程,是个俄罗斯大佬,一步一步用例子教学,弥补了官方文档案例太少,基本抓瞎的问题。

2024-04-11 14:57:08 14

转载 通过网页调用本地的exe程序

创建一个自定义链接协议,实际上在浏览器中定义了一个新的 URL 方案,能够通过点击链接来触发自定义操作。如果您的 EXE 文件不需要参数,那么您可以简化注册表项中的命令设置。这种方法的原理是相同的,只是命令设置中省略了参数部分。如果您的 EXE 文件不需要接收参数,您可以直接指定 EXE 文件的路径。链接时,操作系统会调用相应的命令,从而启动本地程序。请注意,这个示例中的路径需要根据您的实际情况进行调整。在这个示例中,链接的 URL 是。在上面的示例中,将您的协议名称(在上面的示例中,将您的协议名称(

2024-04-11 10:08:43 21

转载 Unicode(UTF-8,UTF-16,UTF-32)解析规则

Unicode只是一个符号集,它只规定了符号的二进制代码,并没有规定这个二进制代码应该如何进行存储,简单的讲就是,Unicode为所有字符提供一个唯一的编号,然后UTF-8、UTF-16等只是将字符的Unicode编号编码成相应的二进制代码进行存储或运算,所以相同Unicode编号若用不同的编码方式进行编码,最后会产生不同的二进制代码,这就是有时候文件造成乱码的原因。Unicode与JavaScript详解(阮一峰)字符编码笔记:ASCII,Unicode 和 UTF-8(阮一峰)

2024-04-10 11:03:58 15

转载 OpenGL用Polygon Offset解决z-fighting和stitching

在OpenGL中,如果想绘制一个多边形同时绘制其边界,可是先使用多边形模式GL_FILL绘制物体,然后使用多边形模式GL_LINE和不同的颜色再次绘制这个多边形。但是由于直线和多边形的光栅化方式不同,导致位于同一位置的多边形和直线的深度值并不相同,进而导致直线有时在多边形的里面,有时在多边形的外面,这种现象就是"Stiching"。

2024-03-29 15:48:37 26

转载 OpenCasCade 中 TCollection_HExtendedString、TCollection_ExtendedString与QString的相互转换

在进行Opencascad+QT开发时,会遇到字符串之间的转换,因为Opencascad中有的字符串类型为TCollection_HExtendedString、TCollection_ExtendedString,比如设置名称,而QT用的字符串类型为QString,这就需要转换。为了自己方便查找,所以将这两者的转换写到这里。

2024-02-29 10:45:33 56

转载 Open Cascade 获取面的内外环线

在特定应用场景下,需要对于一个拓扑面(TopoDS_Face)其进行补洞或打洞操作,如下图所示。补洞或打洞过程中需要获取面的环线(TopoDS_Wire),本文即介绍如何获取拓扑面的环线及其基本原理。面补洞、打洞示意图。

2024-02-23 11:12:52 110

转载 Opencascade 开发中V3d_View的常用方法和代码总结

原文链接:https://blog.csdn.net/m0_52660853/article/details/130999774。

2024-02-23 10:56:19 105

转载 C++ #if defined (WIN32)和#ifdef(WIN32)

其中,不同系统下编译器定义的宏如下表,在该系统上大多数编译器均支持此宏。#if defined计算表达式并检查真值,可以执行复合条件。#ifdef检查是否已定义该名称的宏,只能使用一个条件。

2024-02-19 14:20:04 248

转载 OCC三维几何对象工具包TKG3d

Geom_Axis1Placement:定义3D空间的轴;Geom_Axis2Placement:定义一个右手坐标轴;Geom_AxisPlacement:抽象基类,用于定义轴或坐标系;Geom_Direction:定义三维矢量;Geom_Plane:定义三维平面;Geom_Point:点的抽象基类;Geom_CartesianPoint:定义笛卡尔坐标下三维点;Geom_Vector:Geom_Direction的抽象基类;

2024-02-18 14:20:44 98

转载 glPushMatrix/glPopMatrix简介及示例(在不同位置绘制图形)

例如,在调用 glTranslatef(1.0, 0.0, 0.0) 之后,当前矩阵会被更新成平移矩阵,在调用glRotatef(30, 0.0, 1.0, 0.0)之后,当前矩阵会被更新成旋转矩阵。在绘制圆柱体时,需要对每个圆柱体进行不同的平移和旋转变换,所以需要使用glPushMatrix()函数将当前矩阵压入栈中,这样可以保证每个圆柱体之间互不影响。glPushMatrix() 函数将当前矩阵复制一份并压入栈中,这样就可以在之后的操作中使用栈顶的矩阵进行变换而不会影响之前的变换。

2024-02-01 14:23:12 148

转载 投影矩阵和视口变换矩阵(math-projection and viewport matrix)

写在前面前面几节分别介绍了,本节继续学习坐标变换过程中的投影变换。这里主要是从数学角度推导投影矩阵。,这里对他的推导思路稍微进行了整理。通过本节可以了解到。

2024-01-30 17:08:08 123

转载 OpenCascade拓扑对象之:裁剪环的理解

对一些类型的曲面,例如:平面、圆柱面,可能在一个或两个方向上是无限大的,例如:对平面来说,通常是无限大的面,u、v参数的范围是无限大的;每个TopoDS_Face记录一系列的TopoDS_Wire对象,但这些Wire对象没有明确的区分外环和内环,因为TopoDS_Wire也可能是一个共享对象,可能对一个Face来说是外环,对另一个Face来说是内环(考虑:立方体上的一个孔的和上平面相交的Wire)。其中,通常有一个外环,是区域最外边的轮廓,还有一个或多个内环,表明的是该区域内部的各个孔。

2024-01-26 14:54:37 108

转载 OpenCascade拓扑对象之:基于TopoDS_Shape的Map的理解

这里,定义了一个hash表,键值为TopoDS_Shape对象,在该定义中,使用了TopTools_ShapeMapHasher类来作为hash表中的对比类。当对边进行打断时,直接打断共边,生成两个新的TopoDS_TEdge对象,比对有向边进行处理更简洁和合理。因此,在OpenCascade中,会频繁通过建表,获取共享对象,基于共享对象进行处理。因为对共享对象,例如:两个有向边共享一个共边的情况,两个有向边都使用一个TopoDS_TEdge对象,但方向通常是一正一反。

2024-01-26 14:45:41 93

转载 OpenCascade拓扑对象之:有向边和共边

在BRep_TEdge类中,不仅记录了通常共边的信息,还记录了邻接信息、参数曲线信息、边的连续性信息等多种信息。对manifold情形,通常两个有向边共用一个共边,两个有向边的方向通常是一正一反(一个有向边和共边同向,一个有向边和共边反向)。有向边和共边的邻接关系,是拓扑结构中一个重要的关系,借助该关系,可以实现例如:遍历共边所邻接的所有Face这样的操作。一个参数范围,是3D曲线上的参数范围,通常Edge是曲线上的一段,特别对无限长的曲线(例如:直线),必须有一个参数域范围。端点对应的Vertex对象。

2024-01-26 14:33:39 92

转载 OpenCascade拓扑对象之:拓扑对象方向继承关系

例如:如果一个Face反向了,通常裁剪环Wire也需要反向,Wire中的Edge也需要反向,这样才能保证拓扑结构的正确性。在TopExp_Explorer类的实现总,创建TopExp_Iterator类对象时,传递的cumOri值为默认值,即为true,因此默认是考虑上了父对象的方向的,也因此组合了父对象的方向。例如:Face中当要基于surface进行参数域或裁剪环操作时,通常不考虑Face的方向,基于surface来进行裁剪环的处理,可以省去很多的麻烦。子对象的方向将根据父对象的方向属性而进行调整。

2024-01-26 14:32:14 64

转载 OpenCascade拓扑对象之:TopoDS_Shape对象及其子对象

如此一来,要获取子对象所在的父对象,通常需要建表机制,通过遍历父对象的子对象,建立子对象和父对象对应关系的表,例如:遍历Face的Edge,建立Edge和face间的表,从而获得Edge邻接的Face对象列表。例如:Face记录了Edge的共享对象,而Edge又反向记录了Face对象,则会形成循环依赖,当对象自动释放时,可能两者都释放不了,这个是引用计数计数的一个问题。B)出于共享的考虑。首先,该列表放在BopoDS_TShape中,即放在共享对象中,是因为对一些共享对象的子对象,通常也是需要被共享的。

2024-01-26 14:19:03 135

转载 OpenCascade 句柄机制

即使不考虑其他拓扑对象的共享,有向边共享共边对象这一事实(Parasolid:Fin和Edge,ACIS:CoEdge和Edge),就导致必须有相应的共享对象管理机制。实体拓扑对象处理中的一个难点,是共享对象的管理,这一点非常重要,对3D几何造型引擎非常关键。如果处理不好,轻则内存泄漏,重则系统不稳定,会因为共享对象产生的内存错误,可能导致莫名的死机问题。这一点,会很影响算法的实现效率。因此,OCCT的拓扑结构实现,采用了单向包含关系,即每个拓扑对象只记录自己的子对象,而子对象不记录对父对象的引用。

2024-01-26 14:15:11 82

转载 OpenCascade拓扑对象TopoDS_Shape的三要素

例如:这个可能是一个BRep_TEdge对象,记录了一条共边的数据,包括:一条3D曲线、曲线的参数范围等等数据,或者可能是BRep_TFace对象,记录了一个曲面对象及其相关数据。基于共享的考虑,那么会生成10个TopoDS_Shape对象,每个对象记录相同的BRep_TFace对象,方向可能相同,可能相反,而myLocation记录了如何从原始Face对象经过变换变换到最终对象。对一个TopoDS_Shape对象,通过在定时器中不断改变位置信息,可以实现简单的动画效果,当然,这个的效率是不高的。

2024-01-26 13:58:07 76

转载 CAD中“非流形体”几何简介

结构中不同单元连接,接触,复合材料,散热,CFD多流场,EDA,TCAD,在这些分析中,最大的特点是不同属性(不同的材料,几何层,业务属性等)的几何要在一起分析,而且不同属性的几何之间相互接触!传统意义上的几何表达无法处理非流形体,所以在仿真处理中,一般是不同的几何分别生成网格,然后对网格进行合并。Cell结构的特点是,在进行布尔并运算之后,原有的几何都保留,属性也保留,以刚才的两个立方体为例,进行布尔运算之后,公共面会被保留,而且只会保留一个面,两个实体的信息分别存储在各自的Cell信息中。

2024-01-26 13:46:25 137

转载 OpenCasCade 包围盒

包围盒是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包围体类型包括球体、轴对齐包围盒(AABB)、有向包围盒(OBB)、8-DOP以及凸壳。包围盒广泛地应用于碰撞检测,比如射击、点击、相撞等,每一个物体都有自己的包围盒。因为包围盒一般为规则物体,因此用它来代替物体本身进行计算,会比直接用物体本身更加高效和简单。

2024-01-26 11:55:56 162

转载 法线贴图基本介绍及工具推荐

法线贴图(Normal Map)是一种用于在游戏和计算机图形中模拟凹凸表面的技术。它使用 RGB 颜色来表示法线向量的方向,从而创建出伪造的高度细节,使表面看起来更加逼真。

2023-12-19 14:15:14 203

原创 UI界面程序鼠标右键弹出菜单的一些事

在做客户端UI程序时,鼠标右键弹出菜单这种操作非常常见,一般在鼠标右键按下或者鼠标右键抬起事件中响应操作,显示菜单即可,但是有时涉及到鼠标的移动,就是鼠标按下右键且移动时,则不需要弹出菜单,其它时候正常弹出。这种情况有很多种实现方式,但是操作体验上,差别较大,下面记录一种实现方案。

2023-12-05 17:44:37 1184

转载 二维几何点集处理

按角度排序,先计算多边形的中点,即所有顶点的平均,以该点做向量起始点,各个点为向量终止点,计算该向量与x轴或y轴所成角度,根据角度排序。叉乘排序,针对凸多边形完成逆时针排序,两个向量叉乘得垂直于这两个向量所在平面的法向量,带有正负,根据正负可以判断两点的顺逆问题。

2023-11-23 15:57:20 266

转载 dxflib实现dxf文件的读写

dxflib是开源的读写dxf文件的库,在QCAD上可以直接下载(QCAD - Downloads)。dxf作为一种通用的绘图文件格式,包含的信息量非常大,要去理解文件的内容也比较受苦,详细的解释在论坛里可以找到(dxf 格式详解_dxf是什么文件格式_runing9的博客-CSDN博客)。使用dxflib库的优势在于它很好地简化了各部分的读写,代码可读性很强,同时配库只需要将压缩包下的src文件包含在目录中即可。

2023-11-20 10:54:17 274

原创 VSCode配置MingW编译调试环境

即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。

2023-11-15 15:35:29 644

原创 VSCode配置msvc编译调试环境

VS Code 使用 Electron 框架构建用户界面,该框架使用 Chromium 和 Node.js 构建桌面应用程序。这使得 VS Code 能够在 Windows、Linux 和 macOS 上运行,并且可以使用 Web 技术 (HTML、CSS 和 JavaScript) 构建用户界面。VS Code 使用 Monaco 引擎来提供文本编辑功能。

2023-11-15 11:59:23 2130

原创 C++ 类 根据成员变量的指针获取类对象的指针

实现方式有多种,原理是相同的利用c++类的内存分布,初始化的类的成员变量在内存中的储存地址是基于类对象的地址的偏移值确定的,已知成员变量的内存地址,再减去类结构的各个成员变量基于类基址的偏移值,就可以计算出类对象的内存地址,不同的类结构,内存结构也不同,详情参考文末参考文章,讲解的比较详细。

2023-11-03 10:23:37 364

转载 C++中 {}的功能

在一个代码块中,可以定义局部变量,控制变量的作用范围,以及变量的生命周期。原文链接:https://blog.csdn.net/weixin_63414068/article/details/132421692。版权声明:本文为CSDN博主「宋雷720」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。花括号可用于初始化各种类型的数据结构,例如数组、结构体、容器等。对于没有默认构造函数的类,花括号可以用于默认初始化。在类的构造函数中,花括号可以用于成员初始化列表。

2023-11-01 10:47:49 328

转载 认识PCI-e插槽

PCl-e的全称为PCI总线(PCI Express),是计算机的一种高速总线,而总线就相当于计算机里的一条路,提供给不同的设备和硬件进行数据交互的道路。PCI-e是2001年由Intel提出的,用于替代PCI、PCI-X和AGP等老式总线。示意图为CVN Z790 GAMING FROZEN V20主板PCl-e是高速穿行点对点双通道高宽带传输,简单点说就是能为连接的设备分配独立通道,以此提高带宽速度以及数据传输的速率,并且支持主动电源管理、错误报告、热插拔等功能。

2023-10-30 11:36:53 137

原创 c++代码区域折叠

在c#语言中有这样的关键字,可以实现将制定区域内的代码折叠,在VS中方便查看。

2023-10-26 18:09:41 164

原创 常用正则收集

【代码】常用正则收集。

2023-10-25 16:01:33 141

转载 C#中字符串与字节数组的转换方式

本文介绍了C#中字符串与字节数组的转换方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。

2023-10-12 09:31:34 1376

转载 Windows图标是空白该如何解决

既然找到了原因,解决办法也很简单,我们只需要将有问题的图标缓存文件删除掉,让系统重新建立图标缓存即可。,首先了解图标空白的原因:第一次对图标进行显示时,系统会对文件或系统会对文件或程序的图标进行缓存。在打开的目录下找到 Iconcache.db文件,将其删除。任意打开一个文件夹,选择查看,勾选“查看隐藏的项目”打开任务管理器,找到Windows资源管理器并重启。完成以上四步,图标就可以重新显示了。重启Windows资源管理器。

2023-10-09 15:22:32 377 2

原创 VS中cmake多配置构建设置

是一种跨平台开源工具,用于定义在多个平台上运行的生成过程。Visual Studio C 和 C++ 开发不再仅适用于 Windows。本教程介绍如何在 Windows 和 Linux 上使用 Visual Studio C++ 进行跨平台开发。由于它基于 CMake,无需创建或生成 Visual Studio 项目。打开包含 CMakeLists.txt 文件的文件夹时,Visual Studio 会自动配置 IntelliSense 并生成设置。

2023-09-21 17:23:34 1679

转载 CMake:自定义配置

以上就是所有 CMake 环境配置相关的知识了。我们首先学习了如何使用-G开关指定生成器,并使用和--config在单配置和多配置构建器下进行构建。然后我们学习了 CMake 的三种变量类型,并了解了如何将变量缓存到 CMake Cache 中以便下次使用。

2023-09-21 14:59:15 248

转载 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口信息

剩下的我们需要其他各种方法用于获取窗口的其他属性。枚举所有窗口仅需要使用到。,其中需要定义一个委托。作为传入参数的类型。

2023-09-20 14:04:28 1293

转载 vs安装番茄助手没有任务栏

C:\Users\用户名\AppData\Local\Microsoft\VisualStudio\16.0_36832cb3\Extensions\opqkp1jn.muf。双击安装显示失败,打开vs扩展-管理扩展里有番茄,但工具栏没有。双击番茄安装包没反应,先右击属性勾选兼容性。后crack文件夹中的VA_X.dll替换。再重新打开vs(没啥变化)中的VA_X.dll。

2023-09-06 16:54:04 377

GDIGDI+.rar

MFC中使用GDI与GDI+

2021-05-13

FxRamnit.rar

本机遇到 执行exe文件 会生成xxsrv.exe文件 ,使用此工具全盘扫描修复即可

2021-05-11

Project1.rar

资源中包含USB通讯类,Win32测试程序,以及MFC界面测试程序,使用简单,vs2015开发

2020-08-21

CommUSB.rar

windows下USB通讯程序,使用hid.lib等windows库,附件包含usb基本通信类,依靠输入VID与PID来打开USB,有完整测试程序,VS2015开发

2020-08-19

RadASM.v2.21.8f

汇编开发集成工具RadASM,自己常用的汇编开发集成工具

2018-07-18

c++人脸相似度检测MFC源码

c++利用opencv实现两张人脸图片的相似度检测,完整程序源码

2018-07-18

遍历匹配串口

c#遍历匹配串口(向每个串口发数据,根据返回数据确定是否为所需串口)

2018-07-18

送给破解新手的160个小程序

适合破解新手的160个crackme练手

2015-12-02

各种学习破解的基本工具

各种破解所需的工具整理打包,不用再去乱找了

2015-12-01

缓冲区溢出实验

1、利用RPC漏洞建立超级用户 利用工具scanms.exe文件检测RPC漏洞,利用工具软件attack.exe对172.18.25.109进行攻击。攻击的结果将在对方计算机上建立一个具有管理员权限的用户,并终止了对方的RPC服务。 2、利用IIS溢出进行攻击 利用软件Snake IIS溢出工具可以让对方的IIS溢出,还可以捆绑执行的命令和在对方计算机上开辟端口。 3、利用WebDav远程溢出使用工具软件nc.exe和webdavx3.exe远程溢出。

2015-12-01

dos命令大全

掌握DOS命令你就算是黑客入门了,熟悉这些是每个网络安全人员必备的

2015-08-17

IECookiesView_1.77

可以查看cookies信息 可以修改cookies信息,绿色汉化,个别杀软误报你懂得

2015-07-24

代理猎手工具

查找代理服务器,验证代理服务器,,,等等

2015-07-07

Lansee1.72

一款非常给力的局域网查看工具 具有网络数据抓包 共享 操作等功能

2015-07-07

流光扫描工具

流光5.0汉化版扫描工具, 简单易操作,功能强大,慎用

2015-07-07

Cisco Packet Tracer5.0 汉化包

可以将英语版的工具汉化,使人们 更容易理解和运用

2015-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除