1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-08-31 03:59:58 +02:00
Files
BezierInfo-2/docs/chapters/matrix/content.ru-RU.md
ra30r 5f6c843f88 Ru ru translation (#298)
* ru-RU introduction

Translation of introduction to Russian

* ru-RU whatis

Translation of chapter 2 to Russian

* (fixup) ru-RU intro

fixed missing translations

* ru-RU index.html

Translated header, meta, title and link names for existing chapter's traslations. (will be updated with every new commit)

* ru-RU locale strings

Locale string russian traslations

* locale fixup

* build chapters 1,2

* ru-RU explanation

translation of explanation to Russian.

* ru-RU control

translation of #control to Russian

* ru-RU weightcontrol

translation of #weightcontrol to Russian

* ru-RU derivatives

translation of #derivatives to Russian

* (fixup) ru-RU weightcontrol

* (fixup) ru-RU explanation

* ru-RU extended

* (fixup) ru-RU derivatives

add newline to the end of paragraph

* ru-RU decasteljau

* ru-RU matrix

Co-authored-by: Mammoth <echo@mammothnotes.com>
2021-01-18 09:08:36 -08:00

6.6 KiB
Raw Permalink Blame History

Кривые Безье как матричные уравнения

Мы также можем представить кривые Безье как матричную операцию, выразив формулу Безье как функцию с полиноминальноминальной основой, матрицу коэффициентов и матрицу конкретных координат. Давайте рассмотрим что это значит для уравнений кубических кривых Безье, используя P... для обозначения координат в "одном или более пространстве".

[ B(t) = P_1 \cdot (1-t)^3 + P_2 \cdot 3 \cdot (1-t)^2 \cdot t + P_3 \cdot 3 \cdot (1-t) \cdot t^2 + P_4 \cdot t^3 ]

Обобщив, игнорируя конкретные значения, мы получим:

[ B(t) = (1-t)^3 + 3 \cdot (1-t)^2 \cdot t + 3 \cdot (1-t) \cdot t^2 + t^3 ]

Это, в свою очередь, может быть записано как:

[ \begin{matrix} ... & = & (1-t)^3 \ & + & 3 \cdot (1-t)^2 \cdot t \ & + & 3 \cdot (1-t) \cdot t^2 \ & + & t^3 \ \end{matrix} ]

Последнее мы можем раскрыть, записав как:

[ \begin{matrix} ... & = & (1-t) \cdot (1-t) \cdot (1-t) & = & -t^3 + 3 \cdot t^2 - 3 \cdot t + 1 \ & + & 3 \cdot (1-t) \cdot (1-t) \cdot t & = & 3 \cdot t^3 - 6 \cdot t^2 + 3 \cdot t \ & + & 3 \cdot (1-t) \cdot t \cdot t & = & -3 \cdot t^3 + 3 \cdot t^2 \ & + & t \cdot t \cdot t & = & t^3 \ \end{matrix} ]

Более того можно записать с коэффициентами 1 и 0, включив нивелированные термины:

[ \begin{matrix} ... & = & -1 \cdot t^3 + 3 \cdot t^2 - 3 \cdot t + 1 \ & + & +3 \cdot t^3 - 6 \cdot t^2 + 3 \cdot t + 0 \ & + & -3 \cdot t^3 + 3 \cdot t^2 + 0 \cdot t + 0 \ & + & +1 \cdot t^3 + 0 \cdot t^2 + 0 \cdot t + 0 \ \end{matrix} ]

И уже это можно рассматривать как серию четырех матричных операций:

[ \begin{bmatrix}t^3 & t^2 & t & 1\end{bmatrix} \cdot \begin{bmatrix}-1 \ 3 \ -3 \ 1\end{bmatrix}

  • \begin{bmatrix}t^3 & t^2 & t & 1\end{bmatrix} \cdot \begin{bmatrix}3 \ -6 \ 3 \ 0\end{bmatrix}
  • \begin{bmatrix}t^3 & t^2 & t & 1\end{bmatrix} \cdot \begin{bmatrix}-3 \ 3 \ 0 \ 0\end{bmatrix}
  • \begin{bmatrix}t^3 & t^2 & t & 1\end{bmatrix} \cdot \begin{bmatrix}1 \ 0 \ 0 \ 0\end{bmatrix} ]

Скомбинировав в единую матричную операцию, получим:

[ \begin{bmatrix}t^3 & t^2 & t & 1\end{bmatrix} \cdot \begin{bmatrix} -1 & 3 & -3 & 1 \ 3 & -6 & 3 & 0 \ -3 & 3 & 0 & 0 \ 1 & 0 & 0 & 0 \end{bmatrix} ]

Такой тип функций полиноминальной основы зачастую записывается с основой в возрастающем порядке, что значит мы должны обернуть нашу t матрицу горизонтально, а нашу "большую" матрицу — вертикально:

[ \begin{bmatrix}1 & t & t^2 & t^3\end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 & 0 \ -3 & 3 & 0 & 0 \ 3 & -6 & 3 & 0 \ -1 & 3 & -3 & 1 \end{bmatrix} ]

Наконец, мы можем добавить оригинальные координаты единой третьей матрицей:

[ B(t) = \begin{bmatrix} 1 & t & t^2 & t^3 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 & 0 \ -3 & 3 & 0 & 0 \ 3 & -6 & 3 & 0 \ -1 & 3 & -3 & 1 \end{bmatrix} \cdot \begin{bmatrix} P_1 \ P_2 \ P_3 \ P_4 \end{bmatrix} ]

Такой же фокус может быть проделан с квадратной кривой, в коем случае мы получаем:

[ B(t) = \begin{bmatrix} 1 & t & t^2 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 \ -2 & 2 & 0 \ 1 & -2 & 1 \end{bmatrix} \cdot \begin{bmatrix} P_1 \ P_2 \ P_3 \end{bmatrix} ]

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

Итак: зачем нам возится с матрицами? Матричное произведение раскрывает свойства функции кривых, которые в противном случае, было бы сложно обнаружить. Например, мы видим, что наша функция принадлежит к типу треугольных матриц (* в оригинале другая ссылка), определенные количеством контрольных координат и обладают всеми соответствующими свойствами. Также, что они могут быть обернуты, что в свою очередь определяет тонну других свойств (* в оригинале другая ссылка), применимых к нашим кривым. Конечно же, основным вопросом остается: "В чем состоит польза?". Тогда как ответ не становится очевидным немедленно, чуть далее мы увидим определенные случаи, где некоторые свойства кривых могут быть исчислены посредством манипуляции функцией, либо остроумным использованием матриц, и иногда последнее намного быстрее.

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