These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんばんわ♪ 現在は3月30日(土)0時55分。 日付が変わりました。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2008年09月 来月
01 02 03 04 05 6
07 08 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2008年09月25日(木)

PHP で 3D plot

GIF 画像合成では減色処理が必要になるので、 減色アルゴリズムの検証として色んな画像ファイルに対して、 R,G,B ヒストグラムを 3D にマッピングしてみようかと、 軽く 3D plot 処理を考えていたところ、 以下の PHP ライブラリを紹介してもらいました。 早速実験。
$x_axis = $world->createObject('cube', array(128, 4, 4));
$x_axis->setColor(new Image_3D_Color(255, 100, 100));
$x_axis->transform($world->createMatrix('Move', array(64, 0, 0)));
$y_axis = $world->createObject('cube', array(4, 128, 4));
$y_axis->setColor(new Image_3D_Color(100, 255, 100));
$y_axis->transform($world->createMatrix('Move', array(0, 64, 0)));
$z_axis = $world->createObject('cube', array(4, 4, 128));
$z_axis->setColor(new Image_3D_Color(100, 100, 255));
$z_axis->transform($world->createMatrix('Move', array(0, 0, 64)));
うーん。とりあえず軸を書いてみたのですが、使うのめんどいし、 スケールが把握できないです。。(64 の値は探って見つけた値。。)
線(という考え自体ダメダメですが ^^;)をひくにも、 ココからココって指定できなくて、 物体を置いた後に移動(必要なら回転も)しなきゃだし。
そもそもオーバースペックな感じがします…

自分で作っちゃえ:

イメージ図。(図の d は微分ではなく、distance の頭文字です。ごめんなさい)

簡単なグラフを書くのが目的なので、
  • ワイヤーフレームのみで Zバッファ無し
  • 座標変換は世界座標へのオイラー角回転のみ
  • カメラ位置決めうち = (0, 0, $distance_to_eye)
  • その他、一般的な 3D API は殆ど(一切といっていいかも)無し
という究極の手抜きっぷりの簡易3Dライブラリを作ってみました。 仕様は↓こんな感じ。
  • スケールは全て pixel 単位
  • モニタ表面から自分の目までの物理距離は明示的に指定
  • 画像の中央を (0, 0, 0) の原点として計算する
  • x軸は右方向、y軸は上方向、z軸は手前方向。(右手座標系)
  • 一応、原点を中心とした回転は出来る。(x軸, y軸, z軸 の順で適用)
  • 任意の色で点を打てる。任意の色で線が引ける
自分の用途にはこれで十分。これ位なら 30分で作れますし。:-)
続く

これで、1 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project