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

1990 re(3):2次元マッピングでのアルゴリズム
2009/1/30(金)00:04 - 松田七美男 - 116-64-136-252.rev.home.ne.jp - 646 hit(s)

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


竹のさんのおっしゃるように,データを工夫する必要がありますが,
データブロックを1つで済まそうと思うと結構大変そう.

実際には、円筒も描くのでしょうから,扇形の4頂点は描画に必要になると思います.
そこで個々の扇形1つずつブロックデータ(空行2つで区切る)
に納めてz軸に垂直な面として描き,
上から(2次元マップ)を取るというアイデアはどうでしょう.

以下のようなソースをコンパイルして仮想データ(cyl.dat)を作成し,

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 36
#define M 10

int main()
{
int n, m;
double th0, th1, r0, r1, z;

for (n = 0; n< N; n++){
for (m = 0; m < M; m++) {
th0 = n*2*M_PI/N;
th1 = (n+1)*2*M_PI/N;
r0 = m;
r1 = m+1;
z = exp(-0.05*r0)*cos(th0);
printf("%f %f %f\n", r0*cos(th0), r0*sin(th0), z);
printf("%f %f %f\n\n", r1*cos(th0), r1*sin(th0), z);
printf("%f %f %f\n", r0*cos(th1), r0*sin(th1), z);
printf("%f %f %f\n\n\n", r1*cos(th1), r1*sin(th1), z);
}
}
return 0;
}


次のようなスクリプトを走らせてみてください.

set pm3d
set view map
set size square
splot 'cyl.dat' w l
pause -1


後は,実際のzデータを扇形に割り当てる必要がありますが,
それはそんなに難しくはないでしょう.


〔ツリー構成〕

【1987】 2次元マッピングでのアルゴリズム 2009/1/28(水)20:00 etobegv (821)
┣【1988】 re(1):2次元マッピングでのアルゴリズム 2009/1/29(木)09:46 竹の (791)
┣【1989】 re(2):2次元マッピングでのアルゴリズム 2009/1/29(木)10:03 竹の (487)
┣【1990】 re(3):2次元マッピングでのアルゴリズム 2009/1/30(金)00:04 松田七美男 (1197)
┣【1991】 re(4):2次元マッピングでのアルゴリズム 2009/1/30(金)00:31 etobegv (302)
┣【1992】 re(5):2次元マッピングでのアルゴリズム 2009/1/30(金)09:27 竹の (867)
┣【1994】 re(6):2次元マッピングでのアルゴリズム 2009/1/30(金)14:18 松田七美男 (272)

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

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