摘要: VTK第一阶段:1.VTK是什么、应用场景、版本选择 你是小白,我尽量避开晦涩黑话,遇到专有名词会解释清楚。 一、VTK是什么 VTK = Visualization ToolKit,可视化工具库 用C++写的开源三维图形库,也提供Python绑定。 它不是游戏引擎(不是Unity、Unreal), 阅读全文
posted @ 2026-08-24 16:11 Drunker•L 阅读(40) 评论(0) 推荐(0)
摘要: 网格(Mesh)完整讲解(结合你前面B‑Rep、OCCT、VTK整套知识) 核心一句话:B‑Rep是精确数学模型,只存在CPU内存,GPU看不懂;网格就是把B‑Rep的曲面拆成一堆小三角面片,专门给显卡渲染用的数据。 1. 什么是网格 网格由两大部分组成: 顶点(Vertex):三维空间坐标点(x, 阅读全文
posted @ 2026-08-24 16:10 Drunker•L 阅读(65) 评论(0) 推荐(0)
摘要: OCCT Assembly 装配概念 前面我们聊的全都是单个零件(Solid实体),但真实工业场景绝大多数都是装配体:一台机器几十上百个零件,还有子装配。STEP文件也大量存储装配结构。 OCCT没有一个叫TopoDS_Assembly的独立类,装配能力是基于TopoDS_Compound + 局部 阅读全文
posted @ 2026-08-20 09:24 Drunker•L 阅读(34) 评论(0) 推荐(0)
摘要: OCCT 容差 Tolerance(公差)完整讲解 容差是 OCCT 最折磨人的概念,绝大多数 STEP导入破面、布尔运算失败、缝合失败、非流形拓扑,根源全来自容差。 ⚠️区分两件东西,千万不要搞混: Shape容差(几何拓扑容差,现在讲的):用来判断两个几何元素“是不是同一个”,用于拓扑缝合、布尔 阅读全文
posted @ 2026-08-20 09:24 Drunker•L 阅读(41) 评论(2) 推荐(0)
摘要: 从加载STP文件,到屏幕上看到3D模型完整全流程 以你 OCCT 的测试脚本行为:source perf_test.tcl → 读取Product1.stp,直到窗口显示模型、可以旋转。 STP文件存储的是B‑Rep边界表示模型:只保存数学曲面、曲线、拓扑(面、边、顶点),没有三角形,显卡GPU不能 阅读全文
posted @ 2026-08-20 09:23 Drunker•L 阅读(32) 评论(3) 推荐(1)
摘要: OCCT 是什么,串联整套知识 OCCT 全称 OpenCASCADE Technology,开源三维几何建模内核(几何引擎),C++库。 一句话定位:专门管「CAD几何数学、B‑Rep实体」的库,它不负责把东西画到屏幕上,只管计算几何。 前面我们整条链路:STEP文件、B‑rep拓扑、布尔运算、S 阅读全文
posted @ 2026-08-20 09:23 Drunker•L 阅读(36) 评论(0) 推荐(0)
摘要: VTK拾取(Pick)原理:鼠标点屏幕,怎么定位到三维零件 先把场景建立起来: 屏幕是2D像素,鼠标拿到的只是 (x,y) 屏幕坐标。但是模型是三维空间里的B‑rep转出来的三角面片,存在世界三维坐标。拾取本质就是:2D屏幕坐标反向推导三维物体上的交点。 注意:VTK拾取操作全部是在CPU完成计算, 阅读全文
posted @ 2026-08-20 09:23 Drunker•L 阅读(24) 评论(0) 推荐(0)
摘要: VTK是什么,和OpenGL的关系 先一句话定调: OpenGL是底层显卡绘图API(裸接口);VTK是一套上层可视化开发库,内部封装了OpenGL,帮你省去直接手写OpenGL的大量繁琐代码。 结合咱们前面工业软件、B‑rep、三角面片、STEP整套知识串起来讲。 1. OpenGL回顾 Open 阅读全文
posted @ 2026-08-20 09:22 Drunker•L 阅读(24) 评论(0) 推荐(0)
摘要: OpenGL 是什么,以及和前面B‑rep、STEP、三角网格的关系 先记住核心定位: OpenGL 是一套跨平台的「显卡绘图API」,它只负责把三角形画到屏幕,完全不懂什么叫B‑rep、STEP、布尔运算、零件拓扑。 前面一大坨:B‑rep、STEP、布尔、修复、容差,全部跑在CPU上的几何内核; 阅读全文
posted @ 2026-08-20 09:22 Drunker•L 阅读(27) 评论(0) 推荐(0)
摘要: B‑rep布尔运算(Boolean)通俗讲解 布尔运算就是CAD里面:合并、相减(打孔)、求交集。 相加(Union):两个零件合并成一个 相减(Difference):A减去B,拿B在A上面挖掉一块,打孔就是它 求交(Intersection):只保留两个物体互相重叠的那一部分 注意:布尔运算操作 阅读全文
posted @ 2026-08-14 16:26 Drunker•L 阅读(38) 评论(0) 推荐(0)
摘要: 非流形拓扑(Non‑manifold) 这是B‑rep里高频报错的概念,STEP导入、布尔运算失败一大半坑都来自它。 先给通俗总定义: 非流形,就是模型上出现了违背现实实体零件连接规则的拓扑结构。现实物理世界造不出来这种物体,但是计算机B‑rep拓扑可以生成出来。 先对比:流形拓扑(Manifold 阅读全文
posted @ 2026-08-14 16:26 Drunker•L 阅读(58) 评论(0) 推荐(0)
摘要: STEP(.stp /.step) 文件 全称:Standard for the Exchange of Product model data,产品模型数据交换标准。 简单一句话:STEP 是工业界通用的“零件快递盒子”,盒子里面装的就是整套 B‑rep 数据。 区分记忆: STEP:装 B‑rep 阅读全文
posted @ 2026-08-14 16:25 Drunker•L 阅读(42) 评论(0) 推荐(0)
摘要: 一、B‑rep(Boundary Representation,边界表示法) 大白话:B‑rep 是描述一个实体的外壳边界,用数学精确方程去描述零件,而不是一堆小三角面片。 先举现实例子:一个实心铁球。 三角网格思路:几千个小三角形拼出球面,只是视觉近似。 B‑rep思路:我直接记录:这是一个球体, 阅读全文
posted @ 2026-08-14 16:25 Drunker•L 阅读(49) 评论(0) 推荐(1)
摘要: 一、为什么渲染几乎只用三角形? 先记住一句话:显卡硬件天生只认三角形,不是正方形、不是五边形,更不是光滑曲面。 我们先想象:任意一个平面多边形,四边形、五边形、六边形,都可以切成多个三角形。 四边形 → 2个三角形 五边形 → 3个三角形 任意复杂凸/凹多边形,总能拆成一堆三角形。 1.数学上:三角 阅读全文
posted @ 2026-08-14 16:25 Drunker•L 阅读(36) 评论(0) 推荐(0)
摘要: 现实物体 → 计算机屏幕完整流程(通俗版) 现实世界一个实物(比如一个零件、杯子),计算机不能直接看见它。全部是靠数字描述 + 一层层计算,最后变成屏幕上的像素。 整个链路分为4大步:几何建模 → 场景描述 → 渲染计算 → 输出到屏幕。 1、第一步:把现实物体,变成计算机能懂的数字模型(建模) 计 阅读全文
posted @ 2026-08-14 16:24 Drunker•L 阅读(42) 评论(0) 推荐(0)
摘要: StringBuffer 和 StringBuilder StringBuffer 和 StringBuilder 都是 Java 中用于处理可变字符串的类,它们在性能和使用场景上有些相似,但也有一些关键的不同点。下面是它们的异同点总结以及使用场景。 相同点: 可变性: StringBuffer 和 StringBuilder 都是可变的字符串类,允许在原 阅读全文
posted @ 2025-02-10 19:51 Drunker•L 阅读(48) 评论(0) 推荐(0)
摘要: 978. 最长湍流子数组 最长湍流子数组 给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。 更正式地来说,当 arr 的子数组 A[i], A[i+1], ..., A[j] 满足仅满足下列条件时,我们称其为湍流子数组: 若 阅读全文
posted @ 2025-02-05 19:59 Drunker•L 阅读(62) 评论(0) 推荐(0)
摘要: 1011. 在 D 天内送达包裹的能力 在 D 天内送达包裹的能力 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。 返回能在 days 天内将传送带上的所 阅读全文
posted @ 2025-01-10 21:14 Drunker•L 阅读(77) 评论(0) 推荐(0)
摘要: 719. 找出第 K 小的数对距离 找出第 K 小的数对距离 数对 (a,b) 由整数 a 和 b 组成,其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k ,数对由 nums[i] 和 nums[j] 组成且满足 0 <= i < j < nums.length 。返回 所有数对距离中 第 k 小 阅读全文
posted @ 2025-01-10 20:22 Drunker•L 阅读(87) 评论(0) 推荐(0)
摘要: 350. 两个数组的交集 II 两个数组的交集 II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums 阅读全文
posted @ 2025-01-08 19:33 Drunker•L 阅读(45) 评论(0) 推荐(0)