diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex')
-rw-r--r-- | Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex | 882 |
1 files changed, 536 insertions, 346 deletions
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex index 26e1fdb5f63..aa8c5bd2346 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex @@ -36,21 +36,23 @@ \hypertarget{ketinit}{} \item[関数]Ketinit(options) \item[機能]\ketcindy を初期化する。平面図形ではDrawスロットに,空間図形ではInitialization スロットの冒頭に記述する必要がある。 -\item[説明]option 作業サブフォルダ,縦方向の倍率と描画領域を設定する。\\ -\phantom{option }通常は不要で,\verb|Ketinit()| だけでよい。\\ +\item[説明]option 作業サブフォルダ\\%,縦方向の倍率と描画領域を設定する。\\ +\phantom{option }通常は不要で,\verb|Ketinit()| だけでよい。 -【例】 - -\verb|Ketinit()| :サブフォルダ\verb|"fig"|,倍率1,描画領域 $-5 \leq x \leq 5 , -5 \leq y \leq 5$ - -\verb|Ketinit("")| : サブフォルダはcindyファイルと同じ - -\verb|Ketinit(2)| : 倍率2,描画領域 $-5 \leq x \leq 5 , -5 \leq y \leq 5$ +\vspace{\baselineskip} +\hypertarget{Initglist}{} +\item[関数]Initglist(), Setglist(), Addglist() +\item[機能]ketlibスロットで作られる描画データを描画リストに追加する。 +\item[説明]Implicitplot,Hatchdataなど実行時間のかかるコマンドをfiguresスロットにおくと,その都度実行されてしまう。それを避けるためketlibスロットにおいたときに用いる。 -\verb|Ketinit(2,[-2,3],[-2,4])| : 倍率2,描画領域 $-2 \leq x \leq 3 , -2 \leq y \leq 4$ +\begin{verbatim} + Initglist(); // ketlibスロットで + Implicitplot(''1'',fun,rng); + Setglist(); -\vspace{\baselineskip} -描画領域(TeXに出力する領域)は制御点SW(左下)とNE(右上)を対角とする矩形領域。描画領域を指定すると,制御点がなければその位置に作り,すでに存在する場合は何もしない。作成された制御点はドラッグして描画領域を変更することができる。倍率は,Setscaling(倍率)を実行するのと同じ。ただし,Cinderellaで作図した幾何要素に対しては無効。(\hyperlink{setscaling}{Setscaling()}の項参照) + Ketinit(); // figuresスロットで + Addglist(); +\end{verbatim} \vspace{\baselineskip} \hypertarget{setfiles}{} @@ -341,7 +343,7 @@ Deffun("f(x)",["regional y","if(x>1,y=1,if(x>-1,y=x,y=-1))","y"]); \item[関数]Fontsize(記号) \item[機能]フォントサイズを設定する \item[説明]次に Fontsize() を実行するまで有効\\ -記号は,"t" , "ss" , "f", "s" , "n" , "la","La", "LA", "h" , "H"\\ +記号は,"t" , "ss" , "f", "s" , "n" , "la","La", "LA", "h" , "H" 【例】作図ツールの「点を加える」で,A〜Gの点をとっておく。小さい方からいくつか表示する。 \begin{verbatim} @@ -382,6 +384,9 @@ Pointdata("4",D,["Size=4"]); \end{verbatim} %\hspace{10mm}\input{Fig/pointsize} + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \hypertarget{setarrow}{} \item[関数]Setarrow(size,angle,position,cut,segstyle) \item[機能]矢線の形状の設定をする。 @@ -466,8 +471,6 @@ Listplot([A,B]); Listplot("1",[[0,0],[2,2]]); \end{verbatim} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - \vspace{\baselineskip} \hypertarget{setunitlen}{} \item[関数]Setunitlen(文字列) @@ -479,8 +482,8 @@ Listplot("1",[[0,0],[2,2]]); \vspace{\baselineskip} \hypertarget{setwindow}{} -\item[関数]Setwindow() -\item[機能]出力する描画領域を設定する +\item[関数]Setwindow(xの範囲, yの範囲) +\item[機能]出力する描画領域を設定する。 \item[説明]出力する描画領域は,通常は2点SWとNEを対角とする矩形領域である。 この2点をドラッグすることによりビジュアルに描画領域を決められる。 @@ -489,11 +492,17 @@ Listplot("1",[[0,0],[2,2]]); また,表を作成したときは,表の範囲が出力範囲として優先される(Tabledata()を実行したとき)ので,表外に図を描いた場合は,最後にこの関数で出力範囲を指定して書き出す。 +\vspace{\baselineskip} +【例】\verb|Setwindow([-5,5],[-1,3]);| + +\vspace{\baselineskip} +\hspace{10mm}\includegraphics[bb=0.00 0.00 415.02 199.01,width=6cm]{Fig/setwindow.pdf} + \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} -\newpage +%\newpage %=========== 描画 ====================== \subsection{描画} \subsubsection{書式とオプション} @@ -709,7 +718,7 @@ Pointdata("1",[P,Q,R],["size=4"]); \vspace{\baselineskip} \hypertarget{putoncurve}{} -\item[関数]PutonCurve(点の名前, プロットデータ, options) +\item[関数]Putoncurve(点の名前, プロットデータ, options) \item[機能]曲線上に点を乗せる。 \item[説明]点が存在しない場合は新たに作る。すでにその点が存在する場合は,その点の$x$座標を使う。初期値の$x$座標の 初期設定は 0。 @@ -719,28 +728,28 @@ optionsは,$x$座標の範囲をリストで与える。 【例】アステロイド上の動点P をとる。 \begin{verbatim} Paramplot("1","[2*cos(t)^3,2*sin(t)^3]","t=[0,2*pi]"); -PutonCurve("P","gp1",[-1,1]); +Putoncurve("P","gp1",[-1,1]); \end{verbatim} 点Pがアステロイド上にでき,この点はドラッグするとアステロイド上を $-1 \leq x\leq 1$ の範囲で動かすことができる。ただし,-1,1の付近はy座標の判断の関係でぴったりはいかない。 - \begin{center} \input{Fig/putoncurve.tex} \end{center} + \begin{center} \scalebox{0.9}{\input{Fig/putoncurve.tex}} \end{center} -%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{putonline}{} -\item[関数]PutonLine(点名 , 座標1 ,座標2 ) +\item[関数]Putonline(点名 , 座標1 ,座標2 ) \item[機能]直線上に点を作る \item[説明]座標1,座標2を通る直線上に点名の点を作る。できた点は直線に対してインシデントとなる。 \vspace{\baselineskip} 【例】点A,\ Bを通る直線上に点Pをとる。 -\verb|PutonLine("P",A,B);| +\verb|Putonline("P",A,B);| \vspace{\baselineskip} \hypertarget{putonseg}{} -\item[関数]PutonSeg(点名 , 座標1 ,座標2 ) +\item[関数]Putonseg(点名 , 座標1 ,座標2 ) \item[機能]線分上に点を作る \item[説明]座標1,座標2を端点とする線分上に点名の点を作る。できた点は線分に対してインシデントとなる。指定した点がすでに存在する場合は動かさない。 @@ -749,13 +758,11 @@ PutonCurve("P","gp1",[-1,1]); 線分AB上に点Cをとる。 - \verb|PutonSeg("C",A,B);| + \verb|Putonseg("C",A,B);| 点(-1,0),(2,2)を通る線分上に点Cをとる。 - \verb|PutonSeg("C",[[-1,0],[2,2]]);| - -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \verb|Putonseg("C",[[-1,0],[2,2]]);| \vspace{\baselineskip} \hypertarget{reflectpoint}{} @@ -1248,7 +1255,8 @@ ptiは,各頂点に対応する複素数のリスト,ptが各頂点の座標 \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} -\newpage +%\newpage + % ====== 曲線 ============== \subsubsection{曲線} \begin{description} @@ -1271,7 +1279,7 @@ ptiは,各頂点に対応する複素数のリスト,ptが各頂点の座標 2次ベジェ曲線 -Bezier("1",[A,B],[C]); +\verb|Bezier("1",[A,B],[C]);| \vspace{20mm} @@ -1281,7 +1289,7 @@ Bezier("1",[A,B],[C]); 3次ベジェ曲線 -Bezier("2",[A,B],[C,D]); +\verb|Bezier("2",[A,B],[C,D]);| \vspace{20mm} @@ -1302,13 +1310,14 @@ Bezier("2",[A,B],[C,D]); %D,B,E を1直線上にとると,滑らかにつながる 節点を増やす。2次と3次。 -Bezier("3",[A,B,C],[[D],[E,F]]); +\verb|Bezier("3",[A,B,C],[[D],[E,F]]);| \vspace{20mm} -全て同じ次数の場合,次のようにしてもよい. +全て同じ次数の場合,次のようにしてもよい。 +\newpage -Bezier("4", [A,B,C,D], [E,F,G,H,K,L] ); +\verb|Bezier("4",[A,B,C,D],[E,F,G,H,K,L] ); | \begin{layer}{150}{0} \putnotese{20}{2}{\input{Fig/checkbe7}} @@ -1318,17 +1327,17 @@ Bezier("4", [A,B,C,D], [E,F,G,H,K,L] ); オプションの例 -Bezier("5",[A,B,C],[[D],[E,F]],["Num=3"]); +\verb|Bezier("5",[A,B,C],[[D],[E,F]],["Num=3"]);| \hspace{20mm}\input{Fig/checkbe5} -Bezier("6",[A,B,C],[[D],[E,F]],["Num=40","da"]); +\verb|Bezier("6",[A,B,C],[[D],[E,F]],["Num=40","da"]);| \hspace{20mm}\input{Fig/checkbe6} Numを(ベクトルとして)区間ごとに与えることもできる。 -Bezier("1", [A,B,C,D], [E,F,G,H,K,L] , [ "Num=[2,3,4]"]); +\verb|Bezier("1",[A,B,C,D],[E,F,G,H,K,L],["Num=[2,3,4]"]);| \hspace{10mm} \input{Fig/checkbe8} @@ -1344,22 +1353,22 @@ Bezier("1", [A,B,C,D], [E,F,G,H,K,L] , [ "Num=[2,3,4]"]); \vspace{\baselineskip} 【例】 +\verb|Beziersmooth("1",[A,B,C,D]);| + \begin{layer}{150}{0} -\putnotese{70}{25}{bz1} -\putnotese{40}{-5}{ \input{Fig/checksm1}} +\putnotese{70}{35}{bz1} +\putnotese{40}{5}{ \input{Fig/checksm1}} \end{layer} -Beziersmooth("1",[A,B,C,D]); - -\vspace{20mm} +\vspace{40mm} その後,節点や制御点を動かして,描きたいものにする。ただし,C2p は C1q と B を通る直線上しか動けない。C3p は C2q と C を通る直線上しか動けない。 \begin{layer}{150}{0} -\putnotese{70}{35}{bz1} -\putnotese{40}{10}{ \input{Fig/checksm2}} +\putnotese{70}{30}{bz1} +\putnotese{40}{05}{ \input{Fig/checksm2}} \end{layer} -\vspace{40mm} +\vspace{35mm} \vspace{\baselineskip} \hypertarget{beziersym}{} @@ -1368,23 +1377,30 @@ Beziersmooth("1",[A,B,C,D]); \item[説明]節点をはさむ制御点は節点に関し対称(片方は表示されず,動かせない)。 制御点は自動的に配置される。その後,節点や制御点を動かして描きたいものにする。 +\vspace{\baselineskip} 【例】 \begin{layer}{150}{0} -\putnotese{70}{20}{bz1} -\putnotese{40}{10}{ \input{Fig/checksy1}} -\putnotese{0}{5}{Beziersym("1",[A,B,C,D]);} -\putnotese{0}{15}{C2p と C3p は表示されない} +\putnotese{70}{27}{bz1} +\putnotese{40}{00}{ \input{Fig/checksy1}} +%\putnotese{0}{0}{Beziersym("1",[A,B,C,D]);} +%\putnotese{0}{15}{C2p と C3p は表示されない} \end{layer} -\vspace{50mm} +\verb|Beziersym("1",[A,B,C,D]);| + +C2p と C3p は表示されない + +\vspace{25mm} その後,節点や制御点を動かして,描きたいものにする。 C2p と C3p は表示されず,動かせない。 + \begin{center} \input{Fig/checksy2} \end{center} -\vspace{\baselineskip} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\vspace{\baselineskip} \hypertarget{mkbeziercrv}{} \item[関数]Mkbeziercrv(名前, [節点リスト,制御点リスト] のリスト,options ) \item[機能]複数のベジェ曲線を描く @@ -1395,9 +1411,8 @@ C2p と C3p は表示されず,動かせない。 \verb|Mkbeziercrv("5",[[[A,B,C],[[D],[E,F]]],[[G,H,K,L],[[M],[N,O],[P]]]]);| - \input{Fig/checkmc1} + \scalebox{0.95}{\input{Fig/checkmc1}} -%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mkbezierptcrv}{} \item[関数]Mkbezierptcrv(節点リストptlist,[オプション] ) @@ -1410,42 +1425,41 @@ C2p と C3p は表示されず,動かせない。 オプション -"Deg=...”次数指定ができる。( 初期設定は3次) +\verb|"Deg=..."| 次数指定ができる。(初期設定は3次) -"Num=..."各区間の区間数(分点数ー1)を指定できる。( 初期設定は10) +\verb|"Num=..."| 各区間の区間数(分点数$-1$)を指定できる。(初期設定は10) -\vspace{5mm} +\vspace{\baselineskip} 【例】 \begin{layer}{150}{0} -\putnotese{50}{15}{bzA} -\putnotese{50}{-5}{ \input{Fig/checkb8}} +\putnotese{70}{25}{bzA} +\putnotese{40}{-5}{ \input{Fig/checkb8}} \end{layer} \verb|Mkbezierptcrv([A,B,C]);| -\vspace{25mm} +\vspace{23mm} + +その後,節点や制御点を動かして,\par +描きたいものにする。 \begin{layer}{150}{0} -\putnotese{50}{15}{bzA} -\putnotese{60}{-10}{ \input{Fig/checkb11}} +\putnotese{70}{25}{bzA} +\putnotese{55}{-15}{ \input{Fig/checkb11}} \end{layer} -その後,節点や制御点を動かして, - -描きたいものにする。 - -\vspace{30mm} +\vspace{35mm} \begin{layer}{150}{0} -\putnotese{80}{25}{bzA} -\putnotese{50}{-5}{\input{Fig/checkb9}} +\putnotese{70}{28}{bzA} +\putnotese{50}{-3}{\input{Fig/checkb9}} \end{layer} \verb|Mkbezierptcrv([A,B,C],["Deg=2"]);| -Deg=2 とすると2次になる。 +\verb|Deg=2| とすると2次になる。 制御点は各区間に1個ずつできる。 @@ -1501,10 +1515,13 @@ Deg=2 とすると2次になる。 \verb|size ->n|:画面上での線の太さを指定する。 +\vspace{\baselineskip} 【例】\verb|CRspline("1",[A,B,C,D]);| \hspace{20mm} \input{Fig/checkCR} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \vspace{\baselineskip} \hypertarget{ospline}{} \item[関数]Ospline(名前,制御点リスト,[オプション] ) @@ -1526,7 +1543,7 @@ Deg=2 とすると2次になる。 \hypertarget{circledata}{} \item[関数]Circledata(name,リスト,options) \item[機能]円または多角形を描く。 -\item[説明]中心の点と,円周上の1点,または3点をリストで与えて円を描く。 +\item[説明]中心の点と,円周上の1点(か半径),または3点をリストで与えて円を描く。 中心と円周上の点を,座標ではなく幾何要素名で指定する場合は name は省略可。 @@ -1542,13 +1559,17 @@ optionsは以下のものをリストで与える。省略した場合は実線 【例】いろいろな円を描く。\\ \>原点中心,半径2の円\> \verb|Circledata("1",[[0,0],[2,0]]);|\\ + \hspace{50mm}(\verb|[[0,0],2]|でもよい)\\ \>A中心,半径ABの円\> \verb|Circledata([A,B]);|\\ \>A中心,半径2の円\> \verb|Circledata("1",[A,A+[2,0]]);|\\ + \hspace{50mm}(\verb|[A,2]|でもよい)\\ \>3点A,B,Cを通る円\> \verb|Circledata([A,B,C]);|\\ \>下図左より,オプションに "dr,2" , "da" , "do" をつけた場合。 \end{tabbing} \hspace{10mm} \input{Fig/circledata1} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{\baselineskip} + +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \verb|Circledata([A,B,C]);| で,3点A,B,Cを通る円を描いたとき,できた円の中心は \verb|Pointdata("1",[crABCcenter]);| で作図できる。 @@ -1604,6 +1625,8 @@ Circledata("2",[A,B],["Num=6"]); \item[機能]すべての幾何円のPD を作成 \item[説明]Cinderellaの「円を加える」ツール(3種類いずれでも)で描いたすべての円をそのままプロットデータとする。たとえば,中心A,円周上の点をBとした円を作ると,プロットデータcrABが作成される。その後,インスペクタで点Bの識別名を変更(たとえばQに)すると,プロットデータ名も変更される。円はすでに描かれていてもよい。 +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \vspace{\baselineskip} \hypertarget{ellipseplot}{} \item[関数]Ellipseplot(name,点リスト ,定義域, options) @@ -1637,6 +1660,7 @@ Circledata("2",[A,B],["Num=6"]); 「点を加える」ツールを用いて,接線,法線上に適当に点を取る。(D,Eとなったとする) 次のスクリプトを書いて実行すると,楕円に関して入射角と反射角が等しくなるように光が反射する様子を図にすることができる。 +\newpage \vspace{\baselineskip} \begin{layer}{150}{0} @@ -1867,8 +1891,9 @@ Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]); ); \end{verbatim} -\hspace{40mm}\input{Fig/plotdata5} -なお,ここで,Pointdata() のname を text(s+3) としているのは,sが -2 から始まるので,name は1から始まるようにするためである。name に負の数は使えないので。 +\hspace{45mm}\input{Fig/plotdata5} + +なお,ここで,Pointdata() のname を \verb|text(s+3)| としているのは,s が $-2$ から始まるので,負の数が使えない name を $1$ から始まるようにするためである。 \vspace{\baselineskip} 関数に文字係数がついており,文字係数の値を変化させながらグラフを描くには,Assign を使うか,Defvar で変数を定義する。 @@ -1995,7 +2020,7 @@ Paramplot("4","[2*cos(t)+10,sin(t)]","t=[0,2*pi]",["do"]); \vspace{\baselineskip} 【例】カージオイド曲線を描く。 -\hspace{20mm}\verb|Polarplot("1","2*(1+cos(t))","t=[0,2*pi]",["Num=200"]);| +\hspace{10mm}\verb|Polarplot("1","2*(1+cos(t))","t=[0,2*pi]",["Num=200"]);| \vspace{\baselineskip} \begin{center}\scalebox{0.7}{\input{Fig/cardioid1}}\end{center} @@ -2114,7 +2139,7 @@ text(L.x*(log(L.x)-1)-G.x*(log(G.x)-1)) ]); \vspace{\baselineskip} \begin{center} \input{Fig/intlog}\end{center} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{exprrot}{} @@ -2138,6 +2163,8 @@ Exprrot(C,B-A,"\frac{2}{3}"); \vspace{\baselineskip} \hspace{10mm}\includegraphics[bb=0.00 0.00 181.01 131.01,width=4cm]{Fig/exprrot.pdf} \hspace{10mm} \input{Fig/exprrot} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \vspace{\baselineskip} \hypertarget{letter}{}\item[関数]Letter([位置, 方向, 文字列],option) \item[機能]文字列を表示する @@ -2300,7 +2327,7 @@ optionsは,[曲がり , 空白サイズ, 文字, 線種] \vspace{\baselineskip} \begin{layer}{150}{0} -\putnotese{85}{5}{ \input{Fig/bowdata}} +\putnotese{85}{0}{ \input{Fig/bowdata}} \end{layer} 【例】三角形ABCの各辺に弓形マークをつけ記号を入れる。 @@ -2424,41 +2451,73 @@ Framedata("1",[A,B],["corner"]); Rulerscale(A,["r",0,5,1],["f",1,"d1",3,"d2"]); \end{verbatim} \begin{center}\scalebox{0.9}{ \input{Fig/ruler}} \end{center} -\vspace{\baselineskip} -%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\vspace{\baselineskip} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} -\newpage +%\newpage + %==プロットデータの操作=================== \subsection{プロットデータの操作} \begin{description} -\hypertarget{addgraph}{} -\item[関数]AddGraph(name ,プロットデータのリスト,option) -\item[機能]複数のプロットデータをまとめる -\item[説明]複数のプロットデータをまとめて扱う。たとえば,円と,円周上の点の2つのプロットデータをまとめて扱えば,平行移動や回転で,それらのプロットデータをまとめて平行移動や回転ができる。Joincrvs()では,プロットデータをつなげて1つのプロットデータにするが,AddGraph()では,それぞれのプロットデータからなるリスト(リストのリスト)にする。(プロットデータは座標のリストである) +\hypertarget{drawfigures}{} +\item[関数]Drawfigures(or Drwfigs)(name ,データリスト,オプションリスト) +\item[機能]複数のプロットデータのスタイル(オプション)をリストで与えて描画する +\item[説明]複数のプロットデータをまとめて扱う。たとえば,円と,円周上の点の2つのプロットデータをまとめて扱えば,平行移動や回転で,それらのプロットデータをまとめて平行移動や回転ができる。%Joincrvs()では,プロットデータをつなげて1つのプロットデータにするが,Addgraph()では,それぞれのプロットデータからなるリスト(リストのリスト)にする。(プロットデータは座標のリストである) -引数には,プロットデータ名を文字列化して渡す。たとえば,円のプロットデータが cr1 のとき,"cr1" とする。 +%引数には,プロットデータ名を文字列化して渡す。たとえば,円のプロットデータが cr1 のとき,"cr1" とする。 \vspace{\baselineskip} 【例】サイクロイドの図を描く。 \begin{verbatim} -Setpt(3); -Circledata("1",[[0,1],[0,0]]); -Pointdata("1",[0,0]); -AddGraph("1",["[pt1]","cr1"],["nodisp"]); +opcr=["dr"]; +oppt=["Size=2","Color=red"]; +Circledata("1",[[0,1],[0,0]],opcr); +Pointdata("1",[0,0],oppt); +ad1=["cr1","pt1"]; +dt=2*pi/32; +opcr=["dr,0.3"]; nn=32; forall(1..nn, -t=2*pi/nn*#; -Rotatedata(text(#),"ad1",-t,[[0,1],"nodisp"]); -Translatedata(text(#),"rt"+text(#),[t,0],["dr,0.3"]); + t=dt*#; + Rotatedata(2,ad1,-t,[[0,1],"nodisp"]); + Translatedata(2,"rt2",[t,0],["nodisp"]); + Drawfigures(text(#),["tr2_1","tr2_2"],[opcr,oppt]); ); \end{verbatim} \vspace{\baselineskip} -\hspace{20mm} \input{Fig/addgraph} +\hspace{20mm} \input{Fig/drawfigures1} -ここで,AddGraph()の引数に与えるプロットデータのリストで,点のプロットデータ pt1 を"[pt1]" としていることに注意。円のプロットデータが,点の座標のリストであるのに対し,点のプロットデータは一つの座標だけなので,このようにしてリスト化して渡す。 +最初に,まとめて平行移動や回転をするデータをリスト化しておく。また,各データのオプションをリストとして与えていることに注意。こうすることで,サイズや色などのスタイルを元のスタイルに合わせることができる。 + +%\hypertarget{addgraph}{} +%\item[関数]Addgraph(name ,プロットデータのリスト,option) +%\item[機能]複数のプロットデータをまとめる +%\item[説明]複数のプロットデータをまとめて扱う。たとえば,円と,円周上の点の2つのプロットデータをまとめて扱えば,平行移動や回転で,それらのプロットデータをまとめて平行移動や回転ができる。Joincrvs()では,プロットデータをつなげて1つのプロットデータにするが,Addgraph()では,それぞれのプロットデータからなるリスト(リストのリスト)にする。(プロットデータは座標のリストである) +% +%引数には,プロットデータ名を文字列化して渡す。たとえば,円のプロットデータが cr1 のとき,"cr1" とする。 +% +%\vspace{\baselineskip} +%【例】サイクロイドの図を描く。 +%\begin{verbatim} +%Setpt(3); +%Circledata("1",[[0,1],[0,0]]); +%Pointdata("1",[0,0]); +%Addgraph("1",["[pt1]","cr1"],["nodisp"]); +%nn=32; +%forall(1..nn, +%t=2*pi/nn*#; +%Rotatedata(text(#),"ad1",-t,[[0,1],"nodisp"]); +%Translatedata(text(#),"rt"+text(#),[t,0],["dr,0.3"]); +%); +%\end{verbatim} +% +%\vspace{\baselineskip} +%\hspace{20mm} \input{Fig/addgraph} +% +%ここで,Addgraph()の引数に与えるプロットデータのリストで,点のプロットデータ pt1 を"[pt1]" としていることに注意。円のプロットデータが,点の座標のリストであるのに対し,点のプロットデータは一つの座標だけなので,このようにしてリスト化して渡す。 \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} @@ -2552,10 +2611,12 @@ Partcrv("2",tmp_2,tmp_1,"gr1",["dr,2"]); \end{verbatim} \vspace{\baselineskip} +\vspace{\baselineskip} +\vspace{\baselineskip} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -%\vspace{\baselineskip} +\vspace{\baselineskip} \hypertarget{enclosing}{} \item[関数]Enclosing(name , PDリスト , [開始位置, 交点計算の許容限界1, 2]) \item[機能]複数の曲線から閉曲線を作る。 @@ -2708,7 +2769,7 @@ Circledata([A,B],["da"]); \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -%\vspace{\baselineskip} +\vspace{\baselineskip} \hypertarget{dotfilldata}{} \item[関数]Dotfilldata(name , 方向リスト , プロットデータ , options) \item[機能]領域を点で敷き詰める。 @@ -2721,6 +2782,12 @@ Circledata([A,B],["da"]); Partcrv() と Enclosing() で閉曲線を作って点を敷き詰める。 + +%\begin{center}\scalebox{0.9}{\input{Fig/dotfill}} \end{center} +\begin{layer}{150}{0} +\putnotese{85}{-3}{\scalebox{0.9}{ \input{Fig/dotfill}}} +\end{layer} + \begin{verbatim} r=3; p0=r*[cos(pi/2),sin(pi/2)]; @@ -2737,9 +2804,6 @@ Enclosing("2",["sg3","part2","Invert(sg2)"],[[0,0]]); Dotfilldata("1",["i"],[["en1"]]); Dotfilldata("2",["i"],[["en2"]],[0.1]); \end{verbatim} -\begin{layer}{150}{0} -\putnotese{80}{-60}{\scalebox{0.9}{ \input{Fig/dotfill}}} -\end{layer} \vspace{\baselineskip} \hypertarget{shade}{} @@ -2752,7 +2816,13 @@ Dotfilldata("2",["i"],[["en2"]],[0.1]); optionの Color は,Cinderellaの画面上での描画色をリストで与える。濃さを指定したい場合は色名やRGBではなくCMYKにする。 -optionsには,他に,「Enclosingを使うか(''Enc=y/n'')」,Enclosingのときの開始点,描画色 がある。 +optionsには,他に,次のものがある。 + +・Enclosingを使うかどうか:''Enc=y/n''(初期値は y) + +・Enclosingのときの開始点,描画色 + +・描画領域のトリミング:Trim=y/n (初期値は n ) 複数のShadeを使うときは,名前をつける。 @@ -2789,7 +2859,20 @@ Shade(["gr2","Invert(gr1)"],[[-1.5,1],"Color=[1,0,0]","alpha->0.4"]); \vspace{\baselineskip} \begin{center}\scalebox{0.9}{\input{Fig/shade01}} \end{center} -%\vspace{\baselineskip} +\vspace{\baselineskip} +【例】描画領域(NE,SWの矩形領域)からはみ出した部分は表示しないようにする。 + +\begin{verbatim} +Plotdata("1","x^2","x"); +Partcrv("1",[-1,1],[3,9],"gr1"); +Listplot("1",[[3,9],[-1,1]]); +Joincrvs("1",["sg1","part1"]); +Shade(["join1"],["Color=[0,0,0.2,0]","Trim=y"]); +\end{verbatim} + +SW,NE を動かしてみると,白枠内だけが色塗りされる。 + +\vspace{\baselineskip} 【例】同心円をリング状に塗る。 下図右のように,同心円をリング状に塗るが,円2つだけでは閉曲線はできない。そこで,左図のように,円の描き始めを線分で結んで閉曲線を作る。このとき,向きを考えて,Joincrvsで結ぶように,''Enc=n''をつける。線分は非表示にしたいので,\verb|"nodisp"|オプションをつけておく。なお,点Aを適当な位置に作図しておく。 @@ -2806,7 +2889,7 @@ Shade(["cr1","sg1","Invert(cr2)","Invert(sg1)"],["Enc=n","Color=green"]); その他,\hyperlink{joincrvs}{Joincrvs() の例}も参照のこと -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{reflectdata}{} @@ -2833,6 +2916,7 @@ Reflectdata("1","crAB",[C]); Reflectdata("2","crAB",[[-1,2]],["dr,2"]); Reflectdata("3","crAB",[D,E],["da"]); \end{verbatim} + \vspace{\baselineskip} \begin{center} \input{Fig/reflectdata} \end{center} @@ -2881,17 +2965,18 @@ Reflectdata("3","crAB",[D,E],["da"]); Cを中心に$x$軸方向に3,$y$軸方向に2拡大し,実線で太く描く。 -原点中心にベクトル$\overrightarrow{OD} $だけ拡大し,破線で描く。 +原点中心にベクトル$\overrightarrow{\mathrm{OD}} $だけ拡大し,破線で描く。 \begin{verbatim} Circledata([A,B]); Scaledata("1","crAB",3,2,[[0,0]]); Scaledata("2","crAB",3,2,[C,"dr,2"]); Scaledata("3","crAB",[D.x,D.y],[[0,0],"da"]); \end{verbatim} - \begin{center} \input{Fig/scaledata} \end{center} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{0mm} + \begin{center} \input{Fig/scaledata} \end{center} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{translatedata}{} @@ -2903,12 +2988,11 @@ Scaledata("3","crAB",[D.x,D.y],[[0,0],"da"]); 【例】点A,B,C,Dを作図ツールでとっておく。 \verb|Circledata([A,B]);| でできる円(crAB)を + $x$軸方向に2,$y$軸方向に3だけ平行移動して実線で描く。 + +ベクトル$\overrightarrow{\mathrm{OC}} $だけ平行移動し,実線で太く描く。 - x軸方向に2,y軸方向に3だけ平行移動して実線で描く。 - -ベクトル$\overrightarrow{OC} $だけ平行移動し,実線で太く描く。 - -ベクトル$\overrightarrow{OD} $だけ平行移動し,破線で描く。 +ベクトル$\overrightarrow{\mathrm{OD}} $だけ平行移動し,破線で描く。 \begin{verbatim} Circledata([A,B]); @@ -2916,13 +3000,13 @@ Translatedata("1","crAB",[2,3]); Translatedata("2","crAB",C,["dr,2"]); Translatedata("3","crAB",D,["da"]); \end{verbatim} -\vspace{\baselineskip} -\begin{center} \input{Fig/translatedata} \end{center} +\vspace{0mm} +\begin{center} \input{Fig/translatedata} \end{center} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{intersectcrvs}{} \item[関数]Intersectcrvs(プロットデータ1, プロットデータ2) \item[機能]2曲線の交点リストを取得する。 @@ -2976,7 +3060,7 @@ p1=[[-1,1],[2,4]] p2=[[[-1,1],17.68,1],[[2,4],42.66,1]] \end{verbatim} と表示される。 -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{nearestpt}{} @@ -3022,7 +3106,7 @@ Letter([A,"n2w","A",B,"s2e","B",(A+B)/2,"e",text(plist_5)]); 点Aは(3,0)に,点Bは適当な位置に作図しておき,次のスクリプトを実行すると点Bが求める点となる。 \begin{layer}{150}{0} -\putnotese{80}{0}{ \input{Fig/Nearestpt1}} +\putnotese{80}{0}{\scalebox{1.0}{\input{Fig/Nearestpt1}}} \end{layer} \begin{verbatim} @@ -3034,11 +3118,13 @@ Pointdata("1",[A,B]); Letter([A,"ne","A",B,"nw","B"]); \end{verbatim} +\vspace{\baselineskip} +\vspace{\baselineskip} 注)第1引数は座標なので,\verb|A| ではなく \verb|A.xy| としなければならない。 \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{numptcrv}{} \item[関数]Numptcrv (プロットデータ) \item[機能]プロットデータの個数を返す @@ -3128,7 +3214,7 @@ Letter([tmp,"nw","A",[2,0],"se","P",[-2,0],"sw","Q"]); 【例】楕円上の点で分割する。あからじめ必要な点を作図しておく。 \begin{layer}{150}{0} -\putnotese{70}{10}{ \input{Fig/ptcrv}} +\putnotese{70}{05}{ \input{Fig/ptcrv}} \end{layer} \begin{verbatim} Circledata([O,P],["do","Num=100","notex"]); @@ -3164,7 +3250,6 @@ Letter([A,"w2","A",B,"e2","B"]); \vspace{\baselineskip} \begin{center} \input{Fig/ptstart} \end{center} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{readoutdata}{} \item[関数]ReadOutData(ファイル名) @@ -3231,6 +3316,8 @@ dt1=data_1; とする。 +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \hypertarget{readlines}{} \item[関数]Readlines(path,filename,option) \item[機能]テキストファイルを1行ずつ読む。 @@ -3269,7 +3356,6 @@ start// [[0.87631,-0.48175],[0.92978,-0.36812],・・,[1,0]]// end//// \end{verbatim} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{extractdata}{} @@ -3282,6 +3368,8 @@ Extractdata("gr1",["da"]); \end{verbatim} \end{description} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + %\newpage % ======== 計算 ======================= \subsection{計算} @@ -3327,7 +3415,7 @@ Letter([A,"ne","A"]); また,曲線の接線については,\hyperlink{tangentplot}{Tangentplot}も参照されたい。 -%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{integrate}{} @@ -3376,7 +3464,7 @@ println(Integrate("gr1",[0,3])); \end{description} -\newpage +%\newpage %==========値の取得と入出力========================= \subsection{値の取得と入出力} @@ -3412,6 +3500,7 @@ optionは,幅または高さの指定。 \vspace{\baselineskip} \includegraphics[bb=0.00 0.00 562.03 124.01,width=10cm]{Fig/bbdata.pdf} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{cindyname}{} @@ -3485,45 +3574,37 @@ println(Sprintf(len,6)); \begin{description} \hypertarget{tabledata}{} -\item[関数]Tabledata(name , 縦横データ, 除外線 , options) +\item[関数]Tabledata(横データ,縦データ, 除外線 , options) \item[機能]表の枠を作成し,表のデータlist を返す \item[説明]Cinderellaの描画面上に左下を原点とする表を作成する。 -他の関数との引数の整合性,\ketpic のコマンドとの整合性などから,先頭にnameの引数をつけるが,実際にはあまり利用しないので,空文字""でもよい。 - 除外線がない場合は空リストを指定する。(必須) -optionsは線種と"notex"など,および "Rng=n"。 - -"Rng=n" をつけると,NE,SWによる出力領域指定が有効になり,NE,SWをドラッグして出力領域を変更できる。(初期状態は,表の右上と左下)つけない場合は,表の部分だけが出力される。 - -縦横データには,次の2通りの書式がある。いずれも同じ表を作成する。 +optionsのうち,Tabledataに特有なものは\\ +\hspace*{3zw}ラベルのスキップ幅,''Setwindow=n'',''Geo=n'',''Move=[0,0]''\\ +である。 -\vspace{\baselineskip} -(1) 横のセル数 , 縦のセル数 , 表の横幅 , 表の縦幅を指定する。除外線なし。 +"Setwindow=n" をつけると,NE,SWによる出力領域指定が有効になり,NE,SWをドラッグして出力領域を変更できる。(初期状態は,表の右上と左下)つけない場合は,表の部分だけが出力される。 -\begin{verbatim} -Tabledata("",4,5,80,50,[]); -\end{verbatim} +縦横データは,次のように,間隔の幅で与える。ただし,幅はCinderellaの描画面の0.1を単位とする。 -(2) 横と縦の幅を指定したリストを使う \begin{verbatim} Yoko=[20,20,20,20]; Tate=[10,10,10,10,10]; -Tabledata("",Yoko,Tate,[]); +Tabledata(Yoko,Tate,[]); \end{verbatim} -幅はCinderellaの描画面の0.1を単位とする。 -作成された表には,行,列の制御点がつく。画面上では,横罫線の番号 r0,r1,・・・縦罫線の番号 c0,c1,・・・と見ることもできる。また,縦幅,横幅が数字で示される。ただし,これらは\TeX には出力されない。 + +"Geo=y"とすると,作成された表には,行,列の制御点がつく。画面上では,横罫線の番号 r0,r1,・・・縦罫線の番号 c0,c1,・・・と見ることもできる。また,縦幅,横幅が数字で示される。ただし,これらは\TeX には出力されない。 また,作表はCinderellaの描画面上では座標平面上に置かれるが,\TeX への出力は座標平面上には置かないことが多いので,座標軸は非表示としている。 \hspace{25mm} 描画面 \hspace{45mm} TeX -\hspace{5mm}\includegraphics[bb=0 0 403.52 249.51 , width=5cm]{Fig/table01.pdf} \hspace{10mm}\input{Fig/table02} +\hspace{5mm}\includegraphics[bb=0 0 403.52 249.51 , width=5cm]{Fig/table01.pdf} \hspace{10mm}\input{Fig/table02} \\ -表のサイズ・行幅・列幅は,作成後にそれぞれの制御点をドラッグすることにより任意に変えることができる。 +"Geo=y"の場合は,表のサイズ・行幅・列幅は,作成後にそれぞれの制御点をドラッグすることにより任意に変えることができる。 \vspace{\baselineskip} 除外線は,除外するセルの罫線を,rとc で位置指定する。 @@ -3534,11 +3615,18 @@ Tabledata("",Yoko,Tate,[]); とする。 +ラベルのスキップ値は,いくつおきにラベルをつけるかの設定である。0とするとラベルが表示されない。ただし,ラベルはCinderellaの画面上だけの問題。 + +\vspace{\baselineskip}"Move=点の座標"とすると,指定された点が左下になるように平行移動される。 + + \vspace{\baselineskip} 【例】4つの罫線を非表示にする \begin{verbatim} Rmv=["r1c0c1","c3r0r1","c3r3r5","r4c2c4"]; -Tabledata("",4,5,80,50,Rmv); +Yoko=[20,20,20,20]; +Tate=[10,10,10,10,10]; +Tabledata(Yoko,Tate,Rmv); \end{verbatim} で,次の表ができる。 @@ -3549,58 +3637,54 @@ Tabledata("",4,5,80,50,Rmv); \vspace{\baselineskip} <補足> -Tabledata()関数は,制御点r0,r1,・・・,c0,c1,・・・がなければ新しく作り,すでに存在する場合はそのままとする。したがって,一度表を作成したのち,行数・列数を修正して作り直す場合は,一度既存の点を消去する必要がある。そのためには,「すべての点を選択する」ツールをクリックして点を消去するのがよい。クリックすると,消去後すぐに新規作成される。(誤って「すべての要素を選択する」を選ばないこと) +"Geo=y"の場合,制御点r0,r1,・・・,c0,c1,・・・がなければ新しく作り,すでに存在する場合はそのままとする。したがって,一度表を作成したのち,行数・列数を修正して作り直す場合は,一度既存の点を消去する必要がある。そのためには,「すべての点を選択する」ツールをクリックして点を消去するのがよい。クリックすると,消去後すぐに新規作成される。(誤って「すべての要素を選択する」を選ばないこと) 他の点が描画されている場合は,表の部分だけドラッグで選択するか,表示メニューの「式による表示」で一覧表を出して,制御点を選択して消去する。 -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - \vspace{\baselineskip} -\hypertarget{tabledatalight}{} -\item[関数]Tabledatalight(name , 縦横データ, 除外線 , options) -\item[機能]幾何点を持たない表の枠を作成し,表のデータlist を返す -\item[説明]Tabledata()がCinderellaの幾何点を生成するのに対し,Tabledatalight()は幾何点を生成しない。 - -幾何点を作成しないメリットは,スクリプトだけで全体の縦横幅を変更できること。デメリットはインタラクティブな微調整ができないこと。 - -optionとして,ラベルのスキップ値(スキップするところは表示されない)を指定することができる。ただし,ラベルはCinderellaの画面上だけの問題。 +"Geo=n"(デフォルト)の場合,幾何点を生成しない。幾何点を作成しないメリットは,スクリプトだけで全体の縦横幅を変更できること。デメリットはインタラクティブな微調整ができないこと。 \vspace{\baselineskip} 【例】1つおきにスキップして,r1,r3,c1,c2 を非表示とする。 \begin{verbatim} Yoko=[20,20,20,20]; Tate=[10,10,10,10,10]; -Tabledatalight("",Yoko,Tate,[],[2]); +Tabledatalight(Yoko,Tate,[],[2]); \end{verbatim} \vspace{\baselineskip} \hypertarget{changetablestyle}{} -\item[関数]ChangeTablestyle(罫線リスト, 変更オプション) +\item[関数]Changetablestyle(罫線リスト, 変更オプション) \item[機能]Table の罫線の描画オプションを変更 \item[説明]罫線の部分的に指定して描画オプションを変更できる。 \vspace{\baselineskip} 【例】 -\verb|Tabledatalight("",[10,20,10,20],[10,10,10],[]);|\\ -\verb|ChangeTablestyle(["r1c0c4"],["da"]);|\\ -\verb|ChangeTablestyle(["r2c0c2","c1r0r3"],["nodisp"]);| +\verb|Tabledatalight([10,20,10,20],[10,10,10],[]);|\\ +\verb|Changetablestyle(["r1c0c4"],["da"]);|\\ +\verb|Changetablestyle(["r2c0c2","c1r0r3"],["nodisp"]);| \vspace{\baselineskip} \hspace{20mm}\includegraphics[bb=0.00 0.00 324.00 174.00,width=50mm]{Fig/changetable.pdf} \vspace{\baselineskip} +複数の表を描くこともできる。 + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +\vspace{\baselineskip} \hypertarget{findcell}{} \item[関数]Findcell(列番号, 行番号) \item[機能]セルの情報list(中心,横幅/2,縦幅/2)を返す \item[説明]列番号,行番号は左上のセルを1列1行として数える。 \vspace{\baselineskip} -【例】\verb|Tabledata(4,5,80,50,[]);| +【例】\verb|Tabledata(Tate,Yoko,[]);| -\verb|println(Findcell(tb,2,1));| +\verb|println(Findcell(2,1));| -とすると,2列1行のセルの中心の座標と横幅の半分,縦幅の半分の値がリストとしてコンソールに表示される。結果は [[3,4.5],1,0.5] +とすると,2列1行のセルの中心の座標と横幅の半分,縦幅の半分の値がリストとしてコンソールに表示される。 \vspace{\baselineskip} \hypertarget{putcell}{} @@ -3612,7 +3696,9 @@ Tabledatalight("",Yoko,Tate,[],[2]); 位置の例を以下に示す。 \begin{verbatim} -Tabledata("",5,2,100,40,["c1r1r2","c4r1r2"]); +yoko=[20,20,20,20,20]; +tate=[20,20]; +Tabledata(yoko,tate,["c1r1r2","c4r1r2"]); Putcell(1,1,"c","A"); Putcell(2,1,"r","B"); Putcell(3,1,"l","C"); @@ -3625,13 +3711,13 @@ Putcell("c3r1","c5r2","rt","H"); \vspace{\baselineskip} \begin{center} \input{Fig/putcell} \end{center} -※r0,c0,・・は画面に表示される番号 +※数式の場合は,{\bf Putcellexpr} を用いる。 \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{putcol}{} -\item[関数]PutcoL (列番号, 文字位置,文字列リスト) +\item[関数]Putcol (列番号, 文字位置,文字列リスト) \item[機能]1列に順に文字を書き入れる \item[説明]列番号で指定した列に,第1行から順に文字列リストの文字を書き入れる\\ 数の場合はダブルクォートでくくらなくてもよい。 @@ -3640,7 +3726,7 @@ Putcell("c3r1","c5r2","rt","H"); \vspace{\baselineskip} \hypertarget{putcolexpr}{} -\item[関数]PutcoLexpr (列番号, 文字位置,文字列リスト) +\item[関数]Putcolexpr (列番号, 文字位置,文字列リスト) \item[機能]1列に順に文字を書き入れる \item[説明]文字列に\TeX 書式を使うことができる @@ -3659,9 +3745,11 @@ Putcell("c3r1","c5r2","rt","H"); 文字を入れる例を示す。 \begin{verbatim} -Tabledata("",5,3,100,45,["c1r1r2","r1c2c3","r2c2c3"]); -PutcoL(3,"c",["A","B","C"]); -PutcoLexpr(4,"l",["x^2","y=\sqrt{x^3}"]); +Tate=[20,20,20,20,20]; +Yoko=[15,15,15]; +Tabledata(Tate,Yoko,["c1r1r2","r1c2c3","r2c2c3"]); +Putcol(3,"c",["A","B","C"]); +Putcolexpr(4,"l",["x^2","y=\sqrt{x^3}"]); Putrow(1,"c",[1,"二"]); Putrowexpr(3,"c",["","\frac{\pi}{2}","","","\sum{x^2}"]); \end{verbatim} @@ -3672,7 +3760,7 @@ Putrowexpr(3,"c",["","\frac{\pi}{2}","","","\sum{x^2}"]); グラフや文を入れた表の作成例 -PutcoLexpr(),Putrowexpr() では,数式だけでなく,一般の\TeX の文を入れることができる。 +Putcolexpr(),Putrowexpr() では,数式だけでなく,一般の\TeX の文を入れることができる。 また,グラフの位置を適当に合わせて描画することにより,表のセルの中にグラフを入れることができる。 \vspace{\baselineskip} @@ -3686,9 +3774,11 @@ x軸を描くための点A〜Fは作図ツールでとっておく。 \vspace{\baselineskip} \begin{verbatim} -Tabledata("",3,3,120,60,[],["dr,2"]); -ChangeTablestyle(["r1c0c3"],["dr"]); -ChangeTablestyle(["r2c0c3"],["da"]); +Tate=[40,40,40]; +Yoko=[20,20,20]; +Tabledata(Tate,Yoko,[],["dr,2"]); +Changetablestyle(["r1c0c3"],["dr"]); +Changetablestyle(["r2c0c3"],["da"]); Plotdata("1","(x-2)^2+0.5","x=[0.5,3.5]"); Plotdata("2","(x-6)^2+1","x=[4.5,7.5]"); Plotdata("3","(x-10)^2+1.5","x=[8.5,11.5]"); @@ -3712,7 +3802,7 @@ Tate=[6,6,10,6,10,6,40]; Yoko=[30,6,6,6]; Rmv=["c1r0r1","c2r0r1","c3r0r1","c4r0r1","c5r0r1", "r1c6c7", "r2c6c7","r3c6c7"]; -Tabledata("",Tate,Yoko,Rmv,["dr"]) +Tabledata(Tate,Yoko,Rmv,["dr"]) Tlistplot("23d",["c1r2","c2r3"]); Tlistplot("23u",["c1r3","c2r2"]); Putrowexpr(2,"c",["x",0,"\cdots","\tfrac{1}{4}","\cdots",4]); @@ -3737,7 +3827,9 @@ Expr(Ptend(tr1),"nw-2","y=x-\sqrt{x}"); \vspace{\baselineskip} 【例】凹凸を含めた増減表 \begin{verbatim} -Tabledata("",8,4,80,40,[]); +Tate=apply(1..8,20); +Yoko=[apply(1..4,10); +Tabledata(Tate,Yoko,[]); Putrowexpr(1,c,["x","\cdots","-1","\cdots","0","\cdots","1","\cdots"]); Putrowexpr(2,c,["y`","+","+","+","0","-","-","-"]); Putrowexpr(3,c,["y``","+","0","-","-","-","0","+"]); @@ -4047,8 +4139,6 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その \hspace{15mm} \includegraphics[bb=0.00 0.00 445.02 193.01,height=35mm]{Fig/slider.pdf} -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - \vspace{\baselineskip} \hypertarget{sprintf}{} \item[関数]Sprintf(実数,長さ) @@ -4062,7 +4152,7 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その Sprintf(pi,7) は 3.1415927 を返す -注)pi は Cindyscriptの予約変数で,円周率を表す。\vspace{\baselineskip} +注)pi は Cindyscriptの予約変数で,円周率を表す。%\vspace{\baselineskip} \vspace{\baselineskip} \hypertarget{textformat}{} @@ -4085,6 +4175,8 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その \hspace{10mm} \verb|Textformat(dt,4); | // 戻り値は "[ 0.1667 , 0.5 ]" \\ \hspace{10mm} \verb|format(dt,4); | // 戻り値は [ "0.1667" , "0.5" ] \\ +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \vspace{\baselineskip} \hypertarget{texcom}{} \item[関数]Texcom(\TeX コード) @@ -4167,6 +4259,33 @@ Cindyscriptの アンダーバーの演算子 (list\_n , str\_n) と同様。 \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{\baselineskip} +\hypertarget{fracform}{} +\item[関数]Fracform(数 , 分母のリストまたは最大値) +\item[機能]分母リストの1つを分母とする近似分数と誤差を返す。 +\item[説明]戻り値は,簡易TeX-like書式の文字列と誤差。 + +\vspace{\baselineskip} +【例】\verb|Fracform(0.33,[2,3]); => fr(1,3)| + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +\vspace{\baselineskip} +\hypertarget{totexform}{} +\item[関数]Totexform(簡易TeX-like書式) +\item[機能]TeX書式の文字列を返す。 + +\vspace{\baselineskip} +【例】\verb|Totexform(fr(1,3)); => frac{1}{3}| + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +\vspace{\baselineskip} +\hypertarget{tocindyform}{} +\item[関数]Tocindyform(簡易TeX-like書式) +\item[機能]Cindy書式の文字列を返す。 + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage @@ -4388,7 +4507,7 @@ PlotdataR(“2”, ”pnorm(x,5,2)”, ”x=[0,10]”); 点A,BはCinderellaの作図ツールで作図しておき,点Aをグラフ上のおよその位置に置いてから実行する。 \begin{verbatim} PlotdataR("1","dnorm(x)","x=[-5,5]"); -PutonCurve("A","grR1",[-3,3]); +Putoncurve("A","grR1",[-3,3]); Putpoint("B",[A.x,0]); Listplot("1",[A,B]); \end{verbatim} @@ -4501,7 +4620,10 @@ Rulerscale([0,0],["r",0,7,1],["r",1,7,1]); \begin{center} \input{Fig/scatter} \end{center} \end{description} -\newpage + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{\baselineskip} +%\newpage %Maximaとの連携================================== \subsection{Maximaとの連携} @@ -4509,9 +4631,9 @@ Maximaは数式処理ソフトで,\ketcindy においては微積分の計算 \ketcindy では,kc.bat/shによってコマンドをMaximaに渡し,結果をテキストファイルで受け取る。このとき,Maximaとのやりとりで,次のようなファイルが作業ディレクトリに作成される。 -拡張子 max :Maxima用のファイル +拡張子 max :Maximaに渡すコマンドを記述したファイル -拡張子 txt:データファイル +拡張子 txt:Maximaが出力したデータファイル このデータのやり取りに関する次のオプションがある。 @@ -4532,39 +4654,39 @@ ii) データファイルが既にあればそれを読み込む \hypertarget{calcbyM}{} \item[関数]CalcbyM(name,コマンド,option) \item[機能]Maximaのスクリプトを実行する -\item[説明]第2引数はMaximaで実行するコマンド。 +\item[説明]第2引数はMaximaで実行するコマンドを記述したスクリプト。 -コマンドと引数リストの繰り返しからなるリスト(例えばcmdL)を作って,一度に実行する。 +コマンドと引数リストの繰り返しからなるスクリプトをリストとして作り,一度に実行する。 -戻り値はない。(未定義値)結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 +戻り値はない(未定義値)。実行結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値が,name で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにしてnameに代入される。 \vspace{\baselineskip} -【例】$\sin x$ とその導関数を表示する。結果は 変数 fdf に f とdf のリストが代入される。 +【例】$\sin x$ とその導関数を表示する。 \begin{verbatim} cmdL=[ -"f:sin(x)", [], -"df:diff",["sin(x)","x"], -"f::df",[] + "f:sin(x)", [], + "df:diff",["sin(x)","x"], + "f::df",[] ]; CalcbyM("fdf",cmdL); println(fdf); \end{verbatim} \vspace{\baselineskip} -実行すると,コンソールに,[sin(x),cos(x)]と表示される。 +実行すると,結果の f とdf のリストが変数 fdf に代入され,コンソールに,\verb|[sin(x),cos(x)]| と表示される。 \vspace{\baselineskip} 【例】2次方程式 $x^2-x-4=0$の解を求める。 \begin{verbatim} cmdL=[ -"ans:solve",["x^2-x-4","x"], -"ans",[] + "ans:solve",["x^2-x-4","x"], + "ans",[] ]; CalcbyM("ans",cmdL); println("ans="+ans); \end{verbatim} コンソールには -ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] +\verb|ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] | が表示される。 @@ -4574,15 +4696,14 @@ ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] \vspace{\baselineskip} $f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 -Maximaでその処理を行うコマンドを定義し,CalcbyMで実行する。 \begin{verbatim} fx="(exp(x)+exp(-x))/2"; cmdL=[ -"df:diff",[fx,"x"], -"c:ev",["df","x=a"], -"b:ev",[fx,"x=a"], -"eq:c*(x-a)+b",[], -"eq",[] + "df:diff",[fx,"x"], + "c:ev",["df","x=a"], + "b:ev",[fx,"x=a"], + "eq:c*(x-a)+b",[], + "eq",[] ]; CalcbyM("tn1",cmdL); println(tn1); @@ -4596,7 +4717,7 @@ println(tn1); \begin{verbatim} tn1=Assign(tn1,["%e^a","exp(a)","%e^-a","exp(-a)"]); Plotdata("1",fx,"x"); -PutonCurve("A","gr1"); +Putoncurve("A","gr1"); tmp=Assign(tn1,["a",A.x]); plotdata("2",tmp,"x",["Num=2"]); \end{verbatim} @@ -4611,7 +4732,7 @@ plotdata("2",tmp,"x",["Num=2"]); {\bf 応用例2:パラメトリックの場合の接線} \vspace{\baselineskip} -媒介変数の値を決めるために,点AをCinderellaの描画面のx軸上にとっておき,その$x$座標を媒介変数$t$の値とする。スライダを作ってもよい。 +媒介変数の値を決めるために,点AをCinderellaの描画面のx軸上にとっておき,その$x$座標を媒介変数$t$の値とする。スライダを作ってもよい。\\ \begin{layer}{150}{0} \putnotese{60}{10}{ \input{Fig/maxfun02}} @@ -4619,11 +4740,11 @@ plotdata("2",tmp,"x",["Num=2"]); \begin{verbatim} fn="3*cos(t)^2*[cos(t),sin(t)]"; cmdL=[ -"f:",[fn], -"df:diff",["f","t"], -"df:trigsimp",["df"], -"tn:f+s*df",[], -"tn",[] + "f:",[fn], + "df:diff",["f","t"], + "df:trigsimp",["df"], + "tn:f+s*df",[], + "tn",[] ]; CalcbyM("tn2",cmdL); Paramplot("1",fn,"t=[0,2*pi]",["Num=100"]); @@ -4641,8 +4762,8 @@ $\displaystyle \int _{-1} ^2 (-x^3+3x+2)dx$ の値を求める。結果は val \begin{verbatim} cmdL=[ -"val:integrate",["-x^3+3*x+2,x,-1,2"], -"val",[] + "val:integrate",["-x^3+3*x+2,x,-1,2"], + "val",[] ]; CalcbyM("val",cmdL); Mxtex("1",val); @@ -4653,10 +4774,17 @@ Expr([[2,2],"e","S="+tx1]); \vspace{\baselineskip} \hypertarget{mxbatch}{} \item[関数]Mxbatch(ファイル名) -\item[機能]Maximaのファイルを実行するコマンドを作る -\item[説明]ketcindy/ketlib/maximaL にあるファイルを実行するための,CalcbyM用のコマンドを作成する。 +\item[機能]Maximaのライブラリを使うバッチファイルを作成 +\item[説明]ketcindy/ketlib/maximaL にあるライブラリを用いるコマンドでバッチファイルを作成する。 + +ketcindy/ketlib/maximaL には,fourier\_sec.max , matoperation.max , poincare.mac の3つのファイルがあり,関数を定義したライブラリが入っている。それぞれ次のような内容である。各ファイルをテキストエディタで開いて参照されたい。 + +fourier\_sec.max :フーリエ級数の計算を行う。 + +matoperation.max : 行列の計算を行う。 + +poincare : ハミルトニアンシステムに関する計算を行う。 -ketcindy/ketlib/maximaL には,fourier\_sec.max , matoperation.max , poincare.mac の3つのファイルが入っている。たとえば,フーリエ級数を扱うときには,fourier\_sec.max を使用する。 \vspace{\baselineskip} 【例】\verb|cmd=Mxbatch("fourier_sec")| @@ -4680,9 +4808,9 @@ per=tmp_2; Htickmark([1,"n","1",2,"n","2",3,"nw","3"]); Htickmark([-1,"-1",-2,"-2",-3,"-3"]); cmdL=Concat(Mxbatch("fourier_sec"),[ -"Ffun(x):="+fun,[], -"c:fourier_sec_coeff",["Ffun(x)","x"], -"c[1]::c[2]::c[3]",[] + "Ffun(x):="+fun,[], + "c:fourier_sec_coeff",["Ffun(x)","x"], + "c[1]::c[2]::c[3]",[] ]); CalcbyM("ans",cmdL,[]); nterm=round(4*(C.x-A.x)); @@ -4691,66 +4819,78 @@ Mxtex("2",ans_3); Expr([[-5,-2],"e","s_n="+tx2,[4,-2],"e","n="+text(nterm)]); \end{verbatim} -\hspace{20mm}\input{Fig/mxbatch} +\hspace{10mm}\input{Fig/mxbatch} %\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} +\vspace{15mm} \hypertarget{mxfun}{} \item[関数]Mxfun(name,式,リスト,option) \item[機能]Maximaの関数を実行する \item[説明]第2引数の「式」はMaximaの関数名。第3引数のリストは関数に渡す引数のリスト。 戻り値は,第1引数の式に1つでも文字があると文字列となる。すべて数字(+,-, . を含む)の場合は -16桁以下であれば数,それ以上の場合は文字列となる。また,戻り値は,変数 mxname にも代入される。 +16桁以下であれば数,それ以上の場合は文字列となる。また,戻り値は,変数 mx+name にも代入される。 オプションに "Disp=no" をつけると,結果をコンソールに表示しない。 \vspace{\baselineskip} 【例】$10!$を求める。 -\verb|Mxfun("1","10!",[]);| +\verb| Mxfun("1","10!",[]);| -を実行すると,コンソールにmx1 is 362880 と表示される。この値は変数 mx1 に代入されているので, +を実行すると,コンソールにmx1 is 3628800 と表示される。この値は変数 mx1 に代入されているので, -\verb|drawtext([0,1],mx1);| +\verb| Letter([[0,1],"e",mx1]);| -とすればCinderellaの描画面上に表示される。mx1のかわりに,戻り値を変数に代入して使うこともできる。 +とすればCinderellaの描画面上に表示される。mx1ではなく,戻り値を変数に代入して使うこともできる。 \begin{verbatim} fact10=Mxfun("1","10!",[]); -drawtext([0,1],fact10); +Letter([[0,1],"e",fact10]); \end{verbatim} \vspace{\baselineskip} -【例】$f(x)=\sin x$ を微分する +【例】文字列の連結 -\verb|Mxfun("1", "diff",["sin(x)","x"])| +文字列を引数とする場合,例えば,Maximaの文字列を連結するコマンドconcatでは, -とすると +\verb| concat("a","b")| -diff(sin(x),x) +とするが,中にダブルクォートが入っているため,全体を文字列にすることができない。 -というコマンドをMaximaに渡して,戻り値をCindyの変数mx1に代入する。 +このような場合は,第2引数を使って -\verb|Mxfun("1", "diff(sin(x),x)",[]])| +\verb| Mxfun("1","concat",["a","b"])| + +とすればよい。 -と,第1引数にまとめても同じ結果になる。ただし,この場合,第2引数は空リストとする。 +\vspace{\baselineskip} +<参考> CindyScript の unicode(code) 関数を用いてダブルクォートを表し,次のようにすることもできる。 + +\begin{verbatim} +dq=unicode("22"); +comm="concat("+dq+"a"+dq+","+dq+"b"+dq+")"; +Mxfun("1",comm,[]); +\end{verbatim} + +\vspace{\baselineskip} +【例】$f(x)=\sin x$ を微分する -文字列を引数とする場合,例えば,文字列を連結するコマンドconcatでは, +\verb| Mxfun("1", "diff",["sin(x)","x"])| -concat("a","b") +とすると -とするが,Cindyscriptの文字列の処理の関係で,第1引数ではこの形で記述できない。 +\verb| diff(sin(x),x)| -したがって,このような場合は,第2引数を使って +というコマンドをMaximaに渡して,戻り値をCindyの変数mx1に代入する。 -\verb|Mxfun("1","concat",["a","b"])| - -とすればよい。 +\verb| Mxfun("1", "diff(sin(x),x)",[]])| + +と,第1引数にまとめても同じ結果になる。ただし,この場合,第2引数は空リストとする。 \vspace{\baselineskip} -{\bf Cindyscriptの微分との違い} +{\bf <参考>Cindyscriptの微分との違い} Cindyscriptでも微分はできる。たとえば, \begin{verbatim} @@ -4777,17 +4917,12 @@ println(mx1); \end{verbatim} では,コンソールに \verb|cos(x)| と表示される。 -mx1は文字列であるので, -\begin{verbatim} -g(x):=parse(mx1); -\end{verbatim} -とすれば,g(x)を導関数とすることができ,\verb|plot(g(#))| でグラフを描くことができる。 +mx1は文字列であるので,\verb|Plotdata("1",mx1,"x")| でグラフが描ける。 また,Cindyscriptの微分では,3階か4階までの導関数が計算上の限度であるのに対し,Maximaなら何階でも微分ができるので,テイラー展開などで有利である。 \vspace{\baselineskip} -\vspace{\baselineskip} -例$\sin x$ の テイラー展開を行い,グラフを表示する。 +【例】$\sin x$ の テイラー展開による近似のグラフを表示する。 \begin{verbatim} Mxfun("1","taylor",["sin(x)","x",0,7],[""]); Plotdata("1","sin(x)","x",["da"]); @@ -4796,14 +4931,14 @@ Plotdata("2",mx1,"x"); \vspace{\baselineskip} \begin{center} \input{Fig/taylor} \end{center} \vspace{\baselineskip} -Mxtex() を用いて,Mxfun()の結果の mx1をTeX書式にして表示することもできる。 +なお,Mxtex() を用いれば,Mxfun()の結果の mx1をTeX書式にして表示できる。 -\verb|Expr([[1,2],"e",Mxtex("1",mx1)]);| +\verb| Expr([[1,2],"e",Mxtex("1",mx1)]);| を追加すれば[1,2]の位置に式が表示される。 \vspace{\baselineskip} -{\bf 応用【例】接線の方程式を作る} +【例】接線の方程式を作る \vspace{\baselineskip} $f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 @@ -4824,7 +4959,9 @@ println(tf); \end{verbatim} が表示される。 -\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +同様の例を CalcbyM() で例示しているので参照されたい。 + +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mxtex}{} \item[関数]Mxtex(name,式) @@ -4881,8 +5018,9 @@ Cindyscriptの文字列の関数 replace を用いて, 【例】2次関数のグラフを表示し,$x$軸との交点の$x$座標を表示する。 \begin{layer}{150}{0} -\putnotese{60}{20}{ \input{Fig/mxtex03}} +\putnotese{60}{05}{ \input{Fig/mxtex03}} \end{layer} + \begin{verbatim} fx="x^2-x-3"; cmdL=[ @@ -4972,7 +5110,7 @@ Expr([2,-0.5],"e",tx2); \end{description} \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\newpage +%\newpage %FriCASとの連携================================== \subsection{FriCAS(Axiom)との連携} @@ -5003,7 +5141,7 @@ Expr([2,-0.5],"e",tx2); \end{description} \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\newpage +%\newpage %MeshLabとの連携================================== \subsection{MeshLabとの連携} @@ -5094,9 +5232,6 @@ options は,面の厚みの指定。厚みは中心線に対し,両側につ \vspace{\baselineskip} 【例】三角形のプレートを描く -\begin{layer}{150}{0} -\putnotese{80}{15}{ \includegraphics[bb=0 0 287.01 228.01 , width=3cm]{Fig/meshlab03.pdf} } -\end{layer} \begin{verbatim} Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); p1=[2,0,0]; @@ -5108,6 +5243,11 @@ Mkobjcrvcmd("2","ax3d"); Mkviewobj("plane",Concatcmd([oc1,oc2]),["m","v"]); \end{verbatim} +\begin{center} \includegraphics[bb=0 0 287.01 228.01 , width=4cm]{Fig/meshlab03.pdf} \end{center} +%\begin{layer}{150}{0} +%\putnotese{80}{15}{ \includegraphics[bb=0 0 287.01 228.01 , width=3cm]{Fig/meshlab03.pdf} } +%\end{layer} + \vspace{\baselineskip} \hypertarget{mkobjpolycmd}{} \item[関数]Mkobjpolycmd(name,PD,options) @@ -5139,8 +5279,8 @@ PDは,平面の描画コマンドによるプロットデータが使える。 \vspace{\baselineskip} 【例】回転放物線 -\begin{layer}{150}{0} -\putnotese{70}{0}{ \includegraphics[bb=0 0 287.01 189.01 , width=4cm]{Fig/meshlab06.pdf}} +\begin{layer}{150}{20} +\putnotes{58}{37}{ \includegraphics[bb=0 0 287.01 189.01 , width=5cm]{Fig/meshlab06.pdf}} \end{layer} \begin{verbatim} fd=[ @@ -5152,9 +5292,9 @@ Mkobjthickcmd("1",fd,[40,40,0.2,"+n+s-e-w+","assume(R>0)"]); Mkviewobj("pala",oc1,["m","v","Wait=5"]); \end{verbatim} -%\begin{center}\includegraphics[bb=0 0 574 378 , width=5cm]{Fig/meshlab06.pdf}\end{center} +%\begin{center}\includegraphics[bb=0 0 574 378 , width=4cm]{Fig/meshlab06.pdf}\end{center} -\vspace{\baselineskip} +\vspace{37mm} \hypertarget{mkviewobj}{} \item[関数]Mkviewobj(name,PD, options) \item[機能]objファイルを作成。optionにより MeshLab を立ち上げて表示する。 @@ -5173,7 +5313,7 @@ Mkviewobj("pala",oc1,["m","v","Wait=5"]); \end{description} \begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\newpage +%\newpage %表計算ソフトとの連携================================== \subsection{表計算ソフトとの連携} 表計算ソフトでは,複数のセルを選択してコピー(Windowsでは Crtl+ C ,Macでは Command+C)すると,セルの内容はtab区切りのテキストデータとしてクリップボードにコピーされる。これをCindyscriptエディタにペーストすることで表計算ソフトのデータを\ketcindy で利用できる。逆に,Cindyscriptのコンソールへの出力を表計算ソフトのシートにコピーすることもできる。 @@ -5306,7 +5446,7 @@ namelistは,CSVファイルの1行目に追加される項目名。省略す Cinderellaの作図機能とCindyscriptを用いてアニメーションができるが,PDFにすることでCinderellaがなくてもPDFビュアーがあればアニメーションを実行できるので,プレゼンテーションや教材の受け渡しなどに便利である。 -次の画面は,samplesフォルダにある「s06animation」の「s0601cycloid」のものである。これをひな形として使うのがよい。 +次の画面は,samplesフォルダにある「s06animation」の「s0601cycloid」のものである。これをひな形として使うのがよい。すでにあるスライダなどが邪魔であれば,消去ボタンで消去するか,template2allbuttons.cdy をひな形として用いる。 \vspace{\baselineskip} \includegraphics[bb=0 0 732.04 376.02 , width=12cm]{Fig/mvgaiyou01.pdf} @@ -5314,15 +5454,15 @@ Cinderellaの作図機能とCindyscriptを用いてアニメーションがで 画面上方のボタンには,次のようなスクリプトが割り当てられている。 \begin{tabbing} -12345678\=1234567897890123456\=\kill -Figure\>: Viewtex(); \>現在の画面のPDFデータを作る\\ -Parent \>:複数のスクリプト\>Figpdf() を使うときに使用する。\\ -ParaF \>: Parafolder(); \>アニメーションのデータを作る\\ -Anime\>: Mkanimation(); \>アニメーションPDFを作る\\ -Flip \>: Mkflipanime(); \>パラパラ動画PDFを作る +1234\=12345678\=1234567897890123456\=\kill +\>Figure\>: Viewtex(); \>現在の画面のPDFデータを作る\\ +\>Parent \>:複数のスクリプト\>Figpdf() を使うときに使用する。\\ +\>ParaF \>: Parafolder(); \>アニメーションのフレームデータを作る\\ +\>Anime\>: Mkanimation(); \>アニメーションPDFを作る\\ +\>Flip \>: Mkflipanime(); \>パラパラ動画PDFを作る \end{tabbing} -アニメーションの作成は,フレームを定義する関数を作成し,Mkanimation() 関数を実行する(Animeボタン)。 +アニメーションPDFを作るには,フレームを定義する関数を記述し,「ParaF」ボタンでフレームデータを作り,「Anime」または「Flip」ボタンでPDFを作成する。 %たとえば,Fhead が "hoge" の場合,TeX の文書には\\ % \verb|\begin{center} \input{hogemoviefigs.tex}|\\ %で動画を挿入することができる。 @@ -5334,9 +5474,11 @@ Flip \>: Mkflipanime(); \>パラパラ動画PDFを作る %パッケージは animate に dvipdfmx オプションをつける。\\ %\verb|\usepackage[dvipdfmx]{animate}| -なお,アニメーションPDFでアニメーションを行うにはAdobe Acrobat Reader など,アニメーションに対応したPDFリーダーが必要である。WindowsのSumatraPDF,Macの プレビューでは動かない。 +Anime ボタンを押すと,\verb|\usepackage[dvipdfmx]{animate}| でパッケージを読み込み,animateinline 環境のアニメーションを作る。 + +Flip ボタンを押すと,animateinline 環境ではなく,フレームに分割したPDFが生成される。 -Flipボタンを押すと,フレームに分割したPDFが生成されて表示される。 +なお,アニメーションPDFでアニメーションを行うにはAdobe Acrobat Reader など,アニメーションに対応したPDFリーダーが必要である。WindowsのSumatraPDF,Macの プレビューではアニメーションができない。 \subsection{関数} \begin{description} @@ -5344,7 +5486,11 @@ Flipボタンを押すと,フレームに分割したPDFが生成されて表 \hypertarget{setpara}{} \item[関数]Setpara(fname,funcstr,range,options1,options2) \item[機能]アニメーションの設定をする -\item[説明]fname は出力するファイル名,funcstrは動画関数名,rangeは範囲 +\item[説明]fname は出力するファイル名,funcstrは定義した動画関数名,rangeは範囲 + +「Anime」ボタンを押すと,animate+fname.pdf が作られる。再生はコントローラか,画面クリックで行う。 + +「Flip」ボタンを押すと,flipanime+filename.pdf が作られる。再生(コマ送り)は,Acrobat Reader のページ送りボタンで行う。 options1 はアニメーションのデータを作るための設定。 \begin{tabbing} @@ -5356,14 +5502,24 @@ options2 はアニメーションについての設定で,次の通り。 \begin{tabbing} 1234567890123\=90123456789012345678\=\kill Frate=n\>1秒間のフレーム数。初期値は20。 \\ -Title=str\> タイトル。\\ +Title=str\> タイトル。指定しない場合は fname と同じ。\\ Scale=n\> 図の大きさの拡大率 \\ -opA\> animate.sty のためのオプション。 \\ -\> loop:loopする,controls:ボタンを表示,buttonsize:ボタンのサイズ\\ -\> step:コマ送りモード\\ -\>初期設定はloop,controls,buttonsize=3mm\\ -\> +をつけるとモードが追加される。たとえば \verb|"OpA=+step"| で\\ -\>\verb|"OpA=[loop,controls,buttonsize=3mm,step]"| となる。 +opA=[option]\> animateinline 環境のためのオプション \\ +\>初期設定は\verb|[loop,controls,buttonsize=3mm]|。\\ +\> loop:繰り返し再生する。\\ +\> controls:コントローラを表示する\\ +\> buttonsize:コントローラのサイズ\\ +\> palindrome:反転して繰り返し再生する\\ +\> step:コマ送りモードにする。コントローラもコマ送り仕様。\\ +\>\verb|"OpA=[controls,buttonsize=5mm]" |のように記述する。\\ +\> +をつけると初期設定のものに追加することができる。\\ +\>たとえば \verb|"OpA=+step"| で\\ +\>\verb|"OpA=[loop,controls,buttonsize=3mm,step]"| となる。\\ +\>\verb|"OpA=[]"| とすると,オプションなしとなり,\\ +\>画面をクリックすると繰り返しなしで再生される。\\ +記述例\\ +\verb|Setpara("cycloid","mf(t)","t=[0,60]",["Div=60"],|\\ +\verb| ["Frate=30","Title="サイクロイド","Scale=1.5","OpA=[controls]"]);|\\ \end{tabbing} \vspace{\baselineskip} @@ -5396,36 +5552,38 @@ opA\> animate.sty のためのオプション。 \\ %\begin{description} \vspace{\baselineskip} 【例】定円上を動く点Pと,定点Aを結ぶ線分の中点をQとして動きを見る。 -アニメーションを定義する関数は,時間を $t$ とすれば,時刻 $t$ における図(動くものだけ)を定義する。時刻は単なる媒介変数であるので,$t$ でなく $s$ などでもよい。 + +アニメーション(フレーム)を定義する関数は,時刻を $t$ として, $t$ における図を定義すると考える。時刻は単なる媒介変数であるので,$t$ でなく $s$ などでもよい。関数名は,たとえば mf(movie frame) とする。 \begin{verbatim} Setax(["","","sw","","sw"]); Slider("A-C-B",[0,YMIN-1],[2*pi,YMIN-1]); Circledata("1",[[0,0],[0,2]]); mf(t):=( -pt=2*[cos(t),sin(t)]; -mp=(pt+[4,0])/2; -Listplot("1",[[4,0],pt]); -Pointdata("1",[mp,pt],["Size=2"]); -if(t==0, -ptlist=[mp]; -, -ptlist=append(ptlist,mp); -); -Letter([[4,0],"s","A",pt,"en","P",mp,"ne","Q"]); -Pointdata("2",ptlist,["Size=2","Color=red"]); + pt=2*[cos(t),sin(t)]; + mp=(pt+[4,0])/2; + Listplot("1",[[4,0],pt]); + Pointdata("1",[mp,pt],["Size=2"]); + if(t==0, + ptlist=[mp]; + , + ptlist=append(ptlist,mp); + ); + Letter([[4,0],"s","A",pt,"en","P",mp,"ne","Q"]); + Pointdata("2",ptlist,["Size=2","Color=red"]); ); mf(C.x); Setpara("middle","mf(t)","t=[0,4*pi]"); \end{verbatim} -この例の場合,\verb|mf(C.x)| を実行するとスライダを動かすことでインタラクティブに軌跡を表示できる。 +この例の場合,\verb|mf(C.x)| を実行するとスライダを動かすことでインタラクティブに軌跡を表示できる。アニメーションを作る上では \verb|mf(C.x)| やスライダはなくてもよい。 + Cinderellaの画面は次のようになる。 \vspace{\baselineskip} \hspace{20mm} \includegraphics[bb=0.00 0.00 608.03 367.02,width=8cm]{Fig/moviedata01.pdf} -アニメーションを作成するときは \verb|//mf(C.x)| とコメントアウトしてから Anime ボタンをクリックする。次の図は,でき上がった animatemiddle.pdf の始めの画面である。 +アニメーションを作成するときは \verb|//mf(C.x)| とコメントアウトしてから 「ParaF」「Anime」 ボタンをクリックする。次の図は,でき上がった animatemiddle.pdf の始めの画面である。 \hspace{30mm}\includegraphics[bb=0.00 0.00 470.02 394.02,width=6cm]{Fig/moviedata02.pdf} @@ -5433,7 +5591,7 @@ Cinderellaの画面は次のようになる。 \verb| Setpara("middle","mf(t)","t=[0,4*pi]",["Div=30"],["Frate=6"]);| -\verb|["Div=150"],["Frage=30"]|とすると,やはり5秒間のアニメーションとなるが,1秒間のフレーム数が多いため,なめらかな動きとなる。これは標準的なビデオのフレームレートである。ただし,ファイルサイズは約5倍となる。 +\verb|["Div=150"],["Frate=30"]|とすると,やはり5秒間のアニメーションとなるが,1秒間のフレーム数が多いため,なめらかな動きとなる。これは標準的なビデオのフレームレートである。ただし,ファイルサイズは約5倍となる。 \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} @@ -5444,7 +5602,7 @@ Cinderellaの画面は次のようになる。 %==================== Slide =============== -\section{\ketcindy スライド} +\section{KeTスライド} \subsection{概要と制作手順} \ketcindy で作成した図とテキストを統合してプレゼンテーション用のスライドPDFを作成する。必要なファイルは,スライドの内容を記述したテキストファイル(ここではコンテンツファイルと呼ぶ)と,タイトルや図を作成し,コンテンツファイルと統合する \ketcindy のファイルである。この2つのファイルは,拡張子が txt と cdy で,ファイル名は同一とする。たとえば,コンテンツファイルを makeslide.txt , \ketcindy ファイルを makeslide.cdy としたときの,制作イメージを次の図に示す。 @@ -5473,7 +5631,7 @@ Cinderellaの画面は次のようになる。 (4) Slide ボタンでスライドPDFを作成する。 -PDFと,関連する中間ファイルは,作業フォルダではなく,makeslide.cdyのあるフォルダに作成される。また,スライドPDFはアニメーションと同様,Adobe Reader で開く必要がある。 +PDFと,関連する中間ファイルは,作業フォルダではなく,makeslide.cdyのあるフォルダに作成される。また,スライドPDFはアニメーションと同様,Windows,MacではAdobe Reader で開く必要がある。Linux(Ubuntu)では Evince でプレゼンテーションができる。 \subsection{コンテンツファイル} @@ -5708,6 +5866,8 @@ end// \vspace{\baselineskip} {\bf 【レイヤー】} +ketlayerの\verb|\begin{layer}・・\end{layer}| として書き出す。本来の記述より簡素になっている。 + \hspace{10mm}\verb|layer::{範囲}{0}//| で layer環境の始まりを示す。layer環境の終わりは @@ -5742,6 +5902,7 @@ end// {\bf 【テキストと動画】} コマンド以外のテキストはそのまま \TeX\ に書き出される。行末には // をつける。 + テキストを途中で改行するには,\TeX\ の 強制改行マーク \textbackslash \textbackslash をつける。 動画の場合は,動画の設定をして(アニメーションの節を参照)ファイルを作る。 @@ -5806,6 +5967,13 @@ mp4ファイルを追加するときは,\verb|\inputmovie|を用いる。\\ \hspace{10mm}\verb|\inputsountclik[90]{1}{0.4}{フォルダ/}{ファイル}|\\ 2番目と3番目の引数は,幅と高さの\verb|\linewidth|からの倍率である。 +\vspace{\baselineskip} +{\bf 【余白などの編集】} + +スライドの上側余白として,初期状態で \verb|\vspace*{18mm}| が設定される。次のページにはみ出してしまうような場合は,出力された tex ファイルで調整すればよい。 + +その他,適宜編集して,kc.command(bat/sh) を実行すれば,細かい部分を修正したPDFを作成することができる。 + \subsection{関数} makeslide.cdy で使う,\ketcindy の関数。 @@ -5924,6 +6092,9 @@ Settitle([ 例のように,タイトルリストは改行すると見やすい。 \end{description} + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \newpage %================== 3D概要 =============== \section{\ketcindy 3D} @@ -6057,7 +6228,7 @@ optionsがないときは,以下の 初期設定を用いる。 \end{description} %================== 3D描画 =============== -\newpage +%\newpage \subsection{描画} %================== 3D点・線 =============== @@ -6094,8 +6265,6 @@ Pointdata3d("1",[[1,1,1],[0,1,0]],["Size=2","Color=red"]); \end{verbatim} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} %---------------- Putpoint3d---------------------------------------------- \hypertarget{putpoint3d}{} \item[関数]Putpoint3d(リスト,option) @@ -6122,8 +6291,6 @@ optionは,"fix"( 初期設定) または "free"。リスト ["free"] にして 空間における点の座標は,点名に"3d"を付加した名前の変数に代入される。たとえば,点Aの座標はA3dである。これにより,点の座標を取得できる。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %----------------Putaxes3d--------------------------------------------- \vspace{\baselineskip} \hypertarget{putaxes3d}{} @@ -6140,11 +6307,10 @@ Putaxes3d(5);原点と,$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。 Putaxes3d([1,2,3]);原点と,$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %----------------PutonCurve3d--------------------------------------------- + %----------------Putoncurve3d--------------------------------------------- \vspace{\baselineskip} \hypertarget{putonCurve3d}{} -\item[関数]PutonCurve3d(点名,PD) +\item[関数]Putoncurve3d(点名,PD) \item[機能]空間曲線上に点をとる \item[説明]プロットデータPDの曲線上に,点名の点をとる。 @@ -6184,12 +6350,8 @@ options は線種(dr,da,do) ・Spaceline("2",[A,B,C,A]);作図されている2点A,B,Cを結んだ三角形を描く。 - ・節点を表示する場合は,Pointdata3d() で描画する。 -\begin{layer}{150}{0} -\putnotese{80}{10}{ \input{Fig/oresenex01}} -\end{layer} \begin{verbatim} pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; Spaceline("1",pt); @@ -6201,7 +6363,13 @@ Pointdata3d("1",pt,["Size=3"]); \verb|pname=apply(1..6,"P"+text(#));| のようにして,名前リストを作ることができる。 -\vspace{\baselineskip} + +%\vspace{\baselineskip} +%\begin{layer}{150}{0} +%\putnotese{80}{10}{ \input{Fig/oresenex01}} +%\end{layer} + \begin{center} \input{Fig/oresenex01} \end{center} + %------------------ Spacecurve----------------------------------------------- \hypertarget{spacecurve}{} \item[関数]Spacecurve(name,式,定義域,options) @@ -6257,10 +6425,8 @@ Pointdata3d("1",pt,["Size=3"]); 【例】\verb|Mkbezierptcrv3d(["A","B","C","D"]);|\\ 線分AB上に2点a1p,a2p,線分BC上に2点a2p,a2q,線分CD上に2点a3p,a3qができる。 - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - \vspace{\baselineskip} + %------------------ Skeletonparadata----------------------------------------------- \hypertarget{skeletonparadata}{} \item[関数]Skeletonparadata(name,PDリスト,PDリスト,option) @@ -6310,21 +6476,32 @@ Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); \end{description} -\newpage + +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +%\newpage %================== 3D多面体 =============== \subsubsection{多面体} 多面体の描画について,四面体の場合を例にして説明する。 -四面体は4つの面からなっている。頂点をA,B,C,Dとすると,4つの面は +\begin{layer}{130}{0} +\putnotesw{130}{0}{\input{Fig/concatobj}} +\end{layer} + +四面体は4つの面からなっている。 -\hspace{20mm} △ABC,△ABD,△ACD,△BCD +頂点をA,B,C,Dとすると,4つの面は + +\hspace{10mm} △ABC,△ABD,△ACD,△BCD である。 - \begin{center} \input{Fig/concatobj} \end{center} +% \begin{center} \input{Fig/concatobj} \end{center} + +頂点のリスト[A,B,C,D] に対し,Aから順に番号を -頂点のリスト[A,B,C,D] に対し,Aから順に番号をつけると,各面の頂点の順番は +つけると,各面の頂点の順番は \hspace{20mm}[1,2,3],[1,2,4],[1,3,4],[2,3,4] @@ -6930,7 +7107,7 @@ ExeccmdC("1"); \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} -\newpage +%\newpage %================== 3Dプロットデータの操作 =============== \subsection{プロットデータの操作} @@ -6970,8 +7147,7 @@ println("PD="+Datalist3d()); \end{verbatim} とすると,コンソールにPD=[ax3d,AB3d] と表示される。 - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{\baselineskip} %------------------- Changestyle3d ----------------------------------------------- \hypertarget{changestyle3d}{} @@ -7028,6 +7204,9 @@ Pointdata3d("1",intercrvsf1); のように表示され,画面には交点が表示される。 + +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + %------------------- IntersectsgpL ----------------------------------------------- \vspace{\baselineskip} \hypertarget{intersectsgpL}{} @@ -7071,19 +7250,23 @@ Spaceline("2",[p3,p4,p5,p3]); ret=IntersectsgpL("P",[p1,p2],[p3,p4,p5],"put"); println("flag1="+ret_2+": flag2="+ret_3); \end{verbatim} + \begin{layer}{150}{0} -\putnotese{10}{20}{ \input{Fig/wire01}} -\putnotese{60}{20}{ \input{Fig/wire02}} +\putnotese{10}{15}{ \input{Fig/wire01}} +\putnotese{60}{15}{ \input{Fig/wire02}} \end{layer} + \begin{verbatim} p2=[0,0,1/2]; p2=[-1,1,1]; flag1=false : flag2=trueflag1=true : flag2=true \end{verbatim} -\vspace{30mm} + +\newpage%\vspace{55mm} \begin{layer}{150}{0} -\putnotese{10}{20}{ \input{Fig/wire03}} -\putnotese{60}{20}{ \input{Fig/wire04}} +\putnotese{10}{15}{ \input{Fig/wire03}} +\putnotese{60}{15}{ \input{Fig/wire04}} \end{layer} + \begin{verbatim} p2=[1,2,1]; p2=[1,0,1/2]; flag1=true : flag2=false flag1=false : flag2=false @@ -7159,8 +7342,6 @@ ExeccmdC("1"); \end{verbatim} %\begin{center} \input{Fig/sfcut} \end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %------------------Partcrv3d ----------------------------------------------- \vspace{\baselineskip} @@ -7172,12 +7353,12 @@ ExeccmdC("1"); 始点と終点は,プロットデータの番号もしくは曲線上にとった点の識別名で示す。 \vspace{\baselineskip} -【例】螺旋を描き一部分を太くする。PutonCurve3d() で螺旋上に点C,Dができるので,ドラッグして適当な位置に移動する。 +【例】螺旋を描き一部分を太くする。Putoncurve3d() で螺旋上に点C,Dができるので,ドラッグして適当な位置に移動する。 \begin{verbatim} Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); -PutonCurve3d("C","sc3d1"); -PutonCurve3d("D","sc3d1"); +Putoncurve3d("C","sc3d1"); +Putoncurve3d("D","sc3d1"); Partcrv3d("1",C,D,"sc3d1",["dr,3"]); Letter([C,"n2","C",D,"n2","D"]); \end{verbatim} @@ -7193,6 +7374,8 @@ Partcrv3d("1",3.3,8.5,"sc3d1"); \end{verbatim} \begin{center} \input{Fig/partcrv3d2} \end{center} +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + %------------------Reflectdata3d----------------------------------------------- \hypertarget{reflectdata3d}{} \item[関数]Reflectdata3d(name , PDlist , list , options) @@ -7244,6 +7427,8 @@ Spaceline("1",[A,B,C,A]); 平面BCDに関する鏡映点\verb| Reflectpoint3d(A3d,[B3d,C3d,D3d]);| +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + %------------------Rotatedata3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{rotatedata3d}{} @@ -7326,6 +7511,8 @@ Putpoint3d(["B",pt]); 点Bの位置は(4,-3,5)になる。 +%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + %------------------ Translatedata3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{translatedata3d}{} @@ -7356,8 +7543,6 @@ VertexEdgeFace("1",phd); \end{verbatim} \begin{center} \input{Fig/translate01} \end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %------------------Translatepoint3d( ----------------------------------------------- \hypertarget{translatepoint3d}{} \item[関数]Translatepoint3d(座標,平行移動量) @@ -7371,11 +7556,9 @@ Putpoint3d(["A",[1,0,0]]); pt=Translatepoint3d(A3d,[-1,1,1]); Putpoint3d(["B",pt]); \end{verbatim} -\vspace{\baselineskip} +%\vspace{\baselineskip} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - - \end{description} \newpage %その他================================== @@ -7434,9 +7617,6 @@ Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); Skeletonparadata("1"); \end{verbatim} - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} %-----------------Perppt( ----------------------------------------------- \hypertarget{perppt}{} \item[関数]Perppt(点名,点,点リスト,option) @@ -7478,6 +7658,10 @@ Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]); %\vspace{\baselineskip} \begin{center}\scalebox{0.9}{ \input{Fig/perppt}} \end{center} + +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\vspace{\baselineskip} + %------------------Projcoordpara ----------------------------------------------- \hypertarget{projcoordpara}{} \item[関数]Projcoordpara(座標) @@ -7537,7 +7721,7 @@ Nohiddenbyfaces("1","phf3d1"); この他にn01〜n92まで整面凸多面体がある。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %-------------------Xyzcoord----------------------------------------------- @@ -7551,6 +7735,7 @@ Nohiddenbyfaces("1","phf3d1"); \vspace{\baselineskip} 【例】点Aをドラッグして動かしたとき,Aの座標を求める。 + \verb|println(Xyzcoord(A.x,A.y,Az.y));| により,コンソールに座標が表示される。 @@ -7977,6 +8162,7 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{drwxy}{Drwxy()} \>座標軸を先に描く\\ \hyperlink{fontsize}{Fontsize(記号)}\>フォントサイズを設定する\\ \hyperlink{ketinit}{Ketinit(options)}\>\ketcindy を初期化する\\ +\hyperlink{initglist}{Initglist} \> ketlib スロットの描画データを追加する\\ \hyperlink{ptsize}{Ptsize(数)} \>表示する点の大きさを設定する\\ \hyperlink{setarrow}{Setarrow(size,angle,pos,cut,style}\>矢線の形状を設定する\\ \hyperlink{setax}{Setax(list)}\>座標軸の書式を設定する\\ @@ -7992,7 +8178,8 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{setwindow}{Setwindow()}\>描画領域を設定する\\ \hyperlink{usegraphics}{Usegraphics()} \>グラフィクスパッケージを\verb|"pict2e"| に変更する\\ 【描画】\\ -\hyperlink{addgraph}{AddGraph(name ,プロットデータ)} \>ユーザー定義のプロットデータを描画する\\ +\hyperlink{drawfigures}{Drawfigures(name ,figlist,optionlist)} \>複数のデータのスタイルをリストで与えて描画する\\ +%\hyperlink{addgraph}{Addgraph(name ,プロットデータ)} \>ユーザー定義のプロットデータを描画する\\ \hyperlink{anglemark}{Anglemark(点list, options)}\>角の印を入れる\\ \hyperlink{setarrow}{Setarrow(options)}\>矢線をスタイルを設定する\\ \hyperlink{arrowdata}{Arrowdata(name.[始点,終点],options)}\>2点間を結ぶ矢線を描く\\ @@ -8041,9 +8228,9 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{pointdata}{Pointdata(name,点list,options)}\>点データを作る\\ \hyperlink{polygonplot}{Polygonplot(name,点list,整数,options)}\>正多角形を描く\\ \hyperlink{putintersect}{Putintersect(点名,PD1,PD2)}\>2曲線の交点を作る\\ -\hyperlink{putoncurve}{PutonCurve(name,PD,初期値)}\>曲線上に点を作る\\ -\hyperlink{putonline}{PutonLine(点名,座標1,座標2)}\>直線上に点を作る\\ -\hyperlink{putonseg}{PutonSeg(点名,座標1,座標2)}\>線分上に点を作る\\ +\hyperlink{putoncurve}{Putoncurve(name,PD,初期値)}\>曲線上に点を作る\\ +\hyperlink{putonline}{Putonline(点名,座標1,座標2)}\>直線上に点を作る\\ +\hyperlink{putonseg}{Putonseg(点名,座標1,座標2)}\>線分上に点を作る\\ \hyperlink{putpoint}{Putpoint(点名,座標1,座標2)}\>点を作る\\ \hyperlink{reflectdata}{Reflectdata(name,PD,点list,options)}\>プロットデータの鏡映を作成\\ \hyperlink{reflectpoint}{Reflectpoint(点,対称点/対称軸)}\>点の鏡映を作成\\ @@ -8059,11 +8246,11 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{translatepoint}{Translatepoint(点,ベクトル)}\>点を平行移動する\\ \hyperlink{vtickmark}{Vtickmark([横座標 , 方向 , 文字])}\>縦軸に目盛りを描く\\ 【作表】\\ -\hyperlink{changetablestyle}{ChangeTablestyle(罫線list, options)}\>Table の罫線の描画オプションを変更する。\\ +\hyperlink{changetablestyle}{Changetablestyle(罫線list, options)}\>Table の罫線の描画オプションを変更する。\\ \hyperlink{findcell}{Findcell(列番号, 行番号)}\>セルの情報listを返す\\ \hyperlink{putcell}{Putcell (列番号, 行番号, 位置, 文字)} \>セルに文字列を入れる\\ -\hyperlink{putcol}{PutcoL (列番号, 位置,文字列list)} \>1列に順に文字を書き入れる\\ -\hyperlink{putcolexpr}{PutcoLexpr (列番号, 位置,文字列list)}\>1列に順に\TeX 書式の文字を書き入れる\\ +\hyperlink{putcell}{Putcellexpr (列番号, 行番号, 位置, 文字)} \>セルに数式を入れる\\\hyperlink{putcol}{Putcol (列番号, 位置,文字列list)} \>1列に順に文字を書き入れる\\ +\hyperlink{putcolexpr}{Putcolexpr (列番号, 位置,文字列list)}\>1列に順に\TeX 書式の文字を書き入れる\\ \hyperlink{putrow}{Putrow (行番号, 位置,文字列list)} \>1行に順に文字を書き入れる\\ \hyperlink{putrowexpr}{Putrowexpr (行番号, 位置,文字列list)} \>1行に順に\TeX 書式の文字を書き入れる\\ \hyperlink{tabledata}{Tabledata("" , 縦横 ,除外 , options)}\>表の枠を作成する\\ @@ -8125,6 +8312,9 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{texcom}{Texcom(コード)} \>\TeX のコードを書き出す\\ \hyperlink{textformat}{Textformat(数,桁数)} \>小数点以下の桁数を指定して数値を文字列化する\\ \hyperlink{windispg}{Windispg()}\>定義されたプロットデータを描画面に描く\\ +\hyperlink{fracform}{Fracform(数,分母リスト)}\>簡易TeX-like書式の文字列を返す\\ +\hyperlink{totexform}{Totexform(TeX-like書式)}\>TeX書式の文字列を返す\\ +\hyperlink{tocindyform}{Tocindyform(TeX-like書式}\>Cindy書式の文字列を返す\\ \vspace{\baselineskip} 【Rとの連携】\\ \hyperlink{boxplot}{Boxplot(名前,データ,位置,高さ,option)} \>箱ひげ図を描く\\ @@ -8203,7 +8393,7 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{phparadata}{Phparadata(name,name2,options)}\>多面体を陰線処理して描く\\ \hyperlink{pointdata3d}{Pointdata3d(名前,点list,options)} \>空間点のデータを作成する\\ \hyperlink{putaxes3d}{Putaxes3d([x,y,z])}\>軸上に幾何点をとる\\ -\hyperlink{putonCurve3d}{PutonCurve3d(点名,PD)}\>空間曲線上に点をとる\\ +\hyperlink{putonCurve3d}{Putoncurve3d(点名,PD)}\>空間曲線上に点をとる\\ \hyperlink{putonseg3d}{Putonseg3d(点名,点1,点2)}\>線分上に点をとる\\ \hyperlink{putpoint3d}{Putpoint3d(list,option)}\>空間点をとる\\ \hyperlink{readobj}{Readobj(ファイル名)}\>objファイルを読み込む\\ |