利索能及
我要发布
收藏
专利号: 2025110055579
申请人: 山东捷瑞信息技术产业研究院有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-09-08
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,包括以下具体步骤:

S1:输入解析与轮廓提取:输入参数,再提取形状轮廓和孔洞;

S2:计算最大安全倒角半径:最终倒角半径设置为用户设定的倒角半径、计算的最大内切圆半径以及深度范围限制三者中的最小值;

S3:三角剖分处理轮廓:对主轮廓和孔洞分别进行三角剖分,将孔洞区域网格数据合并到主体区域网格数据中,形成完整的轮廓三角网格数据;

S4:构建倒角路径:生成多个倒角层级,对于每个倒角层级,初始化一个空数组re用于存储当前层级的倒角点;遍历轮廓的每个顶点V,计算当前顶点的法线方向;判断当前顶点处的角度特性,根据角度特性选择连接方式;根据当前层级的偏移量沿法线方向偏移,生成倒角点并加入数组re;对生成的倒角点集re进行S3的三角剖分,得到当前层级的倒角面网格se;

S5:倒角表面连接:构建相邻倒角层级之间的侧面,构建连接相邻层级,构建两个三角形面片;

S6:底面/顶面生成:生成拉伸体的底部和顶部表面,遍历三角网格中的每个三角形;

S7:数据缓冲与属性绑定:将生成的顶点和索引数据存储到缓冲区中,并绑定到几何体对象,设置几何体对象的顶点属性;

S71:动态内存分配,智能缓冲区管理:输入参数顶点总数V_count、三角面片数T_count,处理流程如下:

S711:内存预分配:顶点缓冲区大小=V_count*(位置3个浮点+法线3个浮点+UV2个浮点),索引缓冲区大小=T_count*三角面片索引数3;

S712:动态缓冲区创建:

创建顶点缓冲区:使用Float32Array类型,大小为预分配的顶点缓冲区大小,用于动态绘制;

创建索引缓冲区:使用Uint32Array类型,大小为预分配的索引缓冲区大小,用于静态绘制;

S72:数据缓冲与属性绑定:

S721:顶点属性结构化存储,顶点结构包括位置x,y,z、法线x,y,z、UV坐标u,v、初始化偏移量为0;

通过循环变量i遍历顶点总数V_count范围:位置坐标,vertexBuffer[offset:offset+

3]=positions[i],offset+=3;法线向量,vertexBuffer[offset:offset+3]=normals[i],offset+=3;UV坐标,vertexBuffer[offset:offset+2]=uvs[i],offset+= 2;

S722:索引缓冲区填充:通过循环变量i遍历三角面片数T_count范围:indexBuffer[i*

3]=triangles[i].v0;indexBuffer[i*3+1]=triangles[i].v1;indexBuffer[i*3+2]=triangles[i].v2;

S723:属性绑定:交错式存储;

位置属性:从缓冲区偏移0开始,每3个浮点数为一组;

法线属性:从缓冲区偏移12字节开始,每3个浮点数为一组;

UV属性:从缓冲区偏移24字节开始,每2个浮点数为一组。

2.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S1具体包括:

S11:输入参数:shape:二维形状对象、depth:拉伸深度、bevelRadius:倒角半径参数、curveSegments:贝塞尔曲线细分段数;

S12:轮廓提取:

S121:主轮廓转换:从二维形状对象中提取轮廓点并输入点序列P={ p0,p1,...,pn},对每条贝塞尔曲线按curveSegments离散化:将贝塞尔曲线上的每个点t从0到1,以步长1/curveSegments来迭代生成曲线上的离散点,p(t)=(1‑t)³p0+ 3(1‑t)²tp1+ 3(1‑t)t²p2+ t³p3,输出平面坐标数组p=[x0,y0,x1,y1,...];

S122:孔洞处理:遍历shape对象中的shapeHoles属性集合中的每一个hole元素,执行S121相同的离散化,添加孔洞分隔符NaN,输出孔洞数组h=[h0_x,h0_y,...NaN,h1_x,...];

S123:构建完整多边形:m=[组合主轮廓p,孔洞h],拓扑约束:主轮廓点序顺时针,孔洞逆时针。

3.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S2具体包括:

S21:输入参数定义:

m:二维多边形的顶点序列,包含外轮廓和内孔顶点数据;

bevelRadius:用户设定的目标倒角半径;

depth:几何体沿Z轴方向的拉伸高度;

g:最大内切圆半径;

S22:计算策略选择模块:若当前处理的形状是文本字形;

S23:非文本形状内切圆计算模块:若非文本形状;

S24:三维约束处理模块:最终安全倒角半径确定:约束条件1:bevelRadius≤depth/2;约束条件2:bevelRadius≤g;最终安全倒角半径R_safe取bevelRadius、defaultRadius或g、以及depth/2中的最小值。

4.根据权利要求3所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S22和S23具体包括:

S221:获取形状包围盒:bbox=[min_x,min_y,max_x,max_y];

S222:计算包围盒特征尺寸:L=min(max_x‑min_x,max_y‑min_y);

S223:设定默认半径:defaultRadius=k×L,k=0.08;

S231:采用多边形中心点算法处理顶点序列m;

S232:通过距离约束优化求取最大内切圆,最大内切圆半径g满足最大内切圆完全包含于多边形内,并且圆心为中心点。

5.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S3具体包括:

S31:输入数据预处理:将S1生成的轮廓数据转换为三角剖分引擎可识别的数据结构:主轮廓`P`:二维顶点序列[x1,y1,x2,y2,...]按顺时针排列;

孔洞集合`H`:包含k个孔洞顶点序列的数组[(h1_x1,h1_y1,...),(h2_x1,h2_y1,...), ...],各孔洞按逆时针排列;

S32:约束性三角剖分:采用带边界约束的Delaunay三角剖分算法:主轮廓处理:对轮廓`P`执行三角剖分,生成主体网格`Y`; 实现过程:建立初始超级三角形→逐点插入→Lawson边交换优化;

孔洞处理:对每个孔洞`h∈H`独立执行剖分,生成孔洞区域网格 `X`;

S33:孔洞合并技术:将孔洞网格合并至主体网格:空间对齐:基于全局坐标系保持孔洞顶点原始坐标;

拓扑缝合:添加连通边连接主体与孔洞边界;

网格重组:对孔洞周边区域进行局部三角优化。

6.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S4具体包括:

S41:层级生成控制结构,输入参数:倒角分段数S、初始轮廓V={v0,v1,...,vn};

S42:顶点偏移计算机制:对二维多边形的顶点序列中的每个顶点依次进行处理:S421:相邻边向量计算:ei=vi‑vi‑1,ei+1=vi+1‑vi;

S422:法线方向求解:ni= normalize([‑ei.y,ei.x]),ni+1=normalize([‑ei+1.y,ei+1.x]);

S423:有效偏移方向计算:di=(ni+ ni+1)/||ni+ ni+1||;

S43:转角连接智能决策:角度计算:θi= arccos(ni·ni+1);连接规则:圆弧连接θi<π−ε,线性连接θi≥π−ε;样条拟合存在连续曲线段;

S44:倒角路径生成实现:

圆弧连接实现:采样点数m=ceil(θi/Δα),其中Δα=5°为默认角分辨率;对索引j从0到m的循环遍历:旋转角度φ=j *θi/m;计算插值方向:dij= R(φ)·di,R为旋转矩阵;生成点:pj=vi + rs· dij;

线性连接实现:生成单一点:p=vi+ rs·di;

S45:几何约束三角化。

7.根据权利要求6所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S45具体包括:

S451:输入数据加载:计算系统读取输入点集数组P_s = [(x1,y1), (x2,y2),...,(xn,yn)]至内存缓冲区,同时接收参考长度参数r_s;

S452:约束参数解析:计算引擎自动推导几何约束条件:curve_angle_threshold=math.pi‑0.1 # 169.3°,min_edge_length=0.01*r_s;

S453:约束预处理:系统扫描点集执行特征检测:遍历点集P_s中每个顶点vi,计算邻接边夹角:θ=arccos(vi‑vi‑1,vi‑1‑vi)/(‖vi‑ vi‑1‖·‖vi+1‑vi‖),标记θ>曲线角度阈值的点为曲线约束点,生成约束边集合E_constrained ={(vi,vi+1)|θi> 曲线角度阈值};

S454:核心三角化运算:计算进程调用S32中的约束Delaunay三角剖分算法得到T_s;

S455:网格质量优化:系统迭代对T_s执行网格精化:检测违反约束的三角形:边长度<最小边长阈值,内角<25°,插入Steiner点,局部重三角化直至满足所有约束;

S456:数据结构输出:最终生成三角网格数据结构:T_s ={vertices:[v1,v2,...,vm]},其中含新增Steiner点和三角面片顶点索引。

8.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S5具体包括:

S51:智能倒角顶点构建:输入参数:A倒角层对象、s轮廓段索引、n层级索引,处理流程如下:S511:位置计算:基于双线性插值:P=lerp(第s个分段点的基点位置和初始轮廓,第s个分段点的偏移量, n/N),其中N为倒角总层数;

S512:法线生成:混合基础法线与挤压方向:normal= normalize(1‑α)*A.baseNormal+α*extrusionDir),α=(n/N)^β;

S513:UV映射:参数化映射:u=A.arcLength[s]/ totalArcLength,v= n/N;

S52:拓扑优化的墙体连接:输入相邻倒角层Li和Li+1,处理流程如下:i i+1

S521:环结构生成:创建连接环R={(vj , vj )|j=0..m‑1},添加约束边:E_constrainti i+1={(vj ,vj )};

i i+1 i

S522:三角片生成规则:对于索引j属于[0, m‑1]:添加三角形Δ(vj , vj , vj+1),添i i+1 i+1加三角形Δ(vj+1 ,vj ,vj+1 );

i i+1

S523:曲率自适应优化:如果两点间曲率κ>κ_threshold:插入中点vmid=(vj +vj )/2,i i i+1 i+1创建新三角形:{Δ(vj ,vmid,vj+1),  Δ(vmid, vj , vj+1 )}。

9.根据权利要求1所述的一种三维几何体自适应拓扑轮廓渐变结构生成方法,其特征在于,所述S6具体包括:

S61:顶点构建处理机制:输入参数:O.insetPoints倒角最内层轮廓点集、R所有孔洞轮廓集合,处理流程如下:S611:顶点特征提取:标记孔洞拓扑关系:H={H1,H2,...,Hn},计算轮廓方向:主轮廓为逆时针,孔洞为顺时针;

S612:多层复合剖分:构建组合轮廓=[O.insetPoints]+R,执行约束三角剖分,生成三角网格G,约束包括:闭合边界:O.insetPoints、孔洞边界R0,R1,...,三角形最小角度为25°,三角形最大面积为边界区域的0.1%;

S62:表面网格构建,双表面同步生成:

对每个三角面片通过一个循环变量t在范围内索引遍历:获取三角面片的三个顶点:v1=G[t][0], v2=G[t][1],v3=G[t][2];

顶部表面处理:创建顶点副本:vit=(vi,顶部);赋值属性:法线=(0,0,1),UV=(vi.x/width,vi.y/height);

底部表面处理:创建顶点副本:vib=(vi,底部);赋值属性:法线=(0,0,‑1),UV=(vi.x/width,vi.y/height);

构建索引:顶部索引按顺序添加(v1t,v2t,v3t);底部索引按顺时针反转顺序添加(v3b,v2b,v1b)。