Отрезок, соединяющий любые 2 точки многоугольника так жэ принадлежит ему.
Треугольник - простейший выпуклый многоугольник.
Рисунок - три прямых с нормалями.
Описание
M1(x1,y1),M2(x2,y2),M3(x3,y3)
L:
Переход от одного описания к другому очевиден - треугольник ограничивает часть плоскости (его внутренности)
Определение принадлежности точки внутренности треуголника
Li:Aix + Biy + Ci = 0
I=1,2,3
Ni=()
Уравнения прямых можно выбрать так столбы вектора нормалей были направлены наружу - внутренность треугольника лежит в отрицательной полуплоскости (трижды)
Алгоритм принадлежности точки треугольнику:
1. Добиться чтобы внутренность была 3-ды отрицательной : преобразовать уравнения Li так, чтобы вершина Mj !€ находилась в отрицательной полуплоскости
2. Подставить координаты произвольгой точки в каждое из уравнений сторон , если все три числа "-" то точка внутри, иначе - нет.
Произвольный выпуклый многоугольник однозначно определяется своими вершинами - их лучше нумеровать последовательно.
Освещённость на плоскости. Проблема освещенности описывается математикой просто и её можно перенести на пространство. Есть 2 варианта освещённости:
1. Параллельным пучком
2. Расходящимися лучами с общим центом
Проще - параллельный пучёк
Рисунок.
Прямая описывается так, чтобы свет падал с положительной стороны тогда l указывает на удаааааааалёный участок, угол падения - от нормали.
Освещенность
I=k(n,l)=k || * || cos
Так как источник далеееееко - прямая будет освещена равномерно
Освещение угла
Две прямые, все сверху.
Интенсивность света зависит о углов падения свет и нормалей.
Для правильной оценки примем что нормали равны по модулю
Построение тени.
При освещении фигуры из удалёёёного источника, поместим на ней экран и посмотрим на тень многоугольника.
Б) проецируем вершины примыкающие к вершинам на экран
В) проецируем неосвещенные прямые на прямую
Г) 2 крайние точки определяют длину тени
Д)определяем точек прямой лежащих вене отрезка тени
Е) Можно дополнительно пометить участки тени соотв. видимым граням и закрасит их по освещенности
При использовании точечного источника:
Задача определения освещённых и неосвещенных сторон и построения тени решаются аналогично рассмотренному
8 лекция 13:37 02.11.2008
Аффинные преобразования в пространстве.
3-х мерная графика обозначается как 3D.
координата задается xyz1
Четвёртая координата - время.
Каждая точка кроме 0 может быть записана 4-кой чисел не равных 0 определённых с точностью до общего множителя h.
Аналогично 2-мерному случаю используем матричное описание основных преобразований.
(l,m,n) - вектор перехода
1.
Матрица переноса
2. Матрицы вращения в пространстве
a) вращение вокруг оси абсцисс на угол j
é 1 0 0 0 ù
ê 0 cosj sinj 0 ê
[Rx] = ê 0 -sinj cosj 0 ê
ë 0 0 0 1 û
б) вращение вокруг оси ординат на угол y
é cosy 0 siny 0ù
ê 0 1 0 0 ê
[Ry] = ê -siny 0 cosy 0 ê
ë 0 0 0 1û
в) вращение вокруг оси аппликат на угол c
é cosc sinc 0 0 ù
ê -sinc cosc 0 0 ê
[Rz] = ê 0 0 1 0 ê
ë 0 0 0 1 û
3. Матрицы отражения
а) относительно плоскости xy
В общем виде, если есть матрица преобразования
то соответствующее ей преобразование можно записать в виде:
4. Матрица растяжения-сжатия
é a 0 0 0 ù
ê 0 b 0 0 ê
[D] = ê 0 0 g 0 ê
ë 0 0 0 1 û
где a>1 коэффициент растяжения вдоль оси абсцисс;
b>1 коэффициент растяжения вдоль оси ординат;
g>1 коэффициент растяжения вдоль оси аппликат.
Общее уравнение плоскости.
Ax+ By + Cy + D =0
При A^2+B^2+C^2 != 0
N = (A, B, C) - нормаль.
Рисунок.
Плоскость делит пространство на два полу пространства (+ и -). Нормаль светит в положительное пространство.
Уравнения прямой в пр-ве.
Для прямой через 2 точки
М1() и М2() можно записать парам уравнения
X = x1 + t(x2-x1)
y = y1 + t(y2-y1)
z = z1 + t(z2-z1)
-00 <t < +00
Описывают все точки.
X=(1-t)x1 + tx2
y=(1-t)y1 + ty2
z=(1-t)z1 + tz2
Описывают очки отрезка.
Каноническое:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(x-x1)/(x2-x1)
Можно запасать уравнение прямой как пересечение 2-х плоскостей:
A1x + B1y + C1z + D1 = 0
A2x + B2y + C2z + D2 = 0
Переход к параметрическому виду:
Свойства: направляющий вектор прямой всегда перпендикулярен к нормалям какой-то дряни.
Рисунок
l1 = B1C2 - B2C1
l2 = C1A2 - C2A1
l2 = C1A2 - C2A1
1) L Выбираете так чтобы вектора образовали правую тройку.
2) Произв. прямая может рассматриваться как линия пересечения разных плоскостей - возможно разнообразие коэффициентов А Б С Д. В Параметрических уравнениях коэффициенты задают направляющие вектора прямых.
Условие принадлежности точки внутренностям выпуклого многогранника.
Определяется аналогично плоской задаче:
Пусть грани лежат в
Pi: Aix + Biy + Ciz + Di = 0; i = 1...4
Каждая ПИ делит пространство на 2 полу пространства. Каждый вектор нормали Ни = ( ) указывает в + полупространство. Уравнение плоскостей Пи всегда можно выбрать так чтобы нормали светили наружу. Те добиться, что б внутри был сплошной "-".
Для этого определяем координаты одной из вершин как решение системы уравнений
Aix + Biy + Ciz + Di = 0; i = 1...3
Затем координаты подставляем в Aix + Biy + Ciz + Di = 0; i = 4
И если получится отрицательное значение то коэффициент не меняем - иначе меняем координаты Ни на -.
Повторив процедуру для всех плоскостей можно определить значения для заданной точки М и решить задачу её расположения.