不连续面三维网络模型图形显示及处理(1)
2014-09-07 01:06
导读:理工论文论文,不连续面三维网络模型图形显示及处理(1)怎么写,格式要求,写法技巧,科教论文网展示的这篇文章是很好的参考:
摘要:通过不连续面三维网络模拟获得了在模拟空间范围内具一
摘要:通过不连续面三维网络模拟获得了在模拟空间范围内具一定概率分布特征的不连续面,这些不连续面的形态以圆盘形式表示,空间位置由圆盘中心点坐标及产状表示,大小由圆盘直径体现。
关键词:不连续面 三维网络 模型 图形显示 处理 通过不连续面三维网络模拟获得了在模拟空间范围内具一定概率分布特征的不连续面,这些不连续面的形态以圆盘形式表示,空间位置由圆盘中心点坐标及产状表示,大小由圆盘直径体现。根据模拟的结果可以进一步进行岩体稳定分析、岩体水
力学性质等研究,但首先要解决的问题就是三维网络模型的图形化,即可视性,没有图形,研究将难以深入。为了使得研究者能直观地看到不连续面的三维网络模型,并能对网络模型进行切割产生平面网络,进而对这些图形直接进行处理,比如输出等。笔者用c 语言在borland c 3.1集成环境下编写了一系列计算机程序,使得三维网络模型的应用更加方便可行。 1 程序组成 本模块由以下文件组成: 3dnet.cpp,3dnet.exe,3ddraw.cpp,3dnet.prj,3dtools.cpp,3dnet.dat,news.cpp,3ddraw.h,tools.cpp,3dtools.h,3dfront.cpp,news.h,hzktext,tools.h,hzf24,egavea.bgi,trip.chr。 在borlandc 3.1的集成环境中经工程文件编译,产生3dnet.exe可执行文件,在dos或windows环境下运行。 2 程序编制依据 2.1 结构面三维图形显示 2.1.1求圆盘上各点三维坐标 对于一个节理圆盘,沿其法向观测时其为一圆形,沿其走向观测时其为一线段,除此之外,从其他任何角度去观测,节理圆盘都为椭圆。c 语言所提供的绘椭圆函数ellipse()只能绘制长轴为x轴、短轴为y轴的椭圆,而无法实现任意形状椭圆的显示,因此还得从圆盘轨迹着手,用moveto()、lineto()等函数来实现。 由于三维网络模拟产生的节理是以具有中心点坐标、产状和直径的圆盘表示,所以圆盘上的每一点相对于模型来说都是确定的,都可以用一组三维坐标表达。 求圆盘各点的坐标是出于这样的出发点:对照图1,对于一圆盘,很容易得到其倾向线,以倾向方向的半径oa顺时针(或逆时针)旋转一角度,得到另一半径ob,求出b点的坐标,旋转角的取值由0°到360°,即得到该圆盘的轨迹。 对于倾角为α、倾向为β、半径为r中心点坐标为(xo,yo,zo)的节理圆盘,其投影到水平面上则为一椭圆,该椭圆长半轴沿走向方向(以下所说的走向均指服从右手法则,长度为a=r,短半轴沿倾向方向,长度为b=rcosa 。
(科教范文网http://fw.NSEAC.com编辑发布) 如果平移并沿z轴旋转坐标系,使x轴与圆盘在水平面投影的椭圆长轴一致且原心在椭圆中心点,则椭圆上一点的坐标可表示为: x'=acosq =rc (2-1-1) y'=bsinq =rcosa sinq (2-1-2) q 为所求坐标点与原心连线与椭圆长轴的夹角(逆时针为正),也就是圆盘上所求坐标点与圆盘中心点连线与走向线的夹角。 再把坐标变换回来,即得到圆盘上任意一点的三维坐标,分别为: x=xo+x'cosb +y'sinb (2-1-3) y=yo+x'sinb +y'cosb (2-1-4) z=zo-rsinα' (2-1-5) α'为所求坐标点与圆盘中心点连线的倾角 α'是这样确定的,圆盘与水平面的交线必为走向线,在图1中,oa为圆盘倾向方向半径,ob为与oa夹角为θ的一半径,两半径与水平面分别交于a'点和b'点,圆盘中心点o在水平面上的垂直投影点为o',a'b'即为走向线,o'a'b'构成水平面。 因为oo'与a'o'垂直、ob'与b'o'垂直,并且oa'垂直于a'b'(走向线与倾向线),所以有: oa'=oo'/sina (α为圆盘倾角) (2-1-6) ob'=oo'/sina ' (a '为ob与水平面夹角) (2-1-7) oa'=ob'sinq (2-1-8) 即: sina '=sina sinq (2-1-9) 所以 z=zo-rsina sinq (2-1-10) 2.1.2求圆盘在视面上的平面坐标 计算机屏幕是个平面,要把一个三维物体在屏幕上显示出来,首先要把该物体各点的三维坐标变换为平面坐标。相对于物体,屏幕是个投影面,该面位于观测者与被观测物体之间,如图2。对于表征物体的三维坐标系o_xyz,设观测点的位置为v,其直角坐标为(x,y,z),球面坐标为(ρ,θ,φ),显示屏与直线ov垂直,与v点的距离为d,对于物体的每一个点(x,y,z),都对应一个投影面平面坐标(sx,sy),该投影面坐标系方向如此定:当观测者的视线朝着o_xyz坐标系的坐标原点时,sx轴指向右侧,sy轴指向上方。 三维物体上的任一点(x,y,z)表示到二维显示平面上的平面坐标(sx,sy)为: sx=-xsinθ ycosθ (2-1-11) sy=-xcosθcosφ-ysinθcosφ zsinφ (2-1-12) 式中:θ为观测线在o-xy面上的投影线与x轴之间的夹角,φ为观测线与z轴的夹角。 2.1.3视区及象素 在c 图形方式下,计算