Графика в С, поворот нарисованного обьекта

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Slava_Antonov
Сообщения: 7
Зарегистрирован: 13 апр 2010, 15:40
Контактная информация:

Пишу игрушку на си, надо повернуть обьект на 90 градусов, как то сохраняя обьект или подругому
Аватара пользователя
Decoder
Сообщения: 308
Зарегистрирован: 19 фев 2008, 23:11
Откуда: Moscow

Какой графической библиотекой пользуешься?
Поумнеть несложно, куда труднее от дури избавиться.
Slava_Antonov
Сообщения: 7
Зарегистрирован: 13 апр 2010, 15:40
Контактная информация:

пользуюсь <Graphics.h>
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Матрицы поворота не проходил в курсе аналитической геометрии или компьютерной графики?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Slava_Antonov
Сообщения: 7
Зарегистрирован: 13 апр 2010, 15:40
Контактная информация:

нет, покамест не проходил, вот искал книжки, да не нашел подходящей... а вобще такое возможно? добустим, нарисовал я треугольник, закрасил и хочу повернуть на 90 гр.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Конечно возможно.

1. Очищаем экран.
2. Переносим начало координат в ту точку, вокруг которой будем поворачивать (то есть пересчитываем соответствующим образом все координаты вершин).
3. Умножаем векторы, соответствующие вершинам на матрицу поворота.
4. Переносим начало координат обратно в левый верхний угол.
5. Выводим треугольник, воспользовавшись новыми полученными координатами точек.
6. Заливаем треугольник.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Slava_Antonov
Сообщения: 7
Зарегистрирован: 13 апр 2010, 15:40
Контактная информация:

Стоит попробовать, =)) есть че попроще?
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Проще не бывает. Сложнее вариантов масса.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Slava_Antonov
Сообщения: 7
Зарегистрирован: 13 апр 2010, 15:40
Контактная информация:

Пожалуйста, напиши пример программы, если не сложно, например поворот прямоугольника при нажатии клавиши "пробел"
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Мне не сложно, но что из этого вынесешь ТЫ?
Предлагаю тебе попытаться написать самому и постить сюда вопросы, с которыми не будешь справляться самостоятельно.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить