Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2022, 22:57   #1
himecu
Пользователь
 
Регистрация: 09.12.2021
Сообщений: 32
Сообщение Алгоритм измельчения триангуляционной поверхности

Здравствуйте, имеется триангуляция поверхности, заданной алгоритмом измельчения, выводящее изображение в stl файл. Как можно данную поверхность ограничить системой неравенств? Я знаю, что система неравенств в виде кода задается при помощи такого фрагмента кода:
Код:
Z[i] = 0.3 * (pow(X[i], 2) + pow(Y[i], 2)) && abs(X[i])-abs(Y[i])<4 && pow(X[i],2)+pow(Y[i],2)>1;
Снимок.PNG
Как эту фрагментацию кода можно отобразить в программе, где просто задается триангуляция поверхности, заданная алгоритмом измельчения?
#полный код программы представлен в этом файле
триангуляция.txt

Последний раз редактировалось himecu; 02.11.2022 в 23:05.
himecu вне форума Ответить с цитированием
Старый 03.11.2022, 06:49   #2
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

himecu, вы хотите поверхность из треугольников отсечь (clip) областью «abs(x) - abs(y) < 4 && pow(x, 2) + pow(y, 2) > 1»?
Изображения
Тип файла: png clip_mesh.png (65.0 Кб, 5 просмотров)
Пётр Седов вне форума Ответить с цитированием
Старый 03.11.2022, 11:13   #3
himecu
Пользователь
 
Регистрация: 09.12.2021
Сообщений: 32
По умолчанию

Пётр Седов, да примерно так, но чтобы эта отсеченная область изображалась в отдельном stl файл с таким же разбиением треугольников
himecu вне форума Ответить с цитированием
Старый 03.11.2022, 18:46   #4
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

himecu,
* Если треугольник полностью в серой области, то оставляем его как есть.
* Если треугольник полностью в белой области, то выкидываем его.
* Если треугольник на границе серой и белой области, то разбиваем его на меньшие треугольники так, чтобы каждый из них был либо полностью в серой области, либо полностью в белой области. Серые оставляем, белые выкидываем.
* Окружность приближённо представляем как многоугольник.
Так устраивает?
Пётр Седов вне форума Ответить с цитированием
Старый 09.11.2022, 06:44   #5
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

himecu, вот код отсечения. Это самый простой вариант, используются только выпуклые многоугольники. Может вам пригодится. Работает так:
Изображения
Тип файла: png clip_mesh.png (12.0 Кб, 2 просмотров)
Вложения
Тип файла: txt clip_mesh.cpp.txt (9.5 Кб, 2 просмотров)
Пётр Седов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
триангуляция 2d поверхности GiletiAnna Помощь студентам 0 18.04.2013 06:24
3D поверхности Lost_Angel C++ Builder 1 29.03.2012 01:19
Динамический вывод поверхности MirzaevShamil Помощь студентам 0 24.05.2010 18:54
Поверхности в MathCAD compman Помощь студентам 0 15.03.2010 03:28
Расстояние точки до поверхности Mikhail Bakurov Общие вопросы Delphi 9 20.01.2009 23:05