軸線に対して、とりあえず一様に断面を与えるのではなく、カーブの曲率によって断面を変化させる必要がありそうです。下の図の場合、柱の上部では断面を大きくしないと、隙間ができてしまします。
このとき、改めて描画したカーブの曲率を見てみると、あまりきれいなものとは言えませんでした。
曲率の確認にはCurvature Graphを使っています。
手作業でトレースしただけのカーブを、数学的な形状に置き換えることを考えました。
カーブの形状がArcに似ているので、Arcで近似してみることにしました。
会社の先輩が作成したPythonスクリプトを使ってみました。
もとのカーブと比較して、誤差が気にならない程度でArcに置き換える事ができました。
曲率はきれいになりました。しかし、分割数が多いように見えます。
このスクリプトはカーブを等分割してArcに置き換える手法であるため、意図したArcにはなりませんでした。
できれば3つの大きなArcと細かいArcが生成できればいいなと思いました。
次に、別の先輩が共著で参加している「建築実務のプロが作ったRhinoとGrasshopperの本」の477ページ目に記載されている「曲線を円弧の組み合わせに置き換える」を試してみました。
カーブの分割位置と分割数をGalapagosの最適化によって導き出すというものです。評価方法などを少し改造しながら試してみたところ、下の図のように収束しました。
意図した分割にかなり近づきましたが、一方で曲率の変化が極端な場所もあります。
この辺りから、初めから自分でカーブの分割位置を指定して、Arcにしてみた方が早いのではないかと考え始めました。
当然ですが、意図したArcになりました。よくあることですが、楽をしようとしてだいぶ遠回りをしてしまったようです。
Arcを結合して、再度曲率を確認しました。非常に滑らかな結果が得られました。
しかし今度は、Arcに置き換えた基準線で柱を生成する際に、以前と比べて柱が極端にねじれてしまいました。
柱の軸線の生成ルールも見直す必要がありそうです。