Gargolev43 | Дата: Четверг, 17 Октября 2013, 13:50 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Есть два вектора, для удобства пусть начало каждого вектора - точка (0, 0), длины одинаковые. Каждый вектор может образовывать с осью Ox абсолютно любой угол. Нужно нарисовать сектор от вектора 1 до вектора 2 (не наоборот).
Есть формулы, например: signed_angle = atan2(b.y,b.x) - atan2(a.y,a.x)
но без понятия как применить и эти формулы "плавают" когда нужно например найти угол между векторами (-1, 0) и (1, 0) - нельзя однозначно по формуле определить, нужен угол pi или -pi.
|
|
| |
Agny | Дата: Четверг, 17 Октября 2013, 14:54 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Если тебе нужно найти угол, то попробуй почитать вот эту статью где про Скалярное произведение векторов сказано:
http://habrahabr.ru/post/131931/
Все задания проходят очень легко если вы не знаете что они очень сложны.
|
|
| |
Gargolev43 | Дата: Четверг, 17 Октября 2013, 14:59 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Вроде нашел решение, но не уверен в этом.
Пусть угол1 - угол вектора1 с осью Ox, аналогично угол2. Находим по формуле выше через арктангенс. угол3 = (угол2 - угол1) / N, где N достаточно большое, чтобы угол3 был острым
Далее если выполняется одно из условий: 1)угол3 положительный и одновременно выбрано направление по часовой стрелке 2)угол3 отрицательный и одновременно выбрано направление против часовой стрелки то проверяем угол1 и угол2. Если они отрицательные, то прибавляем 2 * Pi
|
|
| |