导航:首页 > 源码编译 > 节点共面的算法

节点共面的算法

发布时间:2022-08-01 11:41:16

⑴ 空间线段对求交算法

下面先介绍一种空间线段对求交算法:

图6.5 界线相交特性

三维地质建模方法及程序实现

空间两条线段的求交运算是三维地质建模中使用频率最高、算法最简单,同时也是最容易出现计算误差,并导致后续建模失败的数值运算之一。导致计算失败的主要原因是计算精度与浮点数问题。例如,有3条线段,两两之间的交点距离非常近但不重合,如果保持3个交点不变就会降低后续建模中曲面网格的质量;如果降低精度要求,将3个交点合并成一点,就会影响与其他线段的相交关系。另外,浮点数问题在线段平行判断、三点共线判断、四点共面判断都会遇到。在处理这类问题时,可以采用一个原则,即先精后粗,也就是说在线段对求交时尽量精确,等所有线段对求交结束后可以对距离很近的点进行合并处理。

⑵  灵活约束的四面体化

研究几何模型所固有的物理特性的基础步骤是网格化。基于简单形体(即二维的三角形和三维的四面体)的结构化网格对自然物体的建模非常有意义,因为它们对填充由简单边界(即二维情形中的边和三维情形中的三角形)所定义的区域的物性非常灵活。

自从提出了三角剖分一个多边形的O(n)最优算法(Chazelle,1991)后,从计算几何学观点来看,二维情况现在已可以很好地处理了。二维情况的其他重要算法有Chew(1987)的约束Delaunay三角剖分方法和Ruppert(1993)的限制纵横比三角剖分方法,前者给出一种来考虑给定连接关系的点集的三角剖分方法,后者可提供一个具有“好”的元素的网格。

所以,给定一个可在其端点彼此相交的边界集合定义的二维模型,便可能利用三角形来填充所定义的全部区域。图2.13显示一个二维三角剖分模型的例子。

图2.13二维模型的三角形化(Joel Conraud,1995)

●输入角点;——输入边界

如果所有给定的边界都在剖分结果中出现,这样一个模型的三角剖分被称作约束三角剖分;而如果一些边界被分割后出现在剖分结果中,则被称为匹配三角剖分(即在这些边界上增加称为“Steiner点”的一些点,用来分割它们)。为了考虑特定的连接,Chew修改了对Delaunay三角剖分的“空球标准”的定义,在文献(Nackman and Srinivason,1991)中提出了一种在输入的边界上增加一些点,用来实现一种保持Delaunay特点的匹配三角剖分方法。

三维情况。三维情况要难得多,所有在二维中的一系列命题不再有效:

●有n条边的多边形的三角剖分有(n-2)个三角形;但一个多面体的四面体剖分具有不同数目的剖分结果。

●所有的多边形都能被三角剖分;但有些多面体,如果其边界拓扑不改变就不能被四面体填充;换句话说,不能对它们进行约束三维三角剖分,而只能进行匹配三维三角剖分的计算。

●二维点集的Delaunay三角剖分对所有可能的三角剖分的最小角最大化;但三维点集的Delaunay三角剖分做不到。

文献(Ruppert and Seidel,1992)对非凸多面体的四面体化所涉及的困难有一个更详细的描述。因此,如果有人想对一个涉及节点、边和三角形的几何结构四面体化,一般情况下需要增加Steiner点,它们的数目可能是很大的,导致一个复杂得多的四面体化。本节给出一个类似于匹配三维三角剖分的方法,称为灵活约束的四面体化方法,这将大大减少增加点的数目。

问题。首先给出一些定义,然后描述我们感兴趣的问题。

定义1:我们定义一个基于简单边界的模型M为三维空间中三角剖分定义的曲面的集合。曲面之一是闭合的,并且确定了我们研究的区域,而其他曲面有的确定了子区域,有的确定了不连续体(即面具有不闭合的边界)。它们可以沿着三角形边界彼此相交。

定义2:T是M四面体化的点集,当且仅当M的每个顶点是T的四面体顶点。

定义3:T是M的一个约束四面体化,当且仅当每个三角形(边和顶点)是T的四面体表面(边和顶点)。正如上面所写的,不总是有一个与模型相联系的四面体化。

定义4:T是M的一个匹配四面体化,当且仅当M的每个三角形:

●可以是T的四面体的表面;

●或者与T中四面体的表面有一个相关部分,这种情况意味着已增加了Steiner点。

从一个四面体化点集开始,怎样修改使它成为M的一个可接受的四面体网格呢?

初步观察。这个工作从以下观察开始:

我们想对图2.14所示的锥体作四面体化,在这个棱锥的表面,有三角形ABD、ABC。如果我们使用Delaunay三维点集三角剖分算法(例如文献Watson,1981中的方法)产生一个初始解,则由于d(C,D)<d(A,B)(在一个Delaunay三角剖分中,对于存在4个共面点的情况,生成的两个三角形遵循对角线最短原则),在点A和B之间连接的情况不会出现在棱锥的表面拓扑中,因此也就不会出现在四面体剖分网格中。

图2.14锥体的Delaunay四面体化(Joel Conraud,1995)

如果我们忽略在共面区域这两种三角剖分的不同之处,则生成的两个四面体的边界定义了由六个输入三角形描述的同一个多面体。所以,即使拓扑结构不同,几何形态是相同的。在一个灵活约束的四面体化方法中,上面的四面体网可被视作输入的可接受的近似。

有时,一个仅基于模型节点剖分而成的四面体网格中的三角形,与一个基于边界剖分而成的三角形网格不匹配。在研究这种情况时,则可发现两种另外的方案:

(1)虽然,边界三角形与四面体网格边界不相交,但几何形状不相似。如果图2.15中的点D沿ACB面的垂线向远离E的方向移动,这个锥体被变形为一个凹多面体。按以前的情形生成两个四面体,但这时在输入三角形和四面体形成的多面体表面之间出现一个间隙。在图2.15中的截面上可看出问题。

图2.15(a)改变D的位置(Joel Conraud,1995)

图2.15(b)(E,D,C)被两个四面体共用(Joel Conraud,1995)

(2)边界三角形与一个四面体边界相交。在图2.16的例子中,三角形(C,B,E)与四面体的边(A,D)相交。要么在交点处插入一个点,要么进行网格的局部更新:可用四面体(A,B,C,E)和(D,E,B,C)代替四面体(A,D,C,E)、(A,D,E,B)、(A,D,B,C),产生一个具有8个输入三角形的网格作为四面体的表面,但该表面不再是Delaunay的了。

图2.16(a)由8个三角形确定的多面体(Joel Conraud,1995)

图2.16(b)(A,B,C,D,E,F)的Delaunay四面体化(Joel Conraud,1995)

灵活约束四面体化的目标是仅当上述的第二种情况出现时,去组合测试模型的四面体化的点集并局部修改它。对付第一种情况(不论移不移D点),则用前面的方法,通过局部网格修改或增加点来处理(George等,1991)。

下面,我们给出灵活约束四面体化的如下定义:

定义5:T是一个灵活约束四面体化,当且仅当M的每个三角形:

●可以是T的一个四面体表面;

●或者与T中四面体的表面有一个重合部分;

●或者属于一组n个相连的三角形GTgr1,通过它我们可以联系一组n个四面体表面GTetra,这组四面体与相互连接的三角形组有相同的表面。

也就是说,灵活约束的四面体化只要求约束面与四面体表面的一部分几何上重合,拓扑可以不同。

下面描述从一个模型的四面体化点集来构建一个灵活约束四面体化的算法。

算法。从一个简单边界的模型M和一个用M中的点通过无约束四面体剖分形成的四面体集TPoint Set(M)开始,算法分为四步:

(1)计算无约束四面体剖分TPoint Set(M)中与M中的三角形不匹配的三角形集合SUnMatched

for每个M中的t

if non-matched(t,M,TPoint Set)/*用判断函数判断*/

then SUnMatched←SUnMatched∪{t}

endif

endfor

这里non-matched()函数定义如下:

(t是基于三个顶点:v1,v2和v3的三角形)

TetraFaces←φ

If edge(v1,v2)不存在于TPoint Set中Retur false

else TetraFaces←TetraFaces U tetrafaces(edge(v1,v2))

If edge(v2,v3)不存在于TPoint Set中Return false

else TetraFaces←TetraFaces U tetrafaces(edge(v2,v3

If edge(v3,v1)不存在于TPoint Set中Return false

else TetraFaces←TetraFaces U tetrafaces(edge(v3,v1))

Return#TetraFaces=1

(2)将SUnMatched分为相连的三角形子集

SConnex←φ

for SUnMatched中的每个三角形t

Connex←{t和M中的邻近t的三角形以及SUnMatched的成员}

SUnMatched←SUnMatchedConnex/*把找到的三角形从SUnMatched中去掉*/

SConnex←SConnex∪{Connex}/*把找到的三角形合并到SConnex中去*/

endfor

(3)将每个SConnex的子集分为由边界既存在于M又存在于TPoint Set约束的三角形的子集

SBoundedConnex←φ

for SConnex中的三角形Connex的每一个集合

for Connex的每个三角形t

BoundedConnex←{t和Connex中邻近t的三角形以及既在M中又在TPoint Set没有共享边界的三角形}

Connex←ConnexBoundedConnex/*把找到的三角形从Connex中去掉*/

SBoundedConnex←SBoundedConnex∪{BoundedConnex}

/*把找到的三角形合并到SBoundedConnex中去*/

endfor

endfor

(4)对于每个子集BoundedConnex,其数据项的个数与基于同一边界的四面体表面集合的数据项个数进行对比

for SBoundedConnex的每一个三角形集合BoundedConnex do

① 计算集合edges(BoundedConnex,M)和edges(BoundedConnex,TPoint Set

edges(BoundedConnex,M)←φ

edges(BoundedConnex,TPoint Set)←φ

BoundedConnexVertices←Vertices(BoundedConnex)

for BoundedConnexVertices的每一个顶点vdo

for基于v的TPoint Set的每一条边e do

opposite=opposite(e,v)

if opposite是BoundedConnexVertices的成员

then edges(BoundedConnex,TPoint Set)←

edges(BoundedConnex,TPoint Set)Ue

ifM中在e和opposite之间存在边

then edges(BoundedConnex,M)←

edges(BoundedConnex,M)Ue

endif

endif

endfor

endfor

② 计算共享edges(BoundedConnex,M)的四面体表面集合TetraFaces

TetraFaces←φ

for edges(BoundedConnex,M)的每一个边e do

for基于e的TPoint Set的每一个四面体表面tfdo

for i from 1 to 3 do

neighber_edge←edge(tf,i)

if neighber_edge≠e

and member of edges(BoundedConnex,M)

then TetraFaces←TetraFaceUtf

endif

endfor

endfor

endfor

③ 计算在BoundedConnex的边界上的边集合BorderEdges

BorderEdges←φ

for BoundedConnex的每一个三角形t do

for i from 1 to 3 do

edge←edge(t,i)

trgl←neighber(t,i)

if trgl不是BoundedConnex的成员(或不存在)

then BorderEdges←BorderEdgesUedge

endif

endfor

endfor

④ BorderEdges定义一条闭合曲线,TetraFaces的某些元素在其外部,删除它们

for TetraFaces的每一个四面体表面tf do

for i from 1 to 3 do

e←edge(tf,i)

if e不是BorderEdges的成员

then

for基于e的每一个四面体表面tf′ do

iftf′≠tf并且tf′为TetraFaces成员

then TetraFaces

←TetraFaces

{tf′以及TetraFaces中tf′的邻接面

直到遇到BorderEdges的边界)

endif

endfor

endif

endfor

endfor

⑤ 对比#TetraFaces和#BoundedConnex

if#TetraFaces=BoundedConnex

then OK

else局部网格修改(或增加Stiener点或同时进行)

endif

endfor

下一节我们将给出上述实现的结果。

实验结果。上面所述算法的一个C++版本已被结合到GOCAD软件中,GOCAD软件是一个自然物体的三维建模工具,特别适用于石油工业中地下情况的建模。

从模型点集的一个Delaunay三维三角剖分(在浮点运算中使用Watson的算法。由Schroeder等,1990和George等,1992中所提到了同类型检查方法使得数据结构的有效性在增加点后保持不变)开始,上一节的组合算法使我们可以鉴别在TPoint Set和M之间的间隙。此时,还未应用上一节后面所讲的局部网格修改。在后处理过程中,通过在区域内增加一些点来使最终的网格可用。

基本的例子。如果M被简化为定义一个立方体的闭合三角剖分曲面,立方体的每个面分成两个三角形,我们可得到以下结果(图2.17)。

图2.17正方体的四面体化(Joel Conraud,1995)

小窗口中显示的四面体化的网格,元素在其中心周围收缩,以便让用户看到结构内部。这个立方体的三个可见面的三角剖分,在约束面上和四面体边界上是不同的。但两个对象定义的几何形体是一样的。

实例。彩色图版1.1是一个描绘具有超过8000个节点和17000个三角形的地质体的简单三角剖分曲面。如果这个面的网格质量好的话,是不需要对四面体网格进行修改的。

彩图版1.2中,M定义一个闭合的曲面(下面没显示),它和另外三个曲面定义四个地质层位。

彩色图版2.1表示四面体网格的一个切片,我们可以看到三个曲面定义的界面的“伤疤”。

在具有256M的HP9000/800 K200上实现第二、第三个例子需要10min和12min的CPU时间,Delaunay三维三角剖分和M的三角形与四面体表面相比较花费的时间不及总时间的1/4。

讨论。灵活约束的四面体化方法对地下情况建模的目的来说,提供了一个可接受的基于边界模型的近似:在某些情况下,以用尽可能少的元素得到四面体化网格比考虑全部的三角形更重要。如果有人想在表面三角形和四面体TPoint Set的边界表面之间得到1对1的关联,则有必要从TPoint Set中提取约束和“灵活约束”的元素,从而得到一个新的基于边界的模型M′,它与M几何形状相同,但拓扑不同。第二类型灵活约束改造的TPoint Set是一个M′约束的四面体化。

下一步工作将包括比较灵活约束四面体化方法与在TPoint Set中与M不匹配的每个三角形增加Steiner点的方法的计算效率比较。

⑶ 怎样证明3个向量共面

设A向量(X1,Y1,Z1),B向量(X2,Y2,Z2),C向量(X3,Y3,Z3)。如果你能证明:X1:Y1:Z1=X2:Y2:Z2=X3:Y3:Z3,那么这三个向量就是共面的。

或者证其中一个可以由另外两个线性表示,例如:证存在实数x、y使得a=x·b+y·c。

或者需证其三个向量的混合积为0,即可。

(3)节点共面的算法扩展阅读:

定理:如果两个向量a.b不共线,则向量p与向量a.b共面的充要条件是存在有序实数对(x.y),使p=xa+yb。

推论:空间一点P位于平面MAB内的充要条件是存在有序实数对x.y,使MP=xMA+yMB {MP MA MB 都表示向量}或对空间任一定点O,有OP=OM+xMA+yMB {OP,OM,MA,MB表示向量}

⑷ 已知向量α=i+aj-3k,β=ai-3j+6k,γ=-2i+2j+6k,若α、β、γ共面,求a求算法...

共面则行列式为0
行列式
1 a -3
a -3 6
-2 2 6
= -6 (1+a)(2+a)
所以 a=-1 或 a=-2

⑸ ansys软件如何看出二个面是否共面了

显示云图和节点。
1、在ansys软件中如果两个面共面的话会显示云图以及共面的节点。
2、在ansys的面相加中只能对共面的图元进行操作。

⑹ ansys 中两个物体连接处的网格怎么共节点

两个体volume必须共面才是连通的,否则是互相独立的两个体。在热分析中,热流不能通过两个独立的体的界面。
要两个体共面很简单:vglue命令。vovlap也有类似作用,适用于不同场合。

⑺ pkpm示板结点不共面怎么回事

摘要 网上找到的处理方法,希望能解决您的问题 ——

⑻ 关于三向量共面的计算例题

附上三阶行列式的算法,此题具体的计算过程就略了,这里行列式的结果是a的一元二次方程6a^2+18a+12.

⑼ 初中物理节点法

初中物理光的反射定律是重要的知识点之一,通过光的反射定律了解生活中常见的物理现象,根据光的反射定律作光路图和光的反射实验题是初中物理光的反射两大应用题型。初中物理光的反射知识点一览:初中物理光的反射概念和分类;初中物理光的反射定律极其四大特性和作光路图步骤,光的反射练习题。
一、初中物理光的反射概念
光的反射定律概念:光在两种物质分界面上改变传播方向又返回原来物质中的现象,叫做光的反射。对人类来说,光的最大规模的反射现象,发生在月球上。人们知道,月球本身是不发光的,它只是反射太阳的光。因此光的反射无处不在并发生在人们身边。
二、初中物理光的反射分类
1)镜面反射:平行光线射到光滑表面上时反射光线也是平行的,这种反射叫做镜面反射。
2)漫反射:平行光线射到凹凸不平的表面上,反射光线射向各个方向,这种反射叫做漫反射。
3)镜面反射与漫反射物理现象:表面平滑的物体,易形成光的镜面反射,形成刺目的强光,反而看不清楚物体。通常情况下可以辨别物体之形状和存在,是由于光的漫射之故。日落后暂时能看见物体,乃是因为空气中尘埃引起光的漫射之故。无论是镜面反射或漫反射,都需遵守反射定律。
三、初中物理光的反射定律(重点):
1.反射角等于入射角,且入射光线与平面的夹角等于反射光线与平面的夹角。
2.反射光线与入射光线居于法线两侧且都在同一个平面内。
3.在光的反射现象中,光路是可逆的。 四、根据光的反射定律作光路图(常考知识点):
先找出入射点,过入射点作垂直于界面的法线,则反射光线与入射光线的夹角的角平分线即为法线。若是确定某一条入射光线所对应的反射光线,则由入射光线、法线确定入射角的大小及反射光线所在的平面,再根据光的反射定律中反射光线位于法线的另一侧,反射角等于入射角的特点,确定反射光线。
五、初中物理光的反射的四大特性(难点):
1.共面 法线是反射光线与入射光线的角平分线所在的直线。
2.异侧 入射光线与反射面的夹角和入射角的和为90°
3.等角 反射角等于入射角。反射角随入射角的增大而增大,减小而减小。
4.可逆 光路是可逆的
六、初中物理光的反射练习题(包含实验题):
1、初中物理光的反射选择题
1.电视机遥控器可以发射一种不可见光,叫做红外线,用它来传递信息,实现对电视机的遥控。不把遥控器对准电视机的控制窗口,按一下按钮,有时也可以控制电视机,这是利用( ) A.光的直线传播 B.光沿曲线传播 C.光的反射 D.光的可逆性
2.光污染已成为21世纪人们关注的问题。据测定,室内洁白、平滑的墙壁能将照射在墙壁上的太阳光的80%反射,长时间在这样刺眼的环境中看书学习会感到很不舒服。如果将墙壁做成凹凸不平的面,其作用之一可以使照射到墙壁上的太阳光变成散射光,达到保护视力的目的,这是利用了光的( ) A.直线传播 B.漫反射 C.镜面反射 D.反射
3.如图1所示,一束光线射向平面镜,那么这束光线的入射角和反射角的大小分别为( ) A.40° 40° B.40° 50° C.50° 40° D.50° 50° 4.下列说法中不正确的是( )
A.光线垂直照射在平面镜上,入射角是90°
B.漫反射也遵守反射定律
C.反射光线跟入射光线的夹角为120°,则入射角为60°
D.太阳发出的光传到地球约需500s,则太阳到地球的距离约为1.5×108km
5.小聪同学通过某种途径看到了小明同学的眼睛,则小明同学( ) A.一定能看到小聪同学的眼睛 B.一定不能看到小聪同学的眼睛 C.可能看不到小聪同学的眼睛 D.一定能看到小聪同学的全身 2、初中物理光的反射应用题
1.(初中物理光的反射作图题)钱包掉到沙发下.没有手电筒,小明借助平面镜反射灯光找到了钱包.图中已标示了反射与入射光线,请在图中标出平面镜,并画出法线。
2.(初中物理光的反射实验题)如图所示,是陈涛同学探究光反射规律的实验.他进行了下面的操作:
(1)如图1甲,让一束光贴着纸板沿某一个角度射到0点,经平面镜的反射,沿另一个方向射出,改变光束的入射方向,使∠i减小,这时∠r跟着减小,使∠ i增大,∠r跟着增大,∠r总是_______∠i,说明__________
(2)如图1乙,把半面纸板NOF向前折或向后折,这时,在NOF上看不到________-,说明
3、初中物理光的反射实验题________。 参考答案: 1、选择题:1.C 2.B 3.D 4.A 5.A
2、应用题:1.(如图所示)
2.(1)影子的形成:光沿直线传播;(2)水中倒影:光的反射 七、生活中的光的反射物理现象:
1、我们每天都照的镜子。
2、路口放置的凸面镜。
3、汽车的观后镜。
4、我们能看见物体,物体反射了光进入我们的眼睛。 5、太阳能加热器(太阳灶)
6、潜望镜。
7、反射式的望远镜。
上海市中考物理和化学合卷,物理分值为90分。光的折射对比光的直线传播和光的反射来说,则有难度。同学们需要掌握光的折射作图题和实验题相关知识点。昂立新课程针对初中各个科开设如下课程:
以上特色课程与初中学科教材匹配,授课形式分为面授和网课,面授课程班型设置不同,有1对1,1对3,15人班,30人班等形式,上海市各区授课时间也不同,具体课程详情请拨打官网热线4008-770-970咨询。

阅读全文

与节点共面的算法相关的资料

热点内容
java多余的空格 浏览:83
手机软件连接云服务器 浏览:888
内圆弧编程实例 浏览:48
饼干pdf 浏览:423
kylin源码大全 浏览:687
android构建工具 浏览:422
zigy命令行选项不兼容 浏览:561
加密系统能录屏吗 浏览:190
安卓淘宝点进去跳链接如何关闭 浏览:786
u盘加密了手机读取不了 浏览:947
oracle11g启动命令 浏览:931
怎么把视频传到自己的文件夹 浏览:700
福州电动车在哪个app上摇号 浏览:818
礼书PDF 浏览:667
什么app看本子 浏览:394
如何学好编译语言 浏览:591
平面编程和切削 浏览:704
phpemoji表情符号 浏览:778
IBM云平台shor算法 浏览:577
程序员当乙方 浏览:519