1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-08-30 11:40:27 +02:00

ru-RU Aligning (#334)

* ru-RU Aligning curves

translation of Aligning curves chapter to Russian

* Automated build

* Automated build

Co-authored-by: Mammoth <echo@mammothnotes.com>
Co-authored-by: Bezierinfo CI <action@github.com>
Co-authored-by: Pomax <pomax@nihongoresources.com>
This commit is contained in:
ra30r
2022-01-02 10:24:19 -06:00
committed by GitHub
parent b479e2aa86
commit 2b112edcb4
11 changed files with 87 additions and 53 deletions

View File

@@ -0,0 +1,47 @@
# Выравнивание (пересчет) кривых
В то время как есть бесконечное множество кривых мы можем задать перемещая x и y кооординаты контрольных точек, не все кривые являются различными между собой. К примеру, если мы зададим кривую, затем повернем ее на 90 градусов, это будет все та же кривая, и все свойста, как, к примеру, точки экстримов, будут на тех же ее участках, только зарисованы на полотне координат в другой точке. Таким образом, одним из способов убедится, что мы работаем с "уникальными" кривыми, является выравнивание их с осями координат.
Выравнивание так же упрощает уравнение кривой. Мы можем транслитерировать (переместить) кривую таким образом, что первая ее точка будет лежать на точке начала координат (0,0), что, в свою очередь, переведет наш полиноминальную функцию *n* порядка, на порядок ниже, *(n-1)*. Последовательность останется такой же, но у нас будет меньше условий. Далее мы развернем кривую так, чтобы последняя точка тоже лежала на оси координат, переводя ее значение в (..., 0). Это далее упрощает ф-цию для ее формулы по Y переводя ее еще на порядок ниже. Так, если у нас была кубическая ф-ция:
\[
\left \{ \begin{matrix}
x = BLUE[120] \cdot (1-t)^3 BLUE[+ 35] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 220] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[+ 220] \cdot t^3 \\
y = BLUE[160] \cdot (1-t)^3 BLUE[+ 200] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 260] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[+ 40] \cdot t^3
\end{matrix} \right.
\]
Мы переместим первую точку в начало координат, смещая все значания x на -120 и y на -160:
\[
\left \{ \begin{matrix}
x = RED[0] \cdot (1-t)^3 BLUE[- 85] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 100] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[+ 100] \cdot t^3 \\
y = RED[0] \cdot (1-t)^3 BLUE[+ 40] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 100] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[- 120] \cdot t^3
\end{matrix} \right.
\]
Затем, повернем кривую до оси X (новые значания x и y округлены в иллюстративных целях):
\[
\left \{ \begin{matrix}
x = RED[0] \cdot (1-t)^3 BLUE[- 85] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[- 12] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[+ 156] \cdot t^3 \\
y = RED[0] \cdot (1-t)^3 BLUE[- 40] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 140] \cdot 3 \cdot (1-t) \cdot t^2 RED[+ 0] \cdot t^3
\end{matrix} \right.
\]
Итак, опуская все нулевые значения, получаем
\[
\left \{ \begin{array}{l}
x = BLUE[- 85] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[- 12] \cdot 3 \cdot (1-t) \cdot t^2 BLUE[+ 156] \cdot t^3 \\
y = BLUE[- 40] \cdot 3 \cdot (1-t)^2 \cdot t BLUE[+ 140] \cdot 3 \cdot (1-t) \cdot t^2
\end{array} \right.
\]
Как мы видим, наше изначальное определение кривой было существенно упрощено. Следущие зарисовки демострируют результат выравнивание кривой с осью X. первый рисунок соотвествует приведеному выше примеру кривой.
<graphics-element title="Aligning a quadratic curve" width="550" src="./aligning.js" data-type="quadratic"></graphics-element>
&nbsp;
<graphics-element title="Aligning a cubic curve" width="550" src="./aligning.js" data-type="cubic"></graphics-element>