Polyline

Polyline

ベジェ曲線の描画

ベジェ曲線の特徴 始点と終点を必ず通り、すべての制御点は通らない。 ガイドカーブの中間点を始点と終点とするため、各々のカーブが同じベクトルでつながるところが利点ですね。 2次(Quandric)のベジェ曲線 3点のガイドカーブを利用して、2...
Polyline

曲線描画のためのガイドカーブ

ガイド用に作成したポリラインをベジェ曲線用に分割していく。 2次ベジェ曲線用(3点のカーブ) 最初と最後以外の直線を分割して、3点ずつカーブをつくり、つないでいく。 // // ポリラインをベジェ曲線(2次)のガイドラインへ分割する // ...
Polyline

Polylineのリダクション(Douglas-Peuckerアルゴリズム)

カーブを単純化するアルゴリズムです。 処理の流れ 1:始点と終点をプロット対象とする。 2:プロット対象をラインで結び、その間の各点との距離を調べる 3:許容距離以上で一番遠いポイントを選び、新たにプロット対象とする 4:2~3の処理を再帰...
Polyline

ハーフベクトルを計算する

ハーフベクトルを計算することで、進行方向に対してカーブが左右のどちら向きに膨らんでいるか(外向きか内向きか)を判定できる。 前後のポイント座標で計算する // // ハーフベクトルを計算する(外側のベクトル) // Run Over: Pr...
Polyline

点と多角形の内外判定(Winding-Numberアルゴリズム)

Winding Numberアルゴリズムを使う。多角形の各頂点を周回して得られる角度の合計が、もし内側にある場合は360度になり、外側の場合は0度になる。これを利用して判定する。 // // Winding Number Algorithm...
Polyline

プリミティブのアトリビュートとグループを転写する

プリミティブのアトリビュートを転写する // // アトリビュートのコピー // // RunOver:Primitive // int targetPrim = 0; // コピー先のインデックス int sourceInput = 1;...
Polyline

カスタムPolyframe

XZ平面を基準としたポリラインに対して、進行ベクトルNとアップベクトルupを設定する。前後のポイント座標差を進行ベクトルとしている。ポリラインが閉じている場合と開いている場合で場合分けしている。 // // 前後のポイント座標差を進行ベクト...
Polyline

Polylineに沿ったメッシュの座標変換

進行方向のベクトルを@Nに、アップベクトルを@upに格納したポリラインを用意する。 ポリラインと同じ長さでZ軸方向に伸ばしたメッシュを用意する。これをポリラインにフィットさせる。 はじめに法線ベクトルをポリラインに沿って変換する。 // /...
スポンサーリンク