2 * Introduction to draw::
3 * Functions and Variables for draw::
4 * Functions and Variables for pictures::
5 * Functions and Variables for worldmap::
10 @node Introduction to draw, Functions and Variables for draw, draw, draw
11 @section Introduction to draw
14 @code{draw}はMaxima-Gnuplotインターフェイスです。
16 Maximaレベルで使われる3つの主な関数があります:
17 @code{draw2d}, @code{draw3d}, @code{draw}。
19 このパッケージのさらに磨きかけられた例のために以下のリンクに従ってください:
21 @url{http://riotorto.users.sourceforge.net/gnuplot}
23 このプログラムを走らせるにはGnuplot 4.2以上が必要です。
27 @category{Share packages}
28 @category{Package draw}
32 @node Functions and Variables for draw, Functions and Variables for pictures, Introduction to draw, draw
33 @section Functions and Variables for draw
40 @deffn {シーン構成子} gr2d (@var{graphic option}, ..., @var{graphic object}, ...)
43 2Dシーンを記述するオブジェクトを作ります。
44 引数は@i{グラフィックオプション}、@i{グラフィックオブジェクト}、または、
45 グラフィックオプションとオブジェクト両方を含むリストです。
47 @i{グラフィックオプション}はその右に置かれたそれらの@i{グラフィックオブジェクト}に影響します。
48 いくつかの@i{グラフィックオプション}はシーンのグローバルな外観に影響します。
50 以下は2次元のシーンで利用可能な@i{グラフィックオブジェクト}のリストです:
51 @code{bars}, @code{ellipse}, @code{explicit}, @code{image}, @code{implicit}, @code{label},
52 @code{parametric}, @code{points}, @code{polar}, @code{polygon}, @code{quadrilateral},
53 @code{rectangle}, @code{triangle}, @code{vector}, @code{geomap}
54 (パッケージ@code{worldmap}で定義されるもの)。
56 @code{draw}と@code{draw2d}も参照してください。
58 このオブジェクトを利用するには、最初に@code{load(draw)}を書いてください。
61 @category{Package draw}
67 @deffn {シーン構成子} gr3d (@var{graphic option}, ..., @var{graphic object}, ...)
69 関数@code{gr3d}は3dシーンを記述するオブジェクトを作ります。
70 引数は@i{グラフィックオプション}、@i{グラフィックオブジェクト}、または
71 グラフィックオプションとオブジェクト両方を含むリストです。
73 @i{グラフィックオプション}はその右に置かれたそれらの@i{グラフィックオブジェクト}に影響します。
74 いくつかの@i{グラフィックオプション}はシーンのグローバルな外観に影響します。
76 以下は3次元のシーンで利用可能な@i{グラフィックオブジェクト}のリストです:
77 @code{cylindrical}, @code{elevation_grid}, @code{explicit}, @code{implicit},
78 @code{label}, @code{mesh}, @code{parametric},@*
79 @code{parametric_surface},
80 @code{points}, @code{quadrilateral}, @code{spherical}, @code{triangle},
82 @code{vector}, @code{geomap}
83 (パッケージ@code{worldmap}で定義されるもの)。
85 @code{draw}と@code{draw3d}も参照してください。
87 このオブジェクトを利用するには、最初に@code{load(draw)}を書いてください。
90 @category{Package draw}
102 @deffn {関数} draw (@var{gr2d}, ..., @var{gr3d}, ..., @var{options}, ...)
105 引数は@code{gr2d}や@code{gr3d}のオブジェクトといくつかのオプションです。
106 デフォルトでは、シーンは1列の中に一緒に置かれます。
108 関数@code{draw}は以下のグローバルオプションを受け付けます: @code{terminal},
109 @code{columns}, @code{dimensions}, @code{file_name}, @code{delay}.
111 関数@code{draw2d}や@code{draw3d}は
112 それぞれ、2次元と3次元に関して、1つのシーンだけが要求される時に使われる
115 @code{gr2d}と@code{gr3d}も参照してください。
117 この関数を利用するには、最初に@code{load(draw)}を書いてください。
123 (%i2) scene1: gr2d(title="Ellipse",
125 parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
126 (%i3) scene2: gr2d(title="Triangle",
127 polygon([4,5,7],[6,4,2]))$
128 (%i4) draw(scene1, scene2, columns = 2)$
134 (%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
135 (%o2) [gr3d(explicit)]
136 (%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
137 (%o3) [gr3d(explicit)]
146 terminal = 'animated_gif,
147 gr2d(explicit(x^2,x,-1,1)),
148 gr2d(explicit(x^3,x,-1,1)),
149 gr2d(explicit(x^4,x,-1,1)));
150 End of animation sequence
151 (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
154 @code{gr2d}, @code{gr3d}, @code{draw2d}, @code{draw3d}も参照してください。
157 @category{Package draw}
158 @category{File output}
166 @deffn {関数} draw2d (@var{option}, @var{graphic_object}, ...)
168 @code{draw(gr2d(@var{options}, ..., @var{graphic_object}, ...))}.
171 2dで唯一のシーンをプロットするのに使うことができます。
173 この関数を利用するには、最初に@code{load(draw)}を書いてください。
175 @code{draw}と@code{gr2d}も参照してください。
178 @category{Package draw}
179 @category{File output}
186 @deffn {関数} draw3d (@var{option}, @var{graphic_object}, ...)
188 @code{draw(gr3d(@var{options}, ..., @var{graphic_object}, ...))}
191 3dでユニークなシーンをプロットするのに使うことができます。
193 この関数を利用するには、最初に@code{load(draw)}を書いてください。
195 @code{draw}と@code{gr3d}も参照してください。
198 @category{Package draw}
199 @category{File output}
205 @deffn {関数} draw_file (@var{graphic option}, ..., @var{graphic object}, ...)
208 受け付けられるグラフィックオプションは以下です:
209 @code{terminal}, @code{dimensions}, @code{file_name}, @code{file_bgcolor}.
215 (%i2) /* screen plot */
216 draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)))$
217 (%i3) /* same plot in eps format */
218 draw_file(terminal = eps,
219 dimensions = [5,5]) $
223 @category{Package draw}
224 @category{File output}
230 @deffn {関数} multiplot_mode (@var{term})
232 端末@var{term}で1ウィンドウマルチプロットモードで機能することができます;
233 この関数が受け入れる引数は、@code{screen},
234 @code{wxt}, @code{aquaterm}, @code{none}です。
237 @code{draw}へのそれぞれのコールは、
238 同じウィンドウに以前のものを消すことなく新しいプロットを送ります。
240 @code{multiplot_mode(none)}を書いてください。
243 グローバルオプション@code{terminal}はブロックされます。
244 別の端末に変更する前に、この機能中のモードをディセーブルしなければいけません。
246 この特長はWindowsプラットフォームでは機能しません。
252 (%i2) set_draw_defaults(
256 title = "Step by step plot" )$
257 (%i3) multiplot_mode(screen)$
258 (%i4) draw2d(color=blue, explicit(x^2,x,-1,1))$
259 (%i5) draw2d(color=red, explicit(x^3,x,-1,1))$
260 (%i6) draw2d(color=brown, explicit(x^4,x,-1,1))$
261 (%i7) multiplot_mode(none)$
265 @category{Package draw}
266 @category{File output}
272 @deffn {関数} set_draw_defaults (@var{graphic option}, ..., @var{graphic object}, ...)
274 ユーザーグラフィックオプションを設定します。
276 共通のグラフィックスオプションで一連のグラフィックスをプロットするのに
278 引数なしにこの関数を呼ぶと、ユーザーデフォルトを取り除きます。
284 (%i2) set_draw_defaults(
289 (%i3) /* plot with user defaults */
290 draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
291 (%i4) set_draw_defaults()$
292 (%i5) /* plot with standard defaults */
293 draw2d(explicit(((1+x)**2/(1+x*x))-1,x,-10,10))$
297 最初に@code{load(draw)}を書いてください。
300 @category{Package draw}
306 @subsection Graphic options
309 @defvr {グラフィックオプション} adapt_depth
312 @code{adapt_depth}は適応プロットルーチンが使う分割の最大数です。
314 このオプションは2d@code{explicit}関数に対してだけ有効です。
317 @category{Package draw}
324 @defvr {グラフィックオプション} axis_3d
327 もし@code{axis_3d}が@code{true}なら、
328 @var{x}, @var{y} @var{z}軸が3dシーンで表示されます。
330 これはグローバルグラフィックスオプションなので、
337 (%i2) draw3d(axis_3d = false,
338 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
342 @code{axis_bottom}, @code{axis_left}, @code{axis_top}, @code{axis_right}も
346 @category{Package draw}
353 @defvr {グラフィックオプション} axis_bottom
356 もし@code{axis_bottom}が@code{true}なら、
359 これはグローバルグラフィックスオプションなので、
366 (%i2) draw2d(axis_bottom = false,
367 explicit(x^3,x,-1,1))$
370 @code{axis_left}, @code{axis_top}, @code{axis_right}, @code{axis_3d}も参照してください。
373 @category{Package draw}
380 @defvr {グラフィックオプション} axis_left
383 もし@code{axis_left}が@code{true}なら、
386 これはグローバルグラフィックスオプションなので、
393 (%i2) draw2d(axis_left = false,
394 explicit(x^3,x,-1,1))$
397 @code{axis_bottom}, @code{axis_top}, @code{axis_right}, @code{axis_3d}も参照してください。
400 @category{Package draw}
407 @defvr {グラフィックオプション} axis_right
410 もし@code{axis_right}が@code{true}なら、
413 これはグローバルグラフィックスオプションなので、
420 (%i2) draw2d(axis_right = false,
421 explicit(x^3,x,-1,1))$
424 @code{axis_bottom}, @code{axis_left}, @code{axis_top}, @code{axis_3d}も
428 @category{Package draw}
435 @defvr {グラフィックオプション} axis_top
438 もし@code{axis_top}が@code{true}なら、
441 これはグローバルグラフィックスオプションなので、
448 (%i2) draw2d(axis_top = false,
449 explicit(x^3,x,-1,1))$
452 @code{axis_bottom}, @code{axis_left}, @code{axis_right}, @code{axis_3d}も参照してください。
455 @category{Package draw}
462 @defvr {グラフィックオプション} background_color
465 端末@code{gif}, @code{png}, @code{jpg}, @code{gif}のための背景色を設定します。
468 @code{color}も参照してください。
471 @category{Package draw}
477 @defvr {グラフィックオプション} border
480 もし@code{border}が@code{true}なら、
481 ポリゴンの境界は@code{line_type}と@code{line_width}に従って塗られます。
483 このオプションは以下のグラフィックオブジェクトに影響します:
486 @code{gr2d}: @code{polygon}, @code{rectangle}, と@code{ellipse}.
493 (%i2) draw2d(color = brown,
495 polygon([[3,2],[7,2],[5,5]]),
498 polygon([[5,2],[9,2],[7,5]]) )$
502 @category{Package draw}
509 @defvr {グラフィックオプション} cbrange
512 もし@code{cbrange}が@code{auto}なら
513 @code{enhanced3d}が@code{false}でない時
514 色付けられる値の範囲は自動的に計算されます。
515 カラー範囲外の値は、最も近い端の色を使います。
517 @code{enhanced3d}や@code{colorbox}が@code{false}の時、
518 オプション@code{cbrange}は効果を持ちません。
522 @code{cbrange=[-2, 3]}のようにMaximaリストとして与えられなければいけません。
524 これはグローバルグラフィックスオプションなので、
535 explicit(x^2+y^2, x,-2,2,y,-2,2)) $
538 @code{enhanced3d}, @code{colorbox}, @code{cbtics}も参照してください。
541 @category{Package draw}
547 @defvr {グラフィックオプション} cbtics
551 オプション@code{enhanced3d}が@code{false}でない時、
552 カラーボックス上にチックマークを描く方法を制御します。
554 @code{enhanced3d}か@code{colorbox}が@code{false}の時、
555 オプション@code{cbtics}は効果を持ちません。
557 完全な記述に関しては、@code{xtics}を参照してください。
566 cbtics = @{["High",10],["Medium",05],["Low",0]@},
568 explicit(x^2+y^2, x,-2,2,y,-2,2)) $
571 @code{enhanced3d}, @code{colorbox}, @code{cbrange}も参照してください。
574 @category{Package draw}
579 @defvr {グラフィックオプション} color
580 デフォルト値: @code{"blue"}
582 @code{color}は、線や点、ポリゴンやラベルの境界をプロットする色を指定します。
584 色は名前や16進数の@i{rgb}コードとして与えられます。
588 white black gray0 grey0
589 gray10 grey10 gray20 grey20
590 gray30 grey30 gray40 grey40
591 gray50 grey50 gray60 grey60
592 gray70 grey70 gray80 grey80
593 gray90 grey90 gray100 grey100
594 gray grey light_gray light_grey
595 dark_gray dark_grey red light_red
596 dark_red yellow light_yellow dark_yellow
597 green light_green dark_green spring_green
598 forest_green sea_green blue light_blue
599 dark_blue midnight_blue navy medium_blue
600 royalblue skyblue cyan light_cyan
601 dark_cyan magenta light_magenta dark_magenta
602 turquoise light_turquoise dark_turquoise pink
603 light_pink dark_pink coral light_coral
604 orange_red salmon light_salmon dark_salmon
605 aquamarine khaki dark_khaki goldenrod
606 light_goldenrod dark_goldenrod gold beige
607 brown orange dark_orange violet
608 dark_violet plum purple
611 16進コードでの色彩成分は形式@code{"#rrggbb"}で導入されます。
617 (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
619 explicit(0.5 + x^2,x,-1,1),
621 explicit(1 + x^2,x,-1,1),
622 color = "light-blue", /* double quotes if - is used */
623 explicit(1.5 + x^2,x,-1,1),
625 label(["This is a label",0,1.2]) )$
628 @code{fill_color}も参照してください。
631 @category{Package draw}
636 @defvr {グラフィックオプション} colorbox
639 もし@code{colorbox}が@code{true}なら、
640 ラベルなしの色スケールが@code{image} 2Dオブジェクトか色付けされた3dオブジェクトと一緒に
642 もし@code{colorbox}が@code{false}なら、
644 もし@code{colorbox}が文字列なら、ラベル付き色スケールが描かれます。
646 これはグローバルグラフィックスオプションなので、
653 (%i2) im: apply('matrix,
654 makelist(makelist(random(200),i,1,30),i,1,30))$
655 (%i3) draw2d(image(im,0,0,30,30))$
656 (%i4) draw2d(colorbox=false, image(im,0,0,30,30))$
659 @code{palette}も参照してください。
662 @category{Package draw}
667 @defvr {グラフィックオプション} columns
670 @code{columns}は多重プロットでの列の数です。
672 これはグローバルグラフィックオプションなので、
674 関数@code{draw}の引数として使うこともできます。
680 (%i2) scene1: gr2d(title="Ellipse",
682 parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
683 (%i3) scene2: gr2d(title="Triangle",
684 polygon([4,5,7],[6,4,2]))$
685 (%i4) draw(scene1, scene2, columns = 2)$
689 @category{Package draw}
694 @defvr {グラフィックオプション} contour
697 オプション@code{contour}を使うと、ユーザーは
717 2つの等高線がプロットされます:xy平面上と表面と。
721 等高線がxy平面上に射影されて、観点がちょうど垂直に設定されます。
725 これはグローバルグラフィックオプションなので、
732 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
735 surface_hide = true) $
739 @category{Package draw}
745 @defvr {グラフィックオプション} contour_levels
750 @code{contour_levels}は、正の整数、3つの数のリスト、または、
755 オプション@code{contour_levels}が正の整数@var{n}にバインド(bounded)されている時、
756 @var{n}この等高線が等しい間隔で描かれます。
758 5つの等しく間隔の空けられた等高線がプロットされます。
761 オプション@code{contour_levels}が
762 形式@code{[lowest,s,highest]}の長さ3のリストにバインド(bounded)されている時、
764 @code{lowest}から@code{highest}へ@code{s}個のステップでプロットされます。
767 オプション@code{contour_levels}が
768 形式@code{@{n1, n2, ...@}}の数の集合にバインド(bounded)されている時、
770 値@code{n1}, @code{n2}, ...にプロットされます。
773 これはグローバルグラフィックオプションなので、
779 レベルの実際の数は簡単なラベルを与えるために調整することができます。
782 (%i2) draw3d(color = green,
783 explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
786 surface_hide = true) $
793 (%i2) draw3d(color = green,
794 explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
795 contour_levels = [-8,4,8],
797 surface_hide = true) $
800 レベル-7, -6, 0.8, 5での等値線。
803 (%i2) draw3d(color = green,
804 Explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
805 Contour_levels = @{-7, -6, 0.8, 5@},
807 Surface_hide = true) $
810 @code{contour}も参照してください。
813 @category{Package draw}
819 @defvr {グラフィックオプション} data_file_name
820 デフォルト値: @code{"data.gnuplot"}
823 リクエストされたプロットを構築するためにGnuplotが必要とする数値データを含む
826 これはグローバルグラフィックスオプションなので、
828 関数@code{draw}の引数としても使うことができます。
830 @code{gnuplot_file_name}の中で例を参照してください。
833 @category{Package draw}
838 @defvr {グラフィックオプション} delay
842 アニメーションgifファイルにおけるフレームの1/100秒単位の遅延です。
844 これはグローバルグラフィックスオプションなので、
846 関数@code{draw}の引数としても使うことができます。
855 terminal = 'animated_gif,
856 gr2d(explicit(x^2,x,-1,1)),
857 gr2d(explicit(x^3,x,-1,1)),
858 gr2d(explicit(x^4,x,-1,1)));
859 End of animation sequence
860 (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
863 オプション@code{delay}はアニメーションgifに関してだけアクティブです;
866 @code{terminal}, @code{dimensions}も参照してください。
869 @category{Package draw}
875 @defvr {グラフィックオプション} dimensions
876 デフォルト値: @code{[600,500]}
879 その値は、幅と高さで形成されるリストです。
880 2つの数の意味は使っている端末に依存します。
882 端末@code{gif}, @code{animated_gif}, @code{png}, @code{jpg},
883 @code{svg}, @code{screen}, @code{wxt}, @code{aquaterm}では、
887 端末@code{eps}, @code{eps_color}, @code{pdf}, @code{pdfcairo}では、
888 両方の数は1/100cm単位の長さを表します。
889 デフォルトでは、これらのフォーマットでの画像は幅6cm、高さ5cmであることを意味します。
891 これはグローバルグラフィックオプションなので、
893 関数@code{draw}の引数として使われることもあります。
897 ファイル出力とwxtキャンバスに適用されたオプション@code{dimensions}。
902 dimensions = [300,300],
904 explicit(x^4,x,-1,1)) $
906 dimensions = [300,300],
908 explicit(x^4,x,-1,1)) $
911 eps出力に適用されたオプション@code{dimensions}。
916 (%i2) A4portrait: 100*[21, 29.7]$
918 dimensions = A4portrait,
920 explicit(x^2-y^2,x,-2,2,y,-2,2)) $
924 @category{Package draw}
931 @defvr {グラフィックオプション} enhanced3d
934 もし@code{enhanced3d}が@code{false}なら、
936 もし@code{enhanced3d}が@code{true}なら、
937 Gnuplotのpm3dモードを設定して表面が色付けられます。
938 もし式が@code{enhanced3d}に与えられるなら、
939 それは@code{palette}に従って色を割り当てるのに使われます;
940 この式の中の変数は表面記述で使われるものと同じでなければいけません。
942 如何にパレットが指定されるか知るためには、オプション@code{palette}を参照してください。
952 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
955 /* same variables x and y as */
956 /* in explicit below: */
957 enhanced3d = sin(x*y),
958 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
963 enhanced3d = (u-1)^2,
964 parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2))$
968 @category{Package draw}
974 @defvr {グラフィックオプション} error_type
977 値は@code{x}, @code{y}, @code{xy}を取り得ますが、その値に依存して、
978 グラフィックオブジェクト@code{errors}は水平エラーバー、垂直エラーバー、その両方を伴って
980 @code{error_type=boxes}の時、クロスの代わりにボックスが描かれます。
982 @code{errors}も参照してください。
986 @defvr {グラフィックオプション} file_name
987 デフォルト値: @code{"maxima_out"}
990 端末@code{png}, @code{jpg}, @code{eps}, @code{eps_color}, @code{pdf}, @code{pdfcairo}がグラフィックを保存する
993 これはグローバルグラフィックスオプションなので、
1000 (%i2) draw2d(file_name = "myfile",
1001 explicit(x^2,x,-1,1),
1005 @code{terminal}, @code{dimensions}も参照してください。
1008 @category{Package draw}
1013 @defvr {グラフィックオプション} fill_color
1014 デフォルト値: @code{"red"}
1016 @code{fill_color}はポリゴンと2d @code{explicit}関数を塗りつぶすための色を指定します。
1018 如何に色が指定されるかを知るには@code{color}を参照してください。
1021 @category{Package draw}
1026 @defvr {グラフィックオプション} fill_density
1029 @code{fill_density}は、@code{bars}オブジェクトに関して@code{fill_color}の強度を指定する0と1の間の数です。
1031 例を見るには@code{bars}を参照してください。
1036 @defvr {グラフィックオプション} filled_func
1037 デフォルト値: @code{false}
1039 オプション@code{filled_func}は
1040 関数によって制限された領域が如何に塗りつぶされるべきかを
1042 @code{filled_func}が@code{true}の時、
1043 オブジェクト@code{explicit}とグラフィックウィンドウの底で定義された関数によって
1044 閉ざされた領域は@code{fill_color}で塗りつぶされます。
1045 @code{filled_func}が関数式を含む時、
1046 この関数とオブジェクト@code{explicit} で定義された関数によって閉ざされた領域が
1048 デフォルトでは、陽な関数は塗りつぶされません。
1050 このオプションは2dグラフィックオブジェクト@code{explicit}だけに影響します。
1054 @code{explicit}オブジェクトとグラフィックウィンドウによって閉ざされた領域。
1057 (%i2) draw2d(fill_color = red,
1059 explicit(sin(x),x,0,10) )$
1062 @code{explicit}オブジェクト
1063 とオプション@code{filled_func}で定義された関数によって閉ざされた領域。
1064 @code{filled_func}の中の変数は must be the same as that used in
1065 @code{explicit}の中で使われるものと同じでなければいけないことに注意してください。
1068 (%i2) draw2d(fill_color = grey,
1069 filled_func = sin(x),
1070 explicit(-sin(x),x,0,%pi));
1073 @code{fill_color}と@code{explicit}も参照してください。
1076 @category{Package draw}
1081 @defvr {グラフィックオプション} font
1082 デフォルト値: @code{""} (empty string)
1085 端末が使う書体を設定するために使うことができます。
1086 プロットを通して書体とサイズは1つだけ使うことができます。
1088 これはグローバルグラフィックスオプションなので、
1091 @code{font_size}も参照してください。
1093 Gnuplotはそれ自身フォントを扱いません。
1094 異なる端末のサポートライブラリに任せます。
1095 それぞれはフォントに関して独自の哲学を持っています。
1101 通常のX11フォンとサーバーメカニズムを使います。
1106 (%i2) draw2d(font = "Arial",
1108 label(["Arial font, size 20",1,1]))$
1113 Windows端末はプロット内部でフォントの変更をサポートしません。
1114 一旦プロットが生成されると、グラフウィンドウのメニューを右クリックしてフォントを変更することができます。
1119 環境変数@env{GDFONTPATH}の中に保持されたフォントパスを使います;
1120 この場合、オプション@code{font}をフォント名に設定することだけが必要です。
1121 フォントファイルへの完全なパスを与えることも可能です。
1125 オプション@code{font}はフォントファイルへの完全なパスを与えることができます:
1128 (%i2) path: "/usr/share/fonts/truetype/freefont/" $
1129 (%i3) file: "FreeSerifBoldItalic.ttf" $
1131 font = concat(path, file),
1134 label(["FreeSerifBoldItalic font, size 20",1,1]),
1138 もし環境変数@env{GDFONTPATH}が
1139 フォントファイルが配置されているパスに設定されているなら、
1140 set グラフィックオプション@code{font}をフォント名に設定することが可能です。
1144 font = "FreeSerifBoldItalic",
1147 label(["FreeSerifBoldItalic font, size 20",1,1]),
1153 標準ポストスクリプトフォントは以下の通りです:@*
1154 @code{"Times-Roman"}, @code{"Times-Italic"}, @code{"Times-Bold"},
1155 @code{"Times-BoldItalic"},@*
1156 @code{"Helvetica"}, @code{"Helvetica-Oblique"}, @code{"Helvetica-Bold"},@*
1157 @code{"Helvetic-BoldOblique"}, @code{"Courier"},
1158 @code{"Courier-Oblique"}, @code{"Courier-Bold"},@*
1159 @code{"Courier-BoldOblique"}。
1165 font = "Courier-Oblique",
1167 label(["Courier-Oblique font, size 15",1,1]),
1173 @i{Postscript}と同じフォントを使います。
1177 @i{wxt}と同じフォントを使います。
1182 @code{fontconfig}ユーティリティを介してフォントを見つけます。
1186 デフォルトは@code{"Times-Roman"}です。
1189 Gnuplotドキュメンテーションは端末とフォントに関する情報の重要なソースです。
1192 @category{Package draw}
1199 @defvr {グラフィックオプション} font_size
1203 フォントサイズを端末によって使われるように設定するために使うことができます。
1204 1つの書体とサイズだけがプロットの間中で使うことができます。
1205 オプション@code{font}が空の文字列に等しくない時だけ、
1206 @code{font_size}はアクティブです。
1208 これはグローバルグラフィックスオプションなので、
1211 @code{font}も参照してください。
1214 @category{Package draw}
1220 @defvr {グラフィックオプション} gnuplot_file_name
1221 デフォルト値: @code{"maxout.gnuplot"}
1224 Gnuplotで処理される必要なコマンドを含む
1227 これはグローバルグラフィックスオプションなので、
1229 関数@code{draw}の引数としても使うことができます。
1236 file_name = "my_file",
1237 gnuplot_file_name = "my_commands_for_gnuplot",
1238 data_file_name = "my_data_for_gnuplot",
1240 explicit(x^2,x,-1,1)) $
1243 @code{data_file_name}も参照してください。
1246 @category{Package draw}
1251 @defvr {グラフィックオプション} grid
1252 デフォルト値: @code{false}
1254 もし@code{grid}が@code{true}なら、
1255 @var{xy}平面上に格子が描かれます。
1257 これはグローバルグラフィックスオプションなので、
1264 (%i2) draw2d(grid = true,
1265 explicit(exp(u),u,-2,2))$
1269 @category{Package draw}
1274 @defvr {グラフィックオプション} head_angle
1277 @code{head_angle}は矢印の頭と線分の間の角度を度の単位で示します。
1279 このオプションは@code{vector}オブジェクトに対してだけ有効です。
1285 (%i2) draw2d(xrange = [0,10],
1289 vector([1,1],[0,6]),
1291 vector([2,1],[0,6]),
1293 vector([3,1],[0,6]),
1295 vector([4,1],[0,6]),
1297 vector([5,1],[0,6]),
1299 vector([6,1],[0,6]),
1301 vector([7,1],[0,6]),
1303 vector([8,1],[0,6]),
1305 vector([9,1],[0,6]) )$
1308 @code{head_both}, @code{head_length}, @code{head_type}も参照してください。
1311 @category{Package draw}
1317 @defvr {グラフィックオプション} head_both
1318 デフォルト値: @code{false}
1320 もし@code{head_both}が@code{true}なら、
1321 ベクトルは2つの矢先と共に描画されます。
1322 もし@code{false}なら1つの矢だけが描かれます。
1324 このオプションは@code{vector}オブジェクトに対してだけ有効です。
1330 (%i2) draw2d(xrange = [0,8],
1333 vector([1,1],[6,0]),
1335 vector([1,7],[6,0]) )$
1338 See also @code{head_length}, @code{head_angle}, and @code{head_type}.
1341 @category{Package draw}
1348 @defvr {グラフィックオプション} head_length
1351 @code{head_length}は矢印の頭の長さを@var{x}-軸の単位で示します。
1353 このオプションは@code{vector}オブジェクトに対してだけ有効です。
1359 (%i2) draw2d(xrange = [0,12],
1361 vector([0,1],[5,5]),
1363 vector([2,1],[5,5]),
1365 vector([4,1],[5,5]),
1367 vector([6,1],[5,5]))$
1370 @code{head_both}, @code{head_angle}, @code{head_type}も参照してください。
1373 @category{Package draw}
1383 @defvr {グラフィックオプション} head_type
1384 デフォルト値: @code{filled}
1386 @code{head_type}は矢印の頭を如何にプロットするかを指定するのに使われます。
1387 可能な値は以下の通りです: @code{filled} (閉じていて塗りつぶされた矢印の頭), @code{empty}
1388 (閉じているが塗りつぶされていない矢印の頭), @code{nofilled} (開いた矢印の頭).
1390 このオプションは@code{vector}オブジェクトにだけ有効です。
1396 (%i2) draw2d(xrange = [0,12],
1399 vector([0,1],[5,5]), /* default type */
1401 vector([3,1],[5,5]),
1402 head_type = 'nofilled,
1403 vector([6,1],[5,5]))$
1406 @code{head_both}, @code{head_angle}, @code{head_length}も参照してください。
1409 @category{Package draw}
1414 @defvr {グラフィックオプション} ip_grid
1415 デフォルト値: @code{[50, 50]}
1417 @code{ip_grid}はインプリシットなプロットでの最初のサンプリングのためにグリッドを設定します。
1419 このオプションは@code{implicit}オブジェクトに対してだけ関係があります。
1422 @category{Package draw}
1429 @defvr {グラフィックオプション} ip_grid_in
1430 デフォルト値: @code{[5, 5]}
1432 @code{ip_gridi_in}はインプリシットなプロットでの二番目のサンプリングのためにグリッドを設定します。
1434 このオプションは@code{implicit}オブジェクトに対してだけ関係があります。
1437 @category{Package draw}
1442 @defvr {グラフィックオプション} key
1443 デフォルト値: @code{""} (empty string)
1445 @code{key}は凡例の中の関数名です。
1446 もし@code{key}が空の文字列なら、
1449 このオプションは以下のグラフィックオブジェクトに影響します:
1452 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1453 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1454 @code{parametric}, と@code{polar}。
1457 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric},
1458 と@code{parametric_surface}
1465 (%i2) draw2d(key = "Sinus",
1466 explicit(sin(x),x,0,10),
1469 explicit(cos(x),x,0,10) )$
1473 @category{Package draw}
1479 @defvr {グラフィックオプション} label_alignment
1480 デフォルト値: @code{center}
1482 @code{label_alignment}は
1483 与えられた座標に関するラベルを書く場所を指定するのに使われます。
1484 可能な値は以下のものです: @code{center}, @code{left}, @code{right}.
1486 このオプションは@code{label}オブジェクトに対してだけ有効です。
1492 (%i2) draw2d(xrange = [0,10],
1494 points_joined = true,
1495 points([[5,0],[5,10]]),
1497 label(["Centered alignment (default)",5,2]),
1498 label_alignment = 'left,
1499 label(["Left alignment",5,5]),
1500 label_alignment = 'right,
1501 label(["Right alignment",5,8]))$
1504 @code{label_orientation}, @code{color}も参照してください。
1507 @category{Package draw}
1514 @defvr {グラフィックオプション} label_orientation
1515 デフォルト値: @code{horizontal}
1517 @code{label_orientation}はラベルの向きを指定するのに使われます。
1518 可能な値は以下のものです: @code{horizontal}, @code{vertical}.
1520 このオプションは@code{label}オブジェクトに対してだけ有効です。
1524 この例では、ダミーの点がイメージを得るために加えられます。
1525 パッケージ@code{draw}はいつもシーンを描くのにデータを必要とします。
1528 (%i2) draw2d(xrange = [0,10],
1533 label(["Horizontal orientation (default)",5,2]),
1534 label_orientation = 'vertical,
1536 label(["Vertical orientation",1,5]))$
1539 @code{label_alignment}と@code{color}も参照してください。
1542 @category{Package draw}
1547 @defvr {グラフィックオプション} line_type
1548 デフォルト値: @code{solid}
1550 @code{line_type}は線が如何に表示されるかを示します;
1551 可能な値は@code{solid}と@code{dots}です。
1553 このオプションは以下のグラフィックオブジェクトに鋭意供します:
1556 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1557 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1558 @code{parametric}と@code{polar}。
1561 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric}と@code{parametric_surface}。
1568 (%i2) draw2d(line_type = dots,
1569 explicit(1 + x^2,x,-1,1),
1570 line_type = solid, /* default */
1571 explicit(2 + x^2,x,-1,1))$
1574 See also @code{line_width}.
1577 @category{Package draw}
1582 @defvr {グラフィックオプション} line_width
1585 @code{line_width}はプロットされる線の幅です。
1588 このオプションは以下のグラフィックオブジェクトに影響します:
1591 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1592 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1593 @code{parametric} と@code{polar}.
1596 @code{gr3d}: @code{points}と@code{parametric}.
1603 (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
1605 explicit(1 + x^2,x,-1,1),
1607 explicit(2 + x^2,x,-1,1))$
1610 @code{line_type}も参照してください。
1613 @category{Package draw}
1618 @defvr {グラフィックオプション} logcb
1619 デフォルト値: @code{false}
1621 もし@code{logcb}が@code{true}なら、
1622 カラーボックスのチックは対数スケールで描かれます。
1624 @code{enhanced3d}か@code{colorbox}が@code{false}の時、
1625 オプション@code{logcb}は効果を持ちません。
1627 これはグローバルグラフィックスオプションなので、
1639 palette = [-15,24,-9],
1640 explicit(exp(x^2-y^2), x,-2,2,y,-2,2)) $
1643 @code{enhanced3d}, @code{colorbox}, @code{cbrange}も参照してください。
1646 @category{Package draw}
1651 @defvr {グラフィックオプション} logx
1652 デフォルト値: @code{false}
1654 もし@code{logx}が@code{true}なら、
1655 @var{x}軸は対数スケールで描かれます。
1657 これはグローバルグラフィックスオプションなので、
1664 (%i2) draw2d(explicit(log(x),x,0.01,5),
1668 @code{logy}, @code{logz}も参照してください。
1671 @category{Package draw}
1678 @defvr {グラフィックオプション} logy
1679 デフォルト値: @code{false}
1681 もし@code{logy}が@code{true}なら、
1682 @var{y}軸は対数スケールで描かれます。
1684 これはグローバルグラフィックスオプションなので、
1691 (%i2) draw2d(logy = true,
1692 explicit(exp(x),x,0,5))$
1695 @code{logx}, @code{logz}も参照してください。
1698 @category{Package draw}
1705 @defvr {グラフィックオプション} logz
1706 デフォルト値: @code{false}
1708 もし@code{logz}が@code{true}なら、
1709 @var{z}軸は対数スケールで描かれます。
1711 これはグローバルグラフィックスオプションなので、
1718 (%i2) draw3d(logz = true,
1719 explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
1722 @code{logx}, @code{logy}も参照してください。
1725 @category{Package draw}
1731 @defvr {グラフィックオプション} nticks
1734 2dでは、@code{nticks}は、
1735 陽なオブジェクトに関する適応プロットルーチンによって使われる点の初期数を与えます。
1736 それはパラメトリック曲線と極座標曲線で示される点の数でもあります。
1738 このオプションは以下のグラフィックオブジェクトに影響を与えます:
1741 @code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric}と@code{polar}。
1744 @code{gr3d}: @code{parametric}。
1751 (%i2) draw2d(transparent = true,
1752 ellipse(0,0,4,2,0,180),
1754 ellipse(0,0,4,2,180,180) )$
1758 @category{Package draw}
1763 @defvr {グラフィックオプション} palette
1764 デフォルト値: @code{color}
1766 @code{palette}はグレイレベルを色成分上にマップする仕方を示します。
1767 3Dオブジェクトでのオプション@code{enhanced3d}と一緒に機能します。
1768 3Dオブジェクトは表面のすべての点を実数かグレイレベルに関連付けます。
1769 グレイイメージとも一緒に機能します。@code{palette}によってレベルは色に変換されます。
1771 これらの変換を定義するには2つの方法があります。
1773 1つ目の方法では、@code{palette}は、-36から+36までの範囲の成分の長さ3のベクトルです;
1775 それぞれ赤、緑、青色上にレベルをマップする公式に関する添字です:
1779 6: x^4 7: sqrt(x) 8: sqrt(sqrt(x))
1780 9: sin(90x) 10: cos(90x) 11: |x-0.5|
1781 12: (2x-1)^2 13: sin(180x) 14: |cos(180x)|
1782 15: sin(360x) 16: cos(360x) 17: |sin(360x)|
1783 18: |cos(360x)| 19: |sin(720x)| 20: |cos(720x)|
1784 21: 3x 22: 3x-1 23: 3x-2
1785 24: |3x-1| 25: |3x-2| 26: (3x-1)/2
1786 27: (3x-2)/2 28: |(3x-1)/2| 29: |(3x-2)/2|
1787 30: x/0.32-0.78125 31: 2*x-0.84 32: 4x;1;-2x+1.84;x/0.08-11.5
1788 33: |2*x - 0.5| 34: 2*x 35: 2*x - 0.5
1792 @code{palette = gray}と@code{palette = color}は、
1793 それぞれ@code{palette = [3,3,3]}と@code{palette = [7,5,15]}の
1796 2つ目の方法では、@code{palette}はユーザー定義のルックアップテーブルです。
1797 この場合、長さ@code{n}のルックアップテーブルを構成するフォーマットは
1798 @code{palette=[color_1, color_2, ..., color_n}です。
1799 ここで、@code{color_i}は、@code{color_i}が最低のグレイレベルに割り当てられ、
1800 @code{color_n}が最高に割り当てられるような均整のとれた色です
1801 (オプション@code{color}を参照してください)。
1804 これはグローバルグラフィックスオプションなので、
1809 3Dオブジェクトでのオプション@code{enhanced3d}と一緒に機能します。
1814 enhanced3d = [z-x+2*y,x,y,z],
1815 palette = [32, -8, 17],
1816 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
1825 makelist(makelist(random(200),i,1,30),i,1,30))$
1826 (%i3) /* palette = color, default */
1827 draw2d(image(im,0,0,30,30))$
1828 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
1829 (%i5) draw2d(palette = [15,20,-4],
1831 image(im,0,0,30,30))$
1833 @code{palette}はユーザー定義のルックアップテーブルの場合があります。
1834 この例では、ple, low values of
1835 @code{x}の低いレベルは赤に割り当てられ、高いレベルは黄色に割り当てられています。
1840 palette = [red, blue, yellow],
1842 explicit(x^2+y^2,x,-1,1,y,-1,1)) $
1845 @code{colorbox}も参照してください。
1848 @category{Package draw}
1854 @defvr {グラフィックオプション} point_size
1857 @code{point_size}はプロットされる点のサイズを設定します。
1860 グラフィックオプション@code{point_type}が@code{dot}に設定される時
1863 このオプションは以下のグラフィックオブジェクトに影響します:
1866 @code{gr2d}: @code{points}.
1869 @code{gr3d}: @code{points}.
1876 (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
1878 points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
1882 @category{Package draw}
1887 @defvr {グラフィックオプション} point_type
1890 @code{point_type}は、いかに孤立した点が表示されるかを示します;
1891 このオプションの値は、-1以上の整数インデックスもしくは点スタイルの名前であり得ます:
1892 @code{$none} (-1), @code{dot} (0), @code{plus} (1), @code{multiply} (2),
1893 @code{asterisk} (3), @code{square} (4), @code{filled_square} (5), @code{circle} (6),
1894 @code{filled_circle} (7), @code{up_triangle} (8), @code{filled_up_triangle} (9),
1895 @code{down_triangle} (10), @code{filled_down_triangle} (11), @code{diamant} (12),@code{filled_diamant} (13).
1897 このオプションは以下のグラフィックオブジェクトに影響します:
1900 @code{gr2d}: @code{points}.
1903 @code{gr3d}: @code{points}.
1910 (%i2) draw2d(xrange = [0,10],
1913 point_type = diamant,
1914 points([[1,1],[5,1],[9,1]]),
1915 point_type = filled_down_triangle,
1916 points([[1,2],[5,2],[9,2]]),
1917 point_type = asterisk,
1918 points([[1,3],[5,3],[9,3]]),
1919 point_type = filled_diamant,
1920 points([[1,4],[5,4],[9,4]]),
1922 points([[1,5],[5,5],[9,5]]),
1924 points([[1,6],[5,6],[9,6]]),
1925 point_type = filled_circle,
1926 points([[1,7],[5,7],[9,7]]),
1928 points([[1,8],[5,8],[9,8]]),
1929 point_type = filled_diamant,
1930 points([[1,9],[5,9],[9,9]]) )$
1934 @category{Package draw}
1940 @defvr {グラフィックオプション} points_joined
1941 デフォルト値: @code{false}
1943 @code{points_joined}が@code{true}の時、
1945 @code{false}の時、孤立した点が描かれます。
1946 このグラフィックオプションの三番目の可能な値は@code{impulses}です;
1947 この場合、点からx軸(2D)もしくはxy平面(3D)へ垂直の線分が描かれます。
1949 このオプションは以下のグラフィックオブジェクトに影響します:
1952 @code{gr2d}: @code{points}.
1955 @code{gr3d}: @code{points}.
1962 (%i2) draw2d(xrange = [0,10],
1965 point_type = up_triangle,
1967 points([[1,1],[5,1],[9,1]]),
1968 points_joined = true,
1969 point_type = square,
1971 points([[1,2],[5,2],[9,2]]),
1972 point_type = circle,
1975 points([[1,3],[5,3],[9,3]]) )$
1979 @category{Package draw}
1984 @defvr {グラフィックオプション} proportional_axes
1987 @code{proportional_axes}が@code{xy}に等しい時、
1988 それらの相対的な長さに比例する軸で2Dシーンが描かれます。
1990 これはグローバルグラフィックスオプションなので、
1993 このオプションは2Dプロットでだけ機能します。
1994 一旦Gnuplot 4.3が公式にリリースされたら、
1995 @code{proportional_axes}は3Dプロットに拡張させるでしょう。
2004 ellipse(0,0,1,1,0,360),
2008 ellipse(0,0,2,1/2,0,360),
2009 proportional_axes = xy) $
2018 gr2d(proportional_axes = xy,
2019 explicit(x^2,x,0,1)),
2020 gr2d(explicit(x^2,x,0,1),
2023 proportional_axes=xy),
2024 gr2d(explicit(x^2,x,0,1))
2028 @category{Package draw}
2034 @defvr {グラフィックオプション} surface_hide
2035 デフォルト値: @code{false}
2037 もし@code{surface_hide}が@code{true}なら、
2038 隠れた部分は3d表面にプロットされません。
2040 これはグローバルグラフィックオプションなので、
2047 (%i2) draw(columns=2,
2048 gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
2049 gr3d(surface_hide = true,
2050 explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
2054 @category{Package draw}
2060 @defvr {グラフィックオプション} terminal
2061 デフォルト値: @code{screen}
2063 Gnuplotが使う端末を選択します; 可能な値は:
2064 @code{screen} (デフォルト), @code{png}, @code{pngcairo}, @code{jpg}, @code{eps}, @code{eps_color},
2065 @code{pdf}, @code{pdfcairo}, @code{gif}, @code{animated_gif}, @code{wxt}, @code{aquaterm}.
2067 端末@code{screen}, @code{wxt}, @code{aquaterm}は2つの要素を持つリストとしても定義できます:
2069 この形式では、それぞれ対応する番号を持つ複数のウィンドウを同時に開くことができます。
2070 この特長はWindowsプラットフォームでは機能しません。
2072 これはグローバルグラフィックスオプションなので、
2074 関数@code{draw}の引数としても使われます。
2076 注意せよ―pdfcairoはGnuplot 4.3を必要とします。
2077 (2008年11月)現在、Gnuplot 4.3は開発バージョンです。
2080 オプション@code{--enable-pdf}でコンパイルすることを
2081 必要とし、libpdfがインストールされていなければいけません。
2082 pdfライブラリは以下で利用可能です: @url{http://www.pdflib.com/en/download/pdflib-family/pdflib-lite/}
2088 (%i2) /* screen terminal (default) */
2089 draw2d(explicit(x^2,x,-1,1))$
2090 (%i3) /* png file */
2091 draw2d(terminal = 'png,
2092 explicit(x^2,x,-1,1))$
2093 (%i4) /* jpg file */
2094 draw2d(terminal = 'jpg,
2095 dimensions = [300,300],
2096 explicit(x^2,x,-1,1))$
2097 (%i5) /* eps file */
2098 draw2d(file_name = "myfile",
2099 explicit(x^2,x,-1,1),
2101 (%i6) /* pdf file */
2102 draw2d(file_name = "mypdf",
2103 dimensions = 100*[12.0,8.0],
2104 explicit(x^2,x,-1,1),
2106 (%i7) /* wxwidgets window */
2107 draw2d(explicit(x^2,x,-1,1),
2114 (%i2) draw2d(explicit(x^5,x,-2,2), terminal=[screen, 3])$
2115 (%i3) draw2d(explicit(x^2,x,-2,2), terminal=[screen, 0])$
2124 terminal = 'animated_gif,
2125 gr2d(explicit(x^2,x,-1,1)),
2126 gr2d(explicit(x^3,x,-1,1)),
2127 gr2d(explicit(x^4,x,-1,1)));
2128 End of animation sequence
2129 (%o2) [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
2132 オプション@code{delay}は動画gifでだけ有効です;
2135 @code{file_name}, @code{dimensions}, @code{delay}も参照してください。
2138 @category{Package draw}
2144 @defvr {グラフィックオプション} title
2145 デフォルト値: @code{""} (empty string)
2147 オプション@code{title}、文字列は、シーンのメインタイトルです。
2150 これはグローバルグラフィックスオプションなので、
2157 (%i2) draw2d(explicit(exp(u),u,-2,2),
2158 title = "Exponential function")$
2162 @category{Package draw}
2167 @defvr {グラフィックオプション} transform
2170 もし@code{transform}が@code{none}なら、
2171 空間は変換されず、グラフィックオブジェクトは定義の通り描画されます。
2172 空間変換が望まれた時、リストがオプション@code{transform}に割り当てられなければいけません。
2174 リストは形式@code{[f1(x,y), f2(x,y), x, y]}を取ります。
2176 リストは形式@code{[f1(x,y,z), f2(x,y,z), f3(x,y,z), x, y, z]}を取ります。
2178 グラフィックオブジェクトの定義の中で使われるものと異なるかもしれません。
2189 proportional_axes = 'xy,
2191 triangle([3,2],[7,2],[5,5]),
2193 fill_color = yellow,
2194 transform = [cos(th)*x - sin(th)*y,
2195 sin(th)*x + cos(th)*y, x, y],
2196 triangle([3,2],[7,2],[5,5]) )$
2205 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
2206 transform = [x+10,y+10,z+10,x,y,z],
2208 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3) )$
2212 @category{Package draw}
2216 @defvr {グラフィックオプション} transparent
2217 デフォルト値: @code{false}
2219 もし@code{transparent}が@code{true}なら、
2220 ポリゴンの内側の領域は@code{fill_color}に従って塗りつぶされます。
2222 このオプションは以下のグラフィックオブジェクトに影響します:
2225 @code{gr2d}: @code{polygon}, @code{rectangle}, と@code{ellipse}.
2232 (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
2235 polygon([[5,2],[9,2],[7,5]]) )$
2239 @category{Package draw}
2244 @defvr {グラフィックオプション} tube_extremes
2245 デフォルト値: @code{[open, open]}
2247 グラフィックオブジェクト@code{tube}の極値が開いたままか
2249 2つの可能性のある要素@code{open}と@code{closed}を持つリスト。
2250 デフォルトでは、どちらの極値も開いたままです。
2257 tube_extremes = [open, closed],
2263 @category{Package draw}
2269 @defvr {グラフィックオプション} unit_vectors
2270 デフォルト値: @code{false}
2272 もし@code{unit_vectors}が@code{true}なら、
2274 これはベクトル場をプロットするのに役に立ちます。
2275 もし@code{unit_vectors}が@code{false}なら、
2278 このオプションは@code{vector}オブジェクトに対してだけ有効です。
2284 (%i2) draw2d(xrange = [-1,6],
2287 vector([0,0],[5,2]),
2288 unit_vectors = true,
2290 vector([0,3],[5,2]))$
2294 @category{Package draw}
2299 @defvr {グラフィックオプション} user_preamble
2300 デフォルト値: @code{""} (empty string)
2303 @code{plot}や@code{splot}コマンドの前に送られる設定を書くことで、
2305 Gnuplotの振る舞いを微調整することができます。
2307 このオプションの値は文字列か(行毎に1つの)文字列のリスト
2310 これはグローバルグラフィックスオプションなので、
2315 @i{ダム}端末は、パッケージ@code{draw}でサポートされていませんが、
2316 オプション@code{user_preamble}の利用によって、それを設定することが可能です。
2319 (%i2) draw2d(explicit(exp(x)-1,x,-1,1),
2320 parametric(cos(u),sin(u),u,0,2*%pi),
2321 user_preamble="set terminal dumb")$
2325 @category{Package draw}
2331 @defvr {グラフィックオプション} view
2332 デフォルト値: @code{[60,30]}
2334 3Dシーンでビュー方向を示す度数で測られた角度の対。
2335 最初の角度は@var{x}軸回りの垂直回転であり、@math{[0, 180]}の範囲です。
2336 二番目は@var{z}回りの水平回転であり、@math{[0, 360]}の範囲です。
2338 これはグローバルグラフィックスオプションなので、
2345 (%i2) draw3d(view = [170, 360],
2346 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
2350 @category{Package draw}
2358 @defvr {グラフィックオプション} x_voxel
2362 3d @code{暗黙の}オブジェクトで実装された@i{マーチングキューブアルゴリズム}
2364 グラフィックオブジェクト@code{region}でも使われます。
2367 @category{Package draw}
2372 @defvr {グラフィックオプション} xaxis
2373 デフォルト値: @code{false}
2375 もし@code{xaxis}が@code{true}なら、
2378 これはグローバルグラフィックスオプションなので、
2385 (%i2) draw2d(explicit(x^3,x,-1,1),
2387 xaxis_color = blue)$
2390 @code{xaxis_width}, @code{xaxis_type}, @code{xaxis_color}も参照してください。
2393 @category{Package draw}
2399 @defvr {グラフィックオプション} xaxis_color
2400 デフォルト値: @code{"black"}
2402 @code{xaxis_color}は@var{x}軸の色を指定します。
2403 いかに色が定義されるかを知るには@code{color}を参照してください。
2405 これはグローバルグラフィックスオプションなので、
2412 (%i2) draw2d(explicit(x^3,x,-1,1),
2417 @code{xaxis}, @code{xaxis_width}, @code{xaxis_type}も参照してください。
2420 @category{Package draw}
2427 @defvr {グラフィックオプション} xaxis_secondary
2428 デフォルト値: @code{false}
2430 もし@code{xaxis_secondary}が@code{true}なら、
2431 関数値が、二番目の@var{x}軸に関してプロットされるかもしれません。
2432 二番目の@var{x}軸はシーンのトップに描かれます。
2434 これは、2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。
2441 key = "Bottom x-axis",
2442 explicit(x+1,x,1,2),
2444 key = "Above x-axis",
2445 xtics_secondary = true,
2446 xaxis_secondary = true,
2447 explicit(x^2,x,-1,1)) $
2450 @code{xrange_secondary}, @code{xtics_secondary}, @code{xtics_rotate_secondary},
2451 @code{xtics_axis_secondary}, @code{xaxis_secondary}も参照してください。
2454 @category{Package draw}
2460 @defvr {グラフィックオプション} xaxis_type
2463 @code{xaxis_type}は@var{x}軸がいかに表示されるかを示します;
2464 可能な値は@code{solid}と@code{dots}です。
2466 これはグローバルグラフィックスオプションなので、
2473 (%i2) draw2d(explicit(x^3,x,-1,1),
2475 xaxis_type = solid)$
2478 @code{xaxis}, @code{xaxis_width}, @code{xaxis_color}も参照してください。
2481 @category{Package draw}
2489 @defvr {グラフィックオプション} xaxis_width
2492 @code{xaxis_width}は@var{x}軸の幅です。
2495 これはグローバルグラフィックスオプションなので、
2502 (%i2) draw2d(explicit(x^3,x,-1,1),
2507 @code{xaxis}, @code{xaxis_type}, @code{xaxis_color}も参照してください。
2510 @category{Package draw}
2517 @defvr {グラフィックオプション} xlabel
2518 デフォルト値: @code{""} (empty string)
2520 オプション@code{xlabel}、文字列は
2524 これはグローバルグラフィックスオプションなので、
2531 (%i2) draw2d(xlabel = "Time",
2532 explicit(exp(u),u,-2,2),
2533 ylabel = "Population")$
2536 @code{ylabel}と@code{zlabel}も参照してください。
2539 @category{Package draw}
2544 @defvr {グラフィックオプション} xrange
2547 もし@code{xrange}が@code{auto}なら、
2548 @var{x}座標の範囲は自動的に計算されます。
2551 @var{x}に関して特定の区間が欲しいなら、
2552 @code{xrange=[-2, 3]}のように、Maximaリストとして与えられなければいけません。
2554 これはグローバルグラフィックスオプションなので、
2561 (%i2) draw2d(xrange = [-3,5],
2562 explicit(x^2,x,-1,1))$
2565 @code{yrange}と@code{zrange}も参照してください。
2568 @category{Package draw}
2574 @defvr {グラフィックオプション} xrange_secondary
2577 もし@code{xrange_secondary}が@code{auto}なら、
2578 二番目の@var{x}軸の範囲は自動的に計算されます。
2581 二番目の@var{x}軸の特定した区間が欲しいなら、
2582 @code{xrange_secondary=[-2, 3]}のように、Maximaリストとして与えられなければいけません。
2584 これはグローバルグラフィックスオプションなので、
2587 @code{xrange}, @code{yrange}, @code{zrange}, @code{yrange_secondary}も参照してください。
2590 @category{Package draw}
2594 @defvr {グラフィックオプション} xtics
2598 チックマークを@var{x}軸上に描く方法を制御します。
2602 オプション@code{xtics}がシンボル@var{auto}にバインドされている時
2606 オプション@code{xtics}がシンボル@var{none}にバインドされている時
2610 オプション@code{xtics}が正の数にバインドされている時、
2611 これは2つの連続するチックマークの間の距離になります。
2615 形式@code{[start,incr,end]}の長さ3のリストにバインドされている時、
2617 @code{start}から@code{end}まで
2618 長さ@code{incr}の間隔でプロットされます。
2622 形式@code{@{n1, n2, ...@}}の数の集合にバインドされている時、
2624 値@code{n1}, @code{n2}, ...にプロットされます。
2628 形式@code{@{["label1", n1], ["label2", n2], ...@}}の対の集合にバインドされている時、
2629 値@code{n1}, @code{n2}, ...に対応する
2631 @code{"label1"}, @code{"label2"}, ...にラベルされます。
2634 これはグローバルグラフィックスオプションなので、
2642 (%i2) draw2d(xtics = 'none,
2643 explicit(x^3,x,-1,1) )$
2649 (%i2) draw2d(xtics = 1/4,
2650 explicit(x^3,x,-1,1) )$
2657 (%i2) draw2d(xtics = [-3/4,1/8,3/4],
2658 explicit(x^3,x,-1,1) )$
2661 点-1/2, -1/4, 3/4にチック。
2664 (%i2) draw2d(xtics = @{-1/2,-1/4,3/4@},
2665 explicit(x^3,x,-1,1) )$
2671 (%i2) draw2d(xtics = @{["High",0.75],["Medium",0],["Low",-0.75]@},
2672 explicit(x^3,x,-1,1) )$
2675 @code{ytics}, @code{ztics}も参照してください。
2678 @category{Package draw}
2684 @defvr {グラフィックオプション} xtics_axis
2685 デフォルト値: @code{false}
2687 もし@code{xtics_axis}が@code{true}なら、
2689 @var{x}軸に沿ってだけプロットされます。
2690 もし@code{false}なら、チックは境界上にプロットされます。
2692 これはグローバルグラフィックスオプションなので、
2696 @category{Package draw}
2701 @defvr {グラフィックオプション} xtics_rotate
2702 デフォルト値: @code{false}
2704 もし@code{xtics_rotate}が@code{true}なら、
2705 @var{x}軸上のチックマークが90度回転されます。
2707 これはグローバルグラフィックスオプションなので、
2711 @category{Package draw}
2716 @defvr {グラフィックオプション} xtics_rotate_secondary
2717 デフォルト値: @code{false}
2719 もし@code{xtics_rotate_secondary}が@code{true}なら、
2720 補助的な@var{x}軸上のチックマークが90度回転されます。
2722 これはグローバルグラフィックスオプションなので、
2726 @category{Package draw}
2731 @defvr {グラフィックオプション} xtics_secondary
2735 二番目の@var{x}軸上にチックマークを描く方法を制御します。
2737 完全な記述に関しては、@code{xtics}を参照してください。
2740 @category{Package draw}
2747 @defvr {グラフィックオプション} xtics_secondary_axis
2748 デフォルト値: @code{false}
2750 もし@code{xtics_secondary_axis}が@code{true}なら、
2751 チックマークとそれらのラベルは補助的な@var{x}軸に沿ってだけプロットされ、
2752 もし@code{false}なら、境界上にプロットされます。
2754 これはグローバルグラフィックスオプションなので、
2758 @category{Package draw}
2765 @defvr {グラフィックオプション} xu_grid
2769 サンプル点のグリッドを構築するための一番目の変数
2770 (陽での@code{x}、パラメトリック3d表面での@code{u})の座標の数です。
2772 このオプションは以下のグラフィックオブジェクトに影響を与えます:
2775 @code{gr3d}: @code{explicit}と@code{parametric_surface}.
2782 (%i2) draw3d(xu_grid = 10,
2784 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
2787 @code{yv_grid}も参照してください。
2790 @category{Package draw}
2796 @defvr {グラフィックオプション} xy_file
2797 デフォルト値: @code{""} (empty string)
2800 マウスでクリックし、'x'キーを叩いた後、座標が保存される
2804 これはグローバルグラフィックスオプションなので、
2808 @category{Package draw}
2814 @defvr {グラフィックオプション} xyplane
2815 デフォルト値: @code{false}
2818 @code{xyplane}が@code{false}の時、
2820 実数の時、xy平面はこのレベルでz軸と交わります。
2821 このオプションは2Dシーンでは効果を持ちません。
2823 これはグローバルグラフィックスオプションなので、
2830 (%i2) draw3d(xyplane = %e-2,
2831 explicit(x^2+y^2,x,-1,1,y,-1,1))$
2835 @category{Package draw}
2842 @defvr {グラフィックオプション} y_voxel
2846 3d@code{暗黙の}オブジェクトで実装された@i{マーチングキューブアルゴリズム}
2848 グラフィックオブジェクト@code{region}でも使われます。
2851 @category{Package draw}
2855 @defvr {グラフィックオプション} yaxis
2856 デフォルト値: @code{false}
2858 もし@code{yaxis}が@code{true}なら、@var{y}軸が描かれます。
2860 これはグローバルグラフィックスオプションなので、
2867 (%i2) draw2d(explicit(x^3,x,-1,1),
2869 yaxis_color = blue)$
2872 @code{yaxis_width}, @code{yaxis_type}, @code{yaxis_color}も参照してください。
2875 @category{Package draw}
2880 @defvr {グラフィックオプション} yaxis_color
2881 デフォルト値: @code{"black"}
2883 @code{yaxis_color}は@var{y}軸の色を指定します。
2885 @code{color}を参照してください。
2887 これはグローバルグラフィックスオプションなので、
2894 (%i2) draw2d(explicit(x^3,x,-1,1),
2899 @code{yaxis}, @code{yaxis_width}, @code{yaxis_type}も参照してください。
2902 @category{Package draw}
2910 @defvr {グラフィックオプション} yaxis_secondary
2911 デフォルト値: @code{false}
2913 もし@code{yaxis_secondary}が@code{true}なら、
2914 関数値は二番目の@var{y}軸に関してプロットされるかもしれません。
2915 二番目の@var{y}軸はシーンの右側に描かれます。
2917 これは、2dプロットにだけ影響する局所的なグラフィックオプションであることに注意してください。
2924 explicit(sin(x),x,0,10),
2925 yaxis_secondary = true,
2926 ytics_secondary = true,
2928 explicit(100*sin(x+0.1)+2,x,0,10));
2931 @code{yrange_secondary}, @code{ytics_secondary}, @code{ytics_rotate_secondary}
2932 , @code{ytics_axis_secondary}も参照してください。
2935 @category{Package draw}
2940 @defvr {グラフィックオプション} yaxis_type
2943 @code{yaxis_type}は@var{y}軸がどのように表示されるか示します;
2944 可能な値は@code{solid}と@code{dots}です。
2946 これはグローバルグラフィックスオプションなので、
2953 (%i2) draw2d(explicit(x^3,x,-1,1),
2955 yaxis_type = solid)$
2958 @code{yaxis}, @code{yaxis_width}, @code{yaxis_color}も参照してください。
2961 @category{Package draw}
2969 @defvr {グラフィックオプション} yaxis_width
2972 @code{yaxis_width}は@var{y}軸の幅です。
2975 これはグローバルグラフィックスオプションなので、
2982 (%i2) draw2d(explicit(x^3,x,-1,1),
2987 @code{yaxis}, @code{yaxis_type}, @code{yaxis_color}も参照してください。
2990 @category{Package draw}
2998 @defvr {グラフィックオプション} ylabel
2999 デフォルト値: @code{""} (empty string)
3001 オプション@code{ylabel}、文字列は
3005 これはグローバルグラフィックスオプションなので、
3012 (%i2) draw2d(xlabel = "Time",
3013 ylabel = "Population",
3014 explicit(exp(u),u,-2,2) )$
3017 @code{xlabel}と@code{zlabel}も参照してください。
3020 @category{Package draw}
3025 @defvr {グラフィックオプション} yrange
3028 もし@code{yrange}が@code{auto}なら、
3029 @var{y}座標の範囲は自動的に計算されます。
3031 もしユーザーが@var{y}の特定の区間が欲しいなら、
3032 @code{yrange=[-2, 3]}のように、Maximaリストとして与えられなければいけません。
3034 これはグローバルグラフィックスオプションなので、
3041 (%i2) draw2d(yrange = [-2,3],
3042 explicit(x^2,x,-1,1),
3046 @code{xrange}, @code{yrange_secondary}, @code{zrange}も参照してください。
3049 @category{Package draw}
3056 @defvr {グラフィックオプション} yrange_secondary
3059 もし@code{yrange_secondary}が@code{auto}なら、
3060 二番目の@var{y}軸の範囲は自動的に計算されます。
3062 もしユーザーが二番目の@var{y}軸の特定の区間が欲しいなら、
3063 @code{yrange_secondary=[-2, 3]}のように、Maximaリストとして与えられなければいけません。
3065 これはグローバルグラフィックスオプションなので、
3073 explicit(sin(x),x,0,10),
3074 yaxis_secondary = true,
3075 ytics_secondary = true,
3077 yrange_secondary = [-20, 20],
3079 explicit(100*sin(x+0.1)+2,x,0,10)) $
3082 @code{xrange}, @code{yrange}, @code{zrange}も参照してください。
3085 @category{Package draw}
3089 @defvr {グラフィックオプション} ytics
3093 @var{y}軸上にチックマークを描く方法を制御します。
3095 完全な記述に関しては、@code{xtics}を参照してください。
3098 @category{Package draw}
3103 @defvr {グラフィックオプション} ytics_axis
3104 デフォルト値: @code{false}
3106 もし@code{ytics_axis}が@code{true}なら、
3107 チックマークとそれらのラベルは@var{y}軸に沿ってだけプロットされ、
3108 もし@code{false}なら、境界上にプロットされます。
3110 これはグローバルグラフィックスオプションなので、
3114 @category{Package draw}
3119 @defvr {グラフィックオプション} ytics_rotate
3120 デフォルト値: @code{false}
3122 もし@code{ytics_rotate}が@code{true}なら、
3123 @var{y}軸上のチックマークが90度回転されます。
3125 これはグローバルグラフィックスオプションなので、
3129 @category{Package draw}
3135 @defvr {グラフィックオプション} ytics_rotate_secondary
3136 デフォルト値: @code{false}
3138 もし@code{ytics_rotate_secondary}が@code{true}なら、
3139 補助的な@var{y}軸上のチックマークが90度回転されます。
3141 これはグローバルグラフィックスオプションなので、
3145 @category{Package draw}
3150 @defvr {グラフィックオプション} ytics_secondary
3154 二番目の@var{y}軸上にチックマークを描く方法を制御します。
3156 完全な記述に関しては、@code{xtics}を参照してください。
3159 @category{Package draw}
3164 @defvr {グラフィックオプション} ytics_secondary_axis
3165 デフォルト値: @code{false}
3167 もし@code{ytics_secondary_axis}が@code{true}なら、
3168 チックマークとそれらのラベルは補助的な@var{y}軸に沿ってだけプロットされ、
3169 もし@code{false}なら、境界上にプロットされます。
3171 これはグローバルグラフィックスオプションなので、
3175 @category{Package draw}
3180 @defvr {グラフィックオプション} yv_grid
3185 二番目の変数(陽での@code{y}、パラメトリック3d表面での@code{v})の座標の数です。
3187 このオプションは以下のグラフィックオブジェクトに影響を与えます:
3190 @code{gr3d}: @code{explicit}と@code{parametric_surface}.
3197 (%i2) draw3d(xu_grid = 10,
3199 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
3202 @code{xu_grid}も参照してください。
3205 @category{Package draw}
3211 @defvr {グラフィックオプション} z_voxel
3215 3d@code{implicit}オブジェクトで実装された@i{マーチングキューブアルゴリズム}
3219 @category{Package draw}
3225 @defvr {グラフィックオプション} zaxis
3226 デフォルト値: @code{false}
3228 もし@code{zaxis}が@code{true}なら、3Dプロットで@var{z}軸が描かれます。
3229 このオプションは2Dシーンでは効果を持ちません。
3231 これはグローバルグラフィックスオプションなので、
3238 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
3241 zaxis_color = blue)$
3244 @code{zaxis_width}, @code{zaxis_type}, @code{zaxis_color}も参照してください。
3247 @category{Package draw}
3253 @defvr {グラフィックオプション} zaxis_color
3254 デフォルト値: @code{"black"}
3256 @code{zaxis_color}は@var{z}軸の色を指定します。
3257 色がどのように定義されているか知るには@code{color}を参照してください。
3258 このオプションは2Dシーンでは効果を持ちません。
3260 これはグローバルグラフィックスオプションなので、
3267 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
3273 @code{zaxis}, @code{zaxis_width}, @code{zaxis_type}も参照してください。
3276 @category{Package draw}
3284 @defvr {グラフィックオプション} zaxis_type
3287 @code{zaxis_type}は@var{z}軸がどのように表示されるか示します;
3288 可能な値は@code{solid}と@code{dots}です。
3289 このオプションは2Dシーンでは効果を持ちません。
3291 これはグローバルグラフィックスオプションなので、
3298 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
3300 zaxis_type = solid)$
3303 @code{zaxis}, @code{zaxis_width}, @code{zaxis_color}も参照してください。
3306 @category{Package draw}
3313 @defvr {グラフィックオプション} zaxis_width
3316 @code{zaxis_width}は@var{z}軸の幅です。
3318 このオプションは2Dシーンでは効果を持ちません。
3320 これはグローバルグラフィックスオプションなので、
3327 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
3333 @code{zaxis}, @code{zaxis_type}, @code{zaxis_color}も参照してください。
3336 @category{Package draw}
3343 @defvr {グラフィックオプション} zlabel
3344 デフォルト値: @code{""} (empty string)
3346 オプション@code{zlabel}文字列は
3350 これはグローバルグラフィックスオプションなので、
3357 (%i2) draw3d(zlabel = "Z variable",
3358 ylabel = "Y variable",
3359 explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
3360 xlabel = "X variable" )$
3363 @code{xlabel}と@code{ylabel}も参照してください。
3366 @category{Package draw}
3373 @defvr {グラフィックオプション} zrange
3376 もし@code{zrange}が@code{auto}なら、
3377 @var{z}座標の範囲は自動的に計算されます。
3380 @var{z}の特定の区間が欲しいなら、
3381 @code{zrange=[-2, 3]}のようにMaximaリストとして与えられなければいけません。
3383 これはグローバルグラフィックスオプションなので、
3390 (%i2) draw3d(yrange = [-3,3],
3392 explicit(x^2+y^2,x,-1,1,y,-1,1),
3396 @code{xrange}, @code{yrange}も参照してください。
3399 @category{Package draw}
3405 @defvr {グラフィックオプション} ztics
3409 @var{z}軸上にチックマークを描く方法を制御します。
3411 完全な記述に関しては、@code{xtics}を参照してください。
3414 @category{Package draw}
3421 @defvr {グラフィックオプション} ztics_axis
3422 デフォルト値: @code{false}
3424 もし@code{ztics_secondary_axis}が@code{true}なら、
3425 チックマークとそれらのラベルは補助的な@var{z}軸に沿ってだけプロットされ、
3426 もし@code{false}なら、境界上にプロットされます。
3428 これはグローバルグラフィックスオプションなので、
3432 @category{Package draw}
3439 @defvr {グラフィックオプション} ztics_rotate
3440 デフォルト値: @code{false}
3442 もし@code{ztics_rotate}が@code{true}なら、
3443 @var{z}軸上のチックマークが90度回転されます。
3445 これはグローバルグラフィックスオプションなので、
3449 @category{Package draw}
3455 @subsection Graphics objects
3457 @deffn {グラフィックオブジェクト} bars ([@var{x1},@var{h1},@var{w1}], [@var{x2},@var{h2},@var{w2}, ...])
3462 @code{bars ([@var{x1},@var{h1},@var{w1}], [@var{x2},@var{h2},@var{w2}, ...])}
3464 値@var{x1}, @var{x2}, ...に中心を持ち、高さ@var{h1}, @var{h2}, ...と幅@var{w1}, @var{w2}, ...を持つバーを描画します。
3466 このオブジェクトは以下の@i{graphic options}に影響されます: @code{key},
3467 @code{fill_color}, @code{fill_density}, @code{line_width}.
3477 bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
3482 bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
3487 @deffn {グラフィックオブジェクト} cylindrical (@var{radius}, @var{z}, @var{minz}, @var{maxz}, @var{azi}, @var{minazi}, @var{maxazi})
3488 円柱座標で定義された3D関数を描画します。
3492 @code{cylindrical (@var{radius}, @var{z}, @var{minz}, @var{maxz}, @var{azi},
3493 @var{minazi}, @var{maxazi})}は
3494 @var{minz}から@var{maxz}までの値を取る@var{z}と
3495 @var{minazi}から@var{maxazi}まで値を取る@i{方位角} @var{azi}を伴う
3496 円柱座標で定義された関数@code{@var{radius}(@var{z},@var{azi})}
3499 このオブジェクトは以下の@i{グラフィックオプション}に影響されます:
3501 @code{yv_grid}, @code{line_type}, @code{key} and @code{color}.
3507 (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
3511 @category{Package draw}
3516 @deffn {グラフィックオブジェクト} elevation_grid (@var{mat},@var{x0},@var{y0},@var{width},@var{height})
3518 3D空間に行列@var{mat}を描画します。
3519 @var{x0}から@math{@var{x0} + @var{width}}までの横座標範囲と
3520 @var{y0}から@math{@var{y0} + @var{height}}までの縦座標範囲で、
3521 @var{z}値は@var{mat}から取られます。
3522 要素@math{a(1,1)}は点@math{(x0,y0+height)}上に射影され、
3523 @math{a(1,n)}は@math{(x0+width,y0+height)}上に射影され、
3524 @math{a(m,1)}は@math{(x0,y0)}上に射影され、
3525 @math{a(m,n)}は@math{(x0+width,y0)}上に射影されます。
3527 このオブジェクトは以下の@i{グラフィックオプション}に影響されます: @code{line_type},
3528 @code{line_width}, @code{key}, @code{enhanced3d}, @code{color}。
3530 Maximaの古いバージョンでは、@code{elevation_grid}は@code{mesh}と呼ばれました。
3531 @code{mesh}も参照してください。
3539 makelist(makelist(random(10.0),k,1,30),i,1,20)) $
3542 elevation_grid(m,0,0,3,2),
3545 surface_hide = true);
3549 @category{Package draw}
3555 @deffn {グラフィックオブジェクト} ellipse (@var{xc}, @var{yc}, @var{a}, @var{b}, @var{ang1}, @var{ang2})
3561 @code{ellipse (@var{xc}, @var{yc}, @var{a}, @var{b}, @var{ang1}, @var{ang2})}
3563 @code{[@var{xc}, @var{yc}]}を中心とし、水平と垂直半軸にそれぞれ@var{a}と@var{b}を持ち、角度@var{ang1}から始まり、角度@var{ang2}に等しい振幅を持つ
3566 このオブジェクトは以下の@i{graphic options}に影響されます:
3568 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width},
3569 @code{line_type}, @code{key}, @code{color}.
3575 (%i2) draw2d(transparent = false,
3578 transparent = false,
3580 ellipse(0,6,3,2,270,-270),
3581 /* center (x,y), a, b, start & end in degrees */
3585 ellipse(2.5,6,2,3,30,-90),
3591 @category{Package draw}
3597 @deffn {グラフィックオブジェクト} errors ([@var{x1}, @var{x2}, @dots{}], [@var{y1}, @var{y2}, @dots{}])
3598 オプション@code{error_type}の値に依存して、
3599 水平、垂直もしくは両方のエラーバーと共に点を描きます。
3603 もし@code{error_type = x}なら、
3604 @code{errors}の引数は must be of the form
3605 形式@code{[x, y, xdelta]}か@code{[x, y, xlow, xhigh]}でなければいけません。
3606 もし@code{error_type = y}なら、
3607 引数は形式@code{[x, y, ydelta]}か@code{[x, y, ylow, yhigh]}でなければいけません。
3608 もし@code{error_type = xy}か@code{error_type = boxes}なら、
3610 形式@code{[x, y, xdelta, ydelta]}か@code{[x, y, xlow, xhigh, ylow, yhigh]}でなければいけません。
3612 @code{error_type}も参照してください。
3614 このオブジェクトは以下の@i{グラフィックオブジェクト}によって影響されます:
3616 @code{points_joined}, @code{line_width}, @code{key}, @code{line_type},
3617 @code{color}, @code{fill_density}, @code{xaxis_secondary}, @code{yaxis_secondary}.
3619 オプション@code{fill_density}は、@code{error_type=boxes}の時だけ有効です。
3629 errors([[1,2,1], [3,5,3], [10,3,1], [17,6,2]]))$
3638 points_joined = true,
3640 errors([[1,2,1,2], [3,5,2,1], [10,3,1,1], [17,6,1/2,2]]));
3644 @category{Package draw}
3651 @deffn {グラフィックオブジェクト} explicit (@var{fcn},@var{var},@var{minval},@var{maxval})
3652 @deffnx {グラフィックオブジェクト} explicit (@var{fcn},@var{var1},@var{minval1},@var{maxval1},@var{var2},@var{minval2},@var{maxval2})
3657 @code{explicit(@var{fcn},@var{var},@var{minval},@var{maxval})}は
3658 @var{minval}から@var{maxval}まで値を取る変数@var{var}を伴う
3659 陽関数@var{fcn}をプロットします。
3661 このオブジェクトは以下の@i{graphic options}に影響されます:
3663 @code{adapt_depth}, @code{line_width}, @code{line_type}, @code{key},
3664 @code{filled_func}, @code{fill_color}, @code{color}.
3670 (%i2) draw2d(line_width = 3,
3672 explicit(x^2,x,-3,3) )$
3673 (%i3) draw2d(fill_color = brown,
3675 explicit(x^2,x,-3,3) )$
3680 @code{explicit(@var{fcn}, @var{var1}, @var{minval1}, @var{maxval1}, @var{var2},
3681 @var{minval2}, @var{maxval2})}は
3682 @var{minval1}から @var{maxval1}まで値を取る変数 @var{var1}と
3683 @var{minval2}から @var{maxval2}まで値を取る変数 @var{var2}を伴う
3684 陽関数 @var{fcn}をプロットします。
3686 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます: @code{xu_grid},
3687 @code{yv_grid}, @code{line_type}, @code{line_width}, @code{key}, @code{enhanced3d}, @code{color}.
3693 (%i2) draw3d(key = "Gauss",
3695 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
3699 explicit(x+y,x,-5,5,y,-5,5),
3700 surface_hide = true)$
3703 埋められた関数に関しては@code{filled_func}も参照してください。
3706 @category{Package draw}
3712 @deffn {グラフィックオブジェクト} image (@var{im},@var{x0},@var{y0},@var{width},@var{height})
3717 @code{image (@var{im},@var{x0},@var{y0},@var{width},@var{height})}は
3719 頂点@code{(@var{x0},@var{y0})}から@code{(x0+@var{width},y0+@var{height})}までの長方形領域に
3720 イメージ@var{im}をプロットします。
3721 引数@var{im}は実数の行列、長さ3のベクトルの行列もしくは@var{picture}オブジェクトでなければいけません。
3723 もし@var{im}が実数の行列か@var{levels picture}オブジェクトなら、
3725 -36から+36に広がる成分を持つ長さ3のベクトルである
3726 グラフィックオプション@code{palette}に従って解釈されます;
3727 それぞれの値はレベルをそれぞれ赤、緑、青色にマップする公式のインデックスです。
3731 6: x^4 7: sqrt(x) 8: sqrt(sqrt(x))
3732 9: sin(90x) 10: cos(90x) 11: |x-0.5|
3733 12: (2x-1)^2 13: sin(180x) 14: |cos(180x)|
3734 15: sin(360x) 16: cos(360x) 17: |sin(360x)|
3735 18: |cos(360x)| 19: |sin(720x)| 20: |cos(720x)|
3736 21: 3x 22: 3x-1 23: 3x-2
3737 24: |3x-1| 25: |3x-2| 26: (3x-1)/2
3738 27: (3x-2)/2 28: |(3x-1)/2| 29: |(3x-2)/2|
3739 30: x/0.32-0.78125 31: 2*x-0.84
3740 32: 4x;1;-2x+1.84;x/0.08-11.5
3741 33: |2*x - 0.5| 34: 2*x 35: 2*x - 0.5
3746 @code{palette = gray}と@code{palette = color}は
3748 @code{palette = [3,3,3]}と@code{palette = [7,5,15]}へのショートカットです。
3750 もし@var{im}が長さ3のベクトルの行列か@var{rgb picture}オブジェクトなら、
3751 それらは赤、緑、青の色成分として解釈されます。
3755 もし@var{im}が実数の行列なら、ピクセル値は
3756 グラフィックオプション@code{palette}に従って解釈されます。
3761 makelist(makelist(random(200),i,1,30),i,1,30))$
3762 (%i3) /* palette = color, default */
3763 draw2d(image(im,0,0,30,30))$
3764 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
3765 (%i5) draw2d(palette = [15,20,-4],
3767 image(im,0,0,30,30))$
3770 @code{colorbox}も参照してください。
3772 もし@var{im}が長さ3のベクトルの行列なら、
3773 それらは赤、緑、青の色成分として解釈されます。
3779 makelist([random(300),
3781 random(300)],i,1,30),i,1,30))$
3782 (%i3) draw2d(image(im,0,0,30,30))$
3785 パッケージ@code{draw}は自動的にパッケージ@code{picture}をロードします。
3786 この例では、レベルピクチャオブジェクトは手動で組み立てられ、描画されます。
3789 (%i2) im: make_level_picture([45,87,2,134,204,16],3,2);
3790 (%o2) picture(level, 3, 2, @{Array: #(45 87 2 134 204 16)@})
3791 (%i3) /* default color palette */
3792 draw2d(image(im,0,0,30,30))$
3793 (%i4) /* gray palette */
3794 draw2d(palette = gray,
3795 image(im,0,0,30,30))$
3798 xpmファイルが読み込まれ、描写されます。
3801 (%i2) im: read_xpm("myfile.xpm")$
3802 (%i3) draw2d(image(im,0,0,10,7))$
3805 @code{make_level_picture}, @code{make_rgb_picture}, @code{read_xpm}も参照してください。
3807 @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw/image}@*
3811 @category{Package draw}
3816 @deffn {グラフィックオブジェクト} implicit (@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax})
3817 @deffnx {グラフィックオブジェクト} implicit (@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax},@var{z},@var{zmin},@var{zmax})
3822 @code{implicit(@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax})}は
3823 @var{xmin}から@var{xmax}までの値を取る変数@var{x}と
3824 @var{ymin}から@var{ymax}までの値を取る変数@var{y}を伴う
3825 @var{fcn}で定義された陰関数をプロットします。
3827 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
3829 @code{ip_grid_in}, @code{line_width}, @code{line_type}, @code{key},
3836 (%i2) draw2d(terminal = eps,
3839 key = "y^2=x^3-2*x+1",
3840 implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
3842 key = "x^3+y^3 = 3*x*y^2-x-1",
3843 implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4),
3844 title = "Two implicit functions" )$
3849 @code{implicit (@var{fcn},@var{x},@var{xmin},@var{xmax}, @var{y},@var{ymin},@var{ymax}, @var{z},@var{zmin},@var{zmax})}は
3850 @var{xmin}から@var{xmax}までの値を取る変数@var{x}と
3851 @var{ymin}から@var{ymax}までの値を取る変数@var{y}と
3852 @var{zmin}から@var{zmax}までの値を取る変数@var{z}を伴う
3853 @var{fcn}で定義された陰表面をプロットします。
3854 このオブジェクトは@i{マーチングキューブアルゴリズム}を実装します。
3856 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
3858 @code{y_voxel}, @code{z_voxel}, @code{line_width}, @code{line_type}, @code{key} , @code{color}.
3866 implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
3867 x,-1,1,y,-1.2,2.3,z,-1,1),
3872 @category{Package draw}
3877 @deffn {グラフィックオブジェクト} label ([@var{string},@var{x},@var{y}],...)
3878 @deffnx {グラフィックオブジェクト} label ([@var{string},@var{x},@var{y},@var{z}],...)
3881 色付けられたラベルはGnuplot 4.3でだけ機能します。
3882 これはパッケージ@code{draw}に関して既知のバグです。
3884 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
3885 @code{label_alignment},
3886 @code{label_orientation}, @code{color}.
3890 @code{label([@var{string},@var{x},@var{y}])}は
3891 点@code{[@var{x},@var{y}]}に@var{string}を書きます。
3898 (%i2) draw2d(yrange = [0.1,1.4],
3900 label(["Label in red",0,0.3]),
3902 label(["Label in blue",0,0.6]),
3903 color = "light-blue",
3904 label(["Label in light-blue",0,0.9],
3905 ["Another light-blue",0,1.2]) )$
3910 @code{label([@var{string},@var{x},@var{y},@var{z}])}は、
3911 点@code{[@var{x},@var{y},@var{z}]}に@var{string}を書きます。
3917 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
3919 label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
3921 label(["DOWN 1",2,0,-3]) )$
3925 @category{Package draw}
3930 @deffn {グラフィックオブジェクト} mesh (@var{mat},@var{x0},@var{y0},@var{width},@var{height})
3931 3D空間内に行列@var{mat}を描画します。
3932 @var{z}値は@var{mat}から取られます。
3933 横座標範囲は@var{x0}から@math{@var{x0} + @var{width}}までを取り、
3934 座標は@var{y0}から@math{@var{y0} + @var{height}}までを取ります。
3936 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
3938 @code{line_width}, @code{key}, @code{enhanced3d}, @code{color}.
3941 @code{true}と@code{false}以外の値の@code{enhanced3d}値を無視します。
3949 makelist(makelist(random(10.0),k,1,30),i,1,20)) $
3955 surface_hide = true);
3959 @category{Package draw}
3964 @deffn {グラフィックオブジェクト} parametric (@var{xfun},@var{yfun},@var{par},@var{parmin},@var{parmax})
3965 @deffnx {グラフィックオブジェクト} parametric (@var{xfun},@var{yfun},@var{zfun},@var{par},@var{parmin},@var{parmax})
3966 2Dおよび3Dにてパラメトリック関数を描画します。
3968 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
3970 @code{line_width}, @code{line_type}, @code{key}, @code{color} and @code{enhanced3d}.
3974 コマンド @code{parametric(@var{xfun}, @var{yfun}, @var{par}, @var{parmin},
3976 @var{parmin}から@var{parmax}まで値を取るパラメータ@var{par}を伴う
3977 パラメトリック関数@code{[@var{xfun}, @var{yfun}]}をプロットします。
3983 (%i2) draw2d(explicit(exp(x),x,-1,3),
3985 key = "This is the parametric one!!",
3986 parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
3991 @code{parametric (@var{xfun}, @var{yfun}, @var{zfun}, @var{par}, @var{parmin},
3993 @var{parmin}から@var{parmax}まで値を取るパラメータ@var{par}を伴う
3995 @code{[@var{xfun}, @var{yfun}, @var{zfun}]}をプロットします。
4001 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
4003 parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
4006 parametric(t^2,sin(t),2+t,t,0,2),
4007 surface_hide = true,
4008 title = "Surface & curves" )$
4012 @category{Package draw}
4019 @deffn {グラフィックオブジェクト} parametric_surface (@var{xfun}, @var{yfun}, @var{zfun}, @var{par1}, @var{par1min}, @var{par1max}, @var{par2}, @var{par2min}, @var{par2max})
4020 3Dにおいてパラメトリックな表面を描画します。
4024 コマンド @code{parametric_surface (@var{xfun}, @var{yfun}, @var{zfun},
4025 @var{par1}, @var{par1min}, @var{par1max}, @var{par2}, @var{par2min},
4027 @var{par1min}から @var{par1max}までを値として取るパラメータ @var{par1}と
4028 @var{par2min}から @var{par2max}までを値として取るパラメータ @var{par2}を伴う
4029 パラメトリックな表面 @code{[@var{xfun}, @var{yfun}, @var{zfun}]}を
4032 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4034 @code{yv_grid}, @code{line_type}, @code{line_width}, @code{key}, @code{enhanced3d}, @code{color}.
4040 (%i2) draw3d(title = "Sea shell",
4044 surface_hide = true,
4045 parametric_surface(0.5*u*cos(u)*(cos(v)+1),
4046 0.5*u*sin(u)*(cos(v)+1),
4047 u*sin(v) - ((u+3)/8*%pi)^2 - 20,
4048 u, 0, 13*%pi, v, -%pi, %pi) )$
4052 @category{Package draw}
4057 @deffn {グラフィックオブジェクト} points ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])
4058 @deffnx {グラフィックオブジェクト} points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])
4059 @deffnx {グラフィックオブジェクト} points ([@var{y1},@var{y2},...])
4060 @deffnx {グラフィックオブジェクト} points ([[@var{x1},@var{y1},@var{z1}], [@var{x2},@var{y2},@var{z2}],...])
4061 @deffnx {グラフィックオブジェクト} points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...], [@var{z1},@var{z2},...])
4062 @deffnx {グラフィックオブジェクト} points (@var{matrix})
4063 @deffnx {グラフィックオブジェクト} points (@var{1d_y_array})
4064 @deffnx {グラフィックオブジェクト} points (@var{1d_x_array}, @var{1d_y_array})
4065 @deffnx {グラフィックオブジェクト} points (@var{1d_x_array}, @var{1d_y_array}, @var{1d_z_array})
4066 @deffnx {グラフィックオブジェクト} points (@var{2d_xy_array})
4067 @deffnx {グラフィックオブジェクト} points (@var{2d_xyz_array})
4071 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4073 @code{point_type}, @code{points_joined}, @code{line_width}, @code{key},
4074 @code{line_type}, @code{color}.
4075 3Dモードでは、@code{enhanced3d}の影響も受けます。
4079 @code{points ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])}や
4080 @code{points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])}は
4081 点@code{[x1,y1]}, @code{[x2,y2]},などをプロットします。
4083 それらは連続する正の整数に設定されます。
4085 @code{points ([@var{y1},@var{y2},...])}は、点@code{[1,@var{y1}]}, @code{[2,@var{y2}]}などを描画します。
4086 もし@var{matrix}が2列または2行行列なら、
4087 @code{points (@var{matrix})}は関連した点を描画します。
4088 もし@var{matrix}が1列または1行行列なら、
4091 もし@var{1d_y_array}が数の1Dのlisp配列なら、
4092 @code{points (@var{1d_y_array})}は
4093 横座標を連続する正の整数に設定してそれらをプロットします。
4094 @code{points (@var{1d_x_array}, @var{1d_y_array})}は
4095 引数として渡された2つの配列から取られた座標を持つ点をプロットします。
4096 もし@var{2d_xy_array}が2列の2D配列なら、
4097 @code{points (@var{2d_xy_array})}は平面上に対応する点をプロットします。
4101 @code{points}への2種類の引数、ペアのリストと分離した座標の2つのリスト。
4105 key = "Small points",
4106 points(makelist([random(20),random(50)],k,1,10)),
4107 point_type = circle,
4109 points_joined = true,
4110 key = "Great points",
4111 points(makelist(k,k,1,20),makelist(random(30),k,1,20)),
4112 point_type = filled_down_triangle,
4113 key = "Automatic abscissas",
4122 points_joined = impulses,
4125 points(makelist([random(20),random(50)],k,1,10)))$
4131 (%i2) a: make_array (flonum, 100) $
4132 (%i3) for i:0 thru 99 do a[i]: random(1.0) $
4133 (%i4) draw2d(points(a)) $
4139 (%i2) x: make_array (flonum, 100) $
4140 (%i3) y: make_array (fixnum, 100) $
4141 (%i4) for i:0 thru 99 do (
4143 y[i]: random(10) ) $
4144 (%i5) draw2d(points(x, y)) $
4150 (%i2) xy: make_array(flonum, 100, 2) $
4151 (%i3) for i:0 thru 99 do (
4152 xy[i, 0]: float(i/100),
4153 xy[i, 1]: random(10) ) $
4154 (%i4) draw2d(points(xy)) $
4157 関数@code{read_array}で埋められた配列の描画。
4160 (%i2) a: make_array(flonum,100) $
4161 (%i3) read_array (file_search ("pidigits.data"), a) $
4162 (%i4) draw2d(points(a)) $
4167 @code{points([[@var{x1}, @var{y1}, @var{z1}], [@var{x2}, @var{y2}, @var{z2}],
4169 @code{points([@var{x1}, @var{x2}, ...], [@var{y1}, @var{y2}, ...],
4170 [@var{z1}, @var{z2}, ...])}は
4171 点@code{[@var{x1}, @var{y1}, @var{z1}]}, @code{[@var{x2}, @var{y2}, @var{z2}]}などをプロットします。
4172 もし @var{matrix}が3列または3行行列なら、
4173 @code{points (@var{matrix})}は関連した点を描画します。
4176 @code{points (@var{1d_x_array}, @var{1d_y_array}, @var{1d_z_array})}は
4178 もし@var{2d_xyz_array}が3列または3行を持つ2D配列なら、
4179 @code{points (@var{2d_xyz_array})}は対応する点をプロットします。
4186 (%i2) load (numericalio)$
4187 (%i3) s2 : read_matrix (file_search ("wind.data"))$
4188 (%i4) draw3d(title = "Daily average wind speeds",
4190 points(args(submatrix (s2, 4, 5))) )$
4196 (%i2) load (numericalio)$
4197 (%i3) s2 : read_matrix (file_search ("wind.data"))$
4199 title = "Daily average wind speeds. Two data sets",
4201 key = "Sample from stations 1, 2 and 3",
4202 points(args(submatrix (s2, 4, 5))),
4204 key = "Sample from stations 1, 4 and 5",
4205 points(args(submatrix (s2, 2, 3))) )$
4211 (%i2) x: make_array (fixnum, 10) $
4212 (%i3) y: make_array (fixnum, 10) $
4213 (%i4) z: make_array (fixnum, 10) $
4214 (%i5) for i:0 thru 9 do (
4217 z[i]: random(10) ) $
4218 (%i6) draw3d(points(x,y,z)) $
4224 (%i2) xyz: make_array(fixnum, 10, 3) $
4225 (%i3) for i:0 thru 9 do (
4226 xyz[i, 0]: random(10),
4227 xyz[i, 1]: random(10),
4228 xyz[i, 2]: random(10) ) $
4231 points_joined = true,
4238 (%i2) pts: makelist([t,t^2,cos(t)], t, 0, 15)$
4239 (%i3) col_num: makelist(k, k, 1, length(pts))$
4241 enhanced3d = ['part(col_num,k),k],
4243 point_type = filled_circle,
4248 @category{Package draw}
4254 @deffn {グラフィックオブジェクト} polar (@var{radius},@var{ang},@var{minang},@var{maxang})
4255 極座標で定義された2D関数を描画します。
4259 @code{polar (@var{radius},@var{ang},@var{minang},@var{maxang})}は
4260 @var{minang}から@var{maxang}まで値を取る変数@var{ang}を伴う
4262 @code{@var{radius}(@var{ang})}
4265 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4267 @code{line_width}, @code{line_type}, @code{key}, @code{color}.
4273 (%i2) draw2d(user_preamble = "set grid polar",
4279 title = "Hyperbolic Spiral",
4280 polar(10/theta,theta,1,10*%pi) )$
4284 @category{Package draw}
4290 @deffn {グラフィックオブジェクト} polygon ([[@var{x1}, @var{y1}], [@var{x2}, @var{y2}], @dots{}])
4291 @deffnx {グラフィックオブジェクト} polygon ([@var{x1}, @var{x2}, @dots{}], [@var{y1}, @var{y2}, @dots{}])
4296 コマンド @code{polygon ([[@var{x1}, @var{y1}], [@var{x2}, @var{y2}],...])}や
4297 @code{polygon ([@var{x1}, @var{x2},...], [@var{y1}, @var{y2},...])}は
4298 頂点@code{[@var{x1}, @var{y1}]}, @code{[@var{x2}, @var{y2}]}などを持つポリゴンを
4302 @i{グラフィックオプション}の影響を受けます:
4304 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
4305 @code{line_type}, @code{color}.
4311 (%i2) draw2d(color = "#e245f0",
4313 polygon([[3,2],[7,2],[5,5]]),
4315 fill_color = yellow,
4316 polygon([[5,2],[9,2],[7,5]]) )$
4320 @category{Package draw}
4326 @deffn {グラフィックオブジェクト} quadrilateral (@var{point_1}, @var{point_2}, @var{point_3}, @var{point_4})
4331 @code{quadrilateral ([@var{x1}, @var{y1}], [@var{x2}, @var{y2}],
4332 [@var{x3}, @var{y3}], [@var{x4}, @var{y4}])}は
4333 頂点@code{[@var{x1}, @var{y1}]}, @code{[@var{x2}, @var{y2}]},
4334 @code{[@var{x3}, @var{y3}]}, @code{[@var{x4}, @var{y4}]}を持つ四辺形を描画します。
4336 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:@*
4337 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width},
4338 @code{key}, @code{xaxis_secondary}, @code{yaxis_secondary}, @code{line_type},
4339 @code{transform}, @code{color}.
4346 quadrilateral([1,1],[2,2],[3,-1],[2,-2]))$
4351 @code{quadrilateral([@var{x1}, @var{y1}, @var{z1}], [@var{x2}, @var{y2},
4352 @var{z2}], [@var{x3}, @var{y3}, @var{z3}], [@var{x4}, @var{y4}, @var{z4}])}は
4353 頂点@code{[@var{x1}, @var{y1}, @var{z1}]}, @code{[@var{x2}, @var{y2}, @var{z2}]},
4354 @code{[@var{x3}, @var{y3}, @var{z3}]}, @code{[@var{x4}, @var{y4}, @var{z4}]}を持つ
4357 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます: @code{line_type},
4358 @code{line_width}, @code{color}, @code{key}, @code{enhanced3d}, @code{transform}.
4361 @category{Package draw}
4365 @deffn {グラフィックオブジェクト} rectangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}])
4370 @code{rectangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}])}は、
4372 @code{[@var{x1},@var{y1}]}と@code{[@var{x2},@var{y2}]}
4376 @i{グラフィックオプション}の影響を受けます: @code{transparent},
4377 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
4378 @code{line_type}, @code{color}.
4384 (%i2) draw2d(fill_color = red,
4387 transparent = false,
4389 rectangle([-2,-2],[8,-1]), /* opposite vertices */
4393 rectangle([9,4],[2,-1.5]),
4395 yrange = [-3,4.5] )$
4399 @category{Package draw}
4408 @deffn {グラフィックオブジェクト} region (@var{expr},@var{var1},@var{minval1},@var{maxval1},@var{var2},@var{minval2},@var{maxval2})
4409 平面上に不等式で定義された領域を描画します。
4412 @var{expr}は不等式とブーリアン演算子@code{and}, @code{or}, @code{not}で形成された式です。
4414 @math{[@var{minval1}, @var{maxval1}]}と@math{[@var{minval2}, @var{maxval2}]}で
4417 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます: @code{fill_color},
4418 @code{key}, @code{x_voxel}, @code{y_voxel}.
4427 region(x^2+y^2<1 and x^2+y^2 > 1/2,
4428 x, -1.5, 1.5, y, -1.5, 1.5));
4435 @deffn {グラフィックオブジェクト} spherical (@var{radius}, @var{azi}, @var{minazi}, @var{maxazi}, @var{zen}, @var{minzen}, @var{maxzen})
4436 球座標で定義された3D関数を描画します。
4440 @code{spherical(@var{radius}, @var{azi}, @var{minazi}, @var{maxazi}, @var{zen},
4441 @var{minzen}, @var{maxzen})}は
4442 @var{minazi}から @var{maxazi}まで値を取る @i{方位角} @var{azi}と
4443 @var{minzen}から @var{maxzen}まで値を取る @i{天頂角} @var{zen}を伴う
4444 球座標で定義された関数 @code{@var{radius}(@var{azi}, @var{zen})}
4448 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4450 @code{yv_grid}, @code{line_type}, @code{key}, @code{color}.
4456 (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
4460 @category{Package draw}
4467 @deffn {グラフィックオブジェクト} triangle (@var{point_1}, @var{point_2}, @var{point_3})
4472 @code{triangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}], [@var{x3},@var{y3}])}は、頂点@code{[@var{x1},@var{y1}]}, @code{[@var{x2},@var{y2}]}, @code{[@var{x3},@var{y3}]}を持つ三角形を描画します。
4475 以下の@i{グラフィックオプション}に影響されます:@*
4476 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width},
4477 @code{key}, @code{xaxis_secondary}, @code{yaxis_secondary}, @code{line_type},
4478 @code{transform}, @code{color}.
4485 triangle([1,1],[2,2],[3,-1]))$
4490 @code{triangle ([@var{x1},@var{y1},@var{z1}], [@var{x2},@var{y2},@var{z2}], [@var{x3},@var{y3},@var{z3}])}は
4491 頂点@code{[@var{x1},@var{y1},@var{z1}]}, @code{[@var{x2},@var{y2},@var{z2}]},
4492 @code{[@var{x3},@var{y3},@var{z3}]}を持つ三角形を描画します。
4494 このオブジェクトは以下の@i{グラフィックオプション}に影響されます:
4495 @code{line_type}, @code{line_width}, @code{color}, @code{key}, @code{enhanced3d}, @code{transform}.
4498 @category{Package draw}
4503 @deffn {グラフィックオブジェクト} tube (@var{xfun},@var{yfun},@var{zfun},@var{rfun},@var{p},@var{pmin},@var{pmax})
4509 @code{[@var{xfun},@var{yfun},@var{zfun}]}は
4510 @var{pmin}から@var{pmax}まで値を取るパラメータ@var{p}を伴う
4512 パラメトリックな曲線上に中心を持ち、曲線と垂直な半径@var{rfun}の円が置かれます。
4514 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4516 @code{yv_grid}, @code{line_type}, @code{line_width}, @code{key}, @code{enhanced3d},
4517 @code{color}, @code{tube_extremes}.
4526 tube(cos(a), a, 0, cos(a/10)^2,
4531 @category{Package draw}
4538 @deffn {グラフィックオブジェクト} vector ([@var{x},@var{y}], [@var{dx},@var{dy}])
4539 @deffnx {グラフィックオブジェクト} vector ([@var{x},@var{y},@var{z}], [@var{dx},@var{dy},@var{dz}])
4540 2Dおよび3D内でベクトルを描画します。
4542 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4544 @code{head_length}, @code{head_angle}, @code{head_type}, @code{line_width},
4545 @code{line_type}, @code{key}, @code{color}.
4549 @code{vector([@var{x},@var{y}], [@var{dx},@var{dy}])}は
4550 @code{[@var{x},@var{y}]}を原点とするベクトル@code{[@var{dx},@var{dy}]}を
4557 (%i2) draw2d(xrange = [0,12],
4560 vector([0,1],[5,5]), /* default type */
4562 vector([3,1],[5,5]),
4564 head_type = 'nofilled,
4566 vector([6,1],[5,5]))$
4571 @code{vector([@var{x},@var{y},@var{z}], [@var{dx},@var{dy},@var{dz}])}は
4572 @code{[@var{x},@var{y},@var{z}]}を原点とする
4573 ベクトル@code{[@var{dx},@var{dy},@var{dz}]}をプロットします。
4579 (%i2) draw3d(color = cyan,
4580 vector([0,0,0],[1,1,1]/sqrt(3)),
4581 vector([0,0,0],[1,-1,0]/sqrt(2)),
4582 vector([0,0,0],[1,1,-2]/sqrt(6)) )$
4586 @category{Package draw}
4592 @node Functions and Variables for pictures, Functions and Variables for worldmap, Functions and Variables for draw, draw
4593 @section Functions and Variables for pictures
4595 @deffn {関数} get_pixel (@var{pic},@var{x},@var{y})
4598 0からそれぞれ@code{width-1}と@code{height-1}までの範囲を取ります。
4602 @category{Package draw}
4608 @deffn {関数} make_level_picture (@var{data})
4609 @deffnx {関数} make_level_picture (@var{data},@var{width},@var{height})
4610 レベル@var{picture}オブジェクトを返します。
4611 @code{make_level_picture (@var{data})}は
4613 @var{picture}オブジェクトを作ります。
4614 @code{make_level_picture (@var{data},@var{width},@var{height})}は
4616 この場合、@var{width}と@var{height}両方を与えなければいけません。
4618 返された@var{picture}オブジェクトは以下の4つの部分を含みます:
4621 @item シンボル @code{level}
4624 @item 0から255までの範囲のピクセルデータを持つ整数配列
4625 引数@var{data}は0から255までの数のみを含まなければいけません;
4626 負の数は0に置き換えられ、255よりも大きな数は255に設定されます。
4634 (%i2) make_level_picture(matrix([3,2,5],[7,-9,3000]));
4635 (%o2) picture(level, 3, 2, @{Array: #(3 2 5 7 0 255)@})
4641 (%i2) make_level_picture([-2,0,54,%pi],2,2);
4642 (%o2) picture(level, 2, 2, @{Array: #(0 0 54 3)@})
4646 @category{Package draw}
4651 @deffn {関数} make_rgb_picture (@var{redlevel},@var{greenlevel},@var{bluelevel})
4652 rgb色付けされた@var{picture}オブジェクトを返します。
4653 3つ引数すべては赤、緑、青のレベルを持つレベルピクチャでなければいけません;
4655 返された@var{picture}オブジェクトは以下の4つの部分を含みます:
4658 @item シンボル @code{rgb}
4661 @item 0から255までの範囲のピクセルデータを持つ長さ@var{3*width*height}の整数配列。
4662 それぞれのピクセルは。3つの連続する数 (赤、緑、青)で表現されます。
4669 (%i2) red: make_level_picture(matrix([3,2],[7,260]));
4670 (%o2) picture(level, 2, 2, @{Array: #(3 2 7 255)@})
4671 (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
4672 (%o3) picture(level, 2, 2, @{Array: #(54 23 73 0)@})
4673 (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
4674 (%o4) picture(level, 2, 2, @{Array: #(123 82 45 33)@})
4675 (%i5) make_rgb_picture(red,green,blue);
4676 (%o5) picture(rgb, 2, 2,
4677 @{Array: #(3 54 123 2 23 82 7 73 45 255 0 33)@})
4681 @category{Package draw}
4686 @deffn {関数} negative_picture (@var{pic})
4687 (@var{level}または@var{rgb})ピクチャの反転を返します。
4690 @category{Package draw}
4695 @deffn {関数} picture_equalp (@var{x},@var{y})
4696 等しいピクチャの場合@code{true}を、そうでなければ@code{false}
4700 @category{Package draw}
4701 @category{Predicate functions}
4706 @deffn {関数} picturep (@var{x})
4708 @code{true}を、そうでなければ@code{false}を返します。
4711 @category{Package draw}
4712 @category{Predicate functions}
4717 @deffn {関数} read_xpm (@var{xpm_file})
4718 xpm形式のファイルを読み、ピクチャオブジェクトを返します。
4721 @category{Package draw}
4728 @deffn {関数} rgb2level (@var{pic})
4730 赤、緑、青チャンネルを平均することで@var{level}の1つに変換します。
4733 @category{Package draw}
4741 @deffn {関数} take_channel (@var{im},@var{color})
4742 もし引数@var{color}が@code{red}, @code{green}または@code{blue}なら、
4743 関数@code{take_channel}は
4744 ピクチャ@var{im}の対応する色チャンネルを返します。
4749 (%i2) red: make_level_picture(matrix([3,2],[7,260]));
4750 (%o2) picture(level, 2, 2, @{Array: #(3 2 7 255)@})
4751 (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
4752 (%o3) picture(level, 2, 2, @{Array: #(54 23 73 0)@})
4753 (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
4754 (%o4) picture(level, 2, 2, @{Array: #(123 82 45 33)@})
4755 (%i5) make_rgb_picture(red,green,blue);
4756 (%o5) picture(rgb, 2, 2,
4757 @{Array: #(3 54 123 2 23 82 7 73 45 255 0 33)@})
4758 (%i6) take_channel(%,'green); /* simple quote!!! */
4759 (%o6) picture(level, 2, 2, @{Array: #(54 23 73 0)@})
4763 @category{Package draw}
4769 @node Functions and Variables for worldmap, , Functions and Variables for pictures, draw
4770 @section Functions and Variables for worldmap
4772 このパッケージは自動的にパッケージ@code{draw}をロードします。
4775 @subsection Variable and Functions
4777 @defvr {グローバル変数} boundaries_array
4778 デフォルト値: @code{false}
4780 @code{boundaries_array}は
4781 グラフィックオプション@code{geomap}が境界座標を探すところです。
4784 @code{boundaries_array}のそれぞれの成分は
4786 多角形のセグメントかマップ境界の座標です。
4788 @code{geomap}も参照してください。
4791 @category{Package draw}
4797 @deffn {関数} numbered_boundaries (@var{nlist})
4798 その数(@code{boundaries_array}座標)でラベルされた
4799 多角形セグメント(境界)のリストを描画します。
4800 これは新しい地理的なものを作る時に非常に役立ちます。
4804 @code{boundaries_array}内の成分数で境界をラベルされたヨーロッパの地図
4806 (%i1) load(worldmap)$
4807 (%i2) european_borders:
4808 region_boundaries(-31.81,74.92,49.84,32.06)$
4809 (%i3) numbered_boundaries(european_borders)$
4813 @category{Package draw}
4819 @deffn {関数} make_poly_continent (@var{continent_name})
4820 @deffnx {関数} make_poly_continent (@var{country_list})
4821 色付けられた大陸や国のリストを描画するのに必要なポリゴンを作ります。
4826 (%i1) load(worldmap)$
4827 (%i2) /* A continent */
4828 make_poly_continent(Africa)$
4829 (%i3) apply(draw2d, %)$
4830 (%i4) /* A list of countries */
4831 make_poly_continent([Germany,Denmark,Poland])$
4832 (%i5) apply(draw2d, %)$
4836 @category{Package draw}
4843 @deffn {関数} make_poly_country (@var{country_name})
4844 色付けられた国を描画するのに必要なポリゴンを作ります。
4845 もし島が存在するなら、1つの国はただ1つ以上のポリゴンで定義され得ます。
4850 (%i1) load(worldmap)$
4851 (%i2) make_poly_country(India)$
4852 (%i3) apply(draw2d, %)$
4856 @category{Package draw}
4862 @deffn {関数} make_polygon (@var{nlist})
4863 境界添字から@code{polygon}オブジェクトを返します。
4864 引数@var{nlist}は@code{boundaries_array}の成分のリストです。
4868 ブータンは境界番号171, 173, 1143で定義されます。
4869 だから、@code{make_polygon([171,173,1143])}は
4870 appends arrays of coordinates
4871 座標@code{boundaries_array[171]}, @code{boundaries_array[173]},
4872 @code{boundaries_array[1143]}の配列を付加し、
4873 @code{draw}でプロットされるのに適した@code{polygon}オブジェクトを返します.
4875 任意の連続する配列が端で共通の2つの座標を持つという意味で配列は互換性がなければいけません。
4877 @code{boundaries_array[171]}の最初の2つの成分は
4878 @code{boundaries_array[173]}の最後の2つの座標と等しく、
4879 @code{boundaries_array[173]}の最初の2つは
4880 @code{boundaries_array[1143]}の最初の2つに等しいです;
4881 結論として、境界番号171, 173, 1143は (この順で)互換性があり、色付けられたポリゴンは描画できます。
4883 (%i1) load(worldmap)$
4885 (%o2) [[171, 173, 1143]]
4886 (%i3) boundaries_array[171];
4888 #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
4889 88.917877 27.321039)@}
4890 (%i4) boundaries_array[173];
4892 #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
4893 91.631348 27.536381 91.765533 27.45694 91.775253 27.4161
4894 92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
4895 92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
4896 92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
4897 91.916924 26.85416 91.8358 26.863331 91.712479 26.799999
4898 91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
4899 91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
4900 90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
4901 89.98996 26.73583 89.841919 26.70138 89.618301 26.72694
4902 89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
4903 89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
4904 88.867737 27.080549 88.843307 27.108601 88.750549
4906 (%i5) boundaries_array[1143];
4908 #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805
4909 91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
4910 91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
4911 90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
4912 89.83165 28.24888 89.58609 28.139999 89.35997 27.87166
4913 89.225517 27.795 89.125793 27.56749 88.971077 27.47361
4914 88.917877 27.321039)@}
4915 (%i6) Bhutan_polygon: make_polygon([171,173,1143])$
4916 (%i7) draw2d(Bhutan_polygon)$
4920 @category{Package draw}
4925 @deffn {関数} region_boundaries (@var{x1},@var{y1},@var{x2},@var{y2})
4926 頂点(@var{x1},@var{y1}) -左上- と(@var{x2},@var{y2}) -右下-の長方形に完全に含まれる
4927 グローバル変数@code{boundaries_array}の多角形セグメント検出します。
4932 南イタリアをプロットするためのセグメントの数を返します。
4934 (%i1) load(worldmap)$
4935 (%i2) region_boundaries(10.4,41.5,20.7,35.4);
4936 (%o2) [1846, 1863, 1864, 1881, 1888, 1894]
4937 (%i3) draw2d(geomap(%))$
4941 @category{Package draw}
4947 @deffn {関数} region_boundaries_plus (@var{x1},@var{y1},@var{x2},@var{y2})
4948 頂点(@var{x1},@var{y1}) -左上- と(@var{x2},@var{y2}) -右下-で定義された長方形に少なくとも1つ頂点を含まれる
4949 グローバル変数@code{boundaries_array}の多角形セグメント検出します。
4955 (%i1) load(worldmap)$
4956 (%i2) region_boundaries_plus(10.4,41.5,20.7,35.4);
4957 (%o2) [1060, 1062, 1076, 1835, 1839, 1844, 1846, 1858,
4958 1861, 1863, 1864, 1871, 1881, 1888, 1894, 1897]
4959 (%i3) draw2d(geomap(%))$
4963 @category{Package draw}
4968 @subsection Graphic objects
4971 @deffn {グラフィックオブジェクト} geomap (@var{numlist})
4972 @deffnx {グラフィックオブジェクト} geomap (@var{numlist},@var{3Dprojection})
4977 この関数はグローバル変数@code{boundaries_array}と一緒に機能します。
4982 グローバル配列@code{boundaries_array}の成分を表す
4986 @code{boundaries_array}のそれぞれの成分は
4987 浮動小数点量の配列であり、多角形セグメントやマップ境界の座標です。
4989 @code{geomap (@var{numlist})}は
4990 引数を平坦化し、@code{boundaries_array}の中に関連した境界を描画します。
4992 このオブジェクトは以下の@i{グラフィックオプション}の影響を受けます:
4993 @code{line_width}, @code{line_type}, @code{color}.
5000 (%i2) /* Vertices of boundary #0: @{(1,1),(2,5),(4,3)@} */
5001 ( bnd0: make_array(flonum,6),
5002 bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0,
5003 bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$
5004 (%i3) /* Vertices of boundary #1: @{(4,3),(5,4),(6,4),(5,1)@} */
5005 ( bnd1: make_array(flonum,8),
5006 bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0,
5007 bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$
5008 (%i4) /* Vertices of boundary #2: @{(5,1), (3,0), (1,1)@} */
5009 ( bnd2: make_array(flonum,6),
5010 bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0,
5011 bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$
5012 (%i5) /* Vertices of boundary #3: @{(1,1), (4,3)@} */
5013 ( bnd3: make_array(flonum,4),
5014 bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$
5015 (%i6) /* Vertices of boundary #4: @{(4,3), (5,1)@} */
5016 ( bnd4: make_array(flonum,4),
5017 bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$
5018 (%i7) /* Pack all together in boundaries_array */
5019 ( boundaries_array: make_array(any,5),
5020 boundaries_array[0]: bnd0, boundaries_array[1]: bnd1,
5021 boundaries_array[2]: bnd2, boundaries_array[3]: bnd3,
5022 boundaries_array[4]: bnd4 )$
5023 (%i8) draw2d(geomap([0,1,2,3,4]))$
5026 補助バッケージ @code{worldmap}は
5027 グローバル変数 @code{boundaries_array}を
5030 これらのデータはパブリックドメインであり、
5031 @url{http://www-cger.nies.go.jp/@-grid-e/@-gridtxt/@-grid19.html}
5034 パッケージ@code{worldmap}は、国、大陸、海岸線の境界も
5035 @code{boundaries_array}の必要な成分を持つリストとして、
5037 (更に知るにはファイル@code{share/draw/worldmap.mac}を参照してください)
5038 パッケージ@code{draw}は自動的に@code{worldmap}をロードしません。
5041 (%i1) load(worldmap)$
5042 (%i2) c1: gr2d(geomap(Canada,United_States,
5044 (%i3) c2: gr2d(geomap(Africa))$
5045 (%i4) c3: gr2d(geomap(Oceania,China,Japan))$
5046 (%i5) c4: gr2d(geomap(France,Portugal,Spain,
5047 Morocco,Western_Sahara))$
5048 (%i6) draw(columns = 2,
5052 パッケージ@code{worldmap}は
5053 国をポリゴンとしてプロットする時にも役に立ちます。
5054 この場合、グラフィックオブジェクト@code{geomap}は
5055 もはや必要でなく、代わりに@code{polygon}オブジェクトが使われます。
5056 配列ではなくリストが現在使われているので、
5059 @code{make_poly_country}と@code{make_poly_continent}も
5062 (%i1) load(worldmap)$
5063 (%i2) mymap: append(
5064 [color = white], /* borders are white */
5065 [fill_color = red], make_poly_country(Bolivia),
5066 [fill_color = cyan], make_poly_country(Paraguay),
5067 [fill_color = green], make_poly_country(Colombia),
5068 [fill_color = blue], make_poly_country(Chile),
5069 [fill_color = "#23ab0f"], make_poly_country(Brazil),
5070 [fill_color = goldenrod], make_poly_country(Argentina),
5071 [fill_color = "midnight-blue"], make_poly_country(Uruguay))$
5072 (%i3) apply(draw2d, mymap)$
5078 @code{geomap (@var{numlist})}は地図境界を
5079 中心が(0,0,0)で半径1の球上に射影します。
5080 @code{geomap (@var{numlist},@var{3Dprojection})}を使うことで、
5087 @code{[spherical_projection,@var{x},@var{y},@var{z},@var{r}]}:
5089 中心(@var{x},@var{y},@var{z})、半径@var{r}の球上に
5093 (%i1) load(worldmap)$
5094 (%i2) draw3d(geomap(Australia), /* default projection */
5096 [spherical_projection,2,2,2,3]))$
5100 @code{[cylindrical_projection,@var{x},@var{y},@var{z},@var{r},@var{rc}]}:
5102 中心(@var{x},@var{y},@var{z})の半径@var{r}の地球の極を通る軸を持ち
5103 半径@var{rc}の円柱に再射影します。
5106 (%i1) load(worldmap)$
5107 (%i2) draw3d(geomap([America_coastlines,Eurasia_coastlines],
5108 [cylindrical_projection,2,2,2,3,4]))$
5112 @code{[conic_projection,@var{x},@var{y},@var{z},@var{r},@var{alpha}]}:
5114 中心(@var{x},@var{y},@var{z})の半径@var{r}の地球の極を通る軸を持ち
5120 (%i1) load(worldmap)$
5121 (%i2) draw3d(geomap(World_coastlines,
5122 [conic_projection,0,0,0,1,90]))$
5127 @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap}
5131 @category{Package draw}