- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工程建筑学相关资料ENGINEERING ARCHITECTURE RELATED INFORMATION
工程建筑学相关资料
ENGINEERING ARCHITECTURE RELATED INFORMATION
PAGE
PAGE 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 。 如果平移并沿Z轴旋转坐标系,使X轴与圆盘在水平面投影的椭圆长轴一致且原心在椭圆中心点,则椭圆上一点的坐标可表示为: X=acosq =Rc (2-1-1) Y=bsinq =Rcosa sinq (2-1-2) q 为所求坐标点与原心连线与椭圆长轴的夹角(逆时针为正),也就是圆盘上所求坐标点与圆盘中心点连线与走向线的夹角。 再把坐标变换回来,即得到圆盘上任意一点的三维坐标,分别为: X=Xo+Xcosb +Ysinb (2-1-3) Y=Yo+Xsinb +Ycosb (2-1-4) Z=Zo-Rsinα (2-1-5) α为所求坐标点与圆盘中心点连线的倾角 α是这样确定的,圆盘与水平面的交线必为走向线,在图1中,OA为圆盘倾向方向半径,OB为与OA夹角为θ的一半径,两半径与水平面分别交于A点和B点,圆盘中心点O在水平面上的垂直投影点为O,AB即为走向线,OAB构成水平面。 因为OO与AO垂直、OB与BO垂直,并且OA垂直于AB(走向线与倾向线),所以有: OA=OO/sina (α为圆盘倾角) (2-1-6) OB=OO/sina (a 为OB与水平面夹角) (2-1-7) OA=OBsinq (2-1-8) 即: sina =sina sinq (2-1-9) 所以 Z=Zo-Rsina sinq (2-1-10) 2.1.2求圆盘在视面上的平面坐标 计算机屏幕是个平面,要把一个三维物体在屏幕上显示出来,首先要把该物体各点的三维坐标变换为平面坐标。相对于物体,屏幕是个投影
文档评论(0)