Показать сообщение отдельно
Старый 19.09.2011, 19:54
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Тогда все еще проще:

Код AS3:
private function distance(lineX1:Number, lineY1:Number, lineX2:Number, lineY2:Number, pointX:Number, pointY:Number):Number
{
    var A:Number = lineY1 - lineY2;
    var B:Number = lineX2 - lineX1;
    var C:Number = lineX1 * lineY2 - lineX2 * lineY1;
 
    return Math.abs((A * pointX + B * pointY + C) / Math.sqrt(A * A + B * B));
}
Аргументами являются координаты двух точек, через которые проведена линия и точки, расстояние до которой считаем. В твоем случае эта точка — центр круга. А расстояние соответственно будет сравниваться с его радиусом.

Добавлено через 2 минуты
Ну и разумеется, после понимания работы метода неплохо бы оптимизировать его работу и вынести вычисления параметров A, B и C — они высчитываются однажды, если линия не движется.
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 19.09.2011 в 20:27.