Как рассчитать пересечение фигур в скрипте flash / action?(доступ к сегментам и узлам фигуры?) - PullRequest
0 голосов
/ 24 декабря 2010

Мне нужно вычислить пересечение между двумя фигурами в скрипте flash / action.
Проблема в том, что я не могу получить доступ к узлам и сегментам фигуры и их координатам, поэтому я никак не могу рассчитать это.
Знаете ли вы способ?

редактировать: дальнейшее объяснение: я импортировал неправильные полигоны из файла EPS в видеоклип с фигурами в нем.
Математическое решение проблемы тривиально, но сделать этоМне нужно получить доступ с помощью кода AS к координатам узлов, составляющих многоугольники, что я пытался безуспешно.
Это то, что я пытаюсь сделать.

edit2: отклонить этовопрос.Это невозможно.Обходной путь, который я применяю, заключается в том, чтобы сохранить полигоны в SVG и проанализировать их, чтобы получить список узлов.затем передаст этот список на флэш-память для расчета пересечения и площадей во время выполнения.

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

AFAIK, нет способа получить данные для любой заданной фигуры во флэш-памяти.Это что-то внутреннее, к сожалению.Однако вы все равно сможете рассчитать достаточную аппроксимацию площади между двумя вашими фигурами, используя ядро ​​Pixel Bender.Используя ShaderJob, вы можете выполнять вычисления асинхронно и, таким образом, не блокировать пользовательский интерфейс.

Идея выглядит примерно так:

  1. Захват растрового изображения первой фигуры
  2. Захватить растровое изображение второй формы
  3. Создать ShaderJob, используя ядро ​​Pixel Bender, используя в качестве входных данных два растровых изображения.Для каждого пикселя ядро ​​будет вычислять, пересекаются ли фигуры или нет, и, возможно, насколько.Используйте один из выходных каналов для результата вычисления.
  4. Возьмите полученный результат и суммируйте все для окончательного альфа-значения.

Я не уверен, если этоэто менее хлопотно для вас, чем использование вашего подхода SVG, но это, по крайней мере, альтернатива. может имеет смысл вычислить пересечение границ двух фигур и захватить только растровое изображение пересекающихся прямоугольников в формах.Это дополнительный шаг, но, по крайней мере, он, вероятно, более эффективен для памяти, возможно, более эффективен и с точки зрения времени процессора.

1 голос
/ 24 декабря 2010

Я буду очарован, если будет ответ, но насколько я знаю, класс Shape AS3 довольно скуден.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Shape.html

Досадно, что эквивалентный класс JSFL полон вкусностей именно для того, что вы хотите. Я не думаю, что это будет вам полезно?

http://livedocs.adobe.com/flash/9.0/main/00004384.html#wp119221

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...