Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Моделирование, изометрия, photoshop, 3d редакторы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2017, 16:37   #21
dashaLuna
Пользователь
 
Регистрация: 01.02.2017
Сообщений: 17
По умолчанию

4)
[ -0.5] [-1 0 0] [0.5]
[-0.5]=[0 -1 0]*[0.5]
[ 1] [0 0 1] [1]
dashaLuna вне форума Ответить с цитированием
Старый 01.02.2017, 17:48   #22
dashaLuna
Пользователь
 
Регистрация: 01.02.2017
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Нет! Справа у вас должна быть заданная точка, а с лева та которую вы получаете в результате. Матрица соответственно меняется, но по воле случая у нас она таже самая.

Код:
[ 1]  [1  0  0] [1]
[-2]:=[0 -1  0]*[2]
[ 1]  [0  0  1] [1]
Я поставил знак ':=' что-бы подчеркнуть, что это как-бы присвоение. Хотя тут правильнее просто равенство '='.
а как делать, с значениями которые у меня в пример №3? там так как я делала уже не получится делать
dashaLuna вне форума Ответить с цитированием
Старый 01.02.2017, 18:00   #23
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

А дальше вам надо включать голову. Так как дальше пойдут более сложные задачи.
Тем более 3 из 4 за вас решили. Да и задачка простая.как 2х2=4.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 01.02.2017, 18:03   #24
dashaLuna
Пользователь
 
Регистрация: 01.02.2017
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
А дальше вам надо включать голову. Так как дальше пойдут более сложные задачи.
Тем более 3 из 4 за вас решили. Да и задачка простая.как 2х2=4.
та это понятно что пойдут сложные, поэтому и сама просто для себя придумываю задания и решаю их . Но как сделать этот пример я не вижу. как в втором столбе сделать чтобыс 2 вышел -1 (((
я уже думала -1\2 написать

3) [ 2] [-2 0 0] [-1]
[-1]:=[0 -1/2 0]*[2] ..
[ 1] [0 0 1] [1]

Последний раз редактировалось dashaLuna; 01.02.2017 в 18:08.
dashaLuna вне форума Ответить с цитированием
Старый 01.02.2017, 18:15   #25
dashaLuna
Пользователь
 
Регистрация: 01.02.2017
Сообщений: 17
По умолчанию

або такое
[ 5] [? 0 0] [0]
[0]:=[0 0 0]*[5]
[ 1] [0 0 1] [1]

как такое сделать. я уже все перепробовала((
dashaLuna вне форума Ответить с цитированием
Старый 01.02.2017, 18:17   #26
dashaLuna
Пользователь
 
Регистрация: 01.02.2017
Сообщений: 17
По умолчанию

о я кажеться знаю , там 90 градусов
можно через поворот делать
dashaLuna вне форума Ответить с цитированием
Старый 02.02.2017, 00:27   #27
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от dashaLuna Посмотреть сообщение
1.задано точку (1, 2). найти матрицу преобразования, переводит заданную точку в точку (1, -2)
Эта матрица очень легко выводится самостоятельно, даже не нужно искать формулу в интернете. Показать как это сделать?

На всякий, не дожидаясь ответа, покажу очень подробно.

И так. У нас есть точка (x, y). Нам нужно получить (x', y'). Уравнения записываются так:
Код:
x' = x + Tx
y' = y + Ty
, где Tx и Ty - это перемещения по оси X и по оси Y соответственно (см. рисунок внизу)

Обозначим уравнения выше единицей в скобках (1)

В матричном виде уравнения (1) записываются так в обобщённом виде:
Код:
|х'| =  |a b| |x|
|y'|    |c d| |y|
Перепишем в видео уранений:
Код:
x' = a * x + b * y
y' = c * x + d * y
Если уранение выше сопоставить с (1), то нам не хватает размера матрицы для Tx и Ty, поэтому добавить размерность к векторам и матрице:

(2)
Код:
|х'|   |a b с| |x|
|y'| = |d e f| |y|
|1 |   |g h k| |1|
Перепишем в виде уравнений:
Код:
x' = a*x + b*y + c*1
y' = d*x + e*y + f*1
1 =  g*x + h*y + k*1
Для того, чтобы из уравнений выше получить уравнений (1) коэффициенты должны быть следующими:
a = 1, b = 0, c = Tx
d = 0, e = 1, c = Ty
g = 0, h = 0, k = 1 (тут должно просто выполняться равенство 1=1)

Подставим значения коэффициентов в уравнение (2)

(3):
Код:
|х'|   |1 0 Tx| |x|
|y'| = |0 1 Ty| |y|
|1 |   |0 0 1 | |1|
Мы получили матрицу перемещения.

В вашей задаче точка перемещается из (1, 2) в (1, -2). Подставим эти значения в уравнение (1):

1 = 1 + Tx
-2 = 2 + Ty

Получаем:
Tx = 0
Ty = -4

Подставляем в матрицу из (3) и вот он ответ:
Код:
|1 0  0|
|0 1 -4|
|0 0  1|
P.S. Рекомендую эту книгу на русском, где описано подробно и просто, как выводить все три матрицы: перемещения, вращения и масштабирования: Программирование трехмерной графики
Изображения
Тип файла: png TranslationCalc.png (19.8 Кб, 144 просмотров)

Последний раз редактировалось 8Observer8; 02.02.2017 в 14:16.
8Observer8 вне форума Ответить с цитированием
Старый 02.02.2017, 14:43   #28
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от dashaLuna Посмотреть сообщение
1.задано точку (1, 2). найти матрицу преобразования, переводит заданную точку в точку (1, -2)
2.задано точку (1, 3). найти матрицу преобразования, переводит заданную точку в точку (-1, 3)
3.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси Х
4.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси В
Все 4 задания об одном и том же: о переносе точки. Задания 1 и 3 - это перенос точки относительно оси Y. Задания 2 и 4 - это перенос точки относительно оси X. Причём 1 и 2 - перенос точки с указанными координатами, а 3 и 4 - перенос точки в обобщённом виде.

От вас требуется вывод матрицы переноса, что я описал выше. Если вы не поймёте как выводится матрица переноса, то подставлять в уже готовую матрицу - это бестолковая затея. В математике нужно понимать, что откуда берётся, то есть выводится, тогда задачи решены.

И так я показал, как выводится матрица переноса, вот что мы получили:
Код:
|х'|   |1 0 Tx| |x|
|y'| = |0 1 Ty| |y|
|1 |   |0 0 1 | |1|
Оформлю решение всех 4 задач.

(x, y) -> (x', y')

x' = x + Tx
y' = y + Ty

1) (1, 2) -> (1, -2)

1 = 1 + Tx
-2 = 2 + Ty

Tx = 1 - 1 = 0
Ty = -2 + (-2) = -4

Ответ:
Код:
|1 0  0|
|0 1 -4|
|0 0  1|
2) (1, 3) -> (-1, 3)

-1 = 1 + Tx
3 = 3 + Ty

Tx = -1 + (-1) = -2
Ty = 3 - 3 = 0

Ответ:
Код:
|1 0 -2|
|0 1  0|
|0 0  1|
3 и 4 - это теже 1 и 2, но в обобщённом виде.

3) Симметрия относительно оси X

x' = x
y' = -y

x' = x + Tx
y' = y + Ty

x = x + Tx
-y = y + Ty

Tx = -x + x = 0
Ty = -y + (-y) = -2y

Ответ:
Код:
|1 0  0  |
|0 1  -2y|
|0 0  1  |
4) Симметрия относительно оси Y

x' = -x
y' = y

x' = x + Tx
y' = y + Ty

-x = x + Tx
y = y + Ty

Tx = -x + (-x) = -2x
Ty = y - y = 0

Ответ:
Код:
|1 0  -2x|
|0 1  0  |
|0 0  1  |

Последний раз редактировалось 8Observer8; 02.02.2017 в 14:46.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица А размерность 2xn, которая хранит координаты n точек на плоскости. Определить номер точки, суммарное расстояние.. Delphi Shaolinjehzu Помощь студентам 7 06.06.2016 22:26
Запрет ввода в TextBox букв и . (точки) / Или автозамена точки на запятую uralshans Microsoft Office Excel 4 30.08.2013 00:24
матрица, нахождения седловой точки андрей.... Помощь студентам 0 21.12.2012 17:04
Матрица и седловые точки (С++) paha192 Помощь студентам 2 09.10.2009 13:53
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть Дикий Помощь студентам 7 12.05.2008 17:57