日々適当

hibitekitou

ポイントの並び順

xsi |2012-10-30


こんなICE Treeをグリッドに適用しました。
グリッドを構成する頂点が境界上にあるか否かでフィルタして、境界上にあるポイントの位置情報を取得。それらを配列におさめ、各頂点の位置が配列の何番目に記録されているかを表示するという内容です。



すると、こんな風になります。時計回りに境界線上のポイントにふられた数字を見ると(0, 5, 7, 9, 11, 12, 13, 14, 15, 10 ,8, 6, 4, 3, 5, 1)となりました。
これを (0,1,2,....,14,15)というようにしたいわけです。

で考えたのが以下のICE Tree。



この中の Angle from 0 to i コンパウンドは以下のよう構造になっています。



内容としては、境界線上にある頂点位置の平均の位置を求め、そこから各頂点へのベクトルの配列を取得。その配列の一番最初の要素と、配列の各要素のベクトル同士の角度を求め、角度の小さい順にソートをする、という物です。



このやり方は平面の形状が凸なら問題ないのですけど、凹である場合、順番が狂ってしまいます。そうしたとき、どうすべきなんでしょうね。やっぱ、ループで回していくしか無いのでしょうか。

<追記>
ちなみに、こんなもんを組んでました。




繋いだポリゴンの板の縁に額縁をつけるためのコンパウンドとなります。上図の紫色のコンパウンドが上の方法を使ったものが入っています。上のICE Treeにおける接続されているPolymsh1が下図の右側、接続されていないPolymshが左側になります。



結果はこんな感じ。しかし、左側の板を接続してやると



凹な形状のため破綻してしまいました。



まぁ用途を絞れば十分つかえると思うのですけど、どうしたもんですかねぇ

</追記>

<追記>
特に内容はいじっていないけど、コンパウンドをここに置いてみる。たいしたことをしていないのはコンパウンドの中味をみてもらえば分かるでしょう。

Gakubuchi from Grid
</追記>
コメント ( 0 )|Trackback ( )
  ・