1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-09-02 21:02:49 +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

120 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Кривые Безье как матричные уравнения
Мы также можем представить кривые Безье как матричную операцию, выразив формулу Безье как функцию с полиноминальноминальной основой, матрицу коэффициентов и матрицу конкретных координат. Давайте рассмотрим что это значит для уравнений кубических кривых Безье, используя P<sub>...</sub> для обозначения координат в "одном или более пространстве".
\[
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` и перемножив матрицы, мы получим такие-же значения, как при подсчете с использованием исходной полиноминальной функции или графического метода интерполяции.
**Итак: зачем нам возится с матрицами?** Матричное произведение раскрывает свойства функции кривых, которые в противном случае, было бы сложно обнаружить. Например, мы видим, что наша функция принадлежит к типу [треугольных матриц](https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B5%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0) (* в оригинале [другая ссылка](https://en.wikipedia.org/wiki/Triangular_matrix)), определенные количеством контрольных координат и обладают всеми соответствующими свойствами. Также, что они могут быть обернуты, что в свою очередь определяет [тонну других свойств](https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0#%D0%A1%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B9_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B) (* в оригинале [другая ссылка](https://en.wikipedia.org/wiki/Invertible_matrix#The_invertible_matrix_theorem)), применимых к нашим кривым. Конечно же, основным вопросом остается: "В чем состоит польза?". Тогда как ответ не становится *очевидным* немедленно, чуть далее мы увидим определенные случаи, где некоторые свойства кривых могут быть исчислены посредством манипуляции функцией, либо остроумным использованием матриц, и иногда последнее намного быстрее.
Потому пока давайте запомним, что функции могут быть описаны таким образом, и будем двигаться дальше.