前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

2183 re(1):複素数データの表示
2010/2/12(金)09:57 - 松田七美男 - 116-64-137-80.rev.home.ne.jp - 883 hit(s)

引用する
現在のパスワード


1.gnuplotではRGB値を以下のように個別に関数で与えることができます.
set palette functions gray,gray**2,sin(gray)
残念ながら,grayはスカラーですので,2つの独立な情報を与えることができません.

2.4.0からはrgbimage(x,y,r,g,bの並び)を扱えるので,小さいイメージファイルを
外部コマンドで作成して,以下のように表示できます.
plot "イメージファイル" w rgbimage
しかしイメージファイルはベタな構造(圧縮なし)しかサポートしてませんから,
640x640のイメージファイルでも巨大となり実用的ではありません.

3.どうせ外部でイメージファイルを作成するのならば,格子間の値を補完してくれる
OpenGLのようなものを描画エンジンに使うと,計算する格子数を間引きできます.
全く,個人的な趣味ですが,描画にはgeomviewがお勧めです.
以下にoctavedでgeomviewのCMESH書式データを作成し,
geomviewを呼び出して表示するスクリプトを紹介します(complex.oct).
$ octave complex.oct
で実行してみてください.

function [r,g,b] = hsv2rgb(h,s,v)
hi = floor(h/60);
f = h/60 - hi;
p = v*(1-s);
q = v*(1-f*s);
t = v*(1-(1-f)*s);
switch hi
case {0} r=v; g=t; b=p;
case {1} r=q; g=v; b=p;
case {2} r=p; g=v; b=t;
case {3} r=p; g=q; b=v;
case {4} r=t; g=p; b=v;
case {5} r=v; g=p; b=q;
endswitch
endfunction

N = 101; # NxN 格子
s = 1; # 彩度は1
meshfile="complex.mesh"; # geomview へ与えるファイル名

fid = fopen("complex.mesh", "w", "native");
fprintf(fid, "CMESH\n%d %d\n",N,N);

for m = linspace(-1,1,N); # [-1:1]をN-1分割
for n = linspace(-1,1,N);
z = sinh(m + I*n); # Iは虚数単位
h = arg(z)*180/pi; # piはパイ
if (h < 0) h += 360; endif;
v = abs(z);
[r,g,b] = hsv2rgb(h,s,v);
fprintf(fid, "%f %f %f %f %f %f 1\n",m,n,v,r,g,b);
endfor
fprintf(fid,"\n");
endfor
fclose(meshfile);

geomcom = sprintf("geomview -c \"(camera \"Camera\" camera{perspective 0})\" %s", meshfile);
system(geomcom);


〔ツリー構成〕

【2182】 複素数データの表示 2010/2/11(木)15:58 たけもと (893)
┣【2183】 re(1):複素数データの表示 2010/2/12(金)09:57 松田七美男 (1899)
┣【2184】 re(2):複素数データの表示 2010/2/12(金)18:04 竹の (1903)
┣【2185】 re(3):複素数データの表示 2010/2/12(金)19:34 松田七美男 (116)
┣【2186】 re(3):複素数データの表示 2010/2/12(金)21:54 松田七美男 (508)
┣【2187】 re(4):複素数データの表示 2010/2/13(土)16:33 竹の (1240)
┣【2188】 re(5):複素数データの表示 2010/2/13(土)19:55 松田七美男 (89)
┣【2189】 re(5):複素数データの表示 2010/2/13(土)22:24 松田七美男 (1060)
┣【2190】 re(6):複素数データの表示 2010/2/14(日)16:15 竹の (1553)
┣【2191】 re(7):複素数データの表示 2010/2/16(火)09:58 竹の (1923)
┣【2616】 re(3):複素数データの表示 2012/11/15(木)20:23 竹の (470)

前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.