成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三步實(shí)現(xiàn)VB.NET三維模型

開(kāi)發(fā) 后端
這里介紹了實(shí)現(xiàn)VB.NET三維模型操作的三個(gè)方法:放大和縮小操作、旋轉(zhuǎn)操作、VB.NET三維模型平移操作 ,希望對(duì)大家有幫助。

隨著時(shí)代的發(fā)展,VB.NET的技術(shù)也在強(qiáng)大,在圖形設(shè)計(jì)尤其是三維模型的顯示和操作方面的研究和應(yīng)用卻不多。因此研究利用VB來(lái)實(shí)現(xiàn)三維模型的圖形設(shè)計(jì)。VB.NET三維模型的操作方法

1.放大和縮小操作 對(duì)VB.NET三維模型一般包括放大、縮小、旋轉(zhuǎn)和平移等操作,其中放大、縮小操作可通過(guò)同一個(gè)鼠標(biāo)事件來(lái)驅(qū)動(dòng),例如當(dāng)光標(biāo)向上移動(dòng)時(shí)使模型縮小,而光標(biāo)向下移動(dòng)時(shí)則使模型放大。這可以通過(guò)調(diào)整Opengl環(huán)境中的景深來(lái)實(shí)現(xiàn)。其中SVposY是光標(biāo)移動(dòng)過(guò)程中的上一個(gè)位置的縱坐標(biāo),而Y為當(dāng)前光標(biāo)的縱坐標(biāo),Zoom為模型的景深,step_zoom為光標(biāo)移動(dòng)一個(gè)基本單位時(shí)景深的變化值,它可通過(guò)程序的實(shí)際需要來(lái)設(shè)定。以下是放大縮小操作的程序代碼。

  1. If Y < SposY Then  
  2. ZoomZoom = Zoom - step_zoom ‘縮小  
  3. Else  
  4. ZoomZoom = Zoom + step_zoom ‘放大  
  5. End If   
  6. If Zoom < 0 Then Zoom = 0.0001  

#T#2.旋轉(zhuǎn)操作 旋轉(zhuǎn)操作是通過(guò)對(duì)模型場(chǎng)景視角的法向量按照一定的步幅來(lái)調(diào)整實(shí)現(xiàn)的。下面的代碼是鼠標(biāo)事件中模型旋轉(zhuǎn)操作的調(diào)整過(guò)程,當(dāng)光標(biāo)左右移動(dòng)時(shí),模型向左或向右反轉(zhuǎn),而當(dāng)光標(biāo)上下移動(dòng)時(shí),模型向上或向下反轉(zhuǎn),其旋轉(zhuǎn)的速度可通過(guò)改變步幅來(lái)實(shí)現(xiàn)。這里取步幅為0.005,它是以弧度為單位的一個(gè)角度值,首先要通過(guò)光標(biāo)的當(dāng)前位置和上次位置差的絕對(duì)值來(lái)判斷光標(biāo)的移動(dòng)方向,然后根據(jù)判斷出的光標(biāo)方向給視角法向量的分量ym和xm增加或者減去一個(gè)步幅,從而實(shí)現(xiàn)模型在三維空間中的旋轉(zhuǎn)操作,其中法向量的分量zm保持初始值不變。

  1. diffx = Abs(SposX - X)  
  2. diffy = Abs(SposY - Y)   
  3. If diffx > diffy Then  
  4. If X > SposX Then  
  5. ymym = ym - X * 0.005 ‘向右旋轉(zhuǎn)  
  6. Else  
  7. ymym = ym + X * 0.005 ‘向左旋轉(zhuǎn)  
  8. End If  
  9. Else  
  10. If Y > SposY Then  
  11. xmxm = xm - Y * 0.005 ‘向下旋轉(zhuǎn)  
  12. Else  
  13. xmxm = xm + Y * 0.005 ‘向上旋轉(zhuǎn)  
  14. End If  
  15. End If  
  16. End If  

3.VB.NET三維模型平移操作 平移操作的原理和旋轉(zhuǎn)操作類(lèi)似,它是通過(guò)對(duì)模型場(chǎng)景的各個(gè)位置分量的調(diào)整來(lái)實(shí)現(xiàn)的。和旋轉(zhuǎn)操作一樣,首相是通過(guò)光標(biāo)的當(dāng)前位置和上次位置差的絕對(duì)值來(lái)判斷光標(biāo)的移動(dòng)方向,然后根據(jù)判斷結(jié)果對(duì)相應(yīng)的位置分量PosX和PosY增加或減去一個(gè)指定的步幅。下面是平移操作的VB代碼。

  1. If diffx > diffy Then  
  2. If X > SposX Then  
  3. PosYPosY = PosY + 0.005 ‘上移  
  4. Else  
  5. PosYPosY = PosY - 0.005 ‘下移  
  6. End If  
  7. Else  
  8. If Y > SposY Then  
  9. PosXPosX = PosX - 0.005 ‘左移  
  10. Else  
  11. PosXPosX = PosX + 0.005 ‘右移  
  12. End If  
  13. End If  
  14. End If  

用VB來(lái)設(shè)計(jì)三維模型的操作程序相對(duì)來(lái)說(shuō)要簡(jiǎn)單、直觀,而且容易掌握。通過(guò)第三方庫(kù)函數(shù)VBOpenGL,可省去大量的底層編程工作,在一般工程應(yīng)用的程序設(shè)計(jì)中能起到事半功倍的效果。
 

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2009-11-10 12:48:17

VB.NET三維模型

2009-10-29 15:30:06

VB.NET串口通訊

2009-11-10 13:56:36

VB.NET三維面板

2009-11-10 12:12:57

VB.NET函數(shù)

2010-01-07 15:25:11

VB.NET數(shù)組

2010-01-13 11:03:13

VB.NET聲音播放

2010-01-13 17:55:37

VB.NET語(yǔ)法規(guī)則

2010-01-07 16:40:13

VB.NET一維數(shù)組

2010-02-26 16:16:15

2010-04-20 20:53:35

實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡

2010-01-21 14:27:46

VB.NET判斷數(shù)組維

2009-10-27 09:59:17

VB.NET動(dòng)態(tài)代碼

2009-10-23 17:40:24

VB.NET繪圖方法

2009-10-23 13:22:25

VB.NET實(shí)現(xiàn)拖動(dòng)圖

2009-10-12 14:32:40

VB.NET實(shí)現(xiàn)定時(shí)關(guān)

2010-01-08 15:41:36

VB.NET窗口關(guān)閉

2009-10-26 17:07:17

VB.NET UNDO

2021-03-02 07:02:45

Linux操作系統(tǒng)

2010-01-12 10:48:54

VB.NET LIST

2009-10-13 10:21:58

VB.NET實(shí)現(xiàn)Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产99久久精品一区二区永久免费 | 一级做a爰片性色毛片16美国 | 午夜在线免费观看 | 毛片黄| 欧美一级在线视频 | 精品欧美激情精品一区 | 台湾佬久久 | 精品免费国产视频 | 在线高清免费观看视频 | 久久久久国产 | 国产精品视屏 | 亚洲一区二区三区在线 | 欧美成人一级 | 欧美日韩高清在线观看 | 久久看精品 | 国产日韩欧美激情 | 黄色91在线| 视频精品一区 | 天天躁人人躁人人躁狂躁 | 久久精品网 | 欧美a级成人淫片免费看 | 婷婷国产一区二区三区 | 国产成人综合av | a级网站 | 免费一级欧美在线观看视频 | 成人免费精品视频 | 免费一级片 | 综合九九 | 国产精品国产a | 国产专区在线 | 成人精品鲁一区一区二区 | 午夜欧美一区二区三区在线播放 | 99在线播放 | 亚洲色图综合 | 精品一区二区三区中文字幕 | www.中文字幕.com | 成人国产在线视频 | 欧美一区精品 | 亚洲最大的黄色网址 | 国产精品福利在线观看 | 国产精品日日做人人爱 |