同人小技巧‎ > ‎

玩壞圓型範圍

張貼者:2018年8月18日 清晨7:35人FK
其實這主要是回應 有辦法用 [圓形範圍] 做出一直線嗎?(人物特效) 此討論串
感謝樓主提供這個有趣的題目
不說那麼多,先給個效果圖
沒錯,都是用圓型範圍這個特效弄的

原理:
直接cartesian coordinate(x,y)換成polar coordinate(r,theta)就好啦
假如每點的座標是(x,y),而(0,0)就是你人的座標直接將這點換成polar就可:
1. 求半徑r:
2. 求偏角theta:

(註atan2大致與atan一樣,但避免了除零的情況,同時能回傳完整的角度範圍)
(atan 的range -pi<theta<pi, atan2 的range -2pi 至2pi)
(由於atan2回傳的是radian而角度要用degree,先轉做deg)

https://zh.wikipedia.org/wiki/Atan2


進階:自旋轉特效
要自旋轉也是很容易,設旋轉角為φ, 每點的座標以矢量表達
旋轉矩陣T:

原本沒有旋轉的矢量p:

旋轉後的矢量p'


再將x', y'換成polar coordinate 便可用在圓形範圍


玩壞:挑戰題
好吧,各位如果能夠搞懂上面,可以試試做這個挑戰題:
1.星型特效:一個圓型以五角星的軌跡圍繞主角公轉
2.太陽系:你是太陽,有個地球圍繞你公轉,又有個月球圍繞地球公轉
加油吧各位~
老實說第二題某FK未必弄到出來