Привет.
Ткните, пожалуйста, в теорию или реализацию алгоритмов быстрого (или не очень) осуществления вырезания (A/B) и объединения (AUB) геометрических примитивов.
Перерыл массу документации, но так и не нашел ничего простого. Все или очень коммерческое или за гранью понятного.
Здравствуйте, AndreyFedotov, Вы писали:
AF>Тебя интересует объединение и вырезание примитивов с удалением невидимых граней? Какой критерий принадлежности точки к примтитву ты используешь?
AF>При вычитании одного шарика из другого получается не замкнутая поверхность. Собирешься ли ты работать и с ней?
AF>С Уважением, Андрей
При вычитании одного шарика из другого получается замкнутая поверхность — здесь я имел в виду понятие твердое тело (solid), а не оболочка (shape, surface).
Наиболее близкими работами по этой теме являются:
http://www.cs.unc.edu/~geom/ ->
ftp://ftp.cs.unc.edu/pub/users/keyser/ (дисcертация)
+ там же есть аналогичные работы коллег keyser'a
Наиболее близко выглядящими реализациями:
Все CAD'ы, поддерживающие теоретико-множественные операции над твердыми телами (тоесть, в основном, не легкие).
Из открытых можно назвать OpenCASCADE
http://www.cs.unc.edu/~geom/CSG/boole.html
Уже начинают заползать мысли использовать R-функции, но думаю это будет даже медленнее чем с OpenGL'ским буфером траффарета.
С уважением, PVA
P.S. Очень хотел бы пощупать библиотеку BspSolid.