![]() |
Расстояние до фигуры
Здравствуйте, имеются мувики произвольной формы. при клике необходимо определить ближайшее расстояние до границ фигуры? Есть ли возможность это сделать? Кроме как считать расстояние до центра?
Сейчас единсвтенное что приходит на ум - это выпускать из точки клика лучи в разные стороны. и для каждого обсчитывать момент пересечения с фигурой через hitTestPoint и выбирать кратчайший. |
У мувиков всегда одна форма - прямоугольная. И если точка регистрации мувиклипа в центре, то да - расстояние до границ можно определить через координаты центра и габаритных значений клипа.
|
Если Вы умеете находить расстояние между двумя точками - добавьте к каждому объекту несколько контрольных точек и смотрите на расстояние до них.
Если Вы умеете находить расстояние между точкой и прямой - опишите каждый объект совокупностью прямых (если у Вас получится с точками, то дальше с прямыми будет просто) и находите то что хотите найти. В общем случае довольно "дорого" получается проверять каждую точку объекта на предмет удаленности от заданной, поэтому почти всегда используется приближение. Варианты приближения я описал выше. |
Ёлочка, Форма может и прямоугольная, но внутри вложенный объект их не все может занимать, и это можно проверить.
gloomyBrain, цена вычислений здесь не имеет значения, т.к это ключевой момент. И в случае дорого не понятно как взять каждую точку объекта. когда она уже фигура, а не массив точек. |
Вложений: 1
faraday, то есть, ты хочешь посчитать расстояние до границ, например, такой фигуры в мувиклипе? :)
Вложение 30987 Опиши задачу подробнее. Какие именно у тебя фигуры? Как они создаются? Что ты вообще сделать хочешь? |
есть фигура, есть точка. нужно найти кратчайшее расстояние
http://i.imgur.com/TNgPGIF.png |
faraday, можно отрисовать объект в BitmapData и пройтись по всем непрозрачным пикселям. Путем перебора найти ближайший пиксель к заданной точке. Можно оптимизировать перебор, перебирая точки из нужной части картинки.
ЗЫ если Вы сами рисуете фигуры и они не создаются динамически - то не должно быть проблемой добавить/вычислить контрольные точки или описывающие прямые |
Вложений: 1
Цитата:
faraday, вот так попробуй. Код AS3:
|
Ёлочка, Да, спасибо, то что нужно)
gloomyBrain, вот набросал пример по вашему плгоритму, но что то прозрачность не попределяет Код AS3:
|
http://xitri.com/2008/09/22/simple-e...-top-view.html
Для чего-то простого сойдет. |
| Часовой пояс GMT +4, время: 00:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.