Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8

Поворот фигуры по часовой стрелке

28.01.2016, 11:56. Показов 5640. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите вывести формулу для поворота фигуры на произвольный угол. У меня выходит одно уравнение с двумя неизвестными.
Миниатюры
Поворот фигуры по часовой стрелке  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2016, 11:56
Ответы с готовыми решениями:

Поворот неквадратной матрицы на 90° по часовой стрелке
Написать программу, выполняющую поворот неквадратной матрицы на 90° по часовой стрелке. Матрицы должны храниться в памяти в виде двумерного...

Поворот массива на 90 градусов по часовой стрелке
Всем привет! Помогите найти ошибку, программа должна поворачивать целочисленный массив на 90 градусов по часовой стрелке Пример 1 2 3 ...

Поворот матрицы на 180 градусов по часовой стрелке
Нужна программа,которая повернет квадратную матрицу из N строк и N столбцов на 180 по часовой. программа на С++ За ранее благодарю:)

49
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 18:45
Студворк — интернет-сервис помощи студентам
Mr.X, я, конечно, надеялся на менее сдержанный пример, но мне почему-то кажется что тут операций не меньше чем в преобразовании из 4-х умножений и двух сложений.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.02.2016, 18:58
Цитата Сообщение от castaway Посмотреть сообщение
но мне почему-то кажется что тут операций не меньше чем в преобразовании из 4-х умножений и двух сложений.
Ну, во-первых, матрицу поворота помнить надо, а, во-вторых, в ней очень легко ошибиться, что товарищ выше, кажется, и сделал, в комплексном варианте все без всякой натуги проходит.
А вообще, при чем тут количество операций? Если на ассемблере написать, то их примерно столько же и будет.
Чем выше уровень абстракции, тем удобнее и понятнее.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 19:07
Цитата Сообщение от Mr.X Посмотреть сообщение
А вообще, при чем тут количество операций?
Я опирался от этого:
Цитата Сообщение от Mr.X Посмотреть сообщение
Мне кажется, легче не мучиться, а представить точки фигуры комплексными числами.
В моём понимании проще - это наименьшее количество манипуляций.

Цитата Сообщение от Mr.X Посмотреть сообщение
Чем выше уровень абстракции, тем удобнее и понятнее.
Тоже верно, но ваш пример - не показатель.
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
02.02.2016, 19:19
Mr.X, А как вы будете трехмерные объекты поворачивать?
Кроме того произведение комплексных чисел не совпадает с произведением векторов (с любым). В общем вводит в заблуждение и не дает никаких преимуществ.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 19:23
Цитата Сообщение от Mr.X Посмотреть сообщение
Чем выше уровень абстракции, тем удобнее и понятнее.
Я бы даже так сказал, - "Удобство и понимание должно быть неразделимо связано с максимальной производительностью."
0
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8
02.02.2016, 19:26  [ТС]
Почему при повороте треугольника сначала по часовой стрелке а потом против часовой, он начинает немного искажаться? Не переходит в первоначальное положение.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 19:31
Цитата Сообщение от Brazil Посмотреть сообщение
Почему при повороте треугольника сначала по часовой стрелке а потом против часовой, он начинает немного искажаться? Не переходит в первоначальное положение.
Возможно потому, что числа с плавающей точкой в компьютере не идеальны.
1
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8
02.02.2016, 19:42  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
У вас был рабочий пример.
Рабочий когда ось Y направлена вниз и когда точка поворачивается против часовой стрелки.

Добавлено через 3 минуты
Цитата Сообщение от castaway Посмотреть сообщение
Возможно потому, что числа с плавающей точкой в компьютере не идеальны.
Как исправить?

Добавлено через 1 минуту
Цитата Сообщение от Mr.X Посмотреть сообщение
Мне кажется, легче не мучиться, а представить точки фигуры комплексными числами.
Не хочу с комплексными числами.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 19:43
Цитата Сообщение от Brazil Посмотреть сообщение
Рабочий когда ось Y направлена вниз и когда точка поворачивается против часовой стрелки.
А с каких пор, пример, который поворачивает по часовой стрелке - нерабочий?

Добавлено через 1 минуту
Цитата Сообщение от Brazil Посмотреть сообщение
Как исправить?
Изменить алгоритм.
0
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8
02.02.2016, 19:45  [ТС]
castaway, Не знаю.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 19:49
Цитата Сообщение от Brazil Посмотреть сообщение
castaway, Не знаю.
А зачем тогда говорите что он нерабочий?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.02.2016, 19:59
Цитата Сообщение от castaway Посмотреть сообщение
В моём понимании проще - это наименьшее количество манипуляций.
Вас, сидоровых, не поймешь! Товарищ выше очень волновался за компьютерный процессор, сколько у него там будет сложений и умножений, я думал и вы с ним. Если вы все же о простоте программы, то утверждение
Цитата Сообщение от castaway Посмотреть сообщение
мне почему-то кажется что тут операций не меньше чем в преобразовании из 4-х умножений и двух сложений
выглядит как не совсем удачная шутка...

Добавлено через 7 минут
Цитата Сообщение от castaway Посмотреть сообщение
Я бы даже так сказал, - "Удобство и понимание должно быть неразделимо связано с максимальной производительностью."
Кому должно-то? Согласно современным концепциям - понятность программы - на первом месте.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 20:03
Цитата Сообщение от Mr.X Посмотреть сообщение
Вас, сидоровых, не поймешь! Товарищ выше очень волновался за компьютерный процессор, сколько у него там будет сложений и умножений, я думал и вы с ним.
Вы правильно думали.
Я же высказал своё мнение:
Цитата Сообщение от castaway Посмотреть сообщение
"Удобство и понимание должно быть неразделимо связано с максимальной производительностью."
Добавлено через 52 секунды
Цитата Сообщение от Mr.X Посмотреть сообщение
Кому должно-то? Согласно современным концепциям - понятность программы - на первом месте.
А кто диктует эти "современные концепции"?
0
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8
02.02.2016, 20:08  [ТС]
Все таки пример у Ilot'a нерабочий. Я сам ошибся в предыдущем сообщении. Тут и правда легко допустить ошибку.
x, y, sin, cos, +, - много комбинаций дают. Ладно об этом.
Миниатюры
Поворот фигуры по часовой стрелке  
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.02.2016, 20:11
Цитата Сообщение от avgoor Посмотреть сообщение
А как вы будете трехмерные объекты поворачивать?
Ну, мы в двумерном случае, и здесь комплексные числа сами просятся. В трехмерном случае кватернионы есть, можно их посмотреть.
Цитата Сообщение от avgoor Посмотреть сообщение
Кроме того произведение комплексных чисел не совпадает с произведением векторов (с любым). В общем вводит в заблуждение и не дает никаких преимуществ.
Вы хоть сами поняли что сказали?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 20:17
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, мы в двумерном случае, и здесь комплексные числа сами просятся.
Мне просто интересно, вы где-нибудь видели 2D преобразования через комплексные числа?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.02.2016, 20:28
Цитата Сообщение от castaway Посмотреть сообщение
Вы правильно думали.
Ну, тогда мы ж вроде выяснили, что процессору пофигу, а читателю и писателю программы легче.
Вот, товарищ вообще зациклился, похоже:
Цитата Сообщение от Brazil Посмотреть сообщение
Все таки пример у Ilot'a нерабочий. Я сам ошибся в предыдущем сообщении. Тут и правда легко допустить ошибку.
x, y, sin, cos, +, - много комбинаций дают.


Цитата Сообщение от castaway Посмотреть сообщение
А кто диктует эти "современные концепции"?
Авторитетные специалисты в данной области.

Добавлено через 4 минуты
Цитата Сообщение от castaway Посмотреть сообщение
Мне просто интересно, вы где-нибудь видели 2D преобразования через комплексные числа?
Да я как-то их специально не изучал. А что там мешает комплексным числам?

Добавлено через 2 минуты
Цитата Сообщение от Brazil Посмотреть сообщение
Цитата Сообщение от Mr.X Посмотреть сообщение
Мне кажется, легче не мучиться, а представить точки фигуры комплексными числами.
Не хочу с комплексными числами.
Цитата Сообщение от Brazil Посмотреть сообщение
Все таки пример у Ilot'a нерабочий. Я сам ошибся в предыдущем сообщении. Тут и правда легко допустить ошибку.
x, y, sin, cos, +, - много комбинаций дают.
Товарищ таки решил помучиться!
0
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8
02.02.2016, 20:29  [ТС]
Цитата Сообщение от Mr.X Посмотреть сообщение
Вот, товарищ вообще зациклился, похоже:
Цитата Сообщение от Brazil Посмотреть сообщение
Ладно об этом.
...
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.02.2016, 20:35
Цитата Сообщение от Mr.X Посмотреть сообщение
Авторитетные специалисты в данной области.
Ну тут у меня просто нет контраргументов.

Добавлено через 1 минуту
Цитата Сообщение от Mr.X Посмотреть сообщение
Да я как-то их специально не изучал. А что там мешает комплексным числам?
С матрицами проще.

Добавлено через 4 минуты
Mr.X, кстати, что вам мешает построить удобную абстракцию над матричными преобразованиями?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.02.2016, 20:43
Цитата Сообщение от castaway Посмотреть сообщение
Ну тут у меня просто нет контраргументов.
Ну, я как-то на форуме уже высказывал мысль, что программирование наука не совсем точная, и в некоторых аспектах имеет сходство с религией. Здесь тоже есть авторитеты, мнение которых равнее, чем остальных.
Цитата Сообщение от castaway Посмотреть сообщение
С матрицами проще.
Ну, судя по этой теме, я бы этого не сказал. Некоторые уже зациклились и запросили пардону очень крупными буквами...

Добавлено через 7 минут
Цитата Сообщение от castaway Посмотреть сообщение
Mr.X, кстати, что вам мешает построить удобную абстракцию над матричными преобразованиями?
Так для этого же надо вспомнить матрицу поворота! Ну и, я говорил уже, что для меня перемножить два числа проще, чем умножать вектор на матрицу. Ну и комплексные числа же не просто так придуманы. Они реализуют некоторые математические модели, к которым и повороты фигур относятся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.02.2016, 20:43
Помогаю со студенческими работами здесь

Произвести "поворот" матрицы по часовой стрелке
Задание: Задан квадратный массив А из N строк и N столбцов. Произвести «поворот по часовой стрелке» массива таким образом, чтобы элементы...

Повернуть матрицу по часовой стрелке
Что нужно сделать, чтобы повернуть матрицу по часовой стрелке?? если меняешь i и j местами, но она повернется против часовой на 90...

Вращать треугольник по часовой стрелке
Здравствуйте, буду признателен если поможете, т.к. математика не моя сильная сторона. Условие такое: Составить программу вывода на экран...

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

Вращение Треугольника по часовой стрелке
Есть вот такие переменные: int x1_1 = 320; int x2_1 = 300; int y1_1 = 200; int y2_1 = 240; int x1_2 = 300; int x2_2 = 340; int...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru