Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Определение площади векторной фигуры или пятна в растре. (http://www.flasher.ru/forum/showthread.php?t=162341)

hartman 31.07.2011 20:25

Определение площади векторной фигуры или пятна в растре.
 
Как лучше определять площадь векторной фигуры или области залитой одним цветом в битмапе? Мне приходит в голову только разбить на сетку и проверить при помощи hitTest для вектора или getPixel.

alatar 31.07.2011 22:46

Найти все пиксели этого цвета. Их количество и будет площадью.

Gantenbain 01.08.2011 14:14

Векторная фигура создана с применение кривых Безье? Почему не посчитать напрямую? В AS, Безье являются параболами. Т.е. если перейти в систему координат, ось абсцисс которой начинается в точке control, а ось ординат - ось симметрии кр.Безье, то в achor - касательные к параболе. Имея уравнение параболы, найти площадь фигуры ею ограниченной. Перебор пикселей может оказаться очень ресурсоемкой операцией.

i.o. 01.08.2011 14:37

Цитата:

Почему не посчитать напрямую?
Мне вот брутфорс больше нравится :)
Метод histogram() вполне бы подошел, судя по докам.

hartman 02.08.2011 18:33

Цитата:

Сообщение от alatar (Сообщение 1016635)
Найти все пиксели этого цвета. Их количество и будет площадью.

Это и получится, если сетку сделать частотой в 1 пиксель. Просто если битмап большой и площадь надо считать много раз в секунду, можно пожертвовать точностью увеличив шаг сетки.


В векторе тоже нужен расчет площади произвольных фигур. Видимо кроме такого сканирования по точкам больше нет универсальных методов.

alatar 02.08.2011 19:01

При крупной сетке встает проблема, как определять принадлежность ячейки фигуре. Наибольший прирост будет давать вариант, когда проверяется только одна точка в ячейке. Либо несколько, если ячейка особо крупная. В некоторых реализациях такой метод может, наоборот, добавить тормозов.

Вектор можно просчитать и математически. Или разбить на треугольники и просчитать с понижением точности.


Часовой пояс GMT +4, время: 14:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.