欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2025110055579
申请人: 山东捷瑞信息技术产业研究院有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2026-10-13
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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,处理流程如下:S521:环结构生成:创建连接环R={(vji, vji+1)|j=0..m-1},添加约束边:E_constraint={(vji,vji+1)};

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

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