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

full regeneration

This commit is contained in:
Pomax
2021-02-28 12:28:41 -08:00
parent d8fab98ec7
commit 45394f6d0f
329 changed files with 3135 additions and 2361 deletions

View File

@@ -5,13 +5,13 @@ Now that we know the mathematics behind Bézier curves, there's one curious thin
It all has to do with how we run from "the start" of our curve to "the end" of our curve. If we have a value that is a mixture of two other values, then the general formula for this is:
\[
mixture = a \cdot value_1 + b \cdot value_2
\textit{mixture} = a \cdot \textit{value}_1 + b \cdot \textit{value}_2
\]
The obvious start and end values here need to be `a=1, b=0`, so that the mixed value is 100% value 1, and 0% value 2, and `a=0, b=1`, so that the mixed value is 0% value 1 and 100% value 2. Additionally, we don't want "a" and "b" to be independent: if they are, then we could just pick whatever values we like, and end up with a mixed value that is, for example, 100% value 1 **and** 100% value 2. In principle that's fine, but for Bézier curves we always want mixed values *between* the start and end point, so we need to make sure we can never set "a" and "b" to some values that lead to a mix value that sums to more than 100%. And that's easy:
\[
m = a \cdot value_1 + (1 - a) \cdot value_2
m = a \cdot \textit{value}_1 + (1 - a) \cdot \textit{value}_2
\]
With this we can guarantee that we never sum above 100%. By restricting `a` to values in the interval [0,1], we will always be somewhere between our two values (inclusively), and we will always sum to a 100% mix.

View File

@@ -5,13 +5,13 @@
このことは、曲線の「始点」から曲線の「終点」までどうやって動かすか、ということにすべて関係しています。2つの値を混ぜ合わせて1つの値をつくる場合、一般の式は次のようになります。
\[
混ぜ合わさった値 = a \cdot _1 + b \cdot _2
\textit{混ぜ合わさった値} = a \cdot \textit{値}_1 + b \cdot \textit{値}_2
\]
明らかに、始点では`a=1, b=0`とする必要があります。こうすれば、値1が100%、値2が0%で混ぜ合わさるからです。また、終点では`a=0, b=1`とする必要があります。こうすれば、値1が0%、値2が100%で混ぜ合わさります。これに加えて、`a``b`を独立にしておきたくはありません。独立になっている場合、何でも好きな値にすることできますが、こうすると例えば「値1が100%**かつ**値2が100%」のようなことが可能になってしまいます。これはこれで原則としてはかまいませんが、ベジエ曲線の場合は混ぜ合わさった値が常に始点と終点の*間*になってほしいのです。というわけで、混ぜ合わせの和が100%を決して超えないように、`a``b`の値を設定する必要があります。これは次のようにすれば簡単です。
\[
混ぜ合わさった値 = a \cdot _1 + (1 - a) \cdot _2
\textit{混ぜ合わさった値} = a \cdot \textit{値}_1 + (1 - a) \cdot \textit{値}_2
\]
こうすれば、和が100%を超えることはないと保証できます。`a`の値を区間[0,1]に制限してしまえば、混ぜ合わさった値は常に2つの値の間のどこか両端を含むになり、また和は常に100%になります。

View File

@@ -1,17 +1,17 @@
# Интервал Безье [0,1]
В математике кривых Безье, вы могли заметить одну любопытную деталь — кривые Безье всегда считают вдоль одного и того же интервала t, `t=0` to `t=1`. Почему же именно этот интервал?
В математике кривых Безье, вы могли заметить одну любопытную деталь — кривые Безье всегда считают вдоль одного и того же интервала t, `t=0` to `t=1`. Почему же именно этот интервал?
Последнее обусловленно тем, как мы определяем "начало" и "конец" нашей кривой. Если у нас есть значение, которое представляет собой сочетание двух других значений, тогда общая формула для этого будет:
\[
mixture = a \cdot value_1 + b \cdot value_2
\textit{mixture} = a \cdot \textit{value}_1 + b \cdot \textit{value}_2
\]
Очевидно, что начальное и конечное значения `a` и `b` должны быть `a=1, b=0`, чтобы в начале получать вывод 100% первого показателя и 0% второго; и `a=0, b=1`, чтобы в конце получать 0% value 1 и 100% value 2. В дополнение, мы не хотим чтобы "a" и "b" были независимыми, в коем случае можно было бы присвоить им любые значения и на выводе получить, например, 100% первого показателя **и** 100% второго. В принципе, с последним все ок, но в случае кривых Безье, мы всегда должны получать значение *между* двух крайностей, потому нельзя присвоить `a` и `b` значения, которые бы вместе составляли суму более 100% на выводе, что можно записать как:
\[
m = a \cdot value_1 + (1 - a) \cdot value_2
m = a \cdot \textit{value}_1 + (1 - a) \cdot \textit{value}_2
\]
С этим у нас есть гарантия, что мы не получим суму значений пропорций более 100%. Мы ограничиваем значение `a` интервалом [0,1], потому всегда получаем вывод из пропорционального смешения двух показателей, с сумой смесителей не превышающей 100%.
@@ -27,5 +27,5 @@
<graphics-element title="Кубический бесконечный интервал кривой Безье" src="./extended.js" data-type="cubic"></graphics-element>
</div>
В области компьютерной графики, существуют множество кривых, которые действуют по противоположному кривым Безье принципу: вместо фиксированного интервала и свободного выбора контрольных точек формирующих развитие искривлений, они фиксируют форму кривой, предоставляя возможность выбора интервала. Отличным примером последней есть [кривая "Spiro"](https://levien.com/phd/phd.html), которая частично базируется на [спирали Корню](https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%BE%D1%82%D0%BE%D0%B8%D0%B4%D0%B0), также известной как [спираль Эйлера](https://ru.qaz.wiki/wiki/Euler_spiral) (* в оригинале другая [ссылка на Корню и Эйлера](https://en.wikipedia.org/wiki/Euler_spiral) ). Эту эстетически приятную кривую можно встретить в нескольких графических пакетах: [FontForge](https://fontforge.org/en-US/) и [Inkscape](https://inkscape.org). Ее даже используют в дизайне шрифтов, например в начертания шрифта Inconsolata.
В области компьютерной графики, существуют множество кривых, которые действуют по противоположному кривым Безье принципу: вместо фиксированного интервала и свободного выбора контрольных точек формирующих развитие искривлений, они фиксируют форму кривой, предоставляя возможность выбора интервала. Отличным примером последней есть [кривая "Spiro"](https://levien.com/phd/phd.html), которая частично базируется на [спирали Корню](https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%BE%D1%82%D0%BE%D0%B8%D0%B4%D0%B0), также известной как [спираль Эйлера](https://ru.qaz.wiki/wiki/Euler_spiral) (* в оригинале другая [ссылка на Корню и Эйлера](https://en.wikipedia.org/wiki/Euler_spiral) ). Эту эстетически приятную кривую можно встретить в нескольких графических пакетах: [FontForge](https://fontforge.org/en-US/) и [Inkscape](https://inkscape.org). Ее даже используют в дизайне шрифтов, например в начертания шрифта Inconsolata.

View File

@@ -5,13 +5,13 @@
这一切都与我们如何从曲线的“起点”变化到曲线“终点”有关。如果有一个值是另外两个值的混合,一般方程如下:
\[
mixture = a \cdot value_1 + b \cdot value_2
\textit{mixture} = a \cdot \textit{value}_1 + b \cdot \textit{value}_2
\]
很显然,起始值需要`a=1, b=0`混合值就为100%的value 1和0%的value 2。终点值需要`a=0, b=1`则混合值是0%的value 1和100%的value 2。另外我们不想让“a”和“b”是互相独立的:如果它们是互相独立的话我们可以任意选出自己喜欢的值并得到混合值比如说100%的value1和100%的value2。原则上这是可以的但是对于贝塞尔曲线来说我们通常想要的是起始值和终点值*之间*的混合值所以要确保我们不会设置一些“a”和"b"而导致混合值超过100%。这很简单:
\[
m = a \cdot value_1 + (1 - a) \cdot value_2
m = a \cdot \textit{value}_1 + (1 - a) \cdot \textit{value}_2
\]
用这个式子我们可以保证相加的值永远不会超过100%。通过将`a`限制在区间[01],我们将会一直处于这两个值之间包括这两个端点并且相加为100%。