Нормаль (геометрия)

редактировать
Многоугольник и два его вектора нормалей Нормаль к поверхности в точке такая же, как и нормаль к касательная плоскость к поверхности в той же точке.

В geometry, нормаль - это такой объект, как line, ray или вектор, который на перпендикулярен заданному объекту. Например, в двух измерениях нормальная линия к кривой в данной точке является линией, перпендикулярной касательной к кривой в данной точке. Вектор нормали может иметь длину один (единичный вектор ) или его длина может представлять кривизну объекта (вектор кривизны ); его алгебраический знак может указывать на стороны (внутренние или внешние).

В трех измерениях нормаль поверхности, или просто нормаль, к поверхности в точке P является вектором перпендикуляр к касательной плоскости поверхности в точке P. Слово «нормальный» также используется как прилагательное: прямая, нормальная к плоскость, нормальный компонент силы , вектор нормали и т. д. Концепция нормальности обобщается на ортогональность (прямые углы ).

Эта концепция была обобщена на дифференцируемые многообразия произвольной размерности, вложенные в евклидово пространство. нормальное векторное пространство или нормальное пространство многообразия в точке P - это набор векторов, которые ортогональны касательному пространству в точке P. особый интерес в случае гладких кривых и гладких поверхностей.

Нормаль часто используется в 3D компьютерной графике (обратите внимание на единственное число, так как будет определена только одна нормаль), чтобы определить ориентацию поверхности к источнику света для плоского затенения или ориентацию каждого из углов поверхности (вершин ) для имитации искривленной поверхности с Затенение Фонга.

Содержание

  • 1 Нормаль к поверхностям в трехмерном пространстве
    • 1.1 Расчет нормали к поверхности
    • 1.2 Выбор нормали
    • 1.3 Преобразование нормалей
  • 2 Гиперповерхности в n-мерном пространстве
  • 3 разновидности, определяемые неявными уравнениями в n-мерном пространстве
    • 3.1 Пример
  • 4 Использование
  • 5 Нормаль в геометрической оптике
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Нормаль к поверхностям в трехмерном пространстве

Изогнутая поверхность, показывающая единичные векторы нормали (синие стрелки) к поверхности

Расчет нормали к поверхности

Для выпуклого многоугольника (например, треугольник ), нормаль к поверхности может быть вычислена как векторное векторное произведение двух (непараллельных) ребер многоугольника.

Для плоскости , заданной уравнением ax + by + cz + d = 0 {\ displaystyle ax + by + cz + d = 0}ax + by + cz + d = 0 , вектор n = (a, b, c) {\ displaystyle \ mathbf {n} = (a, b, c)}{\ displaystyle \ mathbf {n} = (a, b, c)} является нормальным.

Для плоскости, уравнение которой дано в параметрической форме

r (s, t) = r 0 + sp + tq {\ displaystyle \ mathbf {r} (s, t) = \ mathbf {r } _ {0} + s \ mathbf {p} + t \ mathbf {q}}{\ displayst yle \ mathbf {r} (s, t) = \ mathbf {r} _ {0} + s \ mathbf {p} + t \ mathbf {q}} ,

где r0- точка на плоскости, а p,q- непараллельные векторы, указывающие вдоль плоскости, нормаль к плоскость является вектором, нормальным как к p, так и к q, что можно найти как перекрестное произведение n = p × q {\ displaystyle \ mathbf {n} = \ mathbf {p} \ times \ mathbf {q}}{\ displaystyle \ mathbf {n} = \ mathbf {p} \ times \ mathbf {q}} .

Если (возможно, не плоская) поверхность S в 3-м пространстве R параметризована системой криволинейных координат r(s, t) = (x (s, t), y (s, t), z (s, t)), где s и t real переменных, то нормаль к S по определению является нормалью к касательной плоскости, заданной перекрестным произведением частных производных

n = ∂ r ∂ s × ∂ r ∂ t. {\ displaystyle \ mathbf {n} = {\ partial \ mathbf {r} \ over \ partial s} \ times {\ partial \ mathbf {r} \ over \ partial t}.}{ \ displaystyle \ mathbf {n} = {\ partial \ mathbf {r} \ over \ partial s} \ times {\ partial \ mathbf {r} \ over \ partial t}.}

Если задана поверхность S. неявно как набор точек (x, y, z) {\ displaystyle (x, y, z)}(x,y,z), удовлетворяющих F (x, y, z) = 0 {\ displaystyle F (x, y, z) = 0}F (x, y, z) Знак равно 0 , затем нормаль в точке (x, y, z) {\ displaystyle (x, y, z) }(x,y,z)на поверхности задается градиентом

n = ∇ F (x, y, z). {\ displaystyle \ mathbf {n} = \ nabla F (x, y, z).}{\ displaystyle \ mathbf {n} = \ nabla F (x, y, z).}

поскольку градиент в любой точке перпендикулярен заданному уровню S.

Для поверхности S в R, заданной как график функции z = f (x, y) {\ displaystyle z = f (x, y)}z = f (x, y) нормаль, направленная вверх, может быть найдена либо из параметризации r (x, y) = (x, y, f (x, y)) {\ displaystyle \ mathbf {r} (x, y) = (x, y, f (x, y))}{\ displaystyle \ mathbf {r} (x, y) = (x, y, f (x, y))} , что дает:

n = ∂ r ∂ x × ∂ r ∂ y = (1, 0, ∂ f ∂ x) × (0, 1, ∂ f ∂ y) = (- ∂ f ∂ x, - ∂ f ∂ y, 1); {\ displaystyle \ mathbf {n} = {\ frac {\ partial \ mathbf {r}} {\ partial x}} \ times {\ frac {\ partial \ mathbf {r}} {\ partial y}} = (1, 0, {\ tfrac {\ partial f} {\ partial x}}) \ times (0,1, {\ tfrac {\ partial f} {\ partial y}}) = (- {\ tfrac {\ partial f } {\ partial x}}, - {\ tfrac {\ partial f} {\ partial y}}, 1);}{\ displaystyle \ mathbf {n} = {\ frac {\ partial \ mathbf {r} } {\ partial x}} \ times {\ frac {\ partial \ mathbf {r}} {\ partial y}} = (1,0, {\ tfrac {\ partial f} {\ partial x}}) \ times (0,1, {\ tfrac {\ partial f} {\ partial y}}) = (- {\ tfrac {\ partial f} {\ partial x}}, - {\ tfrac {\ partial f} {\ partial y}}, 1);}

или проще из его неявной формы F (x, y, z) = z - f (x, y) = 0 {\ displaystyle F (x, y, z) = zf (x, y) = 0}{\ displaystyle F (x, y, z) = zf (x, y) = 0} , что дает n = ∇ F (x, y Z) знак равно (- ∂ е ∂ Икс, - ∂ е ∂ Y, 1) {\ Displaystyle \ mathbf {n} = \ nabla F (x, y, z) = (- {\ tfrac {\ partial f} { \ partial x}}, - {\ tfrac {\ partial f} {\ partial y}}, 1)}{\ displaystyle \ mathbf {n} = \ nabla F (x, y, z) = (- {\ tfrac {\ partial f} {\ partial x}}, - {\ tfrac {\ partial f} {\ partial y}}, 1)} .

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

Выбор нормали

Векторное поле нормалей к поверхности

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

Если нормаль построена как векторное произведение касательных векторов (как описано в тексте выше), это псевдовектор.

Преобразование нормалей

Примечание: в этом разделе мы используем только верхняя матрица 3x3, поскольку перенос не имеет отношения к вычислению

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

В частности, для матрицы преобразования 3x3 M мы можем определить матрицу W, которая преобразует вектор n, перпендикулярный касательной плоскости t в вектор n ′, перпендикулярный преобразованной касательной плоскости M t, по следующей логике:

Запишите n ′ как W n . Мы должны найти W.

W n перпендикулярно M t {\ displaystyle W \ mathbb {n} {\ text {perpendicular to}} M \ mathbb {t}}{\ displaystyle W \ mathbb {n} {\ text {перпендикулярно}} M \ mathbb {t}}

⟺ (W n) ⋅ (M t) = 0 {\ displaystyle \ iff (W \ mathbb {n}) \ cdot (M \ mathbb {t}) = 0}{\ displaystyle \ iff (W \ mathbb {n}) \ cdot (M \ mathbb {t }) = 0}
⟺ (W n) T (M t) = 0 {\ displaystyle \ iff (W \ mathbb {n}) ^ {T} (M \ mathbb {t}) = 0}{\ displaystyle \ iff (W \ mathbb {n}) ^ {T} (M \ mathbb {t}) = 0}
⟺ (n TWT) (M t) = 0 {\ displaystyle \ iff (\ mathbb {n} ^ {T} W ^ {T}) (M \ mathbb {t}) = 0}{\ displaystyle \ iff (\ mathbb { n} ^ {T} W ^ {T}) (M \ mathbb {t}) = 0}
⟺ N T (WTM) t = 0 {\ displaystyle \ iff \ mathbb {n} ^ {T} (W ^ {T} M) \ mathbb {t} = 0}{\ displaystyle \ iff \ mathbb {n} ^ {T} (W ^ {T} M) \ mathbb {t} = 0}

Ясно выбирая W так, чтобы WTM = I {\ displaystyle W ^ {T} M = I}W ^ {T} M Знак равно I , или W = (M - 1) T {\ displaystyle W = (M ^ {- 1}) ^ {T}}{\ displaystyle W = (M ^ {- 1}) ^ {T}} , будет удовлетворять вышеуказанному уравнению, давая W n {\ displaystyle W \ mathbb {n}}{\ displaystyle W \ mathbb {n}} перпендикулярно M t {\ displaystyle M \ mathbb {t}}{\ displaystyle M \ mathbb {t}} или n ′ перпендикулярно t ′, если требуется.

Следовательно, при преобразовании нормалей к поверхности следует использовать обратное транспонирование линейного преобразования. Обратное транспонирование равно исходной матрице, если матрица ортонормирована, то есть чисто вращательная без масштабирования или сдвига.

Гиперповерхности в n-мерном пространстве

Для (n - 1) {\ displaystyle (n {-} 1)}{\ displaystyle (n {-} 1)} -мерного гиперплоскость в n-мерном пространстве R, заданном параметрическим представлением

r (t 1,…, tn - 1) = p 0 + t 1 p 1 + ⋯ + tn - 1 pn - 1 {\ displaystyle \ mathbf {r} (t_ {1}, \ ldots, t_ {n-1}) = \ mathbf {p} _ {0} + t_ {1} \ mathbf {p} _ {1} + \ cdots + t_ {n-1} \ mathbf {p} _ {n {-} 1}}{\ displaystyle \ mathbf {r} (t_ {1}, \ ldots, t_ {n-1}) = \ mathbf {p} _ {0} + t_ {1} \ mathbf {p} _ {1} + \ cdots + t_ {n-1} \ mathbf {p} _ {n {-} 1}} ,

где p0- точка на гиперплоскости, а piдля i = 1,..., n -1 - линейно независимые векторы, указывающие вдоль гиперплоскости, нормалью к гиперплоскости является любой вектор n {\ displaystyle \ mathbf {n}}\ mathbf {n} в нулевом пространстве матрица P = [p 1… pn - 1] {\ displaystyle P = [\ mathbf {p} _ {1} \ dots \ mathbf {p} _ {n-1}]}{\ displaystyle P = [\ mathbf {p} _ {1} \ dots \ mathbf {p} _ {n-1}]} , что означает P n = 0 {\ displaystyle P \ mathbf {n} = \ mathbf {0}}{\ displaystyle P \ mathbf {n} = \ mathbf {0}} . То есть любой вектор, ортогональный всем векторам в плоскости, по определению является нормалью к поверхности. В качестве альтернативы, если гиперплоскость определяется как набор решений одного линейного уравнения a 1 x 1 + ⋯ + тревога = c {\ displaystyle a_ {1} x_ {1} + \ cdots + a_ {n} x_ { n} = c}{\ displaystyle a_ {1} x_ {1} + \ cdots + a_ {n} x_ {n} = c} , тогда вектор n = (a 1,…, an) {\ displaystyle \ mathbb {n} = (a_ {1}, \ ldots, a_ {n})}{\ displaystyle \ mathbb {n} = (a_ {1}, \ ldots, a_ {n})} нормально.

Определение нормали к поверхности в трехмерном пространстве может быть расширено до (n-1) -мерных гиперповерхностей в R . Гиперповерхность может быть локально определена неявно как набор точек (x 1, x 2,…, xn) {\ displaystyle (x_ {1}, x_ {2}, \ ldots, x_ {n})}(x_1, x_2, \ ldots, x_n) удовлетворяющее уравнению F (x 1, x 2,…, xn) = 0 {\ displaystyle F (x_ {1}, x_ {2}, \ ldots, x_ {n}) = 0}{\ displaystyle F (x_ {1}, x_ {2}, \ ldots, x_ {n}) = 0} , где F {\ displaystyle F}F - заданная скалярная функция. Если F {\ displaystyle F}F является непрерывно дифференцируемым, то гиперповерхность является дифференцируемым многообразием в окрестности точек где градиент не равен нулю. В этих точках вектор нормали задается градиентом:

n = ∇ F (x 1, x 2,…, xn) = (∂ F ∂ x 1, ∂ F ∂ x 2,…, ∂ F ∂ xn). {\ displaystyle \ mathbb {n} = \ nabla F (x_ {1}, x_ {2}, \ ldots, x_ {n}) = \ left ({\ tfrac {\ partial F} {\ partial x_ {1}) }}, {\ tfrac {\ partial F} {\ partial x_ {2}}}, \ ldots, {\ tfrac {\ partial F} {\ partial x_ {n}}} \ right) \,.}{\ displaystyle \ mathbb {n} = \ nabla F (x_ {1}, x_ {2}, \ ldots, x_ {n}) = \ left ({\ tfrac {\ partial F} {\ partial x_ {1}}}, {\ tfrac {\ partial F} {\ partial x_ {2}}}, \ ldots, {\ tfrac {\ partial F} {\ partial x_ {n}}} \ right) \,.}

Нормальная линия - это одномерное подпространство с базой {n }.

Разновидности, определяемые неявными уравнениями в n-мерном пространстве

A дифференциальное многообразие, определяемые неявными уравнениями в n-мерном пространстве R - это совокупность общих нули конечного множества дифференцируемых функций от n переменных

f 1 (x 1,…, xn),…, fk (x 1,…, xn). {\ displaystyle f_ {1} (x_ {1}, \ ldots, x_ {n}), \ ldots, f_ {k} (x_ {1}, \ ldots, x_ {n}).}f_ {1} (x_ {1}, \ ldots, x_ {n}), \ ldots, f_ {k} (x_ {1}, \ ldots, x_ {n}).

Матрица Якоби многообразия - это матрица размера k × n, i-я строка которой представляет собой градиент f i. По теореме о неявной функции многообразие представляет собой многообразие в окрестности точки, где матрица Якоби имеет ранг k. В такой точке P нормальное векторное пространство является векторным пространством, порожденным значениями в P векторов градиента f i.

Другими словами, разнообразие определяется как пересечение k гиперповерхностей, а нормальное векторное пространство в точке - это векторное пространство, порожденное векторами нормалей гиперповерхностей в точке.

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

Эти определения могут быть дословно распространены на точки, где многообразие не является многообразием.

Пример

Пусть V будет разновидностью, определяемой в трехмерном пространстве уравнениями

x y = 0, z = 0. {\ displaystyle x \, y = 0, \ quad z = 0 \,.}x \, y = 0, \ quad z = 0 \,.

Это разнообразие представляет собой объединение оси x и оси y.

В точке (a, 0, 0), где a ≠ 0, строки матрицы Якоби - это (0, 0, 1) и (0, a, 0). Таким образом, нормальное аффинное пространство - это плоскость уравнения x = a. Аналогично, если b ≠ 0, нормальная плоскость в точке (0, b, 0) является плоскостью уравнения y = b.

В точке (0, 0, 0) строки матрицы Якоби - это (0, 0, 1) и (0, 0, 0). Таким образом, нормальное векторное пространство и нормальное аффинное пространство имеют размерность 1, а нормальное аффинное пространство - это ось z.

Использует

Нормаль в геометрической оптике

Диаграмма зеркального отражения

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

См. также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-31 12:38:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте