とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

ゲーム数学:エルミート曲線の算出

エルミート曲線の算出手順のメモ

 

p0:頂点0の座標

v0:頂点0を通過するときのベクトル

p1:頂点1の座標

v1:頂点1を通過するときのベクトル

t:頂点0→頂点1のt値(0.0~1.0)

この曲線を表現したい場合

tを0.0~1.0までの値を入力するときれいに座標をとる手順をおぼえがき

f:id:toncrimentan_w:20200429153422j:plain

まずt値から4つの係数を求めておく必要がある

t2 =    t*t;
t3 =    t2*t;
mP0 =   2.0f*t3 - 3.0f*t2 + 1.0f;
mV0 =   t3 - 2.0f*t2 + t;
mP1 =   -2.0f*t3 + 3.0f*t2;
mV1 =   t3 - t2;

そして4つの係数が求まったら座標とベクトルをブレンドしていくことで

エルミート曲線を算出することができる。

pos = p0.x*mP0 + v0.x*mV0 + v1.x*mV1 + p1.x*mP1;

 

2点だけではなく複数の頂点から構成している曲線の場合はどうなるんだ・・

というとその場合は前後の頂点座標からベクトルをもとめるなりして

美しくつなぐようにすればよし

 

おしまい。