基于等值线法求取NURBS曲面与隐式曲面交线的原理,我们提出了一种局部加密的改进算法。通过局部加密算法减少正则网格单元顶点处^值计算数目。采用拟牛顿迭代法求交点、B样条曲线拟合参数域上的交线等改进算法,提高了NURBS曲面与隐式曲面求交算法的效率和精度,并通过MATLAB编程进行了验证。
一、全网格遍历法求解NURBS曲面与隐式曲面交线
1、基本原理
设NURBS曲面为x=g1(u,v),y=g2(u,v),z=g3(u,v),控制顶点Pij(i=0,1,…,n1;j=0,1,…,n1)呈拓扑矩形阵列,形成一个控制网格。ωij是与顶点Pij联系的权因子。Bik1(u)和色,Bjk2(v)分别为u向k1次和v向k2次规范B样条基。
设隐式曲面为f(x,y,Z)=0,其中厂的定义域为Ωf,则NURBS曲面与隐式曲面的交线方程为:f(g1,g2,g3)=h(u,v)=O的求解过程实际上就是曲面求交的过程。
2、全网格遍历求解多项式方程
(1)正则化网格的生成
曲面参数化后,将参数域Ωg沿u、v方向分别分为nu,nv份。每一个矩形单元△i,j的四个顶点分别为(ui,vj), (ui,vj+1),(ui+1,vj+1), (ui+1,vj), (i=0,1,…,nu-1;j=0,1,…,nv-1)。对应的函数值为hij ,hi,j+1,hi+1J+1,hi+1J(i=0,1,…,nu-l;j=0,1,…,nv-1)。
(2)网格单元与等值线的交点计算
网格单元与等值线交点计算,主要是计算单元各边与等值线的交点,可以采用顶点判断和边上插值的方法计算交点,具体步骤如下:
1)若hiJ≤0,则顶点(ui,uj)记为“-”,否则记为“+”;
2)若单元的4个顶点都为“+",或全为“-”,则网格单元与等值线h(u,v)=O无交点,否则转到3);
3)对于两个顶点异号的单元边,采用拟牛顿迭代法计算等值线与这条边的交点,如图2中红色圆点,设hi+1,J+1,为“+”,hi+1,j为“-”,则交点(ut,vt)为:
vt=Vi+l(i=2,3,…,n)。该单元其它边上的交点可用相同方法求得。
3、等值线的生成
逐个计算出每一个网格单元与等值线的交点,用三次B样条曲线按顺序拟合这些交点,最终得到等值线h(u,v)=0。
需要注意的是,采用B样条曲线拟合单元内的交点,必须首先确定这些交点的先后次序。对于形状比较简单的等值线,可用其关键信息判断交点的先后次序。例如与u向传递的波浪面相交时,交点可按照其u坐标值的大小排序;与圆柱面相交时交点可按照交点和圆心的连线与水平线的夹角大小排序。对于形状比较复杂的等值线,目前还未找到完美的解决方法,可采用蚁群算法保证各点之间的总距离最小,以此为原则对数据点进行排序。
综上所述,全网格遍历法求解多项式方程h(u,v)=0的流程。
数据取自采用全网格遍历法编制的matlab程序求解NURBS曲面与圆柱曲面交线过程。本文所用NURBS曲面由201×401个型值点拟合而成,程序运行平台机型配置为AMD Athlon四核2.8GHz,8G内存。
当曲面曲率变化剧烈或者对交线精度要求较高时,往往需要较小的网格步长。全网格遍历要求对每个单元都要求解,由表1可知,当网格密度增加时,该算法计算量会成倍增加,导致其耗时也会成倍增加。在网格步长较小时,全网格遍历求解多项式h(u,v)=O效率很低。
从表1中不难看出,随着网格步长的减小,需要计算顶点处危值的数目也越多,而单独计算各顶点处h值所耗时间占整个求交程序耗时的绝大部分。由此可知,想要提高求交算法的效率,就需要在相同精度要求下,尽量减少尼值的计算数目。因此在求交过程中引入局部加密算法,期望通过减少危值计算数目,提高求交算法的效率。
二局部加密算法在NURBS曲面与隐式曲面求交中的应用
1、选定正则化基网格
局部加密算法首先需要选定一个网格密度较疏的正则化基网格,基网格的网格步长取△u=△v=△=O.1。求出每个网格单元四个顶点处的函数值h(u,v),运用全网格遍历求解算法求出网格单元与等值线的交点,如图4中红色星号所示。将顶点处h值储存在矩阵危。h0(i,j),(i=1,2,…,1/△+1)中。那么h0(i,j)=h((i- 1)△,(j-1)△)。
2、确定加密范围
以网格步长等于△为例,确定加密范围的方法如下:
1)将各单元与等值线的交点排序,排序方法与全网格遍历法中拟合等值线时交点排序的方法相同,排好序的交点分别记为al,a2,…,ak,ak+l,…,an(k=1,…,n)。对于单元i,各顶点编号如图5所示。以Ai为单元i的参考基点,则Ai的坐标为:uAi=fix [min(uk,uk+l)/△]△;:uAi=fix [min(vk,vk+l)/△]△,其中fix为取整函数。单元中Bi,Ci,Di的坐标可通过参考基点Ai的坐标求得,例如uBi=uAi+△, VBi =VAi;
2)如图6所示,按照交点顺序依次找到单元参考基点Al,A2,…,Ai,Ai+i,…,Am(=l,…,m),由单元参考基点依次确定包含交点的每一个单元。
所求等值线必定在这个加密范围内。
3、网格加密
确定需要加密的网格范围后,将加密范围内的每个单元均分为四个小的单元。
4、数据处理
每一次加密网格后,需要更新顶点处h值,为避免重复计算,需要对数据做一些特殊处理:
1)确定加密区域所在的最小矩形域。
矩形域D1DZD3D4即为加密区域所在的最小矩形域。
2)生成判断矩阵。加密最小矩形域,将矩形域内每一个单元均分为四个小单元。
为便于后续计算,在加密后引入判断矩阵判断最小矩形域内的顶点是否在加密区域内。
3)更新网格顶点处h值,并将其储存在矩阵hK中。当K=1时,h1(i,j)=ho(i+VD1/△,j+VD1/△)。当K=2,3时,计算hK。
5、网格加密后单元与等值线交点的计算
在每一次加密网格后,都需要重新计算单元与等值线的交点。
小知识之NURBS
NURBS是一种非常优秀的建模方式,在高级三维软件当中都支持这种建模方式。NURBS能够比传统的网格建模方式更好地控制物体表面的曲线度,从而能够创建出更逼真、生动的造型。
辛辛苦苦提拔起来的销冠,反手把公司卖了:内部人员泄密如何防范?从行为审计到技术锁死!
2026年硬核干货拆解,企业等保2.0怎么做才能快速通关?企业速通!
离职骨干连夜拷走十几个G,去新公司一双击全成废码:这套图纸加密方法简直绝杀!
研发骨干用几块钱的U盘卷走图纸:员工用U盘拷走图纸怎么办?企业自救方案!
军工软件源代码加密怎么做?五个超顶用的加密方法分享,分分钟教会你!
离职工程师把图纸塞进压缩包带走:图纸防泄密这一记反杀,让他去新公司立功的美梦当场碎掉!
销冠离职带走千万业务大盘?如何防范销售跳槽引发的企业资产与客户流失危机!
源代码加密软件哪个好?安企神软件透明加密+外发管控+权限分级三重守护!
企业数据防泄露措施有哪些?
企业数据防泄露措施有哪些?企业数据防泄露措施有哪些?找谁做?随着信息技术的不断发展,企业数据泄露事件频繁发生,给企业带来了巨大的经济损失和声誉损失。为了保护企业的核心数据,企业需要采取一系列的数据防泄露措施。本文将介绍企业数据防泄露的措施,帮助企业更好地保护数据安全。一、数据加密数据加密是一种常用的数据防泄露措施。通过...
最强干货:企业数据防泄密的26种实战方法
防止内部泄密的方法1、教育员工:不要低估员工教育的力量。CoSoSys的研究显示,60%的员工不知道哪些公司的数据是机密的。因此,他们可能会意外泄漏或使用不当。2、签署法律文件:很多企业在员工入职的时候,都会签署保密协议,尤其是开发人员这样的涉密人员,通过这种方式,可以一定程度上的防止员工主动泄密。3、文件加密:文件加...
如何规范上班时员工行为?
很多公司员工上班期间会打游戏、刷剧、看电影、炒股、干一些与工作无关的事,这极大的影响了公司的业绩和员工的工作效率和氛围。那么应该如何规范员工的行为呢?1、利用安企神软件对员工的办公电脑打游戏、刷剧、看电影、炒股等行为进行禁止。设置方法:打开策略模板管理 > 应用程序管控 > 然后勾选【开启程序黑白名单】然后...
四种屏幕防拍照、截屏、打印等数据泄露水印解决方案
信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著提高了信息表达的效率和准确性。特别是随着计算机网络通讯技术的发展,数据的交换和传输变成了一个相对简单的过程,人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传输到所期望的任何地方。但随之而来的副作用是这些数字形式的数据文件在流转过程中安全...
商业机密用u盘存储安全吗?
不安全商业机密用u盘存储是不安全的,商场如战场,如今的商业战场竞争越来越激烈,很多公司都会不遗余力的窃取同行的商业机密,而很多的管理者会将企业的重要商业机密存储在u盘中,今天给大家讲一下如何将商业机密更安全的存储起来。1、U盘内数据加密利用安企神可以对公司的机密文件进行加密,然后将加密后的机密文件移到u盘里,这样U盘内...