Re: Пересечение плоских фигур

From
Alexey Kudrin ()
To
Alex Astafiev
Date
2002-05-15T09:01:58Z
Area
RU.ALGORITHMS
From: Alexey Kudrin <kaa@general.udm.ru>

Alex Astafiev wrote:

> Здравствуй Alexey, ничего, если я тут на диванчик прилягу?

AK>> Имеем два типа фигур на плоскости:
AK>> 1) Прямоугольник. Задается шириной одной пары сторон и отрезком,
AK>> проходящим через другую пару сторон, от середины одной стороны к
AK>> середине другой.
AK>> 2) Сектор круга. Задается шириной (W=R2-R1) и дугой окружности
AK>> (задается 3-мя точками, принадлежащими _дуге_), проходящей также
AK>> через середины торцов сектора (этакий изогнутый приямоугольник).

AK>> Fi = Прямоугольник или Сектор

AK>> Необходимо найти(построить) _контур_ фигуры, получаемой путем
AK>> объединения любых двух или более этих фигур.

AK>> G = F1+F2+F3 ...

AK>> Примечание. В приципе достаточно найти контур фигуры,
AK>> получаемой путем пересечения лишь двух фигур (П+П, П+С, С+С).

> Условия недостаточны. Для того чтобы построить общий контур, нужно знать

> 1. Ориентацию фигур
Произвольная.

> 2. Координаты.
?

> 3. Что за контур, векторный, растровый, итп. Требуется
Векторный.

> способ задания контура, т.к. в него могут входить И прямые И кривые.
В идеале - упорядоченный набор элементов, у каждого из к-рых есть
признак "является дугой", и соответственно третья точка, к-рая для
прямых игнорируется. На практике же подойдет и просто набор отрезков и
дуг.

> Может требуется аппроксимировать кривые контура через прямые линии?
Не хотелось бы, хотя...
Возможно ли представить сектор в виде цепочки трапеций так, чтобы
искажений
практически не было?

> Как задавать кривые? ИТд.
3 точки, принадлежащие дуге окружности.

> 4. Можно ли пересчитать условия задающие прямоугольник и сектор в более
> удобные.
Да. В какие, например?

> Если требуется найти векторно, то очевидно, что необходимо найти точки
> пересечения фигур, затем определить внешние линии (включая может быть и кривые,
> что сложнее) контура, затем
> откинуть внутренние линии не принадлежащие контуру.
--- ifmail v.2.15dev5
 * Origin: JV Izhcom Ltd. (2:5020/400)