[发明专利]一种基于参数的动态几何三维图形切割实现方法有效
申请号: | 201910734165.4 | 申请日: | 2019-08-09 |
公开(公告)号: | CN110428506B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 冯清;尧刚;张中文;张景中;何义兵;林咏渔;管皓 | 申请(专利权)人: | 成都景中教育软件有限公司 |
主分类号: | G06T19/20 | 分类号: | G06T19/20;G06T13/20;G09B19/00 |
代理公司: | 四川省成都市天策商标专利事务所(有限合伙) 51213 | 代理人: | 郭会 |
地址: | 610000 四川省成都市中国(四川)自由*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 参数 动态 几何 三维 图形 切割 实现 方法 | ||
1.一种基于参数的动态几何三维图形切割实现方法,其特征在于,包括:
步骤S100:设置切割属性,所述切割属性包括切割面数组、切割类型、切割控制变量和切割位移s,设置u为切割控制变量的当前赋值,如果为并行切割,则多个切割面同时对被切割立体图形进行切割,每个切割面对切割体平移的最终位移表示为:u*s,当u在0-1范围时,此时产生被切割立体图形对多个切割面同时切割的动画,此时u确定了切割率,切割率乘以切割位移得到当前各个切割面对切割体平移的最终位移;如果为串行切割,则多个切割面依次对被切割立体图形进行切割,每个平面对切割体平移的实际位移可以表示为(u-i)*s,i为切割属性中的切割面的索引,当u在0-1范围时,产生第一个切割面对被切割立体图形进行切割动画,当u在1-2范围时,产生第二个切割面对被切割立体图形进行切割的动画,依次类推;
步骤S200:根据所述切割控制变量和切割位移确定被切割立体图形在切割过程中的移动量,根据切割面数组的法向确定被切割立体图形切割动画时的移动方向,动态展示立体图形的切割过程;
所述切割类型包括串行切割和并行切割,所述串行切割为多个切割面依次对被切割立体图形进行切割;所述并行切割为多个切割面同时对被切割立体图形进行切割;
所述步骤S200具体包括:
步骤S210:计算移动量中的平移量、平移量数组和切割面以及对应的平移量数组;
步骤S220:计算被切割立体图形以及对应的切割面数组;
步骤S230:在切割过程中,被切割立体图形按照平移量或平移数组、切割面以及对应的平移量数组还有立体图形以及对应的切割面数组进行动态展示。
2.根据权利要求1所述的一种基于参数的动态几何三维图形切割实现方法,其特征在于,所述步骤S210中计算平移量、平移量数组的方法为:在并行切割下,每个切割面对被切割立体图形的最终位移即平移量为u*s;在串行切割下,每个切割面对被切割立体图形的最终位移即平移量为(u-i)*s,所述每个切割面对被切割立体图形的最终位移的方向为对应的切割面的法向,串行切割下多个切割面的最终位移分别构成平移量数组。
3.根据权利要求2所述的一种基于参数的动态几何三维图形切割实现方法,其特征在于,所述步骤S210中计算切割面以及对应的平移量数组的方法包括:
步骤S211:初始化切割面以及对应的平移量数组clips,设置clips的初始值为长度为0的空数组,对切割面的索引i初始赋值i=0;
步骤S212:遍历切割面数组planes,所述切割面数组planes为多个切割平面组成的数组,当i小于切割面数组planes的长度时,继续执行下一步,否则输出切割面以及对应的平移量数组clips并结束;clips为当前过程的切割面以及平移量的数组clip组成的数组;
步骤S213:定义length为平移量数组clips的长度,赋值自变量j=0;
步骤S214:当j小于length时,继续执行下一步;否则i=i+1,执行步骤S212;
步骤S215:设置当前过程的切割面以及平移量数组clip=clips[j],clips[j]为复合对象,包含切割面数组planes和平移量translate;此时第i个切割面的平移量为translate[i],基于一个切割面切割一个立体图形,将立体图形分割成两部分,一部分由立体图形与切割面距离为正的部分组成,另一部分由立体图形沿着切割面的法向量平移-translate个单位距离与切割面为负的部分组成;将planes[i]、平移距离为0、-planes[i]及translate[i]依次放入clip的尾部;再将clip放到clips的末尾;
步骤S216:j++;返回步骤S214。
4.根据权利要求3所述的一种基于参数的动态几何三维图形切割实现方法,其特征在于,所述步骤S220具体包括:
步骤S221:初始化立体图形被切割后的部分组成的数组geoMeshs=[];对切割面的索引i初始赋值i=0;
步骤S222:遍历切割面以及对应的平移量数组clips,当i小于clips的长度时,继续执行下一步;否则输出geoMeshs并结束;
步骤S223:当前过程的切割面以及平移量的数组clip=clips[i],遍历clip,计算当前过程最终要平移的平移量向量vector,平移量向量vector为clip中每个平面法向量与切割面平移距离相乘的向量和;
步骤S224:构造当前立体图形被切割后部分的切割面数组CurrentPlanes=[],再次遍历clip,将平移vector后的切割面依次放入CurrentPlanes,planes中;
步骤S225:将原立体图形mesh按照平移vector,并将CurrentPlanes放入geoMeshs中;i=i+1;返回步骤S222。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都景中教育软件有限公司,未经成都景中教育软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910734165.4/1.html,转载请声明来源钻瓜专利网。