ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】始点と終点を指定したカプセルを表示する。

成果物

www.youtube.com
BlenderのWireframeを使ってTesseractを表示しようと思ったのですが、変な交差が起きてしまったりして使えませんでした。それなら、カプセルで辺を置き換えようということで今回作ってみることにしました。

仕組み

カプセル

球の上側を追加して、真っ直ぐずらしてもう下半分を追加すれば完成です。

座標変換

今回は、PathTracingの時に使った座標変換の考え方を利用しています。
まず、始点と終点の差を正規化してu軸の基底ベクトルとします。次に上向きベクトル(0,1,0)との外積を計算し、正規化することでu軸に直交したv軸の基底ベクトルが求められます。そして最後に、u,v軸の基底ベクトルの外積を正規化したらw軸の基底ベクトルが求められます。これと、カプセルのx,y,z成分を掛け合わせることで傾いたカプセルを作ることができます。最後に始点の分だけずらせば、始点と終点に沿ったカプセルを作ることができます。

コード

Capsule start end という名前で追加しています。
github.com