Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как найти координаты точки на окружности


Автор: neoks 29.1.2013, 13:09
Знаю есть в гугле полно вопросов, и формула простая казалось бы, но на практике не работает, не могу понять почему.
Вот пример, таким макаром нахожу градусы от точки до курсора мыши, работает корректно.

Код

var an     = Math.atan2(x - e.pageY, y - e.pageX) / Math.PI * 180,
      an     = Math.round((an < 0) ? an + 360 : an);


Дальше пытаюсь найти точку в окружности использую эту формулу

Код

var x2 = Math.round(x + r * Math.cos(an)),
      y2 = Math.round(y+ r * Math.sin(an));


В результате я получаю точку на окружности но с беспорядочным градусом, то есть не тот который я задал, писал любой градус, 0,90,180,270,360 и выдает непонятные градусы.
Может в JS по другому нужно писать и как это мона решить ? )

Автор: neoks 29.1.2013, 13:41
Разобрался, нужно было перевести градусы в радианы

Код

an     = an * Math.PI / 180,


Ну и снова проблемка получилось, точка не тянется к курсору а наоборот противоположно от курсора, проблема в том что градусы и радианы не правильно расположены, то есть должны быть так как на этой картинки http://www.zodiackillerfacts.com/images/Radian%20Degrees%20Conversion%20Chart.jpg

У меня же почему та градусы расставлены наоборот, то есть вместо 180 стоит 0, получается зеркало, как бы так сказать, нужно как бы зеркало сделать чтобы градусы были на своих местах.
Пока не могу сообразить как это сделать )

Добавлено через 3 минуты и 21 секунду
Все разобрался, как обычно думал думал, искал листал и на следующий день решился спросить на форуме, после того как спросил нашлись и ответы  smile 
Сори за флуд, сам не знал что так получится )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)