Как оптимизировать определение границ произвольной фигуры ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 12:52:29

Лекс Айрин писал(а):Куда? Фигура есть сущность уже установленная и при ее изменении уже будет совсем другой фигурой. Единственное, где я действительно ложанулся, так это в том, что в случае не треугольной пирамиды есть способ сделать четырехугольный разрез. (но не обязательно прямоугольный) В случае треугольной такого способа я не знаю... Уже давно пытаюсь... с утра.

Вот ведь неугомонный флудер, берёте ТРЕУГОЛЬНИК, ставите на любой его стороне вершину и он становится 4-х угольником, а выглядит как 3-х угольник. Тоже самое и с 5-ти угольником. Ставите точку на его ребро, он становится 6-ти угольником. И делите шести угольник на два прямоугольника. Вместо трёх треугольников, получили два прямоугольника. Ферштейн в итерациях или всё ещё ни бельмеса в прямоугольниках?

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение zub » 20.01.2017 12:58:18

Элементарным примитивом может быть только треугольник.
Четырехугольник:
1 - может самопересекаться.
2 - вершины могут лежать не в плоскости.
Как прикажете обрабатывать эти вырожденные случаи?

Форум превратился в сборище какихто неумных теоретиков. чтото гдето слышал - буду всем выдавать за истину в первой инстанции((
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 13:01:06

vitaly_l писал(а):Вот ведь неугомонный флудер, берёте ТРЕУГОЛЬНИК, ставите на любой его стороне вершину и он становится 4-х угольником, а выглядит как 3-х угольник. Тоже самое и с 5-ти угольником. Ставите точку на его ребро, он становится 6-ти угольником.


Это напоминает анекдот про мужика и женскую баню.... "А вы на шкаф залезьте и вот так голову поверните". То, что ты поставил на грани точку не увеличивает количество этих самых граней.

vitaly_l писал(а): Ставите точку на его ребро, он становится 6-ти угольником. И делите шести угольник на два прямоугольника.


Так, так... здесь попрошу объяснить на пальцах как получаются именно прямоугольники заполняющие всю поверхность разреза? Насчет четырехугольников я уже говорил выше.

Добавлено спустя 1 минуту 42 секунды:
Re: Как оптимизировать определение границ произвольной фигуры ?
zub, я уж сам не рад, что влез... думаю, пора сваливать с темы
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 13:08:51

Лекс Айрин писал(а):Так, так... здесь попрошу объяснить на пальцах как получаются именно прямоугольники заполняющие всю поверхность разреза? Насчет четырехугольников я уже говорил выше.

возьмите карандаш и следуйте ранее изложенным инструкциям.

zub писал(а):1 - может самопересекаться.
2 - вершины могут лежать не в плоскости.
Как прикажете обрабатывать эти вырожденные случаи?

А это просто - ЗАПРЕЩЕНО И ВСЁ ТУТ!
1) Прямоугольник ВСЕГДА, должен быть, в одной плоскости <== это аксиома, такого алгоритма.
Треугольник, безусловно оптимальная фигура, но в программировании четырёхугольник ускорит отрисовку на 50-75%.

zub писал(а):чтото гдето слышал - буду всем выдавать за истину в первой инстанции((

Идея моя, но пришла она после того как кто-то заговорил о тесселяции,
а я решил оспорить треугольники и оспаривая увидел, что можно ускорить 3D, т.к. параллельно решаю эту задачу.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 13:14:15

vitaly_l писал(а):возьмите карандаш и следуйте ранее изложенным инструкциям.


Я мутант... могу подобное проделывать и не прибегая к бумаге. Тем не менее взял и у меня нифига не получилось. Может, в полярных координатах надо работать?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 13:23:11

Лекс Айрин писал(а):Я мутант... могу подобное проделывать и не прибегая к бумаге. Тем не менее взял и у меня нифига не получилось. Может, в полярных координатах надо работать?

Знак качества нарисуйте - пятиконечный. И из самой верхней вершины, опустите перпендикуляр на нижнее ребро и на пересечении поставьте точку. Слева и справа будут четырёхугольники. А без бумаги, мутантизм - вам не позволяет увидеть истинное.


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение zub » 20.01.2017 13:24:59

>>А это просто - ЗАПРЕЩЕНО И ВСЁ ТУТ!
нуну. есть такая штука как погрешность вычислений. берете четырехугольник в плоскости, вращаете его, вращаете... долго вращаете. бац и он уже не в плоскости.

>>реугольник, безусловно оптимальная фигура, но в программировании квадрат ускорит отрисовку на 50-75%.
Зачем вы это говорите? вы знаете как видеокарта внутри устроена?

например sat формат: 3Д твердое тело хранится в виде ограничивающих поверхностей - плоских и неплоских, после их расчета их пересечений имеем набор граней и ребер тоже необязательно плоских. Никаких прямоугольбников нигде нет.

Нельзя любую поверхность заполнить прямоугольниками и четырехугольниками - всеравно некоторые выродятся в треугольники.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 13:29:02

vitaly_l писал(а):Слева и справа будут четырёхугольники.


Постой, речь идет о конкретно прямоугольниках. Мелочь о том, что нельзя просто поставить точку на грани, пока опустим. (в 3D грань это две математические точки (в которые грани ограничивают) и отрезок -- места для левых точек просто нет).
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 13:36:58

zub писал(а):нуну. есть такая штука как погрешность вычислений. берете четырехугольник в плоскости, вращаете его, вращаете... долго вращаете. бац и он уже не в плоскости.

Хм... не... это технически нереально.

zub писал(а):Нельзя любую поверхность заполнить прямоугольниками и четырехугольниками - все равно некоторые выродятся в треугольники.

Это лажа и туфта. Любую поверхность из множества треугольников можно апроксимировать сложив из двух 3-х угольников в один 4-х угольник или более сложным алгоритмом. Но здесь задача, в построении модели, СРАЗУ ПО МОИМ ПРАВИЛАМ, а не по стандартам.

zub писал(а):Зачем вы это говорите? вы знаете как видеокарта внутри устроена?

А вот этого я не знаю... :oops: Вы хотите сказать, что там всё заточено под треугольники? :| :( :cry:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 14:34:54

zub писал(а):Элементарным примитивом может быть только треугольник.
Четырехугольник:
1 - может самопересекаться.
2 - вершины могут лежать не в плоскости.
Как прикажете обрабатывать эти вырожденные случаи?

Форум превратился в сборище какихто неумных теоретиков. чтото гдето слышал - буду всем выдавать за истину в первой инстанции((

Ничего они не вырожденные.
1) Вот пример с само пересечением
http://forum.sources.ru/index.php?act=A ... h_id=17366
Или в aggpas
http://www.crossgl.com/aggpas/aggpas-demo.htm
Пример называется Perspective.


2) Пусть лежит это не мешает.

zub писал(а):Нельзя любую поверхность заполнить прямоугольниками и четырехугольниками - все равно некоторые выродятся в треугольники.

Можно и так делают все нормальные 3D движки. А то что координаты у некоторых точек будут совпадать так от этого только в плюсе будем.
А вот внутренняя структура будет хранить все 4 угла, вернее вектора.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 14:45:11

Pavia писал(а):Пример называется Perspective.

Львёнок, треугольниками рисуется, это видно если его "вывернуть во вне и изнанку повернуть в наружу", модельку перекорёжит и станут видны треугольные примитивы.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 15:00:47

vitaly_l писал(а):Львёнок, треугольниками рисуется, это видно если его "вывернуть во вне и изнанку повернуть в наружу", модельку перекорёжит и станут видны треугольные примитивы.

Ну так это потому что все держаться за треугольники. Не понимают что без них будет проще, исчезнут артефакты увеличиться скорость.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 15:08:04

Pavia писал(а): Не понимают что без них будет проще, исчезнут артефакты увеличиться скорость.


Наоборот... как минимум, появятся артефакты, если придется дублировать точки в разных переменных.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 15:12:01

Pavia писал(а):Ну так это потому что все держаться за треугольники. Не понимают что без них будет проще, исчезнут артефакты увеличиться скорость.

Они не держатся, просто треугольник - уникальная фигура, и это признано дикарями учёными, как следствие и остальным Миром. Бастуют только изобретатели. А вот, тот факт что, видеокарты заточены под треугольники - это печально, т.к. создаёт препоны в получении максимальной скорости, хотя и не страшно, т.к. пофигу и всё равно будет работать на 50% быстрее.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение zub » 20.01.2017 22:25:41

>>Ничего они не вырожденные.
А вы пробовали рисовать самопересекающися прямоугольник, или лежащий не в плоскости например опенглем?

Можете дать простую картинку где фигура из треугольников дает артефакты, а такаяже фигура из четырех угольников не дает? Сомневаюсь. аотому что любая фигура из прямоугольников может быть "доразбита" до невырожденых треугольников. Но не наоборот
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 235

Рейтинг@Mail.ru