часть 1
Формула для квадратичного Безье:
<b>B</b>(t) = <b>a</b>(1-t)<sup>2</sup> + 2<b>b</b>t(1-t) + <b>c</b>t<sup>2</sup>
= <b>a</b>(1-2t+t<sup>2</sup>) + 2<b>b</b>t - 2<b>b</b>t<sup>2</sup> + <b>c</b>t<sup>2</sup>
= (<b>a</b>-2<b>b</b>+<b>c</b>)t<sup>2</sup>+2(<b>b</b>-<b>a</b>)t + <b>a</b>
где жирным шрифтом обозначен вектор. С учетом B x (т) имеем:
x = (<b>a</b><sub>x</sub>-2<b>b</b><sub>x</sub>+<b>c</b><sub>x</sub>)t<sup>2</sup>+2(<b>b</b><sub>x</sub>-<b>a</b><sub>x</sub>)t + <b>a</b><sub>x</sub>
, где v x - это x компонент v .
Согласно квадратной формуле,
-2(<b>b</b><sub>x</sub>-<b>a</b><sub>x</sub>) ± 2√((<b>b</b><sub>x</sub>-<b>a</b><sub>x</sub>)<sup>2</sup> - <b>a</b><sub>x</sub>(<b>a</b><sub>x</sub>-2<b>b</b><sub>x</sub>+<b>c</b><sub>x</sub>))
t = -----------------------------------------
(2<b>a</b><sub>x</sub>(<b>a</b><sub>x</sub>-2<b>b</b><sub>x</sub>+<b>c</b><sub>x</sub>))
<b>a</b><sub>x</sub>-<b>b</b><sub>x</sub> ± √(<b>b</b><sub>x</sub><sup>2</sup> - <b>a</b><sub>x</sub><b>c</b><sub>x</sub>)
= ----------------------
<b>a</b><sub>x</sub>(<b>a</b><sub>x</sub>-2<b>b</b><sub>x</sub>+<b>c</b><sub>x</sub>)
Предполагая, что решение существует, добавьте это t обратно в исходное уравнение, чтобы получить другие компоненты B (t) при данном x.
часть 2
Вместо того, чтобы создавать вторую кривую Безье, которая совпадает с частью первой (я не чувствую, что сейчас хрустят символы), вы можете просто ограничить область вашего параметрического параметра подходящим подинтервалом [0, 1]. То есть используйте часть 1, чтобы найти значения t для двух разных значений x; назовите эти t-значения I и J. Нарисуйте B (t) для t ∈ [i, j]. Эквивалентно, нарисуйте B (t (j-i) + i) для t ∈ [0,1].