7

コントロール ポイントを通過するフォーミュラ カーブについて質問があります。ご存知のように、HTML CanvasquadraticCurveTo(x1, y1, x2, y2)x1 and x2はコントロール ポイントがあります。

ただし、それを使用してストロークを描画しようとすると、ストロークは制御点に決して触れません。

したがって、次の式があります。

x1 = xt * 2 - (x0 + x2) / 2;
y1 = yt * 2 - (y0 + y2) / 2;

(xt, yt)= カーブしたいポイント。tその点で 90 度垂直であるため、接線の場合。

これにより、制御点の位置が再計算されます。

この式は本から得ましたが、その本はそれがどのように導き出されたかを説明していません。私はグーグルを試してみましたが無駄でした。

この式がどのように導き出されるか知っている人はいますか?

ありがとう、ヴェン。

4

2 に答える 2

4

二次ベジェ曲線は次の方程式で表されます。

x(t) = x0 * (1-t)^2 + 2 * x1 * t * (1 - t) + x2 * t^2 (そしてy(t)についても同様です)。

パラメータ値t=1/2(何らかの方法で-曲線の中央)を適用すると、次の式が得られます。

x(t=1/2) = xt = x0 * 1/4 + 2 * x1 * 1/4 + x2 * 1/4

それから

x1/2 = xt - (x0 + x2)/4

x1 = 2 * xt - (x0 + x2)/2

于 2012-03-15T12:46:29.927 に答える
0

これはスプラインと呼ばれます。さらに言えば、ベジエ曲線を使用しているようです。

于 2012-03-14T21:39:26.540 に答える