[討論] 如何把月光西羅摩旋轉/鏡射任意角度

作者: Vulpix (Sebastian)   2021-07-29 00:51:27
以前都很討厭小畫家不能任意旋轉角度這點。
但是小畫家其實辦得到這個工作。
在開始之前,以下鉛直二字在程式中均翻譯為垂直。
這是有點爛的翻譯,比較像文學家誤解科學語言那種,所以一律改稱鉛直。
我們先準備一隻月光西羅摩。
月光西羅摩:「Pui pui pui pui pui、PUI PUI PUI!」
https://i.imgur.com/y46KMNB.png
然後我們用調整大小功能,設定水平77、鉛直129。
得到一隻有點苗條的月光西羅摩。
https://i.imgur.com/xekkRYE.png
再用隱藏在調整大小裡面的扭曲功能,設定水平39。
這是一隻被推歪了的苗條月光西羅摩。
https://i.imgur.com/K296dk6.png
這次不用另外設定,直接按下旋轉找到翻轉功能裡面的鉛直翻轉。
得到了歪歪苗條月光西羅摩倒影!
https://i.imgur.com/215IXKr.png
接下來再用扭曲功能,設定鉛直39。
這次西羅摩看起來很像地毯,我就叫他地毯月光西羅摩。
https://i.imgur.com/dVPFCbj.png
最後一步,再次使用調整大小功能,設定水平77、鉛直129。
西羅摩就被我們翻轉了!
https://i.imgur.com/iOGtQvE.png
看看那個小畫家的特色鋸齒邊緣的確互相垂直了,圖片大小也沒有跑掉太多,
我們成功使用小畫家的基本功能做了一次以 x=2y 為翻轉軸的翻轉。
誒,我沒有做旋轉?
那個簡單,再做一次鉛直翻轉。
我們得到了大概是旋轉37度的月光西羅摩。
https://i.imgur.com/FcY7Q52.png
事實上小畫家是一個線性代數教學軟體。
他教會了我們怎麼使用伸縮、推移、簡單鏡射達到一般的鏡射旋轉效果。
上面的作法其實稍微複雜了一點,把可逆方陣做 LDU 分解後,
L 是鉛直推移、U 是水平推移、D 則是可能含有鏡射或旋轉半周的伸縮。
不過剛剛嘗試計算了一下,想要對 y=x 鏡射似乎沒有那麼簡單,
即使用 LDU 效果也不佳,因為 LDU 依賴的高斯消去法要先換列,
可是列交換本身就是那個鏡射……
但只要先左轉 90 度接著再水平翻轉即可。
對 y=-x 的鏡射則要把前述步驟改成鉛直翻轉。
上面的作法複雜歸複雜,但是因為對稱性極佳,所以我還是選了這個。
以下θ代表鏡射軸的斜角。
其中水平伸縮倍率皆為√cos2θ,鉛直伸縮倍率則是其倒數,
推移角度則由 arctan(sin2θ) 算出。
遇到負的 cos2θ 時,可以將步驟中的鏡射改為水平鏡射。
作者: redDest (油宅)   2021-07-29 00:52:00
線性代數嘔嘔嘔嘔嘔
作者: D122 (小黑球)   2021-07-29 00:54:00
樓上 線性代...是什麼 為何窩頭這麼痛
作者: diabolica (打回大師再改ID)   2021-07-29 00:59:00
還好伽羅瓦早死
作者: fate201 (Licht)   2021-07-29 00:59:00
原來是線性代數啊 還以為是影像編輯軟體呢
作者: chenteddy (Chenteddy)   2021-07-29 01:01:00
洽點?
作者: kevinlee2001 (零白夜)   2021-07-29 01:04:00
西羅摩不是恰點?
作者: chenteddy (Chenteddy)   2021-07-29 01:07:00
是阿
作者: fatfatss   2021-07-29 01:07:00
其實是阿比,車窗顏色不一樣,劇情(?)裡變身魔法少鼠的也是阿比
作者: showwhat2 (華仔)   2021-07-29 08:18:00
都忘記線性代數在做什麼了,頭痛。

Links booklink

Contact Us: admin [ a t ] ucptt.com