Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   [геометрия] площадь произвольной фигуры... (http://www.flasher.ru/forum/showthread.php?t=65454)

D-MAN 14.06.2005 04:23

http://algolist.manual.ru/maths/geom/polygon/area.php
гы гы гы

и работает же, скатина =)

Ion 17.06.2005 18:14

А мне больше метод с hitTest() нравица, тогда уж точно любую площадь подсчитать мона будет

D-MAN 18.06.2005 02:48

а вот тут ты не прав. это ж по сути метод монте-карло, только точки накидываются упорядоченно.
минусы:
- высокие затраты ресуросов
- о-о-о-очень маленькая точность

Ion 18.06.2005 13:30

Да нефига! Ставь 120fps и сможешь за короткий срок высчитать площадь АБСОЛЮТНО ЛЮБОЙ фигуры, в т.ч. неправильной формы и с дырками внутри

smamyan 20.06.2005 20:54

Kapaysya na www.ultrashock.com tam ya tochno vidil chtoto podobnoe

D-MAN 20.06.2005 21:00

2smamyan
Говорю же, решил уже. См. линк выше

2Ion
Постой-постой, а
1) при чем тут 120fps?
2) можт накидаешь алгоритм - сделаем мини-бенчмарк? ;)

Ion 20.06.2005 21:38

120 fps? Чтобы быстро можно было пробежать всю фигуру, можно конечно чёрёз setInterval, но эт геморно, да и 120 фпс никогда не помешают, алгоритм примерно следующий: берем клип из 1-о пикселя, определяем габариты фигуры, начинаем двигать клип слева направо, сверху вниз, по 1-й точке, каждый раз проверяя, перекрывает ли он фигуру, если да - инкрементируем счетчик площади фигуры.

D-MAN 20.06.2005 21:43

1) Чем больше fps, тем меньше времени на кадр.
2) 120 фпс никогда не помешают - глупость. Если нужен быстрый отклик - есть updateAfterEvent()
3) каждый раз проверяя, перекрывает ли он фигуру - во флеш нет функции проверки перекрытия двух фигур
4) Точность подсчета - 1 кв. пиксель. А если у меня фигура 2х2 пикселя? Погрешность порядка 50-200%.
5) Если фигура 5000х5000. Скока будет считать?

Fl00r 20.06.2005 21:54

Метод hitTest'ом очевидно крайне неточен. К примеру площадь, соответствующая сектору с R=10cм и углом 180 можно hitTestom и пощитать как 0... (помните как в школе учитель доказывал, мол длина полуокружности равна диаметру - из той же серии). Но если мы работаем с заведомо большими простыми фигурами... то почему бы и нет? Хотя очевидно, что пора флэш научить пользоваться интегралами )

Ion 20.06.2005 21:58

updateAfterEvent - эт если ты делаешь setInterval, 120фпс никогда не помешают. Просто делай больше интервал между ключевыми кадрами. Функция проверки перекрытия - hitTest. Абсолютная погрешность всегда будет небольшой, достаточно малой, чтобы её невозможно было заметить. 5000х5000 - бред, покажи мне хоть одну флешку с такими размерами! А если всё же найдешь, то там этот способ использовать не нужно - у всего есть свои недостатки


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

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