|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.03.2018, 05:01 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Геометрия, углы треугольника
Здравствуйте.
Недавно я столкнулся с преинтереснейшей задачей - наведение объекта (картинки) на цель. Нужно вращать картинку, а вращать её нужно на определённый угол. У меня имеются координаты центра картинки, и координаты цели. По сути, мне нужно повернуть изображение на тот же угол, что и угол между прилежащим катетом и гипотенузой прямоугольного треугольника (там уже зависит от четверти координат). Пошёл я считать углы треугольника, стороны которого можно получить из имеющихся координат ... Когда у меня началась геометрия (7 класс) - я в школе начал пинать сами знаете что, поэтому первым делом я нагуглил формулы углов, и столкнулся с тем, что у меня формулы не углов, а их косинусов. Информация о том, что из косинусов можно получить углы с помощью арккосинуса - у меня почему то не работает. В итоге, я соорудил вот такую вот конструкцию: Код:
Комментированный блок кода - это формулы, честно спёртые отсюда. Формулы в других местах мой мозг не воспринимает правильно (для вычисления угла a необходим угол a). Я понимаю, что мой код - это откровенная халтура, и получение углов в каком то смысле "пальцем в небо". Поэтому вопрос: как всё таки правильно считать углы ?
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 09.03.2018 в 06:26. |
09.03.2018, 08:02 | #2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
косинусы и арккосинысу и прочие функции тут а языках программирования в радианах считаются. так что, ты умножай на ПИ и дели на 180. и будет тебе счастье в привычных градусах.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
09.03.2018, 09:56 | #3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Обычно для этих целий используют актангенс. Причём есть арктангенс от двух параметров - он автоматически учитывает знаки и рассчитывает четверти. Более того это 1 команда процессора.
atan2(dy,dx) arctan2(dx, dy) В разных языках разные обозначения. И порядок параметров отличается. И радианы или же градусы тоже надо уточнять.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
09.03.2018, 18:20 | #4 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Действительно, про радианы то я и забыл. Только вот воображение у меня работает, и если я умножу на пи, и поделю на 180 - я получу число ещё меньшее, чем изначальное. Так что я предположил, и подтвердил свои предположения, что умножать нужно на 180, а делить на Пи; тут же не сложение, и не умножение, так что перемена мест решает =).
Подскажите пожалуйста, как с помощью арктангенса мне получить величину от 0 до 359 градусов, имея упомянутый угол прямоугольного треугольника, в одной из четвертей ? Мне что бы стороны треугольника правильно посчитать - нужно изначально учитывать четверть - что бы сторона a (прилежащий катет) была в нуле градусов заданной четверти с отсчётом по часовой стрелке. Иначе я дальше потеряюсь, где какие углы.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 09.03.2018 в 22:07. |
09.03.2018, 21:45 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Код:
И длинный вариант через atan Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
09.03.2018, 22:14 | #6 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Pavia, я не могу понять, где у вас учитывается то, что мне необходимо.
Цитата:
Код:
Я только вот сомневаюсь на счёт этого: Код:
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 09.03.2018 в 22:23. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти длины высот треугольника, если заданы координаты вершин треугольника. | Vadim228 | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 30.12.2015 15:45 |
1) Вычислить углы треугольника со сторонами a,b,c. 2) программа для вычисления значений функций | mirovsky | Помощь студентам | 5 | 13.01.2015 18:43 |
Расчёт S и P треугольника через его стороны и/или углы | Matrix6993 | Общие вопросы Delphi | 6 | 23.02.2012 00:07 |
Найти внутренние углы треугольника (Pascal) | street_spirit | Помощь студентам | 4 | 02.03.2010 17:25 |
Треугольник задан длинами своих сторон: a, b, c. Найти углы треугольника. задача на С++ | Wia | Помощь студентам | 6 | 13.12.2008 16:13 |