ETH官方钱包

切換
舊版
前往
大廳
主題

【專題】拋物線、三角函數(shù)、弧度、砲塔旋轉(zhuǎn)特效、VR的UI按鈕...與其他數(shù)學(xué)筆記

%%鼠 拒收病婿 | 2020-08-27 15:34:43 | 巴幣 20 | 人氣 871

先說三角函數(shù),雖然學(xué)過一兩學(xué)期,但紙上談的東西完全只能硬背過關(guān),當(dāng)初恨這個(gè)恨得要死。
但最近看了一系列的教學(xué),才發(fā)現(xiàn)這是多麼可愛的東西!

想跳過數(shù)學(xué)可以下拉。


三角函數(shù)
先看sin 和 cos 波

光看這個(gè)還是不懂兩者的差別,以為只是差在一前一後。
但看完這個(gè)影片就開朗了

sin波可以當(dāng)做y軸的變化,cos波可以當(dāng)x軸的變化。
結(jié)合在一起就會(huì)變成:
程式碼:
z軸那個(gè)是我亂湊的,讓他斜斜的轉(zhuǎn)

再來是tan的用途

如果把上面的練習(xí)其中一軸改成tan(Time.fixedTime)的話,就會(huì)像這樣:

越接近0的時(shí)候變慢,之後越來越大,直到90度時(shí)消失,再從另一端出現(xiàn)。(旋轉(zhuǎn)狀況也是會(huì)突然急轉(zhuǎn))

問了才知道tan是圓周上點(diǎn)(x,y)的斜率,其中xy是由cos 和sin得到。


拋物線
斜率可以幹嘛? 做了拋物線才知道。
這是我學(xué)校專題,裡面有臺發(fā)球機(jī),分別可以控制發(fā)球機(jī)位置、目標(biāo)落點(diǎn)位置、發(fā)球高度高低。

順便要展示的是發(fā)球機(jī)自動(dòng)旋轉(zhuǎn)的效果(搞了我很久)
發(fā)球機(jī)旋轉(zhuǎn)的物品有兩個(gè),一個(gè)是底座(轉(zhuǎn)y軸)、一個(gè)是砲管(轉(zhuǎn)z軸)。
砲管只轉(zhuǎn)z軸,才不會(huì)跑出軌道,而軌道是底座旋轉(zhuǎn)去調(diào)整的。

目前雖然能動(dòng),但程式碼還不算整潔(可能有很多多餘的計(jì)算,還望各位挑出來)
外殼旋轉(zhuǎn):
兩個(gè)向量中間夾角越小,cross得到的值越小,也就是旋轉(zhuǎn)會(huì)越接近目標(biāo)慢下來,用cross可以取得很像lerp過的旋轉(zhuǎn)效果。
因?yàn)閏ross只能到180度,所以再用個(gè)sign去讓殼旋轉(zhuǎn),使目標(biāo)在自己前方180度內(nèi)。

炮管的原理也差不多,只是要先計(jì)算拋物線的最高點(diǎn)在哪裡。
這時(shí)候就用到tan了,越接近90度的坡道斜率就越大,tan的值也越大,球就可以飛越高。
(tan在90度時(shí)候不存在,會(huì)得到NaN的錯(cuò)誤訊息)
(參考就好,在某些角度會(huì)出現(xiàn)砲塔卡住的現(xiàn)象,雖然動(dòng)一動(dòng)就又會(huì)好了。)

另外一點(diǎn)要注意的是,使用sin和cos或tan這種方法,建議先把角度轉(zhuǎn)成弧度。弧度的定義是:
當(dāng) 半徑長=圓弧長時(shí),該角度稱為1弧度。

若用角度制,同個(gè)角度,半徑越大圓弧長就越大,而弧度有點(diǎn)像把角度正規(guī)化的結(jié)果,讓整個(gè)圓的弧長固定在2pi。

到這裡可能還搞不懂?dāng)?shù)學(xué)家是不是吃飽太閒又再創(chuàng)一個(gè)單位?!
看了這影片才知道,若用角度制的話,可以想像假設(shè)sin跑完一個(gè)週期要跑360天,但若用弧度則只需2pi天,可以說角度制每天跑的量少 (斜率小)。

最後,最重要得拋物線程式碼(太長,有東西沒入截圖)

上面講的落落長是我回去補(bǔ)充initialVelocity前的那些國中數(shù)學(xué)的筆記 ,但最關(guān)鍵的initialVelocity 那行公式我還不太懂。


順便附上最近發(fā)現(xiàn)的數(shù)學(xué)公式錦集:http://math.prhs.ptc.edu.tw/math/rule-by-longtung.htm


以上。

這是遊戲內(nèi)透過小地圖改變實(shí)際位置。

因?yàn)閂R不能像PC遊戲一樣有UI固定在畫面上,不把UI弄近一點(diǎn)就點(diǎn)不到,所以只好寫隻雷射筆,並再UI上用collider偵測碰撞。
變數(shù)宣告:



然後雜談:
專題2: 沙灘打水果 (看到中後面有彩蛋(?)


生日快到了,買個(gè)美光1TB SSD +個(gè)type c硬碟外接殼當(dāng)隨身碟送我自己,第一次拿到赤裸裸的SSD。
第二個(gè)禮物是老師今天帶我去面試(for上學(xué)期實(shí)習(xí)課),對方也有意建立自己的VR部門,我進(jìn)去的話可能可以變成VR部門的始祖(部門第一也是唯一的人)XD。
面試氣氛很free,對方也很好,加上"有機(jī)會(huì)" (有機(jī)會(huì)而已),能領(lǐng)正職薪水和績效獎(jiǎng)金,至於是多少我就沒多問。
我能做的可能就AR/VR/網(wǎng)頁和其他雜事的支援,因?yàn)椴皇沁[戲公司也不能妄想做PC遊戲。

一講到AI、大數(shù)據(jù)、即時(shí)分析什麼的就完全不行,是不是該學(xué)學(xué)Python了

總之我很高興,感謝一切機(jī)會(huì)。
送禮物贊助創(chuàng)作者 !
0
留言
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

更多創(chuàng)作