我明白sin
和cos
(以及其他一些三角函數)的意思,但我並沒有真正明白他們解決了什麼樣的問題。當你在遊戲開發(特別是3D遊戲開發)中使用這些功能時,你能向我展示一些真實世界的例子嗎?三角函數和遊戲開發
謝謝。
我明白sin
和cos
(以及其他一些三角函數)的意思,但我並沒有真正明白他們解決了什麼樣的問題。當你在遊戲開發(特別是3D遊戲開發)中使用這些功能時,你能向我展示一些真實世界的例子嗎?三角函數和遊戲開發
謝謝。
在遊戲開發中,有很多情況需要使用三角函數。在編寫遊戲時,您經常需要做一些事情,比如找到兩點之間的距離或讓對象移動。下面是幾個例子:
旋轉飛船或其他車輛
妥善處理從一個旋轉武器
射彈計算新的軌跡的軌跡兩個物體之間的碰撞後如檯球或頭球
確定兩個物體之間是否發生碰撞
查找軌跡的角度(給定的物體的速度在x方向和y方向)
這裏的一個很好的鏈接到different areas of Math required in various types of video game development。
檢查這些鏈接進一步閱讀:
那麼,我想到的一個應用程序就是用於遊戲中的特殊效果......假設你有武器,咒語或能力,或者各種效果,使得光束...你可以玩數學「形狀梁」... ...
同樣的道理,假設你有一個門戶網站,你想在激活或入口時播放一些整潔的動畫,你可以玩矢量和旋轉矩陣,你可以用數學和你的想象力結合做出許多驚人的事情......
2D或3D空間中的遊戲需要圖形的幾何圖形。用於模擬運動的物理引擎忠實地需要幾何。 Trig是幾何圖形的基礎。
採取一些簡單的彈跳。彈丸撞擊和牆壁反彈的物理過程將很快使你確信觸發函數的實用性。
3D模型由頂點(3D空間中的座標對或三元組的數值列表)和連接它們的線定義。這些線條可以渲染,點亮,紋理化等。
爲了旋轉對象,您必須能夠操作這些頂點。如果你想旋轉一個物體一些度數或弧度,你將有噸使用三角函數來找出它發生的地方。
基本觸發是遊戲,模擬等所需的任何3D操作的基礎。如果這些功能,它們的侷限性以及它們如何應用於和放大幾何的有效性,那麼值得您花時間調查並熟悉真正意義,信號處理等。
這是一個很好的問題;大多數人只是點頭表示,表現得很明顯。除非你的名字是Blaise或Renee,否則可能不是。
三角是至關重要的,以產生幾乎所有的曲線(如在從橢圓或圓形),因此在遊戲開發中有着廣泛的用途。此外,正弦波對佩林噪音和許多其他特殊效果都很有用。
一個例子使用三角函數是在旋轉矩陣
例如
該矩陣用於在x,圍繞原點y平面旋轉的點。
|x'| = | cos a -sin a | | x |
|y'| | sin a cos a | | y |
最明顯的用途三角的是讓一個對象在任何給定的方向上移動,而不用三角函數,這是不可能的。
//Example code, will move the object speed units in the given direction (degrees)
d2r = pi/180; //Conversion from degrees to radians
this.x += speed * cos (direction * d2r);
this.y += speed *-sin (direction * d2r);
它也用於其他的東西,如:在2D精靈
編寫一個繪製和更新模擬時鐘的程序。
你這樣做時遇到的問題應該給你答案你的問題。如果你對罪和cos有一個基本的理解,你應該能夠使用它們來使時鐘繪圖變得非常簡單。
如果這不能給你你的答案,請嘗試繪製它沒有罪和COS。
這真的是一個更適合GameDev StackExchange(http://gamedev.stackexchange.com/)的問題,但這裏有一個鏈接可能對您的研究有幫助:http://pixwiki.bafsoft.com/ mags/5/articles/circle/sincos.htm – 2010-10-15 23:51:10
雖然我會告訴你。在Unity/UDK和其他遊戲引擎中,類似於實時完成的sin,cos和數學函數在資源方面成本最高。特別適用於手機遊戲開發。我通過多種資源瞭解到,由於成本問題,將這些呼叫降到最低!當然,繪製電話和聚合物勝過它們,但數學函數緊隨其後。 – ApolloSoftware 2013-07-15 18:02:57