東京工業大学 >
大学院理工学研究科 >
基礎物理学専攻 >
中村研究室 >
メンバー >
Takayuki Sako >
gnuplotのメモ動作環境 gnuplot Version 4.2 patchlevel 5 @ Ubuntu9.10 3次元の円柱(横向き)を複数個重ねて表示SOLDIRAsの出力のためのメモ。 つまり、何らかのプログラム中から吐き出すことを前提としたメモ。
gnuplot> splot [0:360] [20:270] v, 20 *cos(u) + ( -50.000000 ), 20 *sin(u) + ( 100.00000 ),[0:360] [50:150] v, 10 *cos(u) + ( -50.000000 ), 10 *sin(u) + ( 100.00000 )
とするとエラー。
gnuplot> set vrange [0:10]
これならOKgnuplot> set urange [0:360] gnuplot> splot v, 20 *cos(u) + ( -50.000000 ), 20 *sin(u) + ( 100.00000 ), v+10 , 10 *cos(u) + ( -50.000000 ), 10 *sin(u) + ( 100.00000 ) よって一般に底面の中心(x1,y1,z1),(x2,y2,z2)…、半径r1,r2…、高さL1,L2…の円柱(ただし、横向きなので底面はyz平面と平行)をプロットするためには
gnuplot> set parametric
で良い。
gnuplot> set vrange [0:1] gnuplot> set urange [0:360] gnuplot> splot x1 + v * L1, r1 * cos(u) + y1, r1 * sin(u) + z1, x2 + v * L2, r2 * cos(u) + y2, r2 * sin(u) + z2, … ここでのポイントはvの範囲を[0,1]に固定する点にある。gnuplotではデフォルトの変数しか使えない?ようなので範囲を固定したvの定数倍と定数項の和により グラフごとに任意の範囲を実現できることになる。上の例ではuは[0,360]で固定してしまったが、半円などを描くためにはuも[0,1]にしてその都度範囲を書き換えるようにすれば良い。 |