Как инвертировать преобразование области в исходное пространство с учетом матрицы преобразования в Python - PullRequest
0 голосов
/ 03 августа 2020

Начиная с геометрической c структуры в трехмерном реальном пространстве, я преобразовал пространство в новое пространство S, используя матрицу преобразования A. В этом преобразованном пространстве SI сгенерировал новые структуры и рассчитал их поверхности.

Теперь я хочу вернуться к исходному (реальному) пространству. Как я могу преобразовать число, относящееся к участкам лица в преобразованном пространстве S, в исходное реальное пространство?

Матрица A - выводит меня из реального пространства в новое пространство S - выглядит следующим образом:

A = np.array([[ 1.02218371e+01, -5.01184000e-03,  8.28603000e-03],
       [ 5.15849000e-03,  1.02218013e+01,  4.49135000e-03],
       [-8.39027000e-03, -4.58925000e-03,  1.02220817e+01]])

Поверхности, которые я должен преобразовать обратно в исходное реальное пространство, следующие:

surfaces = np.array([8.15231027e-02, 3.30759780e-01, 1.30762826e-01, 1.23423172e-01,
        2.53063255e-03, 2.07243636e-01, 5.72893176e-02, 1.27633931e-01,
        4.67597873e-01, 2.18306734e-01, 5.21108558e-02, 2.46893051e-04,
        1.17762718e-01, 2.87337420e-01, 2.53063255e-03, 4.64298934e-04,
        8.37463483e-03])

Ответы [ 2 ]

1 голос
/ 26 августа 2020

Если вы примените матрицу преобразования A к набору координат, вы можете вернуть оригинал, применив обратное преобразование к преобразованным координатам. Вычислите обратное к A, используя numpy.linalg.inv()

c_transformed = A * c_original
A_inv = np.linalg.inv(A)
c_original2 = A_inv * c_transformed

Математически вы получите

A_inv * c_transformed = A^-1 * A * c_original = I * c_original = c_original
0 голосов
/ 26 августа 2020

Я не думаю, что возможно go вернуться и получить область, которая была бы у вас в исходном пространстве. В зависимости от их ориентации поверхности не подвергаются одинаковому воздействию при преобразовании. Подумайте об уменьшении пространства по вертикали. Площадь чего-либо в горизонтальной плоскости остается неизменной, в то время как площадь, скажем, двери уменьшается. Это означает, что вы не можете go вернуться, если площадь поверхности - единственная информация, которая у вас есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...