如何构造切.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何构造切

如何构造切面 由输入的区域点个数来决定构成切面的情况 由于一个切面至少要有3个点组成,因此当区域点的个数小于2时,此时构不成切面。 当区域点的个数等于2时,构成一个切面。(线) 当第一个区域点与最后一个区域点在同一面上时,切面数在原来的基础上加一;否则,切面数在原来的基础上加二。 当切面数为1时,由输入的两个区域点的X Y坐标构成切面的两个点的X Y坐标,而两点的Z坐标都记为0。切面的第3个点的坐标由两个区域点的X Y坐标计算得到。第3个点的X坐标是由两个区域点的X坐标和的中点求得,第3个点的Y坐标由两个区域点的Y坐标和的中点求得,第3个点的Z坐标由两个区域点的长度求得。 当切挖巷道为直巷道时,当切面数大于1时,循环每个切面,对切面3个点的赋值还如当切面数为1时的计算方法。只是要判断相邻平面是否相同,如果相同,继续执行循环;如果不同,对切面继续赋值。 当确定最后两个切面(底面和顶面)时,切面当做底面时,由输入的两个区域点的X Y坐标构成切面的两个点的X Y坐标,而两点的Z坐标都记为z[0](切挖区域的最低值)。切面的第3个点的坐标由两个区域点的X Y坐标计算得到。第3个点的X坐标是由两个区域点的X坐标和的中点值加上两个区域点的Y值差求得,第3个点的Y坐标由两个区域点的Y坐标和的中点值加上两个区域点的X值差求得,第3个点的Z坐标为z[0](切挖区域的最低值)。 当切面作为顶面时,切面3个点的X Y坐标与切面当作底面的X Y坐标求法相同,只是3个点的Z坐标都记为z[1](切挖区域的最低值)。 当切挖巷道为斜巷道时,当确定最后两个切面(底面和顶面)时,与直巷道会有所不同。 先判断每个四面体是否在切挖区域内 构成整个地质体的每个四面体构成一个链表,循环对每个四面体进行判断,看是否在切挖区域内 判断的方法是:从构成整个地质体的第一个四面体判断开始,构成四面体的每个点的Z值与切挖区域的最低值和最高值进行比较,如果大于切挖区域的最高值,则判断该点在切挖区域的上侧;如果小于切挖区域的最低值,则判断该点在切挖区域的下侧。循环判断四面体的每个点,如果四个点都在切挖区域的上侧或是四个点都在切挖区域的下侧,则该四面体不显示。第一个四面体判断结束,判断链表的第二个四面体,直至整个链表的所有四面体判断结束。 判断一个点是否在任意多边形区域内 函数IsPointRgn作用:判断一个点是否在任意多边形区域内,即p(x,y)在p_List[0,PNum]中? (2D-XY) //参数:(p.x,p.y)是点的坐标,多边形顶点的坐标在结构数组*p_List中,PNum-边界点数, //返回:-1-P在外,1-P在内,2- on edge; 0-P在顶点上 如果四面体的四个点都在切挖区域内,则该四面体可见;如果四面体的四个点都在切挖区域外,则该四面体不可见。 判断每个四面体与切面的关系 四面体被切但无顶点在平面上(与切面相交为三角形) 平面两侧四面体的顶点数不等与切面相交为三角形 切面一侧一个顶点 切面另一侧三个顶点 四面体与切面的交点 切面一侧一个顶点与切面另一侧三个顶点中任意一个顶点 求与切面的交点 知道区域内的任意三点可以求出切面的方程 空间任意三点坐标(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*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 如果(oldP[k]-pos*m_PosorNeg)0 则oldP[k]-pos0 如果(oldP[k]-pos*m_PosorNeg)0 则oldP[k]-pos0 生成新四面体 (结合所画图) 四面体被切但无顶点在平面上(与切面相交为四边形) 求四面体与切面的交点,该方法与切面相交为三角形时一样,求两点是否与切面相交,如果相交,返回true, 并把H置为交

文档评论(0)

ybcm963 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档