赤平投影岩质边坡稳定分析的VB解法518_第1页
赤平投影岩质边坡稳定分析的VB解法518_第2页
赤平投影岩质边坡稳定分析的VB解法518_第3页
赤平投影岩质边坡稳定分析的VB解法518_第4页
赤平投影岩质边坡稳定分析的VB解法518_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、赤羽霭岩质边坡稳定分析的vb最新解法解题思路说明与讲解云南省水利水电学校张华庆赤平投影岩质边坡稳定分析的vb最新解法云南省水利水电学校张华庆【摘要】赤平投影岩质边坡稳定分析用传统的手工方法来进行求解显得过于原始和低效,英缺 点主要有:需要携带吴氏网、透明纸、铅笔等作图工具;误差大、精确度差,结果不便于检验; 速度慢、效率低,不适合大量或批量计算;手工作图麻烦、耗时,作出的图谈不上标准、漂亮, 不便用于地质报告,且脱离吴氏网背景也不便阅读和使用,为此笔者利用vb6.0编写和开发了可视 化的赤平极射投影分析程序,该程序虽然很小(仅72kb),但却彻底解决了上述问题。【关键词】赤平投彫;visual

2、 basic;可视化编程;快捷、高效;方便、实用;电子化成图引言:水利水电工程地质教材在讲到岩质边坡稳定性分析时,由于涉及到大量的滑 面及滑面交线的产状(即倾向、倾角)等角距的求解和计算问题,因此不论是定性分析(如根据两结构面组合交线与边坡产状关系来判断边坡岩体是否稳定)述是定量计算(如岩质边坡双斜滑面x赤平投影分析application画结构面画坡面投影动画演示问题求解清屏退出问题,就必须利用赤平投 影方法来求解滑动体重 力分解过程中的各种夹 角),都离不开赤平极射 投影这个工具。利用这个 工具去解决问题的科学 性是毋庸置疑的,那就是 可以把复杂的空间问题 转化为平面问题来进行 处理,如若不

3、然,就只有* 60957005707510654045508520652054 5113162023373246415651666277738884 -9 - 8 一-7_-7-.6_-.5=.5_-.4_-.4_-.3.3_-.2_-.2|一-.0.u80 3 0 30 80 30180 ao 30 80 aolao 3 0 ao ao 30 ao 30结构面1倾向.4e结构面1倾第:3(t/tw71s结构面交线产状:rh-j讒勰黑clear34.6°z29.6°通过制作空间模型来解决每一个与z有关的问题,或是利用空间解析几何来处理这些问题,显然这两种解决问题的方法都是够

4、烦琐的,有时其至是不可为的,因此赤平极 射投影方法不失为目前最好的方法。然而,赤平投影分析若用传统的手工方法来进行计算或求解的话,又显得过于原 始,远远跟不上时代的步伐,传统赤平投影作图解题方法的缺点主要是:需要携带 吴氏网、透明纸、铅笔等作图工具;误差大、精确度差,结果不便于检验;速度 慢、效率低,不适合大量或批量计算;手工作图不但麻烦、耗时,而且作出的图谈 不上标准和漂亮,难登大雅之堂,且脱离吴氏网背景也不便阅读和使用。为此笔者利用vb6.0编写和开发了可视化的赤平极射投影分析程序,该程序虽然很小(仅72kb),但却彻底解决了上述问题,并且该解法具有如下特点:可以自动生可以自动画结构面和坡

5、 面的赤平投影圆弧(其中坡 面投影圆弧以点线组合来 区分);可以输入两结构 面产状求它们的夹角;可 以求两结构面交线的产状(倾向、倾角);求解其 它。如右图所示。利用本法求解,具有快 速(tvo.ls)、精确、高效的5*16心3915*67妙00岔37盯7735*2106645*14对64右15盯68近2270*7675*3280*87q44 =9 = 8 = 7 = 7 = 6 - 5 = 5 = 4 = 4 = 3 = 3 = 2 = 2 = 1 = 1 = o = o aoaoaoaoaoaoaoaoaoaoaoaoaoaoaoao-doarean0.479)s结构面交线产状:34.6&

6、#176;z29.6°週屏画吴氏网 画结构面画坡面投影 结构面之法线 两条直线之夹角 两结构面之夹角 法线对应的结构面 两结构面交线产状 打印窗体退出赤平投影分析application画赤平投影网 画结构面 画坡面投影 动画演示问题求解清屏退岀成或清除吴氏赤平投影网;特点,并且省去了笔墨纸张等材料的消耗,计算结果直观显示,并可通过电子裁切将 其粘贴于工程文字报告中。下面主要介绍本程序的产生过程、编程依据、计算原理及编程讲解。一、产生过程:将赤平投影的求解过程通过vb编程中的代数运算、解析儿何处理、 图形显示技术等有机结合,同步显示计算过程,克服了过去dos编程计算过程不可视、 不便检

7、查计算结果之对错的弊端。二、编程依据:利用郑州水利学校陈松所编工程地质中赤平投影网的绘制方 法:经线作法;纬线作法;其它线条作法。都不外乎是作圆弧或者作直线,均 容易写岀其解析表达式。于是利用vb提供的文字显示以及点、线(段)及圆(弧)的便不难得岀计算结果并且能够同步图形显示。图形支持,以及坐标旋转原理等,三、计算原理: 经线作法:以50°经线为例,作 zaow=50°,连 as,交 we 线于 b 点; 作bs中垂线ve交we线(或其延长 线)于d点,以d为圆心,ds = db = dn为半径作弧sbn,则圆弧sbn即为 50。经线(见右图)。 纬线作法:以50°

8、;纬线为例,作 zaow=50°,过a点作切线(半径oa 的垂线)af交sn线的延长线于f点; 以f为圆心,fa为半径作弧ac,则圆 弧ac即为50。纬线(见右图)。下面首先详细说明利用vb进行吴氏网绘制的方法: 先在窗体左侧设置一个图片框,此图片框虽然不是必需的,但可用它来显示各 经度经线的中点(顶点)至圆心o的距离,以便容易检验所作代数计算的正确性与否; 用scale语句定义窗体显示范围,以便图形显示能够大小适中; 用line语句画十字架坐标系,用circle语句画出半径为1的大圆,并用print语 句标出n、e、s、w等; 用for-next语句,以5。为间隔分别画出5。至85

9、。经线与纬线; 上句中间执行过程调用,分别调用过程sub hwx()画纬线及过程sub hjx()画经线。四、编程讲解:下面主要对画纬线和画经线的过程代码进行必要讲解:3*pi/2-a,3*pi/2+a为的是指定圆弧始点和终点,第二条语句的作用是画岀下半球与之对 称的纬线。2.画经线:以o点为坐标原点xd=( 1+sin(a) )/cos(a)/2-cos(a)/( 1+sin(a) )/2令 b=atn(l/xd),即求得 b二zods=zodn上面语句中xd变量算出的就是右 图中d点的横坐标(d点的纵坐标为0)o 显然度数a越高,则xd越大,所以d 点可以位于线段0e上,也可以位于0e 的

10、延长线上。上述计算d点横坐标的原理是:根据度数a值确定a点坐标 (cos(a),sin(a),由于对称性,实际取a点在第一象限的对称点c,不影响结果(以便使得三角函数值全为正); 用两点式写出as直线方程,并令y=0求出b点横坐标(b点的纵坐标为0); 用中点坐标公式求岀bs中点v的坐标,利用vd丄bs,斜率应为负倒数关系求 出vd斜率; 用点斜式写岀直线vd方程,并令y=0求出d点横坐标(d点的纵坐标为0); 在 rtasod 中,不难求b=zsdo = atan (os/od) =atan (1/xd)。现在以d为圆心,db = ds = dn为半径作弧sbn,则弧sbn即为所求经线。即:

11、circle(xd,o),dspi-b,pi+b(西半球度数为 a 的经线)circle(-xd,0),ds2*pi-b,b(东半球度数为 a 的经线)除赤平投影分析程序外,笔者还编制了边坡稳定分析、抗剪强度指标计算、附加 应力计算等实用的工程地质与土力学方面的可视化小程序,为了方便各位专家和同仁 共同研究或探讨,特附上这几个小程序,也口j致电邮至:zhanghqing索取。下面是赤平极射投影分析程序的源程序代码,以供有兴趣研究的专业人员参考:option explicitconst pi = 3.141592654private a as double, b as double, c as

12、double, ai as single, ci as singleprivate xd as double, n as integer, ds as single, fa as singledim xt as single, yt as single, jv as single, jo as singledim i as integerdim w as boolean, tg as boolean, vg as boolean, vr as booleandim xi!, yl!, rl!, x2!, y2!, r2!, x3!, y3!, r3!dim x as single, y as

13、single, t as single, q as single, qt as singledim qx as single, qj as singledim xj 1 as single, yj 1 as single, xj2 as single, yj2 as singledim v as single, xp as single, yp as singledim ca!, aa!, cb!, ab!private declare sub sleep lib "kernel32" (byvai dwmilliseconds as long)private sub co

14、mmand 1 _click()cispicture 1.cislabel 1 .caption 二"”label2.caption = "hlabel3.caption =label4.caption =uhpicture! .setfocusend subprivate sub dvyqjgm l_click(lndex as integer) dvyqjgm.clickend subprivate sub dyhb1_click()timerl. enabled = truetimer2.e nabled = falsevr = falseend subprivate

15、 sub dyhb2_click()timerl .enabled = falsetimer2.e nabled = truevr = falseend subprivate sub faxj l_click(index as integer)faxj_clickend sub用来画吴氏网7* tw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtw rtwprivate sub form_load()showforecolor = rgb(0,

16、0, 0) form 1.cisform 1.picture 1.cisform 1.scale (-1.5, 1.5)-(1.5, -1.5)form 1 .label 1 .caption = ”显示结果"call ycrossvg = falsefor n = 5 to 85 step 5a = n/ 57.29578vg = not (vg)if vg = false thenforecolor 二 rgb(0, 200, 0)elself vg = true thenforecolor = rgb(100, 250, 100)end ifcall hwxcall hjxpi

17、cture 1.print na=m; n; ”。”picture 1.print format(jv, "0.000")next nvg = falseai = 60a = ai/ 57.29578forecolor = rgb(0, 0, 0)end subprivate sub hwx()'画纬线fa = 1 / tan(a)circle (0, 1 / sin(a), fa, 3 * pi / 2 - a, 3*pi/2 + acircle (0, -1 / sin(a), fa, pi / 2 - a, pi / 2 + aend subprivate s

18、ub hjx()'画经线xd = (1 + sin(a) / cos(a) / 2 - cos(a) / (1 + sin(a) / 2ds = sqr(xd a 2 + 1)jv = ds xdb=atn(l / xd)circle (xd, 0), ds, pi b, pi + bcircle (-xd, 0), ds, 2 * pi b, b'上面语句曾经为circle (-xd,0), ds,-b,b,结果错(图中出现一条经线)end subprivate sub dyct_click()printformend subprivate sub dvyqjgm_click

19、()qx = inputbox(m请输入法线的倾向“,“输入対话框”,45, 9000, 7000)'指明倾向qj = inputbox(m请输入法线的倾角“,“输入对话框”,30, 9000, 7000)'指明倾角call faxjdvyqjmgpmjend subprivate sub faxjdvyqjmgpmj()if qx < 180 thenci = qx + 180elself qx >= 180 thenci = qx - 180end ifc = -ci / 57.29578 + pi/2ai = 90 qja = ai/ 57.29578call

20、 cjtionx3 = xt: y3 = yt: r3 = ds'必须在此及时把ds赋给r3,否则经过下面语句后ds的值就改变了v二qj / 57.29578法线倾角与结构面互余xd = (1 + sin(v) / cos(v) / 2 - cos(v) / (1 + sin(v) / 2ds = sqr(xd a 2 4- 1)jv = ds xdxp = jv * cos(c): yp = jv * sin(c)if tg = false thenline (xp, yp)-(0, 0), rgb(100, 140, 250)drawwidth = 2: pset (xp, yp)

21、, rgb(180, 40, 40): drawwidth = 1print ”法线”label 1.caption 二”法 线:”& format(str$(qx), n#0.0n) & “° ” & “z” & format(str$(qj), n#0.0u) & ”° ” & chr(10) & ”结构面:'& format(str$(ci), n#0.0h) &“° ” & “z” & format(str$(ai), h#0.0h) &“end ife

22、nd subprivate sub faxj_click()call hvjgm_clickv = pi / 2 - a '法线倾角与结构面互余xd = (l + sin(v)/ cos(v) / 2 - cos(v)/(1 + sin(v) / 2ds = sqr(xd a 2 + 1)jv = ds xdxp = jv * cos(c): yp = jv * sin(c)if tg = false thenline (xp, yp)-(0, 0), rgb(100, 140, 250)drawwidth = 2: pset (xp, yp), rgb(180, 40, 40): d

23、rawwidth = 1print ”法线”end iflabel 1.caption = ”结构面:“ & format(str$(ci), ”#0.0“)& “° ” && format(str$(ai),”#0.0”) & ”° ” & chr(10) & ”法 线:”& format(str$( 180 + ci), “#0.0”)& ”° “ & “z” &format(str$(90 - ai), h#o.ou) & ”end subprivate sub

24、form_dblclick()vr = truetimer 1.enabled = falsetimer2.enabled = falsecall form_loadforecolor = rgb(0, 0, 0)end subprivate sub fonn_mousedown(button as integer, shift as integer, x as single, y as single)if button = 2 thenpopupmenu aaaend ifend subprivate sub cjtion()'本过程用来绘制任意倾向z倾角结构面的赤平投影dim ki

25、 as double, k2 as doubleif ai <> 90 then xd = abs(l + sin(a) / cos(a) / 2 - cos(a) / (1 + sin(a) / 2)ds = sqr(xd a 2 + 1)ifxd = 0 thenb = pi / 2elself xd>0 thenb = atn(l / xd)end ifxt = xd * cos(c): yt = xd * sin(c)form 1.scale (-1.5, 1.5)-(1.5, -1.5)'画结构面的赤平投影弧ki = c + pi - b: k2 = c +

26、 pi + bif ki >= 2 * pi thenki =k1 2* pielself ki < 0 thenki = ki + 2* piend ifif k2 >= 2 * pi thenk2 = k2 2 * pielself k2<0 thenk2 二 k2 + 2 * piend ifif tg = false thenif ai = 90 thenline (cos(pi / 2 + c), sin(pi / 2 + c)-(-cos(pi / 2 + c), -sin(pi / 2 + c), rgb(180,40,40)elself ai <&

27、gt; 90 thencircle (xt, yt), ds, rgb(180,40, 40), ki, k2end ifend ifif w = true then *绘坡面线drawstyle = 2form 1.circle (xt, yt), ds + 0.02, rgb(180, 40, 40), ki + 0.02, k2 0.02drawstyle = 0end ifend subprivate sub hscrolll_change()ci = hscrolll. valuelabel 1 .caption = ”结构面倾向:” & str$(ci) &” &a

28、mp; chr$(10) & ”结构面倾角:“ & str$(ai) &tt oc = -ci / 57.29578 + pi/2call cjtionend subprivate sub hscroni_scroll()ci = hscrolll.valuelabel 1 .caption = ”结构面倾向:” & str$(ci) &” & chr$(10) & ”结构面倾角:“ & str$(ai) &if °c = -ci / 57.29578 + pi/2call cjtionend subprivat

29、e sub hvjgm_click()i = i + 1if tg = false thenci = inputbox(h请输入结构面的倾向“,“输入对话框”,45, 9000, 7000)指明倾向ai = inputbox(h请输入结构面的倾角“,“输入对话框”,30, 9000, 7000)'指明倾角c = -ci / 57.29578 + pi/2: a = ai/ 57.29578ifi= 1 thenca = ci: aa = ailabel2.caption = ”结构而倾向:” & str$(ci) & 1,0 h & chr$(10) &

30、 ”结构面倾角:” & str$(ai) ”elself i = 2 thencb = ci: ab = ailabel3.caption = ”结构面倾向:” & str$(ci) &” & chr$(10) & ”结构面倾角:” &str$(ai)&“° ”end ifif w = false thenlabel 1 .caption = “结构而倾向:” & str$(ci) &“ & chr$(10) & ”结构面倾角:” &str$(ai)&“° ”elself

31、 w = true thenlabel 1 .caption = “坡面倾向:“ & str$(ci) &” & chr$(10) &“坡面倾角:”& str$(ai) &end ifelself tg = true thencall uyxifuvicaend ifcall cjtionend subprivate sub hvjgml_click(index as integer) hvjgm_clickend subprivate sub lhjmgpmjjbjk_click() *求两结构面z夹角*dim xs#, ys#, rs#冲间变

32、量,用来暂吋存储x2; y2; r2dim g 1 as single, g2 as single, g as singlecall ljgmjxuv_click'若交线水平(jk=o。)则执行下列六条语句并结束本过程if abs(ca cb) mod 180 = 0 thenif ca = cb theng = abs(aa ab)elself ca <> cb theng = abs(18 0aa ab)end iflabel 1.caption 二”两结构面夹角:” & format(str$(g), ”#00“) &“tg = false'任

33、务执行完后使tg恢复其初值exit subend ifcall faxjdvyqjmgpmjxs = x2: ys = y2: rs 二 r2xi =x1: y1 =y1: r1 = r1: x2 = x3: y2 = y3: r2 = r3call qnjkdj'注意上面语句后x2、y2已经具有x3、y3的值xjl =x: yjl =y,也就是说x2、y2本来的值已被x3、y3取代xi =x3: y1 = y3: r1 = r3: x2 = xs: y2 = ys: r2 = rscall qnjkdjxj2 = x: yj2 = y呼面pl、p3交线(点)的z1的坐标(xjl,yj

34、l)'平面p2、p3交线(点)的z2的坐标(xj2,yj2)if tg = false then call xcvchp,(原本为 if tg = false then call xcvchp,但是子程序出错)dim xf as double, yf as double, af as singledim fz1 as single, fz2 as single'点f的坐标为(xf, yf1) 坐标旋转由(0, yf ) (xf, yf)'可视为pl、p2、p3同时绕圆心旋转,使得p3倾向为c二pi/2或3*pi/2for a = 0.001 to pi / 2 - 0.

35、001 step 0.001yf= 1 / sin(a): af= 1 / tan(a)ifyjl =0thengl =0exit forelselfyjl = 1 thengl =pi/2exit forelselfyjl =-l thengl = -pi / 2exit forelselfyjl >0and yjl < 1 thenfz1 = sqr(xj 1 a2 + (yjl yf)a2)if abs(af fz1)< 0.001 then gl 二 aexit forend ifelselfyjl <0 and yjl >-l thenfz1 = sqr

36、(xj 1 a2 + (yjl +yf)人 2)ifabs(af -fz1)< 0.001 then gl = -aexit forend ifend ifnext afor a = 0.001 to pi / 2 - 0.001 step 0.001yf= 1 / sin(a): af = 1 / tan(a)ifyj2 = 0theng2 = 0exit forelself yj2 = 1 theng2 = pi / 2exit forelseifyj2 = -l theng2 = -pi / 2exit forelself yj2 > 0 and yj2 < 1 the

37、nfz2 = sqr(xj2 a2 + (yj2 - yf) a 2)if abs(af fz2) < 0.001 then g2 = aexit forend ifelself yj2 < 0 and yj2>-1 thenfz2 = sqr(xj2 a2 + (yj2 + yf)人 2)ifabs(af fz2) < 0.001 theng2 = -aexit forend ifend ifnext ag = abs(gl - g2) * 57.29578label 1.caption = ”两结构面夹角:“ & format(str$(g), ”#0.0”

38、) &”tg = false'任务执行完后使tg恢复其初值end subprivate sub xcvchpotg = truecall lhjmgpmjjbjk_clickend subprivate sub uyxlfuvica()'此过程用于坐标旋转(使得交线倾向为we向)后为结构面产状重新赋值'此处需要分两种情况ifqx >=0and qx < 180 then,交线倾向为 i ii 彖限if i = 1 thenci = ca + 90 qxif ci >= 360 thenci = ci 360elself ci < 0 th

39、enci = ci + 360end ifc = -ci / 57.29578 + pi/2ai = aaa = ai/ 57.29578elself i = 2 thenci = cb + 90 qxif ci >= 360 thenci = ci - 360elself ci < 0 thenci = ci + 360end ifc = -ci / 57.29578 + pi/2ai = aba = ai/ 57.29578end ifelself qx >= 180 and qx < 360 then '交线倾向为iiiiv象限ifi= 1 thenci

40、= ca + 270 - qxif ci >= 360 thenci = ci 360elself ci < 0 thenci = ci + 360end ifc = -ci / 57.29578 + pi/2ai = aaa = ai/ 57.29578elself i = 2 thenci = cb + 270 - qxif ci >= 360 thenci = ci 360elself ci < 0 thenci = ci + 360end ifc = -ci / 57.29578 + pi/2ai = aba = ai/ 57.29578end ifend if

41、end subprivate sub lhjmgpmjjbjkl_click(index as integer)lhjmgpmjjbjk_clickend subprivate sub ljgmjxuv_click(),求两结构面交线及其产状i = 0call hvjgm_clickxi =xt: y1 =yt:rl =dscall hvjgm_clickx2 = xt: y2 = yt: r2 = dscall qnjkdjcall jxqxif tg = false then call bijkdaxkend subprivate sub qnjkdjo '本过程用來求出两结构面交

42、线(交点坐标)'弧 1 方程为:(x-x1)a2+(y-y1)a2=r1a2'弧 2 方程为:(x-x2)a2+(y-y2)a2=r2a2dim k as double, p as double, v1 as double, v2 as doubledim al as double, bl as double, cl as double, d as doubleif abs(yl - y2) <= 0.00001 thenx = (r2 a 2 r1 人 2) / (x1 x2)/2 + xl /2 + x2/2vi = sqr(r2 人 2 (x x2) a 2) +

43、y2: v2 =sqr(r2 人 2 (x x2) a 2) + y2ifx a2 +vi a2<= 1 theny = vielself x a 2 + v2 a 2 <= 1 theny = v2end ifelselfyl -y2 oothen当两圆纵坐标相等吋y1 -y2=0, k出错k = -(xl x2)/(y1 y2)p = (r2 a 2 r1 人 2) / (y1 y2) / 2 + (y1 + y2) / 2 k * (xi + x2) / 2al = 1 + ka2: bl =2*(k*p k*y 1 xi): cl = (p y1)八2 + x1 八2 r1

44、 八2 ifal = 0 thenlabel 1.caption = ”两圆相切,有唯一交点“exit subend ififbl 人24* al *c1 >= 0 thend = sqr(bl a2-4*a1 *c1)elselfbl a2-4*a1 * cl <0 thenlabel 1 .c aption ="未找到交点"exit subend ifx = (-b1 +d)/a1 /2y = k * x + pifxa2 + ya2> ithen '找到两圆交点屮位于吴氏网内(上)的那个交点的坐标 x = (b1 - d)/a1 /2: y二

45、 k*x + pend ifend ifjo = sqr(x a 2 + y a 2)if tg = false thenline (x, y)-(0, 0), rgb(40, 200, 250)*pset (x, y): print “j”; ”(”; format(x, ”0.#”); ”,”; format(y, “().#“); ”)“end ifend subprivate sub jxqx(),用來求交线倾向ifx>0and y = 0thent = 270elselfx <0 and y = 0 thent = 90elselfx >0 and y>0 t

46、he nt= 180 + 57.29578 * abs(atn(x / y)elself x > 0 and y < 0 thent = 360 - 57.29578 * abs(atn(x / y)elself x < 0 and y < 0 thent = 57.29578 * abs(atn(x / y)elself x < 0 and y > 0 then(= 180- 57.29578 * abs(atn(x / y)end ifqx = t'qx为交线倾向t = format(t, ”#0.0”)end subprivate sub bi

47、jkdaxk()用来求交线倾角并在文本框输出显示倾向z倾角if j0= 1 thenq = 0elself jo = 0 thenq = 90elsefor q = 0 to 90 step 0.01if q = 90 then exit fora = q/ 57.29578xd = (1 + sin(a) / cos(a) / 2 cos(a) / (1 + sin(a) / 2ds = sqr(xd a 2 + 1)jv = ds - xdifabs(jv -jo) <= 0.0001 then exit fornext qend ifcij = q'qj为交线倾角label

48、 1.caption = ”结构面交线产状:“ & chr$(10) & fonnat(str$(t), “#0.0”) &” & ”z” &format(str$(q), n#0.0m) &”end subprivate sub ljgmjxuvl_click(index as integer)ljgmjxuv_clickend subprivate sub pomjtpyq_click()w = truecall hvjgm_clickw = falseend subprivate sub pomjtpyq l_click(index as

49、integer)pomjtpyq_ciickend subprivate sub qqpq_click()form i .cislabel4.c aption =ycrossend subprivate sub ycross()forecolor = rgb(0, 200, 0)line (0,-1)-(0, 1)line (-1, 0)-(1, 0)form 1 .circle (0, 0), 1currentx = 0.00& currenty = 0: print “o"currentx = -0.02: currenty = 1.1: print hnucurrent

50、x = -0.02: currenty = -1.03: print "s"currentx = -1.09: currenty = 0.02: print "w"currentx = 1.04: currenty = 0.02: print ”e” forecolor = rgb(0, 0, 0)end subprivate sub qqpql_click(index as integer) qqpq_clickend subprivate sub timer l_timer()for i = 10 to 30 step 10command l_cli

51、ckfor ci = 0 to 360 step ic = -ci / 57.29578 + pi/2 ai = 60a = ai/57.29578cjtiondoeventsif vr = true thenvr = falseexit subend ifsleep 5 * inext cisleep 1000next iend subprivate sub timer2_timer()comma ndl_clickfor ci = i to 360 + i step 36c = -ci / 57.29578 + pi/2ai = 60a = ai/ 57.29578cjtiondoeven

52、tsif vr = true thenvr = falseexit subend ifnext cii = i + 2ifi= 180 theni = 0end subprivate sub tvch_click()endend subprivate sub tvchl_click(index as integer) tvch_clickend subprivate sub twolsangle_click()* 求空间两直线之夹角rt* rt* rt* rt* rt* rt* rtw rt* rtw rt* rt> rt* rtw rt* rtw rt* rtw rtw rtwi =

53、0uyls: if tg = false thenqx = inputbox(h请输入直线1的倾向”,“输入对话框”,45, 9000, 7000)'指明倾向qj = inputbox(h请输入直线1的倾角“,“输入对话框”,30, 9000, 7000)'指明倾角call faxjdvyqjmgpmjca = qx: aa = qjelself tg = true thenqx = ca: qj = aaend iflabel2.caption 二“直线倾向:”& str$(qx) &” & chr$(10) &“直线倾角:”& str

54、$(qj) &”if qx < 180 thenci = qx + 180elself qx >= 180 thenci = qx - 180end ifc = -ci / 57.29578 + pi/2ai = 90 - qja = ai/ 57.29578call cjtionxi =xt: y1 =yt: r1 =dsv = qj/57.29578,法线倾角与结构面互余xd = (1 + sin(v) / cos(v) / 2 - cos(v) / (1 + sin(v) / 2ds = sqr(xd a 2 + 1)jv = ds xdxp = jv * cos(c

55、): yp = jv * sin(c)xjl =xp* cos(-qt) - yp * sin(-qt)yjl =xp* sin(-qt) + yp * cos(-qt)if tg = false thenqx = inputbox(n请输入直线2的倾向”,“输入对话框”,45, 9000, 7000)'指明倾向 qj = inputbox(h请输入直线2的倾角“,“输入对话框”,30, 9000, 7000) '指明倾角call faxjdvyqjmgpmjcb = qx: ab = qjelself tg = true thenqx = cb: qj = abend ifl

56、abeb.caption = “直线倾向:”& str$(qx) & 1,0 " & chr$(10) &“直线倾角:”& str$(qj) &“if qx < 180 thenci = qx + 180elself qx >= 180 thenci = qx - 180end ifc = -ci / 57.29578 + pi/2ai = 90 qja = ai/ 57.29578call cjtionx2 = xt: y2 = yt: r2 = dsv = qj/57.29578'法线倾角与结构面互余xd = (

57、1 + sin(v) / cos(v) / 2 - cos(v) / (1 4- sin(v) / 2ds = sqr(xd a 2 + 1)jv = ds - xdxp = jv * cos(c): yp = jv * sin(c)xj2 = xp * cos(-qt) yp * sin(-qt)yj2 = xp* sin(-qt) + yp* cos(-qt)if tg = true then'currentx = 0: currenty = 0.6print hxjl=u; xjl; "yjl; yjl'print ”xj2二“;xj2; hyj2=u; yj2drawwidth = 2: pset (xj 1, yjl): pset (xj2, yj2):

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论