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

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

28.01.2016, 11:56. Показов 5926. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru