Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
#1

Вращение фигуры - C++

25.09.2010, 12:12. Просмотров 1864. Ответов 9
Метки нет (Все метки)

Как можно сделать вращение фигуры??
Например, дан треугольник (имеется в виду графический режим в borland c++ 3.1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2010, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вращение фигуры (C++):

вращение фигуры - C++
Здраствуйте. Необходимо реализовать вращение паралелепипеда в горизонтальной плоскости вокруг оси , которая проходит через центр фигуры и...

вращение фигуры - C++
Добрый день! помогите пожалуйста написать метод вращения фигуры по заданному углу. вот основной код программы: // laba2-9.cpp:...

вращение фигуры - C++
Я прекрасно знаю что такое матрица поворота, а что делать к примеру если фигура описывается не уравнением а методами, вот к примеру эллипс...

Вводить название фигуры, выводить формулу для вычисления площади этой фигуры - C++
Вводить название фигуры (треугольник, квадрат, ромб, прямоугольник) выводить формулу для вычисления площади этой фигуры.

Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры) - C++
Нужно написать программу вычисления местонахождения точки относительно фигуры(лежит ли данная точка внутри неё, на контуре или вне фигуры)....

Вращение многоугольника - C++
Добрый вечер! Есть прога, которая рисует многоугольник с заданным числом вершин. Подскажите, пожалуйста, как сделать так, чтобы...

9
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 12:20 #2
довольно просто
надо над каждой вершиной сделать матричное преобразование
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}<br />
x'\\ <br />
y'<br />
\end{pmatrix} = \begin{pmatrix}<br />
x\\ <br />
y<br />
\end{pmatrix} \begin{pmatrix}<br />
cos\alpha  & -sin\alpha \\ <br />
sin\alpha & cos\alpha<br />
\end{pmatrix}
1
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
25.09.2010, 15:50  [ТС] #3
т.е. для координаты х=xcosa-ysina,
а для y=xsina+xcosa

?
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 15:52 #4
да, так для каждой точки фигуры, однако один момент - поворот идет относительно (0,0), если нужно относительно центра фигуры, то нужно пересчитать в относительные координаты (где 0,0 центр фигуры) и там уже вращать
1
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
28.09.2010, 13:39  [ТС] #5
А как пересчитать в относительные координаты??
0
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
28.09.2010, 14:21 #6
Цитата Сообщение от a91 Посмотреть сообщение
А как пересчитать в относительные координаты??
Вычесть из координат вершин фигуры координаты её центра.
1
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
28.09.2010, 14:42  [ТС] #7
т.е. для х это будет так - х=(x-x0)cosa-(y-y0)sina?
где x0,y0 - координаты центра

вот так не работает ((
0
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
28.09.2010, 14:55 #8
out_х=(x-x0)cosa-(y-y0)sina
out_x и x не одно и тоже. x,y,x0,y0 - это входные данные.

и да, в итоге должно быть так:
out_х=x0+((x-x0)*cos(a)-(y-y0)*sin(a));
1
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
28.09.2010, 15:34 #9
a91, выполните в три шага
1. Перенесите координаты http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}<br />
x'<br />
\\ <br />
y'<br />
\end{pmatrix} = \begin{pmatrix}<br />
x<br />
\\ <br />
y<br />
\end{pmatrix} - \begin{pmatrix}<br />
x_c<br />
\\ <br />
y_c<br />
\end{pmatrix}

тоже самое достигается домножением на матрицу перехода
2. сделайте поворт
3. верните обратно

а потом уже соединяйте в одно действие
Можно все действия записать матрицами, их перемножить и в одно действие использовать
смотрите матчасть http://ru.wikipedia.org/wiki/Матрица_перехода
1
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
30.09.2010, 15:52  [ТС] #10
Да, теперь все работает!!
Я тогда забывал после преобразования координат конкретной фигуры прибавлять координаты ее центра
0
30.09.2010, 15:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 15:52
Привет! Вот еще темы с ответами:

Вращение шара - C++
Как заставить один шар вращаться в форме восьмёрки?

вращение отрезка. - C++
осуществить вращение отрезка вокруг центра, лежащего внутри отрезка и не совпадающего с его центром

Вращение куба - C++
Возникают проблемы с циклами поворотов.Куб рисуется не полностью .Если кому -нибудь не сложно , подскажите в чем проблема. Часть программы...

Вращение отрезка - C++
Осуществить вращение отрезка вокруг центра не совпадающего с центром на СИ


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru