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:
@@ -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.
|
||||
|
@@ -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%になります。
|
||||
|
@@ -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.
|
||||
|
||||
|
@@ -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`限制在区间[0,1],我们将会一直处于这两个值之间(包括这两个端点),并且相加为100%。
|
||||
|
Reference in New Issue
Block a user