• ベストアンサー

作画ソフト 紹介して下さい

下の図のような線画を描くことができる フリーウェアがあれば教えて下さい 難しい色づけや、その他の複雑な操作は要りませんが 図のように、中心に向かって網目が落ち込んでいく様子を 白黒で描きたいと思っています。 Win 7 64bit で作動するソフトをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wek00
  • ベストアンサー率61% (91/147)
回答No.4

数値計算や数式処理を行う為のソフトウェアは多数あり 商用のソフトであればご質問のような図は 付属のグラフィック機能で描画可能です。 で、そういったソフトのクローンやそれに類するソフトがありまして こちらは基本的にフリーです。ただし、特にグラフィック周りで 一歩も二歩も引けをとります。 3Dグラフィックの水準は Freemat, Gnuplot, Octave, Scilabは概ね同レベルのようです。 問題になるかどうか分かりませんし、最新版では違うかも知れませんが OctaveとScilabは少なくとも数年前のバージョンでは投影法は平行投影のみの対応です。 (単純な図なら自分で透視投影にすることもできるはずですが面倒です) 画像検索などで描画例を見ると、 Asymptote, DataMelt, Euler Math Toolbox, mayavi, R言語は 標準で透視投影に対応しているようです。 wxMaxima, Numpy, Scipy というのもあります。 私が触ったことがあるのは主にScilabですが、 質問の画像の上の方、3次元メッシュプロットは標準装備です。 下の方の図については、3次元等高線プロットが使えるかも知れませんが 輪っかと曲線を一本づつ描画するスクリプトを書くほうが簡単かも知れません。 モノが単純ならプログラムで線を描画しても簡単というわけです。 Java, C(とopengl), VCSSLでも記述が低レベルながら 容易に3D描画ができます。(もちろん透視投影にも対応) 私が知らないだけで、類似のソフトやよりスマートなやり方もあると思います。 参考: http://math.stackexchange.com/questions/40770/recommended-free-software-to-plot-points-in-3d http://www.ibm.com/developerworks/jp/linux/library/l-datavistools/ (Windows版が無いソフトも含まれています) //Scilabの描画スクリプトの例 //command syntax: exec XXXX.sci; x = [-2:0.1:2]'; y = x - 0.5; xm = x * ones(1,size(x,1)); ym = ones(size(y,1),1) * y'; r = xm.^2 + ym.^2; r(r==0) = %nan; z = -1 ./ r; zmin = -10; //メッシュプロット例1(例2と見た目は同じです) //hf1 = scf(); //plot3d(x, y, max(z, zmin)) //ha = gca(); //ha.rotation_angles = [30 240]; //ha.axes_visible = ["off","off","off"]; //ha.box = "off"; //ha.x_label.visible = "off"; //ha.y_label.visible = "off"; //ha.z_label.visible = "off"; //he = gce(); //he.color_mode = 8; //he.hiddencolor = 8; //メッシュプロット例2 hf2 = scf(); plot3d1(x,y,max(z, zmin), 240, 30, , [8 2 0], ) hf2.color_map = hf2.color_map * 0 + 1; //等高線のプロットの例 hf3 = scf(); //cont //r = 0.2:0.3:2; //r = 0.2 + ([0:5] .^2) / 13; r = 0.2 + 1.8 * (1 ./ (1+%e.^ -(([0:5]-3.3)*1.5) ) ); h = -1 ./ r; th = [0:0.1:2*%pi 2*%pi]; for ix = 1:size(r,2), x = r(ix) * cos(th); y = r(ix) * sin(th); z = h(ix) * ones(1, size(th, 2)); param3d(x, y, z); end //grad r = 0.19:0.05:2.1; h = -1 ./ r; th = 2*%pi * [0:6] / 6; for ix = 1:size(th,2), x = r * cos(th(ix)); y = r * sin(th(ix)); z = h * ones(1, size(th(ix), 2)); param3d(x, y, z); end ha = gca(); ha.rotation_angles = [30 240]; ha.axes_visible = ["off","off","off"]; ha.box = "off"; ha.x_label.visible = "off"; ha.y_label.visible = "off"; ha.z_label.visible = "off"; //Scilabのスクリプトここまで。 Rを触るのは初めてでしたが、こんな感じでメッシュプロットができました。 x <- seq(-2,2,length=40) ; y <- x f <- function(x,y) { r <- x^2+y^2; -1/r } z <- outer(x,y,f) zmin <- -2 z[z < zmin - 0.5] <- NA z <- pmax(z, zmin) persp(x, y, z, theta = 10, phi = 30, expand = 0.5, col = "lightblue") 参考にしたページ: http://cse.naro.affrc.go.jp/takezawa/r-tips/r/50.html http://cran.r-project.org/doc/contrib/manuals-jp/Mase-Rstatman.pdf http://d.hatena.ne.jp/tsutatsutatsuta/20110919/1316429513

mqm
質問者

お礼

詳細なご説明をいただき、とても助かりました

その他の回答 (3)

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.3

Inkscape というベクタ画像作成ソフトがいいと思います。 http://www.forest.impress.co.jp/library/software/inkscape/ 画像(線)を数式で表せるならエクセルのグラフ作成機能が使えると思います。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2
mqm
質問者

お礼

色々な情報をご提供していただき、ありがとうございました

noname#212067
noname#212067
回答No.1

gnuplot? http://iphys3-ap.eng.hokudai.ac.jp/tips/wgnuplot.html 書くと言うよりは、データをプロットするドローツールだな

関連するQ&A