自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1654)
  • 问答 (1)
  • 收藏
  • 关注

原创 挑战数学文明的基石:进位才是压制人类发展的“二象金箔”

但我们是否想过,每一次“进位”,在看似拓展了数字表示范围的同时,也带来了一次认知上的复杂化和维度的损失?下一次,当你看到计算机屏幕上的代码,或是演算纸上的一串数字时,不妨这样思考:我们所运用的,究竟是宇宙的终极真理,还是仅仅是“进位文明”这个伟大囚笼中,一套自洽而完美的生存法则?“进位”这张“二象金箔”,在赋予我们强大计算能力的同时,也可能将我们的思维模式固化在了“层级”和“序列”的维度上。它是一把精巧的钥匙,打开了现代科学的大门,但或许,它同时也是一把坚固的锁,锁住了通往另一种未知文明范式的门。

2025-06-19 14:19:39 551 30

原创 对边界表示法的核心理解: 拓扑对象赋予了几何对象边界和范围

包前缀全称角色与职责类比示例gp_几何图元:最基础的数学元素,用于计算和定义。砖块、水泥、坐标尺gp_Pnt(点),gp_Vec(向量),gp_Dir(方向),gp_Trsf(变换)Geom_Geometry纯粹几何:定义理想化的、无限的几何形状(曲线、曲面)的数学方程。设计蓝图Geom_LineGeom_PlaneTopoDS_拓扑结构:描述几何体各部分如何连接,并赋予其边界。具体的建筑部件(顶点),(边),(面),(实体)BRep_边界表示工具:提供访问和查询TopoDS_对象及其关联。

2025-06-17 10:20:04 1793 22

原创 没有绝对完美的架构:架构因迭代而涅槃

一个在当前看来近乎完美的架构,随着时间的推移,外部技术的演进(新的语言、框架、中间件的出现)、业务需求的变更(市场扩张、用户行为变化)、以及系统内部复杂度的自然累积(代码的熵增),都可能使其逐渐变得臃肿、低效,甚至成为发展的桎梏。市场的反馈、运维的数据、开发团队的体验,都成为驱动架构演进的“选择压力”,促使其向更优的方向“突变”和“选择”。“涅槃”一词,本意指超越生死轮回的境界,在软件架构的语境下,它隐喻着架构通过不断的自我扬弃和重构,从旧的束缚中解脱,达到一种更高层次的适应性和生命力。

2025-05-08 19:30:41 369 11

原创 Qt故事会: 初识惊叹跨平台魔力 , 深入惨遭跨平台挑战

这就像是给了你一套能在各种道路上行驶的汽车零件(Qt),但如果组装汽车的人(原始开发者)按照越野车的标准加了很多只适用于崎岖山路的特殊装备(Windows 特有代码),那么当你想把这辆车开到平坦的公路上(移植到 Linux)时,就需要拆掉或改造那些特殊装备,这当然会很费劲。Qt 框架本身尽力提供了跨平台的基础,但如果最初的开发者没有严格遵守跨平台编码规范,大量使用了平台绑定的特性,那么后续的移植工作自然会非常痛苦,远非简单的“重新编译”就能解决。Qt 确实是一个强大的跨平台框架,它极大地简化了多平台开发。

2025-05-05 17:24:00 542 15

原创 QML对象更新机制与缓存问题的讨论

QML 很适合“首屏直观开发”,但一旦进入“动态组件管理阶段”,你必须自己设计组件的生命周期与状态控制机制,否则缓存机制会让你掉进“状态不同步”的坑里。用缓存要有意识;给组件设计 reset;不信赖生命周期钩子;优先重置,不轻言销毁;靠测试发现复用问题。

2025-05-01 20:42:52 965 11

原创 QML进阶:deleteLater()延迟特性与图形资源即时清理的冲突

使用。

2025-04-13 17:42:26 673 7

原创 Qt界面流畅性的系统讨论: 多维度渲染性能优化

实际开发中应结合性能分析工具精准定位瓶颈,优先解决影响最大的问题(如算法复杂度从 O(n²) 优化到 O(n)),再逐步实施其他优化策略。四个维度提供系统化解决方案,涵盖从代码优化到硬件加速的完整技术链。,导致界面无法及时刷新(通常需保持 60 FPS)。合并多个绘制调用为单个调用(减少OpenGL状态切换)。强制固定刷新频率(如30 FPS)。仅保留最新数据,避免内存无限增长。降低数据密度,减少传输和计算量。合并高频刷新请求,避免冗余渲染。仅重绘界面中发生变化的区域。使用GPU硬件加速图形绘制。

2025-02-20 09:27:43 1351 37

原创 山外青山楼外楼 : 详解 Qt信号与槽的100种用法 (眼界篇)

在 Qt 信号与槽的应用中,基于其核心机制和可扩展性,理论上有无限种组合和变种。具体来说,常见的信号与槽用法和场景应用大约可以总结出以下 100 多种主要方式,分为几个大类:在自定义类中定义信号和槽,可以让你的类具备灵活的通信能力。2. Lambda 表达式作为槽在现代 C++(C++11及以上)中,可以使用 Lambda 表达式代替传统槽函数。这对于一次性处理或简化代码非常有用。3. 函数指针的使用Qt 5 引入了基于函数指针的信号与槽连接方式,比字符串形式更加安全和高效。4. 信号与槽的

2024-11-30 19:47:31 1704 38

原创 基于epoll ET模式 的 非阻塞IO服务器模型

你的这段代码整体设计非常扎实,目标明确——使用 `epoll` 的 **边缘触发 (ET) 模式** 实现一个高并发 TCP 服务器,模拟**接收小缓冲区**和**大数据压力**下的传输情景,细节处理得也比较完善,尤其是在非阻塞 I/O、缓冲处理和连接管理上都非常到位。即使你设了 `recv_buf[1]`,也可以把 `recv()` 调整为尽可能多地接收数据,比如设为 `recv_buf[512]`,然后 `memcpy` 进去,这样你仍然保有模拟小缓冲区的结构,但性能好很多。

2024-04-03 21:07:53 1053 17

原创 OCCT 什么是封盖平面?

3D 裁剪与封盖的概念裁剪平面 (Clipping Plane): 这把"刀",它定义了哪些部分要被切掉封盖平面 (Capping Plane): 切开后暴露的"切面",需要用一个平面来"封住"这个切口// 苹果被切开,出现空洞// 用平面封住切口解决实际问题: 为3D裁剪操作提供视觉完整性性能优化: 通过缓存和懒惰更新减少不必要的计算灵活性: 支持材质、纹理和着色器的继承和自定义数学严谨: 使用严格的线性代数算法确保几何正确性工程成熟: 遵循OCCT的设计模式和最佳实践。

2025-08-16 17:41:35 669

原创 详解经典的 模型-视图-投影 (Model-View-Projection, MVP) 变换流水线

注意矩阵乘法的顺序是从右到左(局部 -> 世界)(世界 -> 视图)(视图 -> 裁剪)这三个矩阵(M, V, P)通常在CPU端计算好,然后通过uniform变量传递给GPU上的着色器。GPU会对模型的每一个顶点执行这个乘法,从而高效地完成整个3D到2D的变换过程。

2025-08-16 17:24:34 811

原创 详解 OCCT OpenGl_VertexBufferCompat 类

这是一个用于兼容旧版OpenGL(不支持VBO)的缓冲区兼容层模板类。

2025-08-15 19:26:12 464 3

原创 详解 OCCT OpenGl_Buffer 类

这是一个来自OpenCascade Technology (OCCT) 的类,用于封装OpenGL缓冲区对象(VBO/Buffer Object)。

2025-08-15 18:57:18 218 1

原创 OCCT OpenGl_BackgroundArray

继承自渐变背景(Gradient)纹理背景(Texture)立方体贴图背景(CubeMap)

2025-08-14 19:39:37 236 5

原创 OCCT NCollection_IndexedMap 一个带索引的映射容器

这是OCCT(Open CASCADE Technology)中的类,这是一个非常重要的容器类。

2025-08-14 19:35:17 308

原创 OCCT OpenGl_AspectsTextureSet 详细分析

是 Open CASCADE Technology (OCCT) 图形引擎中用于管理自定义纹理资源的类。它负责处理与图形外观()相关的纹理资源,包括普通纹理和点精灵(point sprites)纹理。

2025-08-13 20:42:56 501 2

原创 OCCT “拓扑环线重组算法” (Topological Wire Recombination Algorithm)

此算法的核心思想是。它完全忽略了输入面的原始组合方式(哪个是大面,哪个是小面),而是将所有输入面成它们最基本的拓扑元素——。然后,它在所有这些环线中,通过拓扑分析找出唯一的“最外层”环线,并以此为基础,将所有其他环线作为内孔,出一个全新的、合并后的面。

2025-08-13 20:29:51 1208 32

原创 详解 OpenGl_ArbFBO_Header

该文件定义了 OpenGl_ArbFBO和 OpenGl_ArbFBOBlit: 提供基础帧缓冲对象 (FBO)操作的入口(适用于 OpenGL 2.0+ 和 OpenGL ES 2.0+),并在可用时提供额外的桌面版特有功能。: 专门提供帧缓冲区拷贝 (功能(需要 OpenGL 3.0+ 或 OpenGL ES 3.0+),与基础功能分离以实现更好的向后兼容性。根本目的。

2025-08-12 20:02:28 603 1

原创 详解 OCCT OpenGl_ArbDbg

此头文件是 OCCT 可视化模块实现高级 OpenGL 诊断的基础设施,对开发 3D CAD 应用的图形调试至关重要。绑定 OCCT 内部的日志记录器,将 OpenGL 错误转发到 OCCT 的消息系统。是 Open CASCADE Technology (OCCT) 库中用于。类在初始化时检测调试扩展支持,若可用则加载。封装 OpenGL 的。

2025-08-12 19:52:07 414 1

原创 BRepBuilderAPI_MakeEdge 详解

是 OpenCASCADE Technology (OCCT) 中用于创建边(Edge)的核心类。它继承自,提供了多种方式来构造拓扑边。

2025-08-11 20:06:00 369 2

原创 计算机图形学常用渲染技术大盘点

总结:两者是互补技术,光栅化追求效率,光线追踪追求真实感。随着硬件发展(如RTX 40系列),实时光线追踪正逐渐普及,但光栅化仍是实时图形的基石。硬件需求 普通GPU即可 需RT Core/Dedicated硬件。真实感 依赖技巧近似效果 物理精确,自然逼真。主要用途 游戏、实时应用 电影、高质量渲染。光线计算 不模拟光线路径 直接模拟光线交互。速度 极快(实时) 慢(依赖硬件加速)对比项 光栅化 光线追踪。

2025-08-11 12:04:35 458 25

原创 如何 理解 氛围编程 ?

未来的开发者可能需要灵活地结合传统编程的严谨和“氛围编程”的高效,才能在快速变化的技术浪潮中保持竞争力。其核心理念是,开发者通过自然语言(例如,中文或英文)向AI描述他们想要实现的功能、解决的问题或期望达到的“氛围”,然后由AI负责生成具体的代码。理解“氛围编程”的核心在于,开发者从繁琐、具体的代码编写工作中解放出来,转而扮演一个更高层次的指导者角色。这个词强调的是一种感觉和流程。开发者不再是精确控制每一行代码的“工匠”,而是更投入于创造性的流程中,通过与AI的互动来引导最终产品的走向。

2025-08-10 20:07:24 562 2

原创 什么是 Live Coding 压力测试

Live coding 压力测试的目的是在实际的编码环境中,通过模拟高强度的工作负载,测试系统或开发者在处理复杂问题时的表现。通过这些测试,可以更全面地了解开发者的技术水平,团队的协作性,和系统的稳定性,确保在上线或面对用户时,能够应对各种压力和突发情况。:测试系统在高负载情况下的表现,确保它能够处理大量并发请求或大量数据处理,确保系统稳定性和响应时间。:评估开发者在压力下编写代码、解决问题、调试和优化的能力,尤其是在面对时间紧迫的情况时。

2025-08-10 20:02:49 249 1

原创 OCCT TopTools_Array1OfListOfShape 详解

它在需要对拓扑形状进行分组、归类或建立索引映射关系的场景下非常高效和实用。假设你正在分析一个复杂的三维模型,你想找出模型中所有的。,并将每个面上的所有**边(Edge)**进行归类。,比如说有 10 个抽屉,编号从 1 到 10。这个数据结构为什么存在?它在三维建模中有什么用?这种“数组的列表”结构在需要对一组对象进行。是一个为了方便开发者而预定义的。,这个文件柜有固定数量的。则用来存储属于该分类的。

2025-08-09 17:17:51 1042 28

原创 OCCT `TopTools` 类自身的方法分析

为了方便开发者,TopTools预定义了大量基于 OCCT 自身容器库的模板实例化,专门用于存储。这避免了开发者在自己的代码中反复编写冗长的模板定义。: 形状的哈希集合(Set)。: 形状的动态数组(类似: 形状的双向链表。: 以形状为键(Key)、整数为值(Value)的哈希映射(Map)。等等… 列表非常长,覆盖了各种常用的数据结构组合。TopTools类是一个面向 Open CASCADE 开发者的核心辅助工具集。它不是用来创建几何的,而是用来管理和探查已有的几何拓扑。

2025-08-09 17:13:48 1052 1

原创 OCCT BRepTools Class 详解

BRepTools类是OCCT中最重要的工具类之一,提供了大量的实用函数。

2025-08-08 11:10:23 368 23

原创 详解 OCCT GeomAPI_IntCS Class

public :宏为该类提供内存分配的功能。类是 OCCT 中用于计算曲线和曲面交点的类,它提供了一些方法来执行交点计算,并返回计算结果(交点和交线段)。这个类特别适用于需要精确计算和分析曲线与曲面交集的几何建模应用,通常用于 CAD 或 CAE 软件中。

2025-08-08 09:21:59 372 2

原创 CAD软件中的曲线去重详解

曲线去重是指在CAD绘图中,识别并删除重复或重叠的曲线元素的过程。

2025-08-07 18:55:53 380

原创 OCCT尖点采样算法: 如何赋予 完美的“尖点” 一个半径

从数学上讲,一个(或者说曲率是无穷大,半径为0)。我们的算法之所以能算出一个值,并不是因为它“算出”了那个尖点的半径,而是因为它非常聪明地执行了一个**“B计划”**。

2025-08-07 17:03:19 954 21

原创 详解 BRepPrimAPI_MakeCone

/ 继承自 BRepPrimAPI_MakeOneAxispublic:// ... 四个重载的构造函数 ...// ... 成员方法 ...protected:private:// 核心!API类包含了一个算法类的实例关键点解读继承是一个为所有“单轴对称”图元(如圆柱、圆锥、圆环)设计的基类。这个基类提供了这些图元共有的能力,其中最重要的是构建(Build)和类型转换的功能。正是因为这个继承,对象才能被隐式地转换为,使得这样的代码能够成立。它还提供了。

2025-08-06 19:38:40 791 2

原创 详解 OCCT BRepPrimAPI 函数族

将这些基本体的创建功能集中到高度封装与易用性 (High-level Encapsulation & Ease of Use)目标:让开发者摆脱繁琐的底层细节,专注于更高层次的业务逻辑。体现:提供“一键式”创建标准几何体的能力,是典型的“高内聚、低耦合”设计思想。它是OCCT提供给开发者的一个“快捷方式”层。作为复杂建模的基础 (Foundation for Complex Modeling)目标:提供构建复杂模型的可靠起点。几乎所有复杂的零件都是从这些基本形状通过组合、切削、变形等操作得来的。

2025-08-06 19:29:52 590 1

原创 详解 OpenGl_AspectsProgram 类

这种设计非常适合 3D 图形渲染引擎的需求,既保证了性能(避免不必要的 GPU 状态切换),又提供了灵活的资源管理机制。

2025-08-05 20:32:49 319 4

原创 详解 OCCT OpenGl_Aspects 类

类是 Open CASCADE Technology (OCCT) 中一个精心设计的OpenGL渲染管线组件,体现了多个层面的设计智慧。

2025-08-05 20:30:27 414

原创 OCCT BinMFunction_GraphNodeDriver 类设计思想与C++语法详解

每个驱动程序是一个"命令",执行特定的序列化操作可以动态注册和调用不同的驱动程序。

2025-08-04 20:00:27 908 1

原创 OCCT BinMFunction_FunctionDriver 类设计思想详解

职责单一:每个驱动程序只负责一种属性类型的序列化接口统一:所有驱动程序遵循相同的基类接口易于扩展:添加新属性类型只需实现新的驱动程序错误处理:提供完整的错误检查和状态返回机制类型安全:通过强类型系统确保操作的正确性这种设计使得 OCCT 的序列化框架具有良好的模块化可维护性和可扩展性,是企业级 CAD 软件架构设计的典型范例。

2025-08-04 19:54:55 610

原创 OCCT BinMDocStd 核心模块

BinMDocStd是 OpenCASCADE (OCCT) 中用于的函数族,主要负责文档数据的二进制序列化和反序列化操作。

2025-08-03 21:20:58 489 4

原创 OCCT问题根源:对圆柱体创建方式的误解

但是的行为是:从轴心开始,向轴方向延伸height的距离。所以如果轴心在中间,圆柱体会从中间开始向上延伸,导致下半部分没有被包围。这样圆柱体从最低点开始向上延伸,正好覆盖整个范围。

2025-08-03 20:50:40 417 1

原创 BinMDF:OCCT 二进制持久化的通用引擎与框架

BinMDF是 OCCT 二进制持久化机制的中央神经系统。它本身不处理任何具体的业务数据,而是提供了一套强大且可扩展的抽象规则和管理工具。正是有了BinMDF这个坚实的基础,像(标准属性)、(几何属性)、BinXCAF(装配和颜色属性) 等众多模块才能以统一、解耦的方式插入到持久化流程中,共同完成复杂的 OCAF 文档的存取任务。

2025-08-02 19:43:06 929 2

原创 深入解析 OCCT 持久化核心:BinMDataStd 驱动族

是 OCCT 持久化框架的基石之一。它通过一个属性类型对应一个驱动程序的清晰模式,实现了对 OCAF 标准数据的高效、可靠的二进制序列化和反序列化,是任何需要保存和加载 OCAF 文档的 OCCT 应用程序都离不开的功能族。

2025-08-02 19:37:21 747 28

原创 OCCT 传统限制 vs ZLayer解决方案

✅绕过Context限制- 不需要为每个View创建单独的Context✅保持架构简洁- 一个Viewer + 一个Context + 多个View✅独立显示控制- 每个View可以独立决定显示什么✅性能优势- 避免对象重复创建和内存开销ZLayer机制巧妙地在View层面提供了独立的可见性控制,成功绕过了Context级别的全局显示状态限制!

2025-08-01 14:23:16 300 1

自己编译的 c++ 98-23 标准(草案) 自行下载

自己编译的 c++ 98-23 标准(草案) 自行下载

2025-03-15

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

TA关注的人

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