bezierdraw() の妄想話
初詣行ってきました。 CASPAR003 です、こんばんは。おみくじ引いたら小吉だったけど、学業と旅と健康がわりと良いこと書いてあって何となく希望的です。
昨日思いついたスクリプトを書いてしまおうと思ったのだけれど、教科書類をみんな室蘭に置いてきてしまったので結局書けてません。ネットで調べるの面倒くさいし。
イメージとしては bezierdraw(f(x), [x]) みたいな感じで f(x) に [x] を順次代入して形状を描画していく感じ。コントロールポイント付近で微分を取ればハンドルの向きが決まる。長さは1/3規則とかで決めた方が簡単だし綺麗そう。生成された形状が戻り値で返ってくる。
詰まってるのは
- 引数に関数を指定する方法と型チェック
- 引数にタプルを渡す方法と型チェック
- コントロールポイント付近での数値微分
- 1/3規則のアルゴリズム
要するに全部。一つだけアルゴリズムが決まってないやつは、教科書とか関係ないのでこっちにいるうちにできるかも。
あと、今のところ end_creating() すると出来上がった形状がアクティブになっている事を利用して、直後に active_shape() で形状を拾う方法を採用しているのだけれど、これだと万が一処理が割り込んでアクティブなオブジェクトが変わってしまうと受け渡しに失敗しそうな気がするので、作ったオブジェクトを名指しで指定する方法があればそうしたい。
光の色とかフレネルのやつも含めて、便利グッズを一つのクラスにして提供できたら良いなと。スクリプトを直に使ってもらうというより、スクリプト開発者さんに使ってもらえそうな裏方ツールを作る方が楽しそう。
もしかして、そういうのはみんな自前ライブラリで持ってるもんなんですか?
投稿者 | CASPAR003 |
投稿時刻 | 22:34 |
カテゴリー | Shade |
コメント | 2 件 |
トラックバック | 0 件 |
記事へのリンク | http://www.caspar003.info/delta/archive/2008/01/04/2234.html |
コメント
- 投稿者
- でった☆
- CASPAR003
トラックバック
- トラックバック