Re: пеpесечение пpямоугольников на тоpоидальной повepхнoсти
- From
- Anton Kozyr ()
- To
- Anatoly Svishev
- Date
- 2002-07-30T03:24:47Z
- Area
- RU.ALGORITHMS
From: Anton Kozyr <slayer@kot.poltava.ua>
On Mon, 29 Jul 2002 01:02:07 +0400, Anatoly Svishev
<Anatoly.Svishev@p39.f55.n5061.z2.fidonet.org> wrote:
>AK> Есть квадpатная повеpхность с замкнутыми кpаями, говоpят, что
>AK> называется тоpоидальной, хотя тоp себе такой я слабо пpедставляю.
>А ты сложи лист бумаги сначала один кpай - неважно какой, потом дpугой -
>поймешь.
>Там 2 тоpа получается.
Поведение такой поверхности я представляю, даже кое-какие законы
геометрии на тороидальной поверхности уже знаю. Но тор, у которого оба
радиуса равны слепить очень и очень сложно ;)
>Четыpе копии экpана - там pисуешь, потом все совмещаешь в одном экpане.
Это всё хорошо. Проблема в другом. Когда я перерисовываю часть экрана
при скроллинге, мне не нужно рисовать все объекты. А значит нужно
определить, какие из моих объектов попадают в инвалидный прямоугольник
образовавшийся после прокрутки части экрана(ScrollDC). Аналогичная
проблема при WM_SIZE, когда при увеличении окна мне нужно подрисовать
краешки.
Внимание вопрос: как мне из множества прямоугольников на тороидальной
поверхности наиболее оптимально найти те, которые пересекаются с
заданным (инвалидным).
Пока что я вижу одно решение. В нём я делаю четыре индекса (multimap
где ключ - координата края прямоугольника, а данные - указатель на этот
прямоугольник). Далее я прощупываю, не буду распространятся как, те
множества прямоугольников которые попадают в инвалидный.
Вот так
Какие будут ещё предложения?
Антон
--- ifmail v.2.15dev5
* Origin: Solver Ltd. site #2 (2:5020/400)