Re: пересечение прямоугольников на тороидальной поверхности
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Anton Kozyr
- Date
- 2002-07-31T23:29:38Z
- Area
- RU.ALGORITHMS
Здравствуй, Anton!
Однажды 28-Jul-02 в 03:34 Anton Kozyr (0:0/4)
написал All по поводу
-=- пересечение прямоугольников на тороидальной поверхности -=-
AK> Есть квадратная поверхность с замкнутыми краями, говорят, что
AK> называется тороидальной, хотя тор себе такой я слабо представляю.
AK> Участок этой поверхности отображается на экран. На той же поверхности
AK> куча различных объектов, которые характеризуются описывающими их
AK> прямоугольниками (bounding rect - яснее будет).
AK> Всё это мне нужно - быстро отображать. Я могу заранее проиндексировать
AK> что нужно, построить какие-нибудь деревья, чтоб потом быстро искать и
AK> рисовать только те объекты, которые пересекаются с инвалидным
AK> прямоугольником(тем который требуется обновить).
AK> В принципе мозгов для реализации много не нужно. Проблема в скорости,
AK> так как количество объектов на поверхности реально может достигать
AK> десятков тысяч, если не сотен. А мне нужно прорисовать только
AK> некоторые(к примеру при скроллинге).
AK> Kто что подскажет?
AK> Плоские(не тороидальные) решения тоже приветствуются.
Вообще-то сотни тысяч при гигагерцовых процессорах - не так уж и много.
Можно выиграть в скорости за счет памяти: например, разбиваешь свою плоскость (тор) сеткой на ячейки (например, размером со свое окно), заводишь массив соответствующей размерности и в ячейки массива записываешь ссылки на списки объектов, которые хотя бы частично содержатся в ячейке. Очевидно, при анализе надо быдет просмотреть только 4 ячейки, на которые попадает окно. Т.е. в переборе будут участвовать только в 4-5 раз больше объектов, чем будет видно в окне.
До свидания, в 23:24 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)