[发明专利]一种基于深度比较法的剖面看线的裁剪与生成方法有效
| 申请号: | 202210830419.4 | 申请日: | 2022-07-15 |
| 公开(公告)号: | CN115170578B | 公开(公告)日: | 2023-05-23 |
| 发明(设计)人: | 邓小龙;康永君;赵一静;赵广坡;方长建;饶明航;谢伟;王波;白蜀珺;王靖 | 申请(专利权)人: | 中国建筑西南设计研究院有限公司 |
| 主分类号: | G06T7/10 | 分类号: | G06T7/10;G06T17/00;G06T3/00 |
| 代理公司: | 四川力久律师事务所 51221 | 代理人: | 韩洋 |
| 地址: | 610000 四*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 深度 比较法 剖面 裁剪 生成 方法 | ||
1.一种基于深度比较法的剖面看线的裁剪与生成方法,其特征在于,包括以下步骤:
S1,获取三维实体的数据,所述数据包括该三维实体的边线和三角面片数据;所述三维实体的数量为一个或多个;
S2,创建具有长度、宽度和高度的剖视范围;
S3,利用视图投影变换联合矩阵,一方面将该三维实体的边线向所述剖视范围进行投影变换,得到具有深度参数的二维投影线;另一方面将该三维实体的三角面片向所述剖视范围进行投影变换,得到具有深度参数的二维投影三角面片;
S4,基于深度参数判断各三角面片与边线的遮挡情况,用该三角面片的二维投影三角面片对该边线的二维投影线被遮挡的部分进行裁剪,得到裁剪后的二维投影线;
S5,对该三维实体所有边线的二维投影线裁剪完成后,将所有裁剪后的二维投影线进行汇总,得到剖面看线;
步骤S4具体包括:
S41,用二维投影线的起、终点坐标与二维投影三角面片的范围参数进行快速判断,过滤掉与该二维投影线无相交的二维投影三角面片,得到参与该二维投影线裁剪的二维投影三角面片TF;
S42,构建二维投影三角面片TF的UV坐标系,获取二维投影线的起点pSt和终点pEnd在二维投影三角面片TF上的UV坐标,分别为(u1,v1)和(u2,v2);起点pSt和终点pEnd均包含深度参数pSt.Z和pEnd.Z;
S43,当u1≥0且v1≥0且u1+v1≤1且u2≥0且v2≥0且u2+v2≤1,即起点pSt和终点pEnd在二维投影三角面片TF上时,求取该二维投影三角面片TF上位于pSt处与pEnd处对应的深度值Z1、和Z2,并按照以下几种情况进行裁剪:
S431,当Z10且Z20时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S432,当Z1≥pSt.Z且Z2≥pEnd.Z时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S433,当Z1pSt.Z且Z2pEnd.Z时,则该二维投影三角面片TF上对应的重叠线对二维投影线的全长都造成了遮挡,二维投影线pStpEnd被裁剪后无投影线返回,但当Z1,Z2中存在小于0的情况时,需扣除掉重叠线上Z值小于0的区段;
S434,当Z1≥pSt.Z且Z2pEnd.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了二维投影线靠pEnd端的部分区段,将二维投影线靠pEnd端被遮挡的部分区段裁剪掉,但当Z2小于0时,需扣除掉重叠线上Z值小于0的区段;
S435,当Z1pSt.Z且Z2≥pEnd.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了二维投影线靠pSt端的部分区段,将二维投影线靠pSt端被遮挡的部分区段裁剪掉,但当Z1小于0时,需扣除掉重叠线上Z值小于0的区段;
S44,当u1≥0且v1≥0且u1+v1≤1且u20或v20或u2+v21,即起点pSt在二维投影三角面片TF上且终点pEnd在二维投影三角面片TF外部时,求取该二维投影线与该二维投影三角面片TF边线的交点pC(uC,vC),根据(u1,v1)和(uC,vC)求得二维投影三角面片TF上pSt处与pC处对应的深度值Z1、和Z2,并按照以下几种情况进行裁剪:
S441,当Z10且Z20时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S442,当Z1≥pSt.Z且Z2≥pC.Z时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S443,当Z1pSt.Z且Z2pC.Z时,则该二维投影三角面片TF上对应的重叠线对pStpC连线的全长都造成了遮挡,二维投影线pCpEnd作为被TF裁剪后的投影线返回,但当Z1,Z2中存在小于0的情况时,需扣除掉重叠线上Z值小于0的区段;
S444,当Z1≥pSt.Z且Z2pC.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了pStpC连线靠pC端的部分区段,将pStpC连线靠pC端的部分被遮挡的区段裁剪掉,但当Z2小于0时,需扣除掉重叠线上Z值小于0的区段;
S445,当Z1pSt.Z且Z2≥pC.Z时,则三角面片上对应的重叠线遮挡了pStpC连线靠pSt端的部分区段,将pStpC连线靠pSt端的部分被遮挡的区段裁剪掉,但当Z1小于0时,需扣除掉重叠线上Z值小于0的区段;
S45,当u10或v10或u1+v11且u2≥0且v2≥0且u2+v2≤1,即终点pEnd在二维投影三角面片TF上且起点pSt在二维投影三角面片TF外部时,求取该二维投影线与该二维投影三角面片TF边线的交点pC(uC,vC),根据(u1,v1)和(uC,vC)求得二维投影三角面片TF上pEnd处与pC处对应的深度值Z1、和Z2,并按照以下几种情况进行裁剪:
S451,当Z10且Z20时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S452,当Z1≥pSt.Z且Z2≥pC.Z时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S453,当Z1pEnd.Z且Z2pC.Z时,则该二维投影三角面片TF上对应的重叠线对pEndpC连线的全长都造成了遮挡,将该pEndpC连线的全长裁剪掉,但当Z1,Z2中存在小于0的情况时,需扣除掉重叠线上Z值小于0的区段;
S454,当Z1≥pEnd.Z且Z2pC.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了pEndpC连线靠pC端的部分区段,将pEndpC连线靠pC端的部分被遮挡的区段裁剪掉,但当Z2小于0时,需扣除掉重叠线上Z值小于0的区段;
S455,当Z1pEnd.Z且Z2≥pC.Z时,则三角面片上对应的重叠线遮挡了pStpC连线靠pSt端的部分区段,将pEndpC连线靠pEnd端的部分被遮挡的区段裁剪掉,但当Z1小于0时,需扣除掉重叠线上Z值小于0的区段;
S46,当u10或v10或u1+v11且u20或v20或u2+v21,即起点pSt和终点pEnd均在二维投影三角面片TF外时,根据(u1,v1)和(u2,v2)求取该二维投影线与该二维投影三角面片TF三边的交点pC1和pC2,根据pC1和pC2的UV坐标可以求得二维投影三角面片TF上pC1处与pC2处对应的深度值Z1、和Z2,并按照以下几种情况进行裁剪:
S461,当Z10且Z20时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S462,当Z1≥pC1.Z且Z2≥pC2.Z时,则二维投影线pStpEnd作为被裁剪后的投影线返回;
S463,当Z1pC1.Z且Z2pC2.Z时,则该二维投影三角面片TF上对应的重叠线对pC1pC2连线的全长都造成了遮挡,二维投影线pStpC1与pC2pEnd作为被裁剪后的投影线返回,但当Z1,Z2中存在小于0的情况时,需扣除掉重叠线上Z值小于0的区段;
S464,当Z1≥pC1.Z且Z2pC2.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了pC1pC2连线靠pC2端的部分区段,将pC1pC2连线靠pC2端被遮挡的部分区段裁剪掉,但当Z2小于0时,需扣除掉重叠线上Z值小于0的区段;
S465,当Z1pC1.Z且Z2≥pC2.Z时,则该二维投影三角面片TF上对应的重叠线遮挡了pC1pC2连线靠pC1端的部分区段,将pC1pC2连线靠pC1端被遮挡的部分区段裁剪掉,但当Z1小于0时,需扣除掉重叠线上Z值小于0的区段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建筑西南设计研究院有限公司,未经中国建筑西南设计研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210830419.4/1.html,转载请声明来源钻瓜专利网。





