如何构造切面.doc

上传人:公**** 文档编号:559790436 上传时间:2022-10-10 格式:DOC 页数:4 大小:40.50KB
返回 下载 相关 举报
如何构造切面.doc_第1页
第1页 / 共4页
如何构造切面.doc_第2页
第2页 / 共4页
如何构造切面.doc_第3页
第3页 / 共4页
如何构造切面.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何构造切面.doc》由会员分享,可在线阅读,更多相关《如何构造切面.doc(4页珍藏版)》请在金锄头文库上搜索。

1、如何构造切面由输入的区域点个数来决定构成切面的情况由于一个切面至少要有3个点组成,因此当区域点的个数小于2时,此时构不成切面。当区域点的个数等于2时,构成一个切面。(线)当第一个区域点与最后一个区域点在同一面上时,切面数在原来的基础上加一;否则,切面数在原来的基础上加二。当切面数为1时,由输入的两个区域点的X Y坐标构成切面的两个点的X Y坐标,而两点的Z坐标都记为0。切面的第3个点的坐标由两个区域点的X Y坐标计算得到。第3个点的X坐标是由两个区域点的X坐标和的中点求得,第3个点的Y坐标由两个区域点的Y坐标和的中点求得,第3个点的Z坐标由两个区域点的长度求得。当切挖巷道为直巷道时,当切面数大

2、于1时,循环每个切面,对切面3个点的赋值还如当切面数为1时的计算方法。只是要判断相邻平面是否相同,如果相同,继续执行循环;如果不同,对切面继续赋值。当确定最后两个切面(底面和顶面)时,切面当做底面时,由输入的两个区域点的X Y坐标构成切面的两个点的X Y坐标,而两点的Z坐标都记为z0(切挖区域的最低值)。切面的第3个点的坐标由两个区域点的X Y坐标计算得到。第3个点的X坐标是由两个区域点的X坐标和的中点值加上两个区域点的Y值差求得,第3个点的Y坐标由两个区域点的Y坐标和的中点值加上两个区域点的X值差求得,第3个点的Z坐标为z0(切挖区域的最低值)。当切面作为顶面时,切面3个点的X Y坐标与切面

3、当作底面的X Y坐标求法相同,只是3个点的Z坐标都记为z1(切挖区域的最低值)。当切挖巷道为斜巷道时,当确定最后两个切面(底面和顶面)时,与直巷道会有所不同。先判断每个四面体是否在切挖区域内构成整个地质体的每个四面体构成一个链表,循环对每个四面体进行判断,看是否在切挖区域内判断的方法是:从构成整个地质体的第一个四面体判断开始,构成四面体的每个点的Z值与切挖区域的最低值和最高值进行比较,如果大于切挖区域的最高值,则判断该点在切挖区域的上侧;如果小于切挖区域的最低值,则判断该点在切挖区域的下侧。循环判断四面体的每个点,如果四个点都在切挖区域的上侧或是四个点都在切挖区域的下侧,则该四面体不显示。第一

4、个四面体判断结束,判断链表的第二个四面体,直至整个链表的所有四面体判断结束。判断一个点是否在任意多边形区域内函数IsPointRgn作用:判断一个点是否在任意多边形区域内,即p(x,y)在p_List0,PNum中? (2D-XY)/参数:(p.x,p.y)是点的坐标,多边形顶点的坐标在结构数组*p_List中,PNum-边界点数,/返回:-1-P在外,1-P在内,2- on edge; 0-P在顶点上如果四面体的四个点都在切挖区域内,则该四面体可见;如果四面体的四个点都在切挖区域外,则该四面体不可见。判断每个四面体与切面的关系四面体被切但无顶点在平面上(与切面相交为三角形)平面两侧四面体的顶

5、点数不等与切面相交为三角形 切面一侧一个顶点 切面另一侧三个顶点四面体与切面的交点 切面一侧一个顶点与切面另一侧三个顶点中任意一个顶点 求与切面的交点知道区域内的任意三点可以求出切面的方程空间任意三点坐标(X1,Y1,Z1)(X2,Y2,Z2)(X3,Y3,Z3)平面的一般方程为 AX1+BY1+CZ1+D=0 AX2+BY2+CZ2+D=0 AX3+BY3+CZ3+D=0 用大括号括起来求出A B C D的值A=( Y1*Z2+ Y2*Z3+ Y3*Z1)/(-Y3*Z2-Y2*Z1-Y1*Z3)B=(X3*Z2+X2*Z1+X1*Z3)/(-X1*Z2-X2*Z3-X3*Z1)C=(X1*

6、Y2+X2*Y3+X3*Y1)/(-X3*Y2-X2*Y1-X1*Y3)D=(X1*Y2*Z3+X2*Y3*Z1)/(X3*Y1*Z2-X3*Y2*Z1)/(-X2*Y1*Z3-X1*Y3*Z2) 注意修改格式将切面一侧一个顶点与切面另一侧的三个顶点的任意一个代入方程 如果相交求交点坐标 有问题 继续探讨cut_AbleTest切内体时cut_Able=0 cut_flag=1当切面的个数不为1时如果切底面 要重新判断新求交点的区域值获取新点的法向量来 提取切面三角形 参数m_PosorNeg传递过来的值为1 如果(oldPk-pos*m_PosorNeg)0 则oldPk-pos0如果(ol

7、dPk-pos*m_PosorNeg)pos=0 cut_flag=1当切面的个数不为1时如果切底面 要重新判断新求交点的区域值获取新点的法向量来if(cut_Able=0)/表示四面体的顶点在当前面的边端点/提取三角形面片(NewP0,NewP1,NewP2)和(NewP0,NewP2,NewP3)/生成新三角形判断是否添加新三角形生成新四面体 (结合所画图)四面体有一面在切面上,提取三角形首先判断切面两侧原四面体顶点的位置 四面体哪个顶点的位置不为0即为切面一侧一个顶点 其他三个顶点为切面上三个顶点通过cut_AbleTest函数来判断cut_Able如果是(cut_Able=0&cutb

8、ase=0),则判定并修改三角形顶点的域切内体 将旧点插入到点链表中生成新三角形 参数m_PosorNeg传递过来的值为1 如果(oldPk-pos*m_PosorNeg)0 则oldPk-pos0如果(oldPk-pos*m_PosorNeg)pos=0) 切内体 生成新四面体求交点(不在切面上两点与切面的交点)如果切面大于2 判定并修改三角形顶点的域切内体 当切面不等于1时,求新点与区域位置关系提取新三角形 生成新四面体(结合所画图)以上为与切面相交的实体处理 判定当前原始四面体与切面相交的三角形处理三角形被切但没有顶点在平面上切面一侧一个顶点 切面一侧两个顶点求交点(切面一侧一个顶点分别

9、与切面另一侧的两个顶点和切面求交点)求新点与区域位置关系 2次切不是底面切都在域顶点处判定切去多余三角形原切面线在三角形内判断原切面线是否在k点三角形一侧如果原切面线在k点三角形一侧 查当前三角形的下一个三角形是否与恢复域点相同如果原切面线不在k点三角形一侧 判断三角形的哪一个顶点多余 查当前三角形的下一个三角形是否与恢复域点相同以上为cutbase=0如果cutbase不为0 看三角形某点的位置如果小于0生成新三角形切面下的sjx处理如果是顶面和底面切 有以下几种情况可以把多余三角形切去第一, 三角形的三个顶点都在区域外面;第二,三角形有两个顶点在区域外面,一个顶点在切面上;第三,三角形有一个顶点在区域外面,两个顶点在切面上。以上为对当前四面体生成的所有三角形判定切外体 对所有子四面体判定与切原体的情况是一样的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号