![]() |
пересечение окружностей - неправильный результат
Здравствуйте! Проблема в следующем: нарисовал две окружности в диаметре 100. Проверил пересечение математически - все работает отлично! Далее изменил масштаб одной из окружностей до 140 - и флеш выдавал пересечения, даже если его не было визуально... не могу понять, где ошибка...
Код AS3:
|
Не смотря на то что визуально объекты окружности, по факту вы проверяете касание для прямоугольных объектов, соответственно, если углы этих объектов слегка пересекутся, то выполнится условие if(distance < sum), а окружности на самом деле не коснулись друг друга.
Ваши вычисления рассчитывают касание квадратов, в которые вписаны ваши окружности. |
Если не ошибаюсь, то радиус окружности вписанной в квадрат(а это флеш делает автоматом), равен width/2 (диаметр окружности/2)... и в условии проверяется все верно...если дистанция между кругами < сумме их радиусов, то есть пересечение...
П.С. проблемы пересечения не с углами...даже поднося их бок к боку - выскакивает раньше времени! |
А (0, 0) (точка привязки) где у окружностей находится? Как и положено, в центре? Или в каком-нибудь левом верхнем углу?
|
эээ
1) distance = Math.sqrt(xDistance * xDistance + yDistance * yDistance); 2) Point.distance(); http://help.adobe.com/ru_RU/FlashPla...html#distance() Добавлено через 1 минуту Хотя все зависит от того как вы рисовали. |
Цитата:
Добавлено через 45 секунд Цитата:
Добавлено через 7 минут Заработало! GBee, те пункты...я так полагаю, они для программно-нарисованных окружностей? Хотя, и от руки окружности тоже можно приспособить...но в перспективе все же, круги будут рисоваться программно! Спасибо. |
Не хочу вырывать вас из мира грез, но первый пункт вы знать должны были, ну или хотя бы знать, что он есть. Ну или хотя бы подозревать.
|
Да, чтот вылетел Пифагор из головы...поправил код! Всяко сподручнее, чем с векторами играться...
|
| Часовой пояс GMT +4, время: 19:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.