2022年8月3日 星期三

關於 flutter Matrix4 部件

 Flutter 可以將部件用 Matrix4 包裝起來, 透過它將部件作旋轉, 位移, 放大等特效.可以參考文章:https://medium.com/flutter-community/advanced-flutter-matrix4-and-perspective-transformations-a79404a0d828

1. 旋轉 X 軸時, 使用的轉換矩陣是[1,0,0,0;  0, cos, sin, 0;  0,-sin, cos, 0; 0,0,0,1], 座標運算一下:

  x' = x,   y' = y * cos(θ) + z * sin(θ),   z' = -y * sin(θ) + z * cos(θ)

因為畫面 z = 0 =>  x' = x,    y' = y * cos(θ), 可以預見 X 軸不變, 但 Y 軸變短了, 因為|cos(θ)| <= 1

 

2. 旋轉 Y 軸時, 使用的轉換矩陣是[cos,0,-sin,0;  0, 1, 0, 0;  sin,0,cos,0;  0,0,0,1], 座標運算一下:

  x' = x * cos - z *sin,     y' = y,     z' = x * sin + z *cos

因為畫面 z = 0 =>  x' =  x * cos,    y' = y , 可以預見 Y 軸不變, 但 X 軸變短了, 因為|cos(θ)| <= 1

 

3.旋轉 Z 軸, 使用的轉換矩陣是[cos, sin,0, 0;  -sin,cos,0,0;  0,0,1, 0;  0,0,0,1], 座標運算一下:

         x' = x * cos(θ) + y *sin(θ),          y' = -x * sin(θ) + y * cos(θ),         z' = z

當所有座標點, 以左上角當原點 (0,0, 0)為參考點, 同時旋轉旋轉 Z 軸 θ 時, 各座標點相對位置將一如往常, 物體並不會變形

沒有留言:

張貼留言

使用 pcie 轉接器連接 nvme SSD

之前 AM4 主機板使用 pcie ssd, 但主機板故障了沒辦法上網, 只好翻出以前買的 FM2 舊主機板, 想辦法讓老主機復活, 但舊主機板沒有 nvme 的界面, 因此上網買了 pcie 轉接器用來連接 nvme ssd, 遺憾的是 grub2 bootloader 無法識...