IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Аффинные преобразования на плоскости, помогите разобраться
julia_lisha
сообщение 20.7.2010, 11:27
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



Здравствуйте!!!!
задание по комп.графике......
может кто подскажет литературу по данной теме)

Задание:

комната 5 на 5 метров. в этой комнате в самом центе расположен стол.
на столе расположенны пронумерованные прямоугольные листочки бумаги.
листочки склажываются на стол в порядке их нумерации: 1-2...
стол прямогольный его размеры Тх и Ту.
центр слола расположен ы центре комнаты.
также известны размеры листочков по осям Х и У равные Sxi и Sуi (i-номер листочка),
расположение центра каждого листочка на столе (две координаты Dxi и Dуi относительно левого нижнего угла стола).
после каждый листочек поворачивается на угол ai относительно своего центра(если угол больше - поворачиваем по часой стрелке иначе против).
порядок листочков при этом не меняется.
Затем таким же образом поворасивается стол на угол b.
про листочки известно что каждый из них разделен на 4 одинаковые прямоугольные области - A,B,C,D.
теперь с потолка падает капля и попадает на стол, возможно попадая на некоторые листочки. предполается что капля бесконечно малого размера (имеется в вид протяженность по осям X и У) но тем не менее,способна промочить сколь угодно листочков.
про капля известны ее координаты Cx, Сув момент падения относительно левого нижнего угла комнаты.
необходимо определить на какие именно листочки попадет капля в каой поледовательности она их намочит, а также для каждого промоченногго листочка необходимо указать в какую из его обласстей A,B,C,D попала капля.


(Тх,Ту,B )-(192,120,62)
(Sx1,Sy1)-(69,58)
(Dx1,Dy1,a1)-(145,88,10)
(Sx2,Sy2)-(29,35)
(Dx2,Dy2,a2)-(107,77,66)
(Sx3,Sy3)-(79,39)
(Dx3,Dy3,a3)-(17,80,86)
(Sx4,Sy4)-(53,67)
(Dx4,Dy4,a4)-(90,77,56)
(Sx5,Sy5)-(57,41)
(Dx5,Dy5,a5)-(90,57,78)
(Cx,Cy)-(270,253)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 20.7.2010, 16:06
Сообщение #2


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Хм... Во-первых, вот что выясним. Листочек когда поворачивается, он ведь другие не затрагивает? Только своё положение меняет, то всё довольно просто.

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

Теперь о преобразованиях.
Из преобразований понадобится поворот вокруг точки:
формула следующая
(IMG:http://img706.imageshack.us/img706/6033/codecogseqn.gif)
x', y' - новые координаты, x, y - старые, alpha - угол поворота, cx, cy - центр поворота

Ещё я бы хранил что-то типа "векторов ориентации" для этих листочков, их тоже надо поворачивать вокруг оси а затем и вместе со столом. Изначально, как я понял, они у всех одинаковые и направлены, например в направлении (0;1). Потом по ним можно будет определить попадание капли в одну из областей.

Удобно будет всё привести к одной системе координат. Я бы взял за её начало центр стола.

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

Литературы, к сожалению, не знаю, у нас очень хороший преподаватель по КГ, мы у него всё узнавали, что непонятно было.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 21.7.2010, 12:12
Сообщение #3


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



о, спасибо огромное!!!
теперь задание на много стало понятнее, но все же....

с чего необходимо начать? (IMG:style_emoticons/default/blush.gif)

и как выполнить
Цитата
Ещё я бы хранил что-то типа "векторов ориентации" для этих листочков, их тоже надо поворачивать вокруг оси а затем и вместе со столом. Изначально, как я понял, они у всех одинаковые и направлены, например в направлении (0;1). Потом по ним можно будет определить попадание капли в одну из областей.

это выполняется с помощью каких то формул?

вышло так, что дали просто лекцию....которую я никак не могу связать с данным примером, если необходимо могу предоставить.....
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 21.7.2010, 14:42
Сообщение #4


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



1. Выбрать систему отсчёта (как я уже сказал - центр стола)
2. Записать новые координаты центров листков
(IMG:http://img257.imageshack.us/img257/9434/equationx.png)
//прошу прощения, тут вместо Dx, Dy должны быть Tx и Ty соответственно.
3. Для каждого листка задать вектор ориентации (0;1).
4. Повернуть каждый листок на свой угол, то есть ту формулу, что я написал выше, надо применить к векторам поворота. В качестве центра - взять координаты центра каждого листка в новой системе координат.
5. Применить ко всем точкам и ко всем векторам формулу поворота относительно точки (0; 0) (центр стола)
6. Рассчитаем новую координату точки падения капли - отнимем от x и к y по 2,5 (половина длины/ширины комнаты)
После этих 5 пунктов мы имеем записанные в одной новой системе координат с центром в середине комнаты:
а. Координаты центров листков.
б. Векторы ориентации листков.
в. Координаты падения капли
г. Размеры всех листков (естественно, никуда не поменялись)

Определить, в какую область попала точка, если вообще попала, можно из формул скалярного и векторного умножения
Пусть a - вектор ориентации, b - вектор из центра листка к координате капли. Тогда
(IMG:http://img810.imageshack.us/img810/5849/equation.png),
где x - векторное умножение, * - скалярное - если нужно, дам формулы для двухмерного случая.

Их же используем для проверки попадания в листок, капля попала в листок, если:
b*sin(a^B ) <= Sx
b*cos(a^B ) <= Sy

Как-то так, будут вопросы - обращайтесь)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 21.7.2010, 15:30
Сообщение #5


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



большое-большое спасибо, прямо огромное, за подробное описание)
к сожалению сейчас не будет возможности иметь доступ в иннет, но 27 числа я обязательно отпишусь....так что не теряйте....и возможно появятся вопросы...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 26.7.2010, 7:24
Сообщение #6


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



(IMG:style_emoticons/default/blush.gif) а вот и вопросы......
начнем по пунктам:
1. (96,60)--центр стола

2.Записать новые координаты центров листков
я так поняла в формуле под x y мне брать Dxi и Dyi-(расположение центра каждого листочка на столе, относительно левого нижнего угла стола),если так, то
Цитата
x' 241
=
y' 148

это координаты для первого листочка
и т.д. до 5 листочка

3. Для каждого листка задать вектор ориентации (0;1).
я так понимаю этот пункт остается без изменения

4. Повернуть каждый листок на свой угол, то есть ту формулу, что я написал выше, надо применить к векторам поворота. В качестве центра - взять координаты центра каждого листка в новой системе координат.

формула поворот вокруг точки?
Цитата
cx, cy - центр поворота

хм...чет у меня нет таких переменных....или я просто их не вижу?!

5. Применить ко всем точкам и ко всем векторам формулу поворота относительно точки (0; 0) (центр стола)

хм или сюда формулу поворот вокруг точки?))))))

дальше пока нет смысла спрашивать, пока это все не сделанно....
(IMG:style_emoticons/default/blush.gif) заранее спасибо, жду ответа



Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 26.7.2010, 9:42
Сообщение #7


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Потихоньку буду добавлять комментарии:
Во 2 пункте у меня ошибка, там вместо + нужен -.
Если у точки была координата 96; 60, то она должна стать 0;0, а не 192; 120

Ещё один мой недочёт - векторы поворота можно вертеть относительно любой точки. Вращаем относительно 0;0, и в 4, и в 5 пункте
Даже не относительно любой, а именно относительно 0;0))


А поскольку мы выбрали новую систему отсчёта, то и точки в 5 пункте мы будем вращать относительно 0;0.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 26.7.2010, 10:24
Сообщение #8


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



если заменить 2 пункт, то....

координата точки Dx1,Dy1 (145,88)
Dx1,Dy1-расположение центра каждого листочка на столе, относительно левого нижнего угла стола.
или тут надо брать (Sx1,Sy1)-(69,58) - размеры листочков по осям Х и У?!
Цитата
x' 49
=
y' 28



Цитата
Если у точки была координата 96; 60

это центр стола....



Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 26.7.2010, 11:36
Сообщение #9


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



именно так, теперь x' и y' верные
Теперь надо поворачивать. Сначала каждый листочек по отдельности, затем все вместе

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 26.7.2010, 12:04
Сообщение #10


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



http://slil.ru/29501550 - вот расчёт первого этапа - все листочки и стол повернуты. Будет желание, можно проанализировать и падение капли)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 27.7.2010, 9:54
Сообщение #11


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



(IMG:style_emoticons/default/blush.gif) спасиб большое!!!
Цитата
Будет желание, можно проанализировать и падение капли

Да это уже не моя инициатива....мне просто это не обходимо это сделать....))))
(IMG:style_emoticons/default/blush.gif) и я снова жду твой помощи....
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 27.7.2010, 11:17
Сообщение #12


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Попробуй сама, полезней будет, будет совсем туго - посчитаю
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 27.7.2010, 11:35
Сообщение #13


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



конечно сама(IMG:style_emoticons/default/smile.gif) просто так на всякий случай....чтобы ты меня проверял
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 30.7.2010, 13:53
Сообщение #14


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



Цитата
Определить, в какую область попала точка, если вообще попала, можно из формул скалярного и векторного умножения
Пусть a - вектор ориентации, b - вектор из центра листка к координате капли.

Их же используем для проверки попадания в листок, капля попала в листок, если:
b*sin(a^B ) <= Sx
b*cos(a^B ) <= Sy


a - вектор ориентации
мне нужно взять:
вектора ориентации после поворота листков
или
вектора ориентации после поворота стола
?
и что то с b не разберусь...эту переменную снова считать?
только пока не решай за меня,хочу сама (IMG:style_emoticons/default/smile.gif)
заранее, спасибо
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 31.7.2010, 9:07
Сообщение #15


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



a - вектор ориентации после всех поворотов
b - это совсем не та B, что в начале. В начале у нас B - это угол поворота стола в градусах. Теперь же
Цитата
b - вектор из центра листка к координате капли
, естественно, центр листка брать после всех преобразований.
Как вычислять новые координаты капли, я написал, только отнимать там надо не по 2,5, видимо, а по 250 (будем считать, что всё остальное дано у нас в сантиметрах).
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 31.7.2010, 9:40
Сообщение #16


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



Цитата
a - вектор ориентации после всех поворотов

о, с этим я разобралась (ВОx2, ВОy2)
Цитата
b - вектор из центра листка к координате капли

так теперь с этим, координаты капли мне известны (Cx,Cy)-(270,253)
Цитата
центр листка брать после всех преобразований.

значит после поворота стола (x2, у2)
все верно?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 31.7.2010, 15:08
Сообщение #17


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



Всё, кроме координат капли.
Координаты будут (20,3) - относительно центра стола и комнаты.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 3.8.2010, 10:33
Сообщение #18


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



а можно формулу для подсчета координаты капли?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vahappaday
сообщение 3.8.2010, 14:11
Сообщение #19


Аспирант
***

Группа: Продвинутые
Сообщений: 334
Регистрация: 26.4.2009
Город: Липецк
Учебное заведение: ЛГТУ
Вы: студент



x'=x-250
y'=y-250

Вычитаем по половине длины и ширины комнаты
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
julia_lisha
сообщение 5.8.2010, 11:57
Сообщение #20


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



ммм, ясно (IMG:style_emoticons/default/smile.gif)
теперь на счет формулы....
Цитата
Определить, в какую область попала точка, если вообще попала, можно из формул скалярного и векторного умножения

там две формулы COS и SIN можно брать любую?
Цитата
b - вектор из центра листка к координате капли

смотри у меня получается b это (Cx,Cy) и (x2, у2), чтобы преобразовать две переменные в одну ((IMG:style_emoticons/default/cool.gif) надо еще какую то использовать формулу или как? (IMG:style_emoticons/default/unsure.gif)
еще раз спасибо (IMG:style_emoticons/default/blush.gif)

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

4 страниц V  1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 26.4.2024, 6:40

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru