是否有一種通用方法可以將矩陣變換從一個坐標系轉換為另一個坐標系,從而使生成的變換在螢屏上看起來相同?
例如,在 X 向右、Y 向上和 Z 朝向觀察者的坐標系中有一些變換。并且需要將它們轉換為 X 向右、Y 遠離觀察者、Z 向上的坐標系。

需要對每個矩陣執行什么操作才能使變換在另一個坐標系中看起來相同?在給定源和目標基向量的情況下,是否有一種通用的方法來構造此操作?
uj5u.com熱心網友回復:
您只需要使用適當的坐標變換矩陣來組合執行您喜歡的操作的矩陣。如果你有一個系統 A 和你喜歡的系統中的 pts 上的一些操作 X,但是你在系統 B 中為相同的空間編碼你的點并且想要做 X 在空間中所做的事情,那么你可以應用 X'=inv( M) X M 其中 M 是從 B 到 A 的坐標變換。
uj5u.com熱心網友回復:
這是繞 x 軸旋轉 90 度
┌ ┐
│ 1 0 0 0 │
│ 0 cos(θ) -sin(θ) 0 │
│ 0 sin(θ) cos(θ) 0 │
│ 0 0 0 1 │
└ ┘
...哪里cos( /-90) = 0,sin( /-90) = /-1
┌ ┐
│ 1 0 0 0 │
│ 0 0 -1 0 │
│ 0 1 0 0 │
│ 0 0 0 1 │
└ ┘
或 -90 度
┌ ┐
│ 1 0 0 0 │
│ 0 0 1 0 │
│ 0 -1 0 0 │
│ 0 0 0 1 │
└ ┘
我不確定哪一個會對您的情況有所幫助。這是其中之一,根據墨菲定律,你第一次做錯了。
請參閱:3D 轉換
要將舊坐標系的變換轉換T為新坐標系的變換T',我們可以使用上面的旋轉來撰寫R
T' = R -1 × T × R
結果是將新坐標系中的點轉換回舊坐標系的轉換,然后應用原始轉換,最后再次將結果轉換為新坐標系。
uj5u.com熱心網友回復:
您可能想查看一個出色的開源庫:https ://github.com/mathnet/mathnet-spatial https://spatial.mathdotnet.com/api/MathNet.Spatial.Euclidean/CoordinateSystem.htm
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521686.html
標籤:C#数学坐标转型
上一篇:數學方程中的NaN
