LINUX.ORG.RU
решено ФорумTalks

Помогите преобразовать R^3.


0

1

В двумерном у меня такое:

x' = a*(|x|+|y|)
y' = b*(|x-y|)
Надо повернуть R^3 по-аналогии. Чтобы было примерно так:
x' = a*(|x|+|y|+|z|)
y' = b*(|x+y|-|z|)
z' = c*(|x+z|-|y|)
Насчет последних двух формул не уверен. Новые координаты в новом пространстве («урезанном» евклидовом) нужны для вычисления «эллипсовидной» метрики. То есть, в R^2 получаем эллипс, повернутый на 45 градусов, в R^3 - эллипсоид, повернутый на atg{...}.

Как правильно повернуть в R^3 (нужно для быстрых вычислений)?

★★★★★

Немного не ясен вопрос

Тебе на какой-то угол повернуть надо? Не проще ли тогда какой-нибудь учебник по линалу/ангему качнуть?

different_thing
()

какой-то у тебя «поворот» странный

да и вся задача сформулирована задом наперед

напиши
Дано:...
Найти:...

alpha ★★★★★
()
Ответ на: комментарий от Eddy_Em

Да тут не поворот.

Я так понял, что у него есть некоторое нелинейное преобразование на плоскости и он его хочет как-нибудь естественным образом обобщить на случай трехмерного пространства. Ясно, что без дополнительных условий эта задача не имеет единственного решения.

kalenkov
()
Ответ на: комментарий от annoynimous

можно предположить например, что нужно такое преобразование координат в котором окружность в смысле метрики будет иметь вид эллипса повернутого на 45 градусов

тогда это комбинация поворота и растяжения по одной из осей...

подгоним задачу под отве^W непонятно что :)

alpha ★★★★★
()
Ответ на: комментарий от alpha

у него есть формула поворота для 2D, ему нужна формула поворота для 3D чтобы выглядела так же няшно и быстро считалась.

stevejobs ★★★★☆
()

> pacify

если вы всё тот же человек, что был под похожим (этим?) ником... то как-то не гоже вам задавать подобный вопрос.

может сон поможет?

gunja
()
Ответ на: комментарий от different_thing

В уме тоже можно)

может он пишет какую-нибудь высокопроизводительную программу и задумывается, например, какая операция быстрее выполяется, вычитание или сложение? Не быстрее ли прибавить отрицательное число, чем вычитать просто так? ;)

stevejobs ★★★★☆
()
Ответ на: комментарий от Eddy_Em

Он, наверное, побежал про углы Эйлера читать :)

Не, как раз этого не хотелось бы. (Я на источник за бесплатной водой ходил)

Дано. Преобразование в R^2: (выше была ошибочка/опечатка)

x' = x + y
y' = x - y
(поворот и растяжение в sqrt(2) раз.

Надо по-аналогии написать преобразование в R^3.
Не знаю, будет ли это поворотом + растяжением.
(Единственное условие - чтобы оси были перпендикулярны и x' = x + y + z.
Я получил такое:

x' =  x + y + z
y' = -x - y + z
z' =  x - y - z

Правильно?

Матрица преобразования, v' = A * v^{T}:

+1 +1 +1
-1 -1 +1
+1 -1 -1
(T - транспонирование матриц)

pacify ★★★★★
() автор топика
Ответ на: комментарий от gunja

>> pacify

если вы всё тот же человек, что был под похожим (этим?) ником...

Прежние математические статьи нужны были моей жене.
А я универ окончил аж 10 лет назад, совсем ленивый стал,
простенькие математические задачки решаю раз в месяц.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

> Единственное условие - чтобы оси были перпендикулярны и x' = x + y + z

тогда тебе нужна ортогональная матрица преобразования, а у тебя строки неортогональны


первая строка 1 1 1
вторая любая ортогональная ей
третья - векторное произведение первых двух

что-то типа такого:
1 1 1
1 -1 0
1 1 -2

alpha ★★★★★
()
Ответ на: комментарий от pacify

> Правильно?

проверять влом... но вот какая штука: в 2-мерном случае доворот оставшейся оси фиксированный.

в случае 3-д, в данной формулировке (сохранение ортогональности и требование не преобразование x -> x' ) остаётся свобода вращения плоскости yz (y'z').

вполне возможно, что приведённое - одно из решений задачи.

и матрицы поворота описываются обычно sin cos функциями. мне даже детерминант получившейся (выписанной) матрицы посчитать влом. должно быть 3.

gunja
()
Ответ на: комментарий от alpha

Спасибо, alpha, сразу вспомнил про косинус и скалярные произведения с первого курса.
У меня были замечательные конспекты лекций (алгебру и аналитическую геометрию у нас вела Галина Димховна Ким, ВМиК МГУ, 1995-1996).
Но их потеряли второгодники, которым их дал на время почитать.
До сих пор жалею - учебники для восстановления знаний в основном не годны. Особенно - издания последних 5-10 лет.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

что-то наврала я кажется немного надо все-таки нормировать их ещё, чтобы длина у всех строк была одинаковая - sqrt(3)

тогда будет полноценная ортогональная матрица помноженная на число sqrt(3)

alpha ★★★★★
()
Ответ на: комментарий от alpha

третья - векторное произведение первых двух ...

Вот через скалярные произведения, тоже самое:

+1 +1 +1
+1 +1 -2
 a  b  c

a+b-2c = 0
a+b+c = 0

c = 0
a = -b

+1 +1 +1
+1 +1 -2
+1 -1  0

pacify ★★★★★
() автор топика
Ответ на: комментарий от alpha

> ... надо все-таки нормировать их ещё, ...

Направления по осям могут быть неравнозначны.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

а, да, тебе же ортогональность всего преобразования замены координат не нужна, достаточно только ортогональности образов трех векторов

просто если пронормировать и получить ортогональную матрицу сейчас, то потом не придется у неё обратную считать - будет простое транспонирование

так что смотри сам что тебе нужнее - хороший коэффициенты или простой вид обратной матрицы

alpha ★★★★★
()
Ответ на: комментарий от alpha

меня устраивают хорошие коэффициенты, так как преобразование выполняется в одну сторону

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

А чем синий учебник (с мгушкой на фоне) самой Галины Динховны не устраивает?

uGin
()

>>вычисления «эллипсовидной» метрики.

Эллиптические координаты это одно, а поворот + три масштабирования это другое.

Метрика будет почти та же евклидова, только с неединичными диагональными элементами.

Откуда всплыли модули тоже неясно - они дадут плохой якобиан.

mclaudt
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.