c_curve.jpg


C曲線

 昔作ったドラゴン曲線(「ドラゴン曲線を描画する」)のデータを引っ張り出してみました。

 ドラゴン曲線のジェネレータとC曲線のジェネレータはすごく似ているのです(下図)。

ccurve_1.png

※1本だけ、矢印の向きが異なる。

 「ドラゴン曲線を描画する」にて、レイトレーシングして動画データを生成したのはドラゴン曲線だけだったのですが、ジェネレータがほんの少し変わるだけなので、ちょっと手を加えるとC曲線を描画するレイトレーシングデータに変更することが出来ます。

 今回C曲線を描画するために変更・追加したのは以下の部分です。

  var draw_c=true;  // C曲線を描画する(true)

  dragon lev - 1, a.x,a.y,a.z, c.x,c.y,c.z;
  if (draw_c)
  {
    dragon lev - 1, c.x,c.y,c.z, b.x,b.y,b.z;  // C曲線
  }
  else
  {
    dragon lev - 1, b.x,b.y,b.z, c.x,c.y,c.z;  // ドラゴン曲線
  }


 ドラゴン曲線と違って、C曲線はほぼ、一筆書きみたいな感じで伸びて行くので、あんまり面白いものでもなかったのですが、まあ、一度ご覧ください(↓)。


完成データ

 完成したデータをリンクしておきます。

1) Xi-TRACEデータ dragon_curve.xitr

 ファイル名はオリジナルのままとしてあります。デフォルトの設定ではドラゴン曲線を描画するので、C曲線を描画する場合には、先頭付近のdraw_c変数でC曲線を選択する必要があります。



 久しぶりに計算させてみたのですが、描画が進むにつれて曲線が伸びて行くことで物体数が増加し、1画面の計算時間もどんどんと増加して行きました……。お陰で計算時間の見積もりを見誤ってしまいました。

 オリジナルのドラゴン曲線動画はこちらです(↓)。



home

download

gallery