[讨论] 如何把月光西罗摩旋转/镜射任意角度

楼主: 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