как построить буфер вокруг кривой?
От: gok Россия  
Дата: 17.01.06 19:23
Оценка:
Люди, подскажите как построить буфер вокруг кривой?
Те нужен полигон, точки которого отстоят от ближайших точек кривой примерно на одинаковое расстояние. Кривая не самопересекается, поэтому полигон тоже замкнут и не самопересекающийся.
Спасибо!
gok
Re: как построить буфер вокруг кривой?
От: Рома Мик Россия http://romamik.com
Дата: 17.01.06 21:29
Оценка:
Здравствуйте, gok, Вы писали:

gok>Люди, подскажите как построить буфер вокруг кривой?

gok>Те нужен полигон, точки которого отстоят от ближайших точек кривой примерно на одинаковое расстояние.
Как задана кривая? В любом случае, найти перпендикуляр в любой точке не составляет труда. Далее строишь две кривых, таких что каждой точке исходной прямой соотвествует точка отстоящая от нее на заданной расстояние вдоль перпендикуляра справа (одна кривая) и слева (другая). Еще берешь два отрезка прямых, чтобы замкнуть полигон.

gok>Кривая не самопересекается, поэтому полигон тоже замкнут и не самопересекающийся.

Построенные кривые могут иметь самопересесечения, но это нестрашно, можно такие пересечения находить и выбрасывать ту часть кривой что оказывается внутри полигона.
... << RSDN@Home 1.2.0 alpha rev. 622>>
Re[2]: как построить буфер вокруг кривой?
От: gok Россия  
Дата: 17.01.06 21:57
Оценка:
Здравствуйте, Рома Мик, Вы писали:

Задана как обычно (x,y,z).
По точкам? Дороговато, по-моему.
Я думаю мобыть параллельным сносом повращать вокруг любой точки (конец, например) и накопить крайние?
gok
Re[3]: как построить буфер вокруг кривой?
От: Рома Мик Россия http://romamik.com
Дата: 17.01.06 22:28
Оценка: +1
Здравствуйте, gok, Вы писали:

gok>Задана как обычно (x,y,z).

Т.е. последовательность точек соединенных отрезками.

gok>По точкам? Дороговато, по-моему.

Сложность O(N), да и коэффициент небольшой, дешевле не будет. Хотя еще будет поиск самопересечений, что уже O(N^2) либо O(N*log(N)). Но все равно вряд ли дешевле можно сделать. Разве что не искать самопересечений, а взять алгоритм закраски соотвествующий, чтобы ему начхать было.

gok>Я думаю мобыть параллельным сносом повращать вокруг любой точки (конец, например) и накопить крайние?

Во-первых получишь ты нечто непонятное и непредсказуемое, да и вообще не то, т.к. около точки вокруг которой вращать будет нулевая толщина.
Во-вторых никак не дешевле.
... << RSDN@Home 1.2.0 alpha rev. 622>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.