Вопросы к 31 - p1xelse/CG GitHub Wiki

В этом вопросе необходимы рисунки

Зачем отсортировывать многоугольники по глубине?

C: [невнятно] мы смотрим на экран с z=беск, мы хотим видеть плоскость, которая лежит ближе всего к нам (z-max), чтобы в дальнейшем все последующие плоскости, находящиеся за передней Z, не были показаны за плоскостью, которая ближе к нам находится или частично показаны, если передний многоугольник не полностью покрывает многоугольники, находящиеся сзади
Вики: Предварительная сортировка по глубине (для формирования списка приблизительных приоритетов). если наблюдаем из z=+oo, то первым рассмотрим тот многоугольник, который имеет вершину с максимальной координатой z (ближе всего к нам). Удобно сортировать по Zmax
К: исходит, что они будут крайними

В первоначальном рассмотрении предполагаем, что ближайший многоугольник загораживает все остальные, а далее надо проверить, так это или не так. А как проверить? Что нас должно интересовать в этой ситуации? Дальше мы хотим расстаться с дальними многоугольниками? В каком случае?

Здесь хз
Вики: Отсечение по границе ближайшего к наблюдателю многоугольника, называемое сортировкой многоугольников на плоскости, или xy-сортировка (в качестве отсекателя используется копия первого многоугольника из списка приблизельных приоритетов. отсекаться будут все многоугольники в этом списке, включая первый). Используется алгоритм отсечения Вейлера-Азертона. На выходе формируется 2 списка – внутренний (для каждого отсекаемого многоугольника та часть, которая оказывается внутри отсекателя) и внешний (оставшаяся часть)).

Как проверить, действительно ли можно ближайший изображать (нужно соотношение)?

C: zmin отсекателя > z всех вершин остальных многоугольников

Возможно, какой-то из дальних многоугольников будет экранировать ближний, что в этой ситуации будем делать?

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

В качестве отсекателя что берем?

Многоугольник, нарушивший порядок в качестве отсекателя

Отсекаем многоугольник из какого списка?

Отсечению подлежат всe многоугольники из исходного (внутреннего или внешнего) списка, включая предыдущий отсекатель.

Алгоритм справится с циклическим перекрыванием многоугольников справится или нет?

С: Да
Вики: Этот алгоритм справляется с циклическим прерыванием многоугольников (часть многоугольников лежит позади другого, а часть спереди)

В каком случае придется использовать дополнительные действия? Как должны располагаться многоугольники, чтобы потребовалось что-то еще делать помимо сортировки и отсечения?

В случае когда многоугольники пересекаются.В этом случае мы рассекаем один из многоугольников линией пересечения плоскостей, присущих этим многоугольникам, а дальше решаем обычным порядком поставленную задачу

Если многоугольники пересекаются, что будем делать?

(4 случай) Рассекаем один из многоугольников линией пересечения плоскостей, присущих этим многоугольникам, а дальше решаем обычным порядком поставленную задачу