Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Математика] Спроецировать отрезок на отрезок


Автор: sergejzr 14.5.2007, 01:35
Давно эот было smile Напомните плз. Как спроецировать отрезок на отрезок с помощью матрицы?

Т.е 
Дано: 
Отрезок А=(х1,у1)(х2,х2) 
Отрезок Б=(х3,у3)(х4,у4)
Найти матрицу, при умножении на которую из А получится Б. 

Для упрощения - оба отрезка параллельны, т.е крутить ничего не надо.

На öпервом курсе такие мелочи щёлкали как семечки, а сейчас заржавели немного :(.

Автор: Kuvaldis 14.5.2007, 01:49
sergejzr, 
Пусть  Х -старые  координаты , а Y - новые координаты  
Тогда связь между ними:
X = M * Y
где М - матрица перехода от старого базиса к новому
строится так:
берется новый базис и его координаты в старом базисе записываются как столбцы

Только я не совсем все-таки понял, Сергей, что тебе нужно
Если найти матрицу перехода по готовым координатам, то это надо решать линейную систему

Автор: sergejzr 14.5.2007, 01:57
Как я помню, надо матрицу "удлиняющую" и матрицу сдвигающую. (Scale, Transpone).

Цитата(Kuvaldis @  14.5.2007,  00:49 Найти цитируемый пост)
решать линейную систему

Мне надо вспомнить, как эти две матрицы строятся..

Автор: zkv 14.5.2007, 02:18
вообще нашел мэплом какую то матрицу smile, может поможет, сам с трудом уже соображаю

Автор: ivashkanet 14.5.2007, 12:56
Вот http://stratum.pstu.ac.ru/textbooks/kgrafic/lection01.html есть по теме.

Просто мысли:
Цитата(sergejzr @  14.5.2007,  00:57 Найти цитируемый пост)
Как я помню, надо матрицу "удлиняющую" и матрицу сдвигающую. (Scale, Transpone).

Если A --- искомая матрица, то 
Цитата
<удлинняющая > = det(A) * E
<сдвигающая> = 1/det(A) *A


Где det(A) -- определитель, E -- единичная матрица (на главной диагонали 1, остальные нули).


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)