Polyline

Polyline

重みづけをしたPolylineのリダクション

Douglas-Peuckerアルゴリズムに重みをつけてポリラインをリダクションします。事前にf@weightアトリビュートを作っておき、0~1の値を設定しておきます。0に近いほど削除されやすく、1ほど残りやすくなります。node = ho...
Polyline

ポリラインを曲線の向きで分割する

環境:Houdini 20.0.751平面上のポリラインを曲がる方向ごとにグループで分割する。2つの連続したベクトルを比較して方向の違いを判定している。1つめのベクトルのレフトベクトル(進行ベクトルと平面の法線の外積で求める)と、2つめのベ...
Polyline

ポリラインからUVを設定したバンドメッシュをつくる

ノードネットワーク左側はポリライン、右側が断面のポリライン。それぞれUVの、UとVの値を記録しておいて、Sweep SOPでメッシュ化した後、WrangleでUVを整理する流れ。UV Texture SOPTexture Type をArc...
Polyline

ポリラインを任意の長さで分割する

//// 線分を分割するためのフラグを立てる// RunOver:Primitives//float threshold = 5000; // 区切る長さ(m)float curveLength = primintrinsic(0, "me...
Polyline

任意の長さ以下のポリラインを消去する

//// 任意の長さ以下のポリラインを消去する// RunOver: Primitives//float threshold = 100;float curveLength = primintrinsic(0, "measuredperim...
Polyline

ポリラインをメッシュで区切る

メッシュ内を削除するプリミティブの三角形の内外判定をして、内包されている場合はフラグを立てる。//// 点がプリミティブ内に内包されているか判定する// RunOver: Points// input1: primitive////// 外...
Polyline

縦断勾配を計算する

ポリラインの勾配を計算する。傾きと角度それぞれをアトリビュートに追加している。ポイントの勾配を計算//// 縦断方向の勾配と角度を計算する// Run Over: Primitives//int pts[] = primpoints(0, ...
Polyline

曲率によってカーブの分割数を増減する

Resample SOP等で事前にポイントの間隔を均等にしておく。Resample SOPのLength項目に以下のように記述した。prim(0,0,"intrinsic:measuredperimeter",0)/npoints(0)st...
Polyline

ポリラインを平面へ投影する

縦断勾配の確認等でポリラインをXY、またはXZ平面へ投影する。YZ平面//// ポリラインをYZ平面に投影する// RunOver: Primitives//int pts[] = primpoints(0, @primnum);float...
Polyline

曲率と曲率半径を計算する

曲率とは曲率半径曲線を局所的な円弧と見た場合の半径。曲率曲率半径の逆数になる。パラメトリックUVで計算するポリラインの各ポイントの曲率を計算する。円弧から曲率半径を求める。Resample SOPで均等なポイント配置になっている必要あり。/...
スポンサーリンク