[发明专利]一种多层次优化的网格曲面离散样条曲线设计方法有效

专利信息
申请号: 201910889310.6 申请日: 2019-09-19
公开(公告)号: CN110689620B 公开(公告)日: 2023-08-01
发明(设计)人: 金耀;宋滢;何利力;黄劲 申请(专利权)人: 浙江理工大学;浙江大学
主分类号: G06T17/30 分类号: G06T17/30;G06F17/11
代理公司: 杭州求是专利事务所有限公司 33200 代理人: 刘静
地址: 310018 浙江省*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 多层次 优化 网格 曲面 离散 曲线 设计 方法
【权利要求书】:

1.一种多层次优化的网格曲面离散样条曲线设计方法,其特征在于,该方法包括以下步骤:

步骤一,输入基本元素:输入三维网格模型S、三维网格模型上选取N个插值点{pi}、初始三维网格模型曲线离散步长u、距离误差阈值η、最大迭代次数T以及最大层次数L,i=1,2,…,N;所述三维网格模型为计算几何领域、数字几何处理领域和数控加工领域的动物模型;

步骤二,构造三维网格模型的初始曲线C0:对于相邻的两个三维网格模型的插值点{pi,pi+1},在三维网格模型的网格面上计算该两点间的Dijkstra路径作为初始曲线,并设置层次化级数l=1;

步骤三,离散采样曲线段:对相邻三维网格模型的两个插值点{pi,pi+1}所形成的初始线段,根据曲线离散步长u均匀地插入若干个采样点{qj},j=1,2,…,n,将三维网格模型的曲线离散进行细采样,从而将整条曲线离散成Ml个顶点{qj},j=1,2,…,Ml;相邻两个插值点所形成的线段pipi+1的采样点个数设置为:对相邻两个插值点{pi,pi+1}所形成的初始线段,运用弦长参数化方法均匀地插入若干个采样点;

步骤四,构建离散曲线的优化方程:设置迭代次数k=0,并在流形约束与插值点约束下,构造拉普拉斯能量F为目标函数,即如下公式:

其中ki为第i个插值点在三维网格模型的曲线所有顶点中所对应的序号;

当曲线为闭合时,

当曲线为开时,将式(1)舍去第一项j=1与最后一项j=Ml即可;

步骤五,计算三维网格模型的曲线顶点所在的面片集并将其参数化:首先以三维网格模型的曲线Cl-1顶点位置{qj}确定其所在的面片集Γ={Tj},其中Tj为qj所在的三角形面片;若qj在某三角形内部,则直接选取该三角形作为对应的Tj;若qj位于网格边上,则选取该边的两个邻接面;若qj位于网格顶点上,则选取该顶点的1-环邻域面,对于当前曲线的每个顶点qj,在其对应的面片Tj上对其进行局部参数化;设顶点qj所在的面片Tj的三个顶点为A,B,C,在Tj上建立局部坐标系p0;e1,e2:以p0=A为原点,以e1=AB和e2=AC为坐标轴,则qj可参数化为:

qj=q(sj,tj)=p0+sje1+tje2,sj,tj∈[0,1]       (2)

其中sj,tj为三维网格模型的顶点qj在该局部坐标系下的坐标值;

步骤六,数值求解曲线顶点坐标:固定面片集Γ,采用块坐标下降法求解以下关于三维网格模型的顶点坐标的参数向量s,t的函数的极小值,并结合松弛投影法处理线性约束,选取使能量值最小的邻接面作为对应的Tj

步骤七,检查循环条件:设置k=k+1,并重复上述步骤五与步骤六,直到曲线满足下列收敛条件之一:或k≥T;

步骤八,投影曲线段:将构成曲线的所有折线段投影到三维网格模型的曲面上;

步骤九,多层次求解:设置u=u/2,l=l+1,并重复上述步骤三~八,直到满足l≥L。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学;浙江大学,未经浙江理工大学;浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910889310.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top