程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> MDX之平移與旋轉(1)

MDX之平移與旋轉(1)

編輯:關於.NET

做項目一年,雖然說沒有學得很好,但一年來,自己學的東西也比較多,也有了一些經驗,正如我前面說的現在沒有事做就多寫,等過兩天就不會有這麼多的時間了,項目一開始,那可就沒有多少時間了。

我做的那個項目是地質相關的項目,就會有一些必不可少的圖形的顯示,二維方面老師自己做的非常好了,但在3D方面大家都沒有什麼經驗,就只有靠自己去摸索了,在自己摸索的過程中,最頭疼的就是沒有資料,在就是問別人沒有一個人回答你,問了別人還被說成叫自己去按書一步一步敲例子,把人都氣死,好了,我現在就將我在學習的時候遇到的兩個困擾我兩個月的問題寫出來,供大家參考,也請大家多交流。

說到平移,就不得不說到兩種投影模式,一種是平行映射模式,另一種是透視投影模式。

所謂平行投影模式,就是將模型上的每一點,都垂直投射到屏幕上,注意是直接。不考慮模型與屏幕的距離遠近,投射在屏幕上時都與實際大小相同。而透視投影就與我們平時的視角比較接近,物體符合“近大遠小”的視覺習慣。就是下圖

這一種形式就是我們在所有的現有資料中用的模式,是不是,可是大家有沒有想過,如果我把投影模式換成平行方式會怎麼樣呢?

// 透視投影
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, (float)this.Width / this.Height, min, max);
// 正交投影
device.Transform.Projection = Matrix.OrthoLH(this.Width, this.Height, min, max);

這個也恰恰就是關鍵所在,只是換一下投影模式就可以了,達到非常好的平移效果,現在想想,原來為了達到eyeshot的那種鼠標移動的功能我足足看那種效果幾個小時,現在想想卻一分錢也不值,現在感謝林銳博士,因為就是看他的程序我才解決這個問題的,現在放上他的程序,注意在用的時候,一定要注意要選擇平行投影模式,否則是不會達到我說的效果的。明天就寫平移,那個可不是一下子就說的好的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved