在Windows Phone中進行3D開發之一座標系

來源:互聯網
上載者:User

        Windows Phone中通過XNA為開發人員提供了遊戲架構,大大提高了遊戲開發的效率,這個就不必多言了。在享受使用XNA進行2D開發的便捷的同時,還可以同樣便捷的實現3D開發,我想通過系列文章對此進行介紹,供想在Windows Phone環境中使用XNA進行3D開發的朋友參考。

 

        3D開發需要更多的知識,包括線性代數、電腦圖形學等,這些理論不在本文的範圍當中,有需要的朋友可以找到很多參考書,這裡不詳細介紹。

 

        下面,我們來瞭解一下3D世界的基本情況。

 

        首先,我們來看一下座標系。在2D平面中,座標系是再熟悉不過的了,用的是笛卡爾座標系,由互相垂直的x、y兩個座標軸唯一確定了一個平面,平面中所有的點都可以表示成(x,y)的形式。

 

        在3D空間中,由於引入了深度,所以平面座標顯然不能滿足要求了,需要有三維座標來表示空間中的點。三維座標系有時也稱為全局座標系,使用x、y、z三個座標軸,是在平面座標系統的x、y軸平面上引入一條垂直於該平面的z軸。在Windows Phone中,採用了右手座標系,當手機螢幕面對我們時,z軸的正方向從手機螢幕向外指向人臉。空間中所有的點都被表示成(x,y,z)的形式,原點是(0,0,0)。座標系如所示。(註:圖片來源於微軟的實驗手冊)

 

 

        既然空間中所有的點都需要使用(x,y,z)的形式來表示,為了便於編程,XNA中提供了Vector3類。Vector3類為空白間中的點和向量的表示帶來了便利,常見的使用者法是:

Vector3 pos=new Vector3(0,0, 20);

 

        對於零向量或常用的向量,Vector3類也提供了靜態方法供我們使用,比如建立一個零向量可以寫成:

Vector3 pos=Vector3.Zero;

 

        Vector3類還提供了加、減、乘、除等運算,以及求交點、距離的運算,可以方便的在程式開發中使用。

 

       這樣,我們知道了3D座標系的使用和在代碼中的表達,但是,這還不足以進行3D開發。試想,空間中的一個物體,雖然它所處的座標不變,但我們可以從任意的角度來觀看,每個角度觀看到的結果卻是不一樣的。因此,僅有座標系還是不夠的,在下文中我們還要增加新的內容,才能確定一個空間中的物體的真實表達。欲知後事如何,且待下文分解。

 

——歡迎轉載,請註明出處 http://blog.csdn.net/caowenbin ——

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.