iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
自我挑戰組

透過Roblox Studio學習Lua語言與基本程式邏輯系列 第 23

Day 23: 細部解釋CFrame.Angles方法

  • 分享至 

  • xImage
  •  

在Day 12有提到關於CFrame的旋轉角度的問題,今天我們來細部的講解他的各項方法


1. 各方法的不同

來看以下的程式碼

local Part = script.Parent
Part.CFrame = CFrame.Angles(0, 90, 0)
Part.CFrame = CFrame.Angles(0, math.deg(90), 0)
Part.CFrame = CFrame.Angles(0, math.rad(90), 0)

這三個指令所展現的結果都不一樣,但明明都是給數值90,為什麼會不一樣呢?

這就要扯到數學上的弧度與角度的關係,在數學中,角度的表示方式有度數與弧度,其中,度數就是我們用量角器量出來的數值,而弧度則是將角度先以一個圓形內所切的扇形來看,假設我們在圓內切了一個扇形,其角度為30度,則他的弧度就會是 此扇形的弧長 / 此扇形的半徑 (S/r)

再來就是該如何將角度換算成弧度,在Day 12的時候我有提供兩個公式:
rad = math.pi/180 * deg
deg = 180/math.pi * rad

那這邊的兀 (這是中文字的ㄨˋ,但我找不到pi的符號所以先這樣代替) 指的並不是我們國小學的3.14159那串,這邊指的是兀弳,弳是弧度的單位,像角度的表示就如同90度,弳就相當於90弳,但要注意換算,90度不會等於90弳

好的,說了這麼多數學理論,那現在來解釋為何這三項會不一樣,首先我們要了解到,電腦是無法將度數與其他數字做計算的,因為度數的單位與一般常數並不相通,但弳度 (弧度)就可以,因為弳度是可以與其他數字做交換計算的,例如你無法將90度加上1,但弳度可以,所以在CFrame.Angles這項函式裡面,對於數值的預設單位就會是弳度,而要將角度轉換為弳度,就要使用math.rad函式,所以邏輯上就是用math.rad將90度換算成弳,再將換算數值給予Angles函式。


上一篇
Day 22: Raycast與Pivot
下一篇
Day 24: TweenService
系列文
透過Roblox Studio學習Lua語言與基本程式邏輯25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言