ポリゴンの切り直しとばねの再配置
洋裁CAD開発日記83
2020/3/23
ポリゴンの切り直し
今まではポリゴンを正三角形の形で含めていたけれども、布の伸縮性の再現を考えると布目に合わせた形でバネを設定したくなった。
こうするとポリゴンを構成する点の配列が上下左右に並ぶことになるのでポリゴンの形状は直角二等辺三角形の集まりになる。
布目に合わせてポリゴン化するので、バイアスの布の場合はこれに合わせて分割する。左が正三角形、真ん中は縫い目に合わせたポリゴン、左は15度バイアスをかけたもの。
バネの再構成
この前作ったバネを布目に合わせて設定し直すことにした。方法はchoiモデルと呼ばれる、一般的な布シミュレーションのバネ配置方法になる。
旧ばね配置
新ばね配置
このばね構成で計算してみた結果。バイアス角度に合わせてポリゴンの角度も変えていて、バネ配置もこれに合わせてバイアスされているが、これで正しいか自信は全くない。
服にバイアスかけるとこんな感じの結果になる。左はバイアスなし、右が45度バイアス。
バグ探し
ポリゴン形状を正三角形から直角二等辺三角形に変えたらうまくポリゴンが作れない場合が多く発生した。
ポリゴンはドロネーの三角形分割方法で分割している。
この方法では、フリップという作業で三角形の形を最適化する。調べたい三角形3点を通る円を描き、隣接する三角形の頂点が円の中にあるかを調べる。
入っていたら、共有する辺を入れ替えて(フリップ)、三角形の形状を変える。これを繰り返すと、妙に細長い三角形ががなくなり、出来る限り正三角形に近い形状に落ち着く。
一つの不具合は直角二等辺三角形二つからなるポリゴンの組み合わせのフリップで、この場合は無限にフリップを繰り返してしまう。
その他にもバグがあるはずなのだけれどもなかなか見つからなかった。ドロネー分割の方法が悪いのかといろいろ見て回ったけれどもおかしいところは見つからず。
結局3点円の作り方に問題があることに気づいた。
ごくほんの少しの数値の違いで間違った3点円弧が作られる場合があって、この場合に不正なポリゴンができることが分かった。
ごく稀にしか条件が揃わないのでなかなかわからなかった。
左が不正ポリゴンのある布。ポリゴンが重なったり、隙間が空いてしまっている。右は修正後。細長いポリゴンがあるが、これも修正できた。
最終更新日: 2020-03-27 17:40:43