summaryrefslogtreecommitdiff
path: root/graphics/ketcindy/ketcindyfolder
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/ketcindy/ketcindyfolder')
-rw-r--r--graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceE.pdfbin2028322 -> 2035361 bytes
-rw-r--r--graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceJ.pdfbin2658951 -> 2665964 bytes
-rw-r--r--graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceE.tex177
-rw-r--r--graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceJ.tex186
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/3dlist.txt169
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic1list.txt299
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic2list.txt194
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic3list.txt92
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/ignoredfun.txt5
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/makefunlist.cdybin5516 -> 5570 bytes
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dlogr.txt15
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dr.cs107
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1logr.txt46
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1r.cs243
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2logr.txt42
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2r.cs511
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3logr.txt46
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3r.cs384
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutlogr.txt4
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutr.cs168
-rw-r--r--graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketpiccurrent.r47
-rw-r--r--graphics/ketcindy/ketcindyfolder/work/samples/s10maxima/s1010fourier.cdybin4971 -> 4976 bytes
-rw-r--r--graphics/ketcindy/ketcindyfolder/work/template4ketcindyjs.cdybin5146 -> 5230 bytes
23 files changed, 1682 insertions, 1053 deletions
diff --git a/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceE.pdf b/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceE.pdf
index adf119eae9..f6924e269c 100644
--- a/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceE.pdf
+++ b/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceE.pdf
Binary files differ
diff --git a/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceJ.pdf b/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceJ.pdf
index a24668ebcd..b9e9d2f6b4 100644
--- a/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceJ.pdf
+++ b/graphics/ketcindy/ketcindyfolder/doc/ketmanual/KeTCindyReferenceJ.pdf
Binary files differ
diff --git a/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceE.tex b/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceE.tex
index 1432b0ef18..aabea0a665 100644
--- a/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceE.tex
+++ b/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceE.tex
@@ -3251,6 +3251,21 @@ Draw the point A near the origin.
\end{cmd}
+%-------------Reparse-------------------------------
+\begin{cmd}{Reparse}{reparse}
+\itemket{Usage}Reparse(string or list of string)
+\itemket{Description}function to return the real part after \verb|parse|
+\itemket{Remark}\verb|parse| of CindyJS has a bug to return an imaginary number in some cases.
+\itemket{Examples}\mbox{}
+
+\verb|str="(0-1)^2"; |\\
+\verb|format(parse(str),0);| // returns \verb|1+i*0| in CindyJS\\
+\verb|format(Reparse(str),0);| // returns \verb|1|\\
+
+
+
+\end{cmd}
+
%-------------Slider-------------------------------
\begin{cmd}{Slider}{slider}
\itemket{Usage}Slider("endpoint1-pt-endpoint2",endpoint1,endpoint2);\vspace{-2mm}
@@ -3358,9 +3373,9 @@ Cindyscript has a function \verb|format(value, number)|, like as Textformat.
\end{cmd}
%----------Fracform----------------------------------
\begin{cmd}{Fracform}{fracform}
-\itemket{Usage}Fracform(number,list of denominators)
+\itemket{Usage}Fracform(number,list of denominators/max number[, allowable error(5)])
\itemket{Description}returns Tex-like form of the fraction
-\itemket{Examples}\verb|Fracform(0.33,[2,3]); => fr(1,3)|
+\itemket{Examples}\verb|Fracform(0.33,[2,3]); => [fr(1,3),''err=0.00333'',1,3]|
\end{cmd}
@@ -5608,6 +5623,148 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t
\end{center}
\end{cmd}
+%================== KeTCindyJS ===============
+\section{KeTCindyJS}
+
+\subsection{How to create HTML}
+
+\ketcindy\ can create the HTML file from a \ketcindy\ file using CindyJS.
+
+\begin{enumerate}[(1)]
+\item Use a \ketcindy\ file with buttons of KeTJS in CindyScreen, for example, templateketcindyjs.cdy.
+\item Select from the top menu, \verb|File > Export to CindyJS|.
+\item Press button "KeTJS" for on-line mode, or "KeTJSoff" for off-line mode.
+\item Then the HTML file will be created in the same folder of the cdy file.
+\end{enumerate}
+
+\subsection{Control of code writing}
+
+\begin{itemize}
+\item \verb|no ketjs (on/off)| for not writing to HTML
+\item \verb|only ketjs (on/off)| for only writing to HTML
+\item \verb|on, off| are used for multi lines of scripts.
+\end{itemize}
+
+{\bf Example}
+\begin{verbatim}
+ str="x^2"; //no ketjs
+ //str=Textedit(0); //only ketjs
+\end{verbatim}
+
+\subsection{Commands of KeTCindyJS}
+
+%--------------Ptpos-----------------------------
+
+\begin{cmd}{Ptpos}{ptpos}
+
+\itemket{Usage}Ptpos(geometric point)
+\itemket{Description} Function to return the latest position
+\itemket{Examples} \verb|Ptpos(A)|
+
+\end{cmd}
+
+%--------------Setketcindyjs-----------------------------
+
+\begin{cmd}{Setketcindyjs}{setketcindyjs}
+
+\itemket{Usage}Setketcindyjs( list of options )
+\itemket{Description} Function to set options of KeTCindyJS.
+\itemket{Options} \mbox{}\\
+\hspace*{5mm}\Ltab{25mm}{"Scale="}Ratio of scaling (default : 1)\\
+\hspace*{5mm}\Ltab{25mm}{"Nolabel="}list of points without label. \verb|all| can be used\\
+\hspace*{5mm}\Ltab{25mm}{"Color="}Name or code of background color (default : lightgray)\\
+\hspace*{5mm}\Ltab{25mm}{"Grid="}Grid size (mm)\\
+\hspace*{5mm}\Ltab{25mm}{"Figure=y"}To set window size to that of \ketcindy\\
+\hspace*{5mm}\Ltab{25mm}{"Axes=false"}Not to display axes of Cinderella
+\itemket{Example}Setketcindyjs(["Nolabel=all","Grid=2","Color=white"]);
+\end{cmd}
+
+%--------------Ketcindyjsdata-----------------------------
+
+\begin{cmd}{Ketcindyjsdata}{ketcindyjsdata}
+
+\itemket{Usage}Ketcindyjsdata( list of name, value of variables )
+\itemket{Description} Function to write the variables into "csinit".
+\itemket{Examples} \mbox{}
+
+\verb|Mxfun("1","integrate",["x*sin(x)","x"]);// no ketjs|\\
+\verb|Ketcindyjsdata(["mx1",mx1]);|\\
+\verb|Plotdata("1",mx1,"x");|
+
+\end{cmd}
+
+%--------------Ketcindyjsbody-----------------------------
+
+\begin{cmd}{Ketcindyjsbody}{ketcindyjsbody}
+
+\itemket{Usage}Ketcindyjsbody( prependlist, appendlist)
+\itemket{Description} Function to add scripts to the first/last of body tag.
+\itemket{Examples} \mbox{}
+
+\verb|Ketcindyjsbody(["<p,f10>__Title''],[]);|\\
+\verb| => <p><font size="10">&emsp;&emsp;Title</font></p>|
+
+\end{cmd}
+
+%--------------Animationparam-----------------------------
+
+\begin{cmd}{Animationparam}{animationparam}
+
+\itemket{Usage}Animationparam(init, speed( /sec), range )
+\itemket{Description} to get parameter value of buttons for animation.
+\itemket{Examples} \verb|ss=Animationparam(0,1,[-60,60]);|
+\itemket{Buttons}\mbox{}
+
+\begin{itemize}
+\item \Ltab{15mm}{"Play"}Parameter value set to the initial value, and starts changing
+\item \Ltab{15mm}{"Stop"}Parameter value set to the initial value, and ends changing
+\end{itemize}
+
+\end{cmd}
+
+%--------------Textedit-----------------------------
+
+\begin{cmd}{Textedit}{textedit}
+
+\itemket{Usage}Texedit(number of identifier)
+\itemket{Description} Function to get a string from an input box in HTML.
+\itemket{Remark}To create the input box,
+\begin{enumerate}[(1)]
+\item Use button "Define function".
+\item Input a string into "text" and press "Evaluation".\\
+\hspace*{3mm}Rem)To create a blank box, input only "=", and add "Equal=" to Setketcindyjs.
+\item With the inspector, confirm the number of identifier and change styles.
+\end{enumerate}
+
+\itemket{Examples}Let the number of identifier be 50.\\
+\verb|str="x^2";|\\
+\verb|//str=Textedit(50); //only ketjs|\\
+\verb|Plotdata("1",str,"x");|
+
+
+\end{cmd}
+
+%--------------Movetojs-----------------------------
+
+\begin{cmd}{Movetojs}{movetojs}
+
+\itemket{Usage}Movetojs(identifier or name,position,font size )
+\itemket{Description} Function to set the position and font size of text box in HTML.
+\itemket{Example} \verb|Movetojs(50,[0,-5],15);// no ketjs|
+
+\end{cmd}
+
+%--------------Setplaybuttons-----------------------------
+
+\begin{cmd}{Setplaybuttons}{setplaybuttons}
+
+\itemket{Usage}Setplaybuttons(coord, font size [, space])
+\itemket{Description} Function to set the position of play buttons in HTML.
+\itemket{Example} \verb|Setplaybuttons([0,-5],15,[1]);// no ketjs|
+
+\end{cmd}
+
+
\newpage
%-==Appendix ========================
\section{Appendix}
@@ -5618,6 +5775,9 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t
%\scalebox{0.9}{\input{Fig/colortable}}
\input{Fig/colortable}
\end{center}
+
+Rem) lightgray\ [0,0,0,0.15],\ offwhite\ [0,0,0,0.3],\ cindycolor\ [0.66,0,69,0.71] have been added.
+
\newpage
%-----------Comparative chart of drawing of points---------
@@ -5638,6 +5798,7 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t
\hspace{20mm} $\triangle$ : use PD
\newpage
+
%-==Command List ========================
\hypertarget{functionlist}{}
\section{Command List}
@@ -5797,6 +5958,7 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t
\hyperlink{norml}{Norm} \> return the norm of a vector.\\
\hyperlink{opl}{Op} \> return the n-th element of a list or a string.\\
\hyperlink{ptselected}{Ptselected} \> tests whether the point is selected.\\
+\hyperlink{reparse}{Reparse} \> return the real part afger parsing.\\
\hyperlink{slider}{Slider} \> make a slider on a Euclidean view.\\
\hyperlink{sprintf}{Sprintf} \> converts a real number to a string.\\
\hyperlink{texcom}{Texcom} \> add the command in the \TeX file.\\
@@ -5894,8 +6056,15 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t
\hyperlink{wireparadata}{Wireparadata} \> draw the surface by wire frame data with performing hidden line processing.\\
\hyperlink{xyzax3data}{Xyzax3data} \> draw the coordinate axis.\\
\hyperlink{xyzcoord}{Xyzcoord} \> return the 3D-coordinate of the point P.\\
-\hyperlink{setangle}{Setangle} \>Set TH and FI\\
-\hyperlink{getangle}{Getangle}\>Get TH and FI\\
+{\bf KeTCindyJS} \> \\
+\hyperlink{ptpos}{Ptpos} \>Return the latest position of geometric point\\
+\hyperlink{setketcindyjs}{Setketcindyjs} \>Set options of KeTCindyJS\\
+\hyperlink{ketcindyjsdata}{Ketcindyjsdata}\>Write into csinit\\
+\hyperlink{ketcindyjsbody}{Ketcindyjsbody}\>Add scripts to the first/last of body tag\\
+\hyperlink{animationparam}{Animationparam}\>Get parmeter value of animation\\
+\hyperlink{textedit}{Textedit}\>Get string from input box of KeTCindyJS\\
+\hyperlink{movetojs}{Movetojs}\>Set position and fontsize of text box in HTML\\
+\hyperlink{setplaybuttons}{Setplaybuttons}\>Set position of play buttons in HTML\\
\end{tabbing}
\end{document} \ No newline at end of file
diff --git a/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceJ.tex b/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceJ.tex
index aa8c5bd234..4bda400879 100644
--- a/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceJ.tex
+++ b/graphics/ketcindy/ketcindyfolder/doc/source/ketmanual/KeTCindyReferenceJ.tex
@@ -566,7 +566,7 @@ optionsは,線種・表示する文字列・解像度・出力の有無など
\item[機能]点のデータを作成する。
\item[説明]与えられた座標の点データを作成する。オプションは"Size=","Color=","Inside"。
-Inside オプションは,点の内部についての指定。ただし,Cinderellaの描画面には反映されない。
+Inside オプションは,点の内部についての指定。
0 : 白抜き
@@ -4118,6 +4118,15 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その
\hspace{10mm}\includegraphics[bb=0.00 0.00 219.01 204.51,width=40mm]{Fig/ptselected02.pdf}
\vspace{\baselineskip}
+\hypertarget{reparse}{}
+\item[関数]Reparse(文字列か文字列のリスト)
+\item[機能]評価(parse)してから実部をとる(re)。
+\item[説明]CindyJSでは,実数の演算でも虚数の項が出ることがあり,その対応である。
+
+【例】\verb|str="(0-1)^2"; Reparse(str);|\\
+  注)CindyJSでformat(parse(str),0)を実行すると\verb|1-i*0|になる。
+
+\vspace{\baselineskip}
\hypertarget{slider}{}
\item[関数]Slider(名称,位置1,位置2)
\item[機能]スライダを作成する
@@ -4175,7 +4184,7 @@ 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}
+%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\vspace{\baselineskip}
\hypertarget{texcom}{}
@@ -4261,12 +4270,12 @@ Cindyscriptの アンダーバーの演算子 (list\_n , str\_n) と同様。
\vspace{\baselineskip}
\hypertarget{fracform}{}
-\item[関数]Fracform(数 , 分母のリストまたは最大値)
+\item[関数]Fracform(数 , 分母のリストまたは最大値 [, 許容誤差の桁数(5)])
\item[機能]分母リストの1つを分母とする近似分数と誤差を返す。
-\item[説明]戻り値は,簡易TeX-like書式の文字列と誤差。
+\item[説明]戻り値は,簡易TeX-like書式の文字列,誤差,分子,分母。
\vspace{\baselineskip}
-【例】\verb|Fracform(0.33,[2,3]); => fr(1,3)|
+【例】\verb|Fracform(0.33,[2,3]); => [fr(1,3),''err=0.0033'',1,3]|
\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
@@ -8026,19 +8035,21 @@ Cinderellaのファイルメニューから「CindyJSに書き出す」ときの
012345678\=3433778901234567\=890090666612345\=\kill
Local \> y/n \>動作環境の設定。 \>初期値は y\\
Scale \> 実数 \> 拡大・縮小 \>初期値は 1\\
+Grid \> 実数 \> グリッドサイズ(mm)\\
Nolabel \> 点のリスト \> ラベルを表示しない点を指定する。"No"だけでも可。\\
-Color \> 色名またはコード\> 背景色の指定。初期値はCinderellaの画面の色。\\
+\hspace*{10mm}"Nolabel=all"とすると,すべての点のラベルが表示されない。\\
+Color \> 色名またはコード\> 背景色の指定。初期値はlightgray([0,0,0,0.17])\\
+Figure \> y \>書き出す範囲をNE,SWの範囲にする。\\
+Axes \> false \>CindyJSが表示している座標軸を非表示にする。 \\
\end{tabbing}
【例】すべて設定するとき,次のように記述する。
-\verb| Setketcindyjs(["Local=n","Scale=1.5","No=[A,B]","Color=[0.2,0,0,0]"]) |
+\verb| Setketcindyjs(["Local=n","Scale=1.5","No=[A,B]","Color=lightgray"]) |
\vspace{\baselineskip}
注1)Cinderellaの画面に背景の方眼が描かれているとき,「CindyJSに書き出す」で,この方眼も表示される。方眼を消したい場合は,画面下の「グリッドを描く」ツールで非表示にしておく。
-注2)「CindyJSに書き出す」で書き出すときの範囲は,ウィンドウ全体である。NE,SWの範囲ではない。2点NE,SWは\verb| Setketcindyjs(["No=[NE,SW]" | で非表示になるが,NE,SEの範囲を広くとっておき,ウィンドウサイズをこれより小さくすれば \verb|"No=[NE,SW]"| オプションを使わなくても表示されずにすむ。
-
-注3)HTMLなので,画面に説明文などを表示したい場合は,HTMLファイルを開き,下の方の \verb|<body>| と \verb|</body>| の間,\verb|<div id="CSCanvas"></div>| の前後に書けば表示される。改行などは,HTMLのタグを用いる。
+注2)HTMLなので,画面に説明文などを表示したい場合は,HTMLファイルを開き,下の方の \verb|<body>| と \verb|</body>| の間,\verb|<div id="CSCanvas"></div>| の前後に書けば表示される。改行などは,HTMLのタグを用いる。
\vspace{\baselineskip}
\hypertarget{setketcindy}{}
@@ -8067,11 +8078,151 @@ Listplot("3",[B,D]);
この場合,対角線は2本とも描かれない。
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+
+\vspace{\baselineskip}
+\hypertarget{setketcindy}{}
+\item[KeTJSだけで有効] only ketjs
+\item[機能] KeTJSだけに書き込む
+\item[説明] コマンドの先頭に \verb|//| につけて,行の最後に続けて書くと,その行はKeTJSだけで有効となる。
+ブロック単位で有効化するには,ブロックを \verb|only ketjs on|,\verb|only ketjs off| ではさむ。
+
+【例】KeTJSだけで入力窓を作る。
+
+\begin{verbatim}
+str="x^2";
+//str=Textedit(50); only ketjs
+Plotdata("1",str,"x");
+\end{verbatim}
+
+注)\verb|Textedit|はKeTJSで入力窓からの入力を得るコマンド
+
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\end{description}
+%======KeTJSの設定============================
+
+\subsection{KeTJSのコマンド}
+
+\begin{description}
+
+\hypertarget{ptpos}{}
+\item[関数]Ptpos(幾何点)
+\item[機能]幾何点の現在(直前)座標を返す。
+\item[説明]幾何点を制御可能範囲外に移動した場合に保持されるもとの座標
+
+【例】\verb|Ptpos(A)|
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+
+\begin{description}
+
+\hypertarget{ketcindyjsdata}{}
+\item[関数]Ketcindyjsdata(変数名と値のリスト)
+\item[機能]KeTJSファイルのscript "csinit"の最後にデータを書き込む
+\item[説明]Maximaの返り値などKeTJSでは得られないデータを使えるようにする。
+
+\begin{verbatim}
+【例】Mxfun("1","integrate",["x*sin(x)","x"]);// no ketjs
+   Ketcindyjsdata(["mx1",mx1]);
+   Plotdata("1",mx1,"x");
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+
+\begin{description}
+
+\hypertarget{ketcindyjsbody}{}
+\item[関数]Ketcindyjsbody(prependlist,appendlist)
+\item[機能]KeTJSファイルのbodyの最初と最後にスクリプトを追加する。
+
+
+\begin{verbatim}
+【例】Ketcindyjsbody(["<p,f10>__Title''],[]);
+    => <p><font size="10">&emsp;&emsp;Title</font></p>
+\end{verbatim}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+
+\begin{description}
+
+\hypertarget{animationparam}{}
+\item[関数]Animationparam(初期値,速度,範囲)
+\item[機能]アニメーションボタンのパラメータ値を取得する。
+\item[例 ]ss=Animationparam(0,1,[-60,60]);
+\item[説明]\mbox{}
+
+\begin{itemize}
+\item \Ltab{15mm}{"Play"}パラメータ値が初期値にセットされ,変化が始まる。
+\item \Ltab{15mm}{"Stop"}パラメータ値が初期値にセットされ,変化が終わる。
+\item \Ltab{15mm}{速度}パラメータ値の変化速度(秒速)
+\item \Ltab{15mm}{範囲}パラメータ値が端点に達したら停止する。
+\end{itemize}
+
+
+\end{description}
+
+
+\begin{description}
+
+\hypertarget{textedit}{}
+\item[関数]Textedit(識別番号)
+\item[機能]KeTJSで入力窓に入れた文字列を取得する。
+\item[説明]KeTJSでの入力窓の作り方
+
+\begin{itemize}
+\item[(1)]CindyScreenの"f(x)"を選び,適当な初期値を入れてEvaluateを押す。\\
+ 注)"="だけを入れて,Setketcindyjsのオプションに\\
+    "Equal="\\
+  を追加すると,KeTJSの入力窓は空欄になる。
+\item[(2)]"要素を動かす"に戻り,(1)を選んでインスペクタを開く。
+\item[(3)]識別番号を確認(修正)して,フォントサイズを変える。
+
+\end{itemize}
+
+【例】識別番号を0とする。
+
+\begin{verbatim}
+str="x^2"; //no ketjs
+//str=Textedit(0); //only ketjs
+Plotdata("1",str,"x");
+\end{verbatim}
+
+\end{description}
+
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\begin{description}
+
+\hypertarget{movetojs}{}
+\item[関数]Movetojs(識別番号または要素名,座標,フォントサイズ);
+\item[機能]KeTJSでテキストボタンの位置とフォントサイズを指定
+\item[例 ]Movetojs(0,[2,-4],15);
+\end{description}
+
+\begin{description}
+
+\hypertarget{setplaybuttons}{}
+\item[関数]Setplaybuttons(座標,フォントサイズ [,スペース増加量]);
+\item[機能]KeTJSでPlayなどのボタンの位置とフォントサイズを指定
+\item[例 ]Setplaybuttons([-3,-4.5],15,[1]);\\
+注)Play,Pause,Rev,Stopの識別番号が71,72,73,74であることを確認しておく。\\
+注)スペース増加量の単位はmm,リストで個々に指定することもできる。
+
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+
\newpage
%付録==================================
\section{付録}
@@ -8125,7 +8276,7 @@ Cinderellaで使っている用語に次のものがある。
画面ツール(下のツールバー)\\
\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/translate-view.pdf}原点を移動する \>:画面上の任意の位置でドラッグする\\
\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-in.pdf}矩形領域を画面サイズに拡大 \>:ドラッグしてできる矩形で領域を選択する\\
-\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-out.pdf}画面を矩形領域サイズに縮小 \>:どっらっぐしてで切る矩形で領域を選択する\\
+\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-out.pdf}画面を矩形領域サイズに縮小 \>:ドラッグしてで切る矩形で領域を選択する\\
\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/snap.pdf}格子点にスナップする \>:軸と方眼を表示しスナップモードにする\\
\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-more.pdf}\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-less.pdf}グリッドを粗く / 細かくする\\
\end{tabbing}
@@ -8133,7 +8284,9 @@ Cinderellaで使っている用語に次のものがある。
\hypertarget{colorcodelist}{}
\subsection{色名とカラーコード一覧}
\vspace{\baselineskip}
-\scalebox{0.9}{\input{Fig/colortable}}
+\scalebox{0.85}{\input{Fig/colortable}}
+
+注)lightgray\ [0,0,0,0.15],\ offwhite\ [0,0,0,0.3],\ cindycolor\ [0.66,0,69,0.71]を追加
\newpage
%--------------点の作図についての比較表--------------------------------------
@@ -8306,6 +8459,7 @@ Cinderellaで使っている用語に次のものがある。
\hyperlink{op}{Op(n,list)} \> listまたは文字列から要素を抜き出す\\
\hyperlink{isptselected}{Isptselected(点名)} \>点が選択されていればtrueを返す\\
\hyperlink{isptselected}{Ptselected(点名)} \>点が選択されていればtrueを返す\\
+\hyperlink{reparse}{Reparse(文字列(リスト)}\>評価して実数化する\\
\hyperlink{slider}{Slider()}\>スライダを作る\\
\hyperlink{sprintf}{Sprintf(実数,長さ)}\>小数点以下の長さを固定した文字列に変換\\
\hyperlink{strsplit}{Strsplit(文字列,文字)}\>文字列を分解する。\\
@@ -8416,8 +8570,14 @@ Cinderellaで使っている用語に次のものがある。
\hyperlink{xyzax3data}{Xyzax3data(name,文字,文字,文字,options)}\>座標軸の表示\\
\hyperlink{xyzcoord}{Xyzcoord(P.x,P.y,Pz.y)}\>主副画面で決まる点の座標\\
【KeTJS】\\
+\hyperlink{ptpos}{Ptpos(幾何点)}\>幾何点の現在(直前)座標\\
\hyperlink{setketcindyjs}{Setketcindyjs(options)}\>KeTJSの設定\\
-
+\hyperlink{ketcindyjsdata}{Ketcindyjsdata(変数名と値のリスト)}\>script "csinit"にデータを書き込む\\
+\hyperlink{ketcindyjsbody}{Ketcindyjsbody(prependlist,appendlist)}\>bodyの最初と最後にスクリプトを追加\\
+\hyperlink{animationparam}{Animationparam(初期値,速度,範囲)}\>アニメーションボタンのパラメータ値を取得\\
+\hyperlink{textedit}{Textedit(識別番号)}\>KeTJSで入力窓に入れた文字列を取得\\
+\hyperlink{movetojs}{Movetojs(要素名,座標,フォントサイズ)}\>Textボタンの位置とフォントサイズを設定\\
+\hyperlink{setplaybuttons}{Setplaybuttons(座標,サイズ [, スペース])}\>Playなどのボタンの位置とフォントサイズを設定\\
\end{tabbing}
\end{document} \ No newline at end of file
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/3dlist.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/3dlist.txt
index 340efcf9f0..d96abad8e4 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/3dlist.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/3dlist.txt
@@ -1,84 +1,85 @@
-Ketinit3d,3d,22,50,Setwindow,Addax
-Start3d,3d,54,162,Strsplit,Toupper,Setfiles,Setwindow,Slider,Sprintf,Ptselected,Ptseg3data
-Setangle,3d,166,237,Parapt,Ptselected,Xyzcoord,Defvar,Datalist3d,Projpara,textformat,Ptseg3data
-Getangle,3d,241,259,getangle,divoptions,Strsplit,181111,Toupper,textformat
-Angleselected,3d,263,264,IsAngle
-Isangle,3d,268,268,Ptselected
-Changestyle3d,3d,272,291,Changestyle
-Dist3d,3d,295,314
-Findangle,3d,318,335
-Cancoordpara,3d,339,347
-Zparapt,3d,351,355
-Projcoordpara,3d,359,364,Parapt,Zparapt
-Parapt,3d,368,374
-Parasubpt,3d,378,384
-Parasubptlog,3d,388,393
-Mainsubpt3d,3d,397,415
-Projcurve,3d,419,469,Measuredepth
-Projpara,3d,473,542,Divoptions,Strsplit,Toupper,Projcurve,textformat,Com2nd,Getlinestyle,Texcom
-Invparaptpp,3d,546,601,textformat,Projpara,Nearestpt,Crossprod,Dotprod,Ptend,Numptcrv,Ptcrv
-Invparapt,3d,605,609,Invparaptpp
-Subgraph,3d,613,630,Measuredepth,Parasubpt,Textformat
-Spaceline,3d,634,727,Divoptions,Toupper,Projpara,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Spacecurve,3d,731,897,Divoptions,Toupper,tmpfn,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Partcrv3d,3d,901,937,parapt,partcrv,Xyzcoord,Spaceline
-Joincrvs3d(,3d,941,1036,Joincrvs3d,Divoptions,Norm,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Xyzax3data,3d,1040,1166,Divoptions,Strsplit,Toupper,Spaceline,Xyzaxparaname,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Lightarrowdata,Letter,Parapt,Subgraph
-Xyzaxparaname,3d,1170,1212,Strsplit,Dqq,Parapt,Expr
-Datalist3d,3d,1216,1224
-Datalist2d,3d,1228,1236
-Embed,3d,1240,1328,Measuredepth,Divoptions,Assign,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Rotatepoint3d,3d,1332,1418,Rotate3pt,Measuredepth
-Rotatedata3d,3d,1422,1492,Divoptions,Rotatepoint3d,Flattenlist,Projpara,textformat,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Translatepoint3d,3d,1496,1523,Translate3pt,Measuredepth
-Translatedata3d,3d,1527,1589,Divoptions,Measuredepth,Translatepoint3d,Flattenlist,Projpara,RSform,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Reflectpoint3d,3d,1593,1617,Reflect3pt,Crossprod,Dotprod
-Reflectdata3d,3d,1621,1686,Divoptions,Reflectpoint3d,Flattenlist,textformat,Projpara,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Scalepoint3d,3d,1691,1708,Scale3pt
-Scaledata3d,3d,1713,1782,Divoptions,Scalepoint3d,Flattenlist,textformat,Projpara,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
-Xyzcoord,3d,1786,1792,Mainsubpt3d
-Putoncurve3d,3d,1796,1812,PutonCurve,Nearestpt,Paramoncurve,Pointoncurve,Xyzcoord,textformat,Defvar
-Mkpointlist,3d,1816,1933,Workprocess,Finddef,Norm,Parapt,Parasubpt,Putpoint,Mainsubpt3d,Defvar,Ptselected
-Mkseg3d,3d,1937,1981,Divoptions,Finddef,Spaceline
-Ptseg3data,3d,1985,2020,Ptselected,Parapt,Parasubpt,Mainsubpt3d,Defvar,Mkpointlist,Mkseg3d
-Putonseg3d,3d,2024,2076,divoptions,Putonseg,Putpoint,Parapt,Textformat,Parasubpt,Xyzcoord,Defvar
-Putpoint3d,3d,2080,2138,Toupper,Xyzcoord,Defvar,Parapt,Putpoint,Parasubpt,Fixpoint3d
-Fixpoint3d,3d,2142,2159,Defvar,Parapt,textformat
-Letter3d,3d,2163,2183,Parapt,Letter
-Expr3d,3d,2187,2207,Parapt,Expr
-Perppt,3d,2211,2267,Putperp,Crossprod,IntersectsgpL,Dotprod,Defvar,Putpoint3d,Fixpoint3d,Drawpoint3d
-Perpplane,3d,2271,2312,findangle,Cancoordpara,Toupper,Putpoint3d,Defvar,Drawpoint3d
-Drawpoint3d,3d,2316,2332,Divoptions,Measuredepth,Parapt,Textformat,Parasubpt
-Pointdata3d,3d,2336,2345,Measuredepth,Parapt,Pointdata
-Putaxes3d,3d,2349,2360,Putpoint3d
-IntersectsgpL,3d,2364,2481,Divoptions,Strsplit,Toupper,Crossprod,Reflectpoint3d,Dotprod,Putpoint3d,Drawpoint3d,Textformat
-Bezier3d,3d,2485,2582,Measuredepth,Bezier3,Divoptions,Toupper,Assign,Spacecurve,Projpara,textformat,RSform,Getlinestyle,Com2nd,Subgraph
-Putbezier3data,3d,2586,2624,Divoptions,Putpoint3d
-Mkbezierptcrv3d,3d,2628,2648,Mkbezierptcrv3,Putbezier3data,Bezier3
-Readobj,3d,2686,2788,Divoptions,Toupper,Removespace
-Concatobj,3d,2792,2862,divoptions,Toupper,dist3d
-VertexEdgeFace,3d,2899,2862
-Vertexedgeface,3d,2904,3085,Divoptions,Strsplit,Toupper,Parapt,Putpoint3d,Defvar,Dqq,Changestyle3d,Spaceline,Textformat
-Phparadata,3d,3089,3191,Divoptions,Getlinestyle,Com2nd,Changestyle3d,Drawlinetype,Toupper
-Nohiddenseg,3d,3195,3324,Parapt,Dotprod,Cancoordpara,IntersectsgpL,Projcoordpara,Intersectcrvspp,Crossprod
-Nohiddensegs,3d,3328,3363,Nohiddenseg
-Nohiddenbyfaces,3d,3367,3516,Datalist3d,Divoptions,Strsplit,Toupper,Changestyle3d,MeasureDepth,Nohiddensegs,Spaceline
-Faceremovaldata,3d,3520,3603,Divoptions,Getlinestyle,Com2nd,Measuredepth,Changestyle3d,Drawlinetype,Toupper
-Fullformfunc,3d,3607,3689,Removespace
-Surffun,3d,3693,3709,Fullformfunc,Deffun
-Sf3data,3d,3713,3797,Surffun,Divoptions,Toupper,textformat,Spacecurve
-SfbdparadataR,3d,3801,3887,ConvertFdtoC,Divoptions,Toupper,Select,MkprecommandR,textformat,RSform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
-Addpoints,3d,3891,3906,RSform,textformat
-CrvsfparadataR,3d,3910,4012,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,Addpoints,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
-Crv3onsfparadataR,3d,4016,4116,Crvs3onfparadataR,Changestyle3d,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
-Crv2onsfparadataR,3d,4120,4221,Crvs2onfparadataR,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
-WireparadataR,3d,4225,4326,Divoptions,Toupper,Select,MkprecommandR,RSform,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
-IntersectcrvsfR,3d,4330,4418,Intersectcrvsf,Divoptions,Toupper,RSform,textformat,Rsform,Dqq,CalcbyR,ReadOutData
-SfcutparadataR,3d,4422,4519,Strsplit,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
-Skeletonparadata,3d,4525,4529,Skeletondatacindy
-Skeletondatacindy,3d,4533,4722,Datalist3d,Divoptions,Strsplit,Toupper,Anyselected,Flattenlist,isexists,ReadOutData,Textformat,Projcoordcurve,Makeskeletondata,Norm,Ptcrv,Invparapt,Projcurve,textformat,Changestyle3d,Getlinestyle,Com2nd,Subgraph,WriteOutData
-Makeskeletondata,3d,4726,4928,Columnlist,Intersectcrvspp,Op,column,Dotprod,Norm,Kukannozoku,Pointoncurve,Listplot
-Kukannozoku,3d,4932,4983
-Projcoordcurve,3d,4989,5003
-Divnohidhid,3d,5007,5070,Divoptions,Toupper,assign,Dotprod,Changestyle3d,Spaceline,textformat
-Beziersurf,3d,5074,5129,factorial,Deffun,Op,Bterm,Defvar
+Ketinit3d,3d,22,57,Setwindow,Addax,Slider,Sprintf
+Start3d,3d,61,170,Strsplit,Toupper,Setfiles,Setwindow,Slider,Sprintf,Ptselected,Ptseg3data
+Setangle,3d,174,245,Parapt,Ptselected,Xyzcoord,Defvar,Datalist3d,Projpara,textformat,Ptseg3data
+Getangle,3d,249,267,getangle,divoptions,Strsplit,181111,Toupper,textformat
+Angleselected,3d,271,272,IsAngle
+Isangle,3d,276,276,Ptselected
+Changestyle3d,3d,280,299,Changestyle
+Dist3d,3d,303,322
+Findangle,3d,326,343
+Cancoordpara,3d,347,355
+Zparapt,3d,359,363
+Projcoordpara,3d,367,372,Parapt,Zparapt
+Parapt,3d,376,382
+Parasubpt,3d,386,392
+Parasubptlog,3d,396,401
+Mainsubpt3d,3d,405,423
+Projcurve,3d,427,477,Measuredepth
+Projpara,3d,481,550,Divoptions,Strsplit,Toupper,Projcurve,textformat,Com2nd,Getlinestyle,Texcom
+Invparaptpp,3d,554,609,textformat,Projpara,Nearestpt,Crossprod,Dotprod,Ptend,Numptcrv,Ptcrv
+Invparapt,3d,613,617,Invparaptpp
+Subgraph,3d,621,638,Measuredepth,Parasubpt,Textformat
+Spaceline,3d,642,735,Divoptions,Toupper,Projpara,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Spacecurve,3d,739,905,Divoptions,Toupper,tmpfn,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Partcrv3d,3d,909,945,parapt,partcrv,Xyzcoord,Spaceline
+Joincrvs3d(,3d,949,1044,Joincrvs3d,Divoptions,Norm,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Xyzax3data,3d,1048,1174,Divoptions,Strsplit,Toupper,Spaceline,Xyzaxparaname,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Lightarrowdata,Letter,Parapt,Subgraph
+Xyzaxparaname,3d,1178,1220,Strsplit,Dqq,Parapt,Expr
+Datalist3d,3d,1224,1232
+Datalist2d,3d,1236,1244
+Embed,3d,1248,1336,Measuredepth,Divoptions,Assign,Projpara,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Rotate3pt,3d,1340,1341,Rotatepoint3d
+Rotatepoint3d,3d,1344,1429,Measuredepth
+Rotatedata3d,3d,1433,1503,Divoptions,Rotatepoint3d,Flattenlist,Projpara,textformat,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Translatepoint3d,3d,1507,1534,Translate3pt,Measuredepth
+Translatedata3d,3d,1538,1600,Divoptions,Measuredepth,Translatepoint3d,Flattenlist,Projpara,RSform,textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Reflectpoint3d,3d,1604,1628,Reflect3pt,Crossprod,Dotprod
+Reflectdata3d,3d,1632,1697,Divoptions,Reflectpoint3d,Flattenlist,textformat,Projpara,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Scalepoint3d,3d,1702,1719,Scale3pt
+Scaledata3d,3d,1724,1793,Divoptions,Scalepoint3d,Flattenlist,textformat,Projpara,RSform,Textformat,Com2nd,Getlinestyle,Texcom,Subgraph
+Xyzcoord,3d,1797,1803,Mainsubpt3d
+Putoncurve3d,3d,1807,1823,PutonCurve,Nearestpt,Paramoncurve,Pointoncurve,Xyzcoord,textformat,Defvar
+Mkpointlist,3d,1827,1944,Workprocess,Finddef,Norm,Parapt,Parasubpt,Putpoint,Mainsubpt3d,Defvar,Ptselected
+Mkseg3d,3d,1948,1992,Divoptions,Finddef,Spaceline
+Ptseg3data,3d,1996,2031,Ptselected,Parapt,Parasubpt,Mainsubpt3d,Defvar,Mkpointlist,Mkseg3d
+Putonseg3d,3d,2035,2087,divoptions,Putonseg,Putpoint,Parapt,Textformat,Parasubpt,Xyzcoord,Defvar
+Putpoint3d,3d,2091,2149,Toupper,Xyzcoord,Defvar,Parapt,Putpoint,Parasubpt,Fixpoint3d
+Fixpoint3d,3d,2153,2170,Defvar,Parapt,textformat
+Letter3d,3d,2174,2194,Parapt,Letter
+Expr3d,3d,2198,2218,Parapt,Expr
+Perppt,3d,2222,2278,Putperp,Crossprod,IntersectsgpL,Dotprod,Defvar,Putpoint3d,Fixpoint3d,Drawpoint3d
+Perpplane,3d,2282,2332,Divoptions,Toupper,findangle,Cancoordpara,Putpoint3d,Defvar,Pointdata3d
+Drawpoint3d,3d,2336,2352,Divoptions,Measuredepth,Parapt,Textformat,Parasubpt
+Pointdata3d,3d,2356,2370,Measuredepth,Parapt,Pointdata,Defvar
+Putaxes3d,3d,2374,2385,Putpoint3d
+IntersectsgpL,3d,2389,2506,Divoptions,Strsplit,Toupper,Crossprod,Reflectpoint3d,Dotprod,Putpoint3d,Drawpoint3d,Textformat
+Bezier3d,3d,2510,2607,Measuredepth,Bezier3,Divoptions,Toupper,Assign,Spacecurve,Projpara,textformat,RSform,Getlinestyle,Com2nd,Subgraph
+Putbezier3data,3d,2611,2649,Divoptions,Putpoint3d
+Mkbezierptcrv3d,3d,2653,2673,Mkbezierptcrv3,Putbezier3data,Bezier3
+Readobj,3d,2711,2813,Divoptions,Toupper,Removespace
+Concatobj,3d,2817,2887,divoptions,Toupper,dist3d
+VertexEdgeFace,3d,2924,2925,Vertexedgeface
+Vertexedgeface,3d,2929,3110,Divoptions,Strsplit,Toupper,Parapt,Putpoint3d,Defvar,Dqq,Changestyle3d,Spaceline,Textformat
+Phparadata,3d,3114,3216,Divoptions,Getlinestyle,Com2nd,Changestyle3d,Drawlinetype,Toupper
+Nohiddenseg,3d,3220,3349,Parapt,Dotprod,Cancoordpara,IntersectsgpL,Projcoordpara,Intersectcrvspp,Crossprod
+Nohiddensegs,3d,3353,3388,Nohiddenseg
+Nohiddenbyfaces,3d,3392,3541,Datalist3d,Divoptions,Strsplit,Toupper,Changestyle3d,MeasureDepth,Nohiddensegs,Spaceline
+Faceremovaldata,3d,3545,3628,Divoptions,Getlinestyle,Com2nd,Measuredepth,Changestyle3d,Drawlinetype,Toupper
+Fullformfunc,3d,3632,3714,Removespace
+Surffun,3d,3718,3734,Fullformfunc,Deffun
+Sf3data,3d,3738,3822,Surffun,Divoptions,Toupper,textformat,Spacecurve
+SfbdparadataR,3d,3826,3912,ConvertFdtoC,Divoptions,Toupper,Select,MkprecommandR,textformat,RSform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
+Addpoints,3d,3916,3931,RSform,textformat
+CrvsfparadataR,3d,3935,4037,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,Addpoints,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
+Crv3onsfparadataR,3d,4041,4141,Crvs3onfparadataR,Changestyle3d,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
+Crv2onsfparadataR,3d,4145,4246,Crvs2onfparadataR,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
+WireparadataR,3d,4250,4351,Divoptions,Toupper,Select,MkprecommandR,RSform,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara
+IntersectcrvsfR,3d,4355,4443,Intersectcrvsf,Divoptions,Toupper,RSform,textformat,Rsform,Dqq,CalcbyR,ReadOutData
+SfcutparadataR,3d,4447,4544,Strsplit,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara
+Skeletonparadata,3d,4550,4554,Skeletondatacindy
+Skeletondatacindy,3d,4558,4747,Datalist3d,Divoptions,Strsplit,Toupper,Anyselected,Flattenlist,isexists,ReadOutData,Textformat,Projcoordcurve,Makeskeletondata,Norm,Ptcrv,Invparapt,Projcurve,textformat,Changestyle3d,Getlinestyle,Com2nd,Subgraph,WriteOutData
+Makeskeletondata,3d,4751,4953,Columnlist,Intersectcrvspp,Op,column,Dotprod,Norm,Kukannozoku,Pointoncurve,Listplot
+Kukannozoku,3d,4957,5008
+Projcoordcurve,3d,5014,5028
+Divnohidhid,3d,5032,5095,Divoptions,Toupper,assign,Dotprod,Changestyle3d,Spaceline,textformat
+Beziersurf,3d,5099,5154,factorial,Deffun,Op,Bterm,Defvar
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic1list.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic1list.txt
index 20063af461..9ed585fb1b 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic1list.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic1list.txt
@@ -1,149 +1,150 @@
-Ketinit,basic1,41,172,Fillstore,Cindyname,Indexall,getname,iswindows,ismacosx,Changesetting,Changework,pathsep,Setwindow
-Initglist,basic1,176,187
-Setglist,basic1,191,197
-Addglist,basic1,201,207
-Fillstore,basic1,211,244
-Fillblack,basic1,248,262,Fillstore
-Fillrestore,basic1,266,278
-Readlines,basic1,282,293,readfile2str
-Changesetting,basic1,297,312,pathsep,getname,isexists
-Cindyname,basic1,316,323,Cdyname,Getcdyname
-Setwindow,basic1,327,364,Toupper,Lcrd,Pcrd,Putpoint
-Setfiles,basic1,368,381,Dqq
-Setparent,basic1,385,397,Dqq
-Dqq,basic1,401,401,DqDq
-DqDq,basic1,404,407
-PPa,basic1,411,412
-PaO,basic1,416,428
-PaC,basic1,432,444
-PPa,basic1,448,448
-Tab2list,basic1,452,514,Divoptions,Toupper,Indexall
-Columnlist,basic1,518,521
-Dispmat,basic1,525,547
-Sep1000,basic1,551,569
-Acos,basic1,573,576
-Asin,basic1,580,583
-Atan,basic1,587,590
-Sqr,basic1,594,597
-Factorial,basic1,601,609
-Norm,basic1,613,625
-Removespace,basic1,630,655
-Indexall,basic1,659,677
-Strsplit,basic1,681,692,Indexall
-Parlevel,basic1,696,696,Bracket
-Bracket,basic1,699,721,Indexall
-Pardiagram,basic1,725,821,Divoptions,Toupper,Bracket,Listplot,Letter,Expr
-Changework,basic1,825,883,Divoptions,Strsplit,Toupper,Indexall,isexists,Dqq,makedir,pathsep,iswindows,iskcexists,setexec
-Changestyle,basic1,887,919,Divoptions,Com2nd,Getlinestyle,Texcom
-Op,basic1,923,935
-Ptselected,basic1,939,955,Isptselected
-Finddef,basic1,959,978
-Findgeoinfo,basic1,982,1007,Finddef
-Dependgeo,basic1,1011,1031,Finddef
-Workprocess,basic1,1035,1039,Drawprocess
-Drawprocess,basic1,1042,1087,Divoptions,Strsplit,Toupper,Dependgeo
-Sortpointlist,basic1,1091,1123
-Toupper,basic1,1127,1142
-Textformat,basic1,1146,1170
-Sprintf,basic1,1174,1191,Textformat
-Replaceall,basic1,1195,1205
-Assign,basic1,1209,1266,Textformat
-Measuredepth,basic1,1297,1310,Indexall
-Flattenlist,basic1,1314,1334,Measuredepth
-Divoptions,basic1,1338,1441,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb
-Dotprod,basic1,1445,1451
-Crossprod,basic1,1455,1467
-Mvprod,basic1,1471,1489,Measuredepth
-Ptstart,basic1,1493,1498
-Ptend,basic1,1502,1507
-Numptcrv,basic1,1511,1516
-Ptcrv,basic1,1520,1525
-Invert,basic1,1529,1542,Listplot
-Paramoncrv,basic1,1546,1546,Paramoncurve
-Paramoncurve,basic1,1549,1575,Nearestpt,LLcrd
-Pointoncrv,basic1,1579,1579,Pointoncurve
-Pointoncurve,basic1,1582,1600
-Koutenseg,basic1,1604,1712
-Intersectcrvspp,basic1,1718,1861,Divoptions,Measuredepth,LLcrd,Koutenseg
-Intersectcrvs,basic1,1865,1871,Intersectcrvspp
-Intersectline,basic1,1879,1901,Dotprod,Crossprod
-Intersectseg,basic1,1905,2005,Op,Intersectline,Nearestpt
-Osplineseg,basic1,2009,2026,Dotprod,Bezier
-Intersectpartseg,basic1,2030,2132,Crossprod,Norm,Reflectpoint,Osplineseg,Intersectseg,Op,Intersectline
-Collectsameseg,basic1,2136,2178
-Intersectcurvespp,basic1,2182,2288,LLcrd,Intersectpartseg,Collectsameseg,Nearestpt
-Intersectcurves,basic1,2292,2299,Intersectcurvesop
-Nearestptcrvphy,basic1,2305,2314,Pcrd,Measuredepth,Nearestpt
-Nearestptcrv,basic1,2318,2324,Nearestpt
-Nearestpt,basic1,2328,2381,Measuredepth,Paramoncurve
-Derivative,basic1,2385,2476,Strsplit,Lineplot,Intersectcurvespp,Pointoncurve,Dotprod,Divoptions,Toupper,PaO,Pcrd,Assign
-Tangentplot,basic1,2480,2527,Divoptions,Strsplit,Toupper,Intersectcurvespp,Derivative,Lineplot
-Integrate,basic1,2531,2544,Integratefn,Integratedt
-Integratedt,basic1,2548,2580,Divoptions,Toupper,IntegrateO,Measuredepth,MeetCurve,LLcrd
-Integratefn,basic1,2584,2644,Divoptions,Toupper,Strsplit,Assign,IntegrateO,Textformat
-IntegrateO,basic1,2648,2727,Measuredepth,Meetcurve,LLcrd,Dotprod
-FindareaP,basic1,2731,2744,Lcrd
-FindareaO,basic1,2748,2769,Dist,IntegrateO
-Findarea,basic1,2773,2799,Divoptions,Strsplit,Toupper,FindareaO,FindareaP
-Findlength,basic1,2803,2815,Lcrd
-Inversefun,basic1,2819,2842,Textformat
-Com0th,basic1,2846,2850
-Com1st,basic1,2854,2859
-Com2nd,basic1,2863,2868
-Com2ndpre,basic1,2872,2876
-Texcom,basic1,2880,2887,Com2nd
-Ketcindylogo,basic1,2891,2895,Com2nd
-Drwline,basic1,2899,2902,Textformat,Com2nd
-Dashline,basic1,2907,2909,Com2nd
-Invdashline,basic1,2913,2915,Com2nd
-Dottedline,basic1,2919,2921,Com2nd
-Drawlinetype,basic1,2925,2946,Toupper,Drwline,Dashline,Invdashline,Dottedline
-Setunitlen,basic1,2950,3002
-Setmarklen,basic1,3006,3010,Com2nd,Textformat
-Setorigin,basic1,3014,3018,Com2nd,Textformat
-Fontsize,basic1,3022,3025,Com2nd
-Setpen,basic1,3029,3033,Com2nd
-Setscaling,basic1,3037,3051,Com0th,Setwindow
-Lcrd,basic1,3055,3063
-Pcrd,basic1,3067,3075
-LLcrd,basic1,3079,3088
-Doscaling,basic1,3092,3119,Lcrd,LLcrd
-Unscaling,basic1,3123,3150,Lcrd,LLcrd
-Setpt,basic1,3154,3160,Ptsize,Com2nd
-Definecolor,basic1,3164,3172,Texcom
-Setcolor,basic1,3176,3203,Colorcmyk2rgb,Com2nd
-Colorrgb2cmyk,basic1,3207,3219
-Colorcmyk2rgb,basic1,3223,3230
-Colorrgbhsv,basic1,3234,3266
-Colorhsvrgb,basic1,3270,3284
-Colorrgbhsl,basic1,3288,3324
-Colorhslrgb,basic1,3328,3349,Hue2rgb
-Hue2rgb,basic1,3353,3371
-Colorrgbhwb,basic1,3375,3381,Colorrgbhsl,Colorcode
-Colorhwbrgb,basic1,3385,3410
-Colorcode,basic1,3414,3427,Colorrgb2cmyk,Colorcmyk2rgb,Colorrgbhsv,Colorrgbhsl,Colorrgbhwb,Colorhsvrgb,Colorhslrgb,Colorhwbrgb
-Colorname2rgb,basic1,3431,3481,Colorcmyk2rgb,Assign
-Getlinestyle,basic1,3485,3551,Drwline,Dashline,Invdashline,Dottedline,Textformat,Drwpt
-Chunderscore,basic1,3555,3590,PaO
-AddGraph,basic1,3594,3694,Divoptions,Flattenlist,Pcrd,Measuredepth,PaO,Textformat,Com2nd,Getlinestyle,Texcom
-Joincrvs,basic1,3698,3794,LLcrd,Divoptions,Numptcrv,Ptstart,Ptend,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Partcrv,basic1,3798,3887,Measuredepth,Divoptions,Numptcrv,Ptstart,Ptend,Joincrvs,Nearestpt,LLcrd,Pcrd,Textformat,Lcrd,Com2nd,Getlinestyle,Texcom
-Opcrvs,basic1,3891,3899,Listplot
-Pointdata,basic1,3903,4026,Strsplit,Divoptions,Toupper,Lcrd,Measuredepth,Pcrd,PaO,Texcom,Textformat,Com2nd
-Listplot,basic1,4030,4111,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom,Lcrd
-Lineplot,basic1,4115,4198,Strsplit,Toupper,Divoptions,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Plotdata,basic1,4202,4407,Divoptions,Strsplit,PaO,Dqq,Toupper,Assign,Norm,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Paramplot,basic1,4411,4583,Divoptions,Strsplit,PaO,Dqq,Toupper, differs from Scilab ,Assign,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Polarplot,basic1,4587,4596,Strsplit,Paramplot
-Connectseg,basic1,4600,4662,Norm
-Implicitplot,basic1,4666,4849,Divoptions,Strsplit,Toupper,Impfun,Connectseg,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Circledata,basic1,4853,4972,Divoptions,Strsplit,Toupper,Lcrd,Defvar,Lineplot,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Framedata,basic1,4976,5028,Measuredepth,LLcrd,Divoptions,Lcrd,Listplot
-Framedata2,basic1,5032,5039,Lcrd,Framedata
-Ovaldata,basic1,5043,5113,Divoptions,Lcrd,Listplot,Circledata,Reflectdata,Joincrvs,Com2nd,Getlinestyle,Texcom,Pcrd,Textformat
-Segmark,basic1,5117,5177,Drawsegmark,Divoptions,Toupper,Circledata,Listplot
-Parabolaplot,basic1,5181,5221,Lcrd,Rotatepoint,Textformat,Plotdata,Rotatedata
-Ellipseplot,basic1,5225,5268,Lcrd,Rotatepoint,Paramplot,Rotatedata
-Hyperbolaplot,basic1,5272,5336,Divoptions,Toupper,Lcrd,Rotatepoint,Paramplot,Lineplot,Rotatedata
-Polygonplot,basic1,5340,5386,Divoptions,Strsplit,Toupper,Lcrd,Putpoint,Listplot
-Putintersect,basic1,5390,5418,Intersectcrvs,Putpoint
+Ketinit,basic1,41,178,Fillstore,Cindyname,Indexall,getname,iswindows,ismacosx,Changesetting,Changework,pathsep,Setwindow,Strictmove
+Initglist,basic1,182,185,Ketinit
+Setglist,basic1,189,195
+Addglist,basic1,199,205
+Fillstore,basic1,209,242
+Fillblack,basic1,246,260,Fillstore
+Fillrestore,basic1,264,276
+Readlines,basic1,280,291,readfile2str
+Changesetting,basic1,295,310,pathsep,getname,isexists
+Cindyname,basic1,314,321,Cdyname,Getcdyname
+Setwindow,basic1,325,362,Toupper,LLcrd,Putpoint,Ptpos,Strictmove,Pcrd
+Setfiles,basic1,366,379,Dqq
+Setparent,basic1,383,395,Dqq
+Reparse,basic1,399,409
+Dqq,basic1,413,413,DqDq
+DqDq,basic1,416,419
+PPa,basic1,423,424
+PaO,basic1,428,440
+PaC,basic1,444,456
+PPa,basic1,460,460
+Tab2list,basic1,464,526,Divoptions,Toupper,Indexall
+Columnlist,basic1,530,533
+Dispmat,basic1,537,559
+Sep1000,basic1,563,581
+Acos,basic1,585,588
+Asin,basic1,592,595
+Atan,basic1,599,602
+Sqr,basic1,606,609
+Factorial,basic1,613,621
+Norm,basic1,625,637
+Removespace,basic1,642,667
+Indexall,basic1,671,689
+Strsplit,basic1,693,704,Indexall
+Parlevel,basic1,708,708,Bracket
+Bracket,basic1,711,733,Indexall
+Pardiagram,basic1,737,833,Divoptions,Toupper,Bracket,Listplot,Letter,Expr
+Changework,basic1,837,895,Divoptions,Strsplit,Toupper,Indexall,isexists,Dqq,makedir,pathsep,iswindows,iskcexists,setexec
+Changestyle,basic1,899,931,Divoptions,Com2nd,Getlinestyle,Texcom
+Op,basic1,935,947
+Ptselected,basic1,951,967,|mouse
+Finddef,basic1,971,990
+Findgeoinfo,basic1,994,1019,Finddef
+Dependgeo,basic1,1023,1043,Finddef
+Workprocess,basic1,1047,1051,Drawprocess
+Drawprocess,basic1,1054,1099,Divoptions,Strsplit,Toupper,Dependgeo
+Sortpointlist,basic1,1103,1135
+Toupper,basic1,1139,1154
+Textformat,basic1,1158,1182
+Sprintf,basic1,1186,1203,Textformat
+Replaceall,basic1,1207,1217
+Assign,basic1,1221,1284,Textformat
+Measuredepth,basic1,1315,1328,Indexall
+Flattenlist,basic1,1332,1352,Measuredepth
+Divoptions,basic1,1356,1459,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb
+Dotprod,basic1,1463,1469
+Crossprod,basic1,1473,1485
+Mvprod,basic1,1489,1507,Measuredepth
+Ptstart,basic1,1511,1516
+Ptend,basic1,1520,1525
+Numptcrv,basic1,1529,1534
+Ptcrv,basic1,1538,1543
+Invert,basic1,1547,1560,Listplot
+Paramoncrv,basic1,1564,1564,Paramoncurve
+Paramoncurve,basic1,1567,1593,Nearestpt,LLcrd
+Pointoncrv,basic1,1597,1597,Pointoncurve
+Pointoncurve,basic1,1600,1618
+Koutenseg,basic1,1622,1731
+Intersectcrvspp,basic1,1737,1880,Divoptions,Measuredepth,LLcrd,Koutenseg
+Intersectcrvs,basic1,1884,1890,Intersectcrvspp
+Intersectline,basic1,1898,1920,Dotprod,Crossprod
+Intersectseg,basic1,1924,2024,Op,Intersectline,Nearestpt
+Osplineseg,basic1,2028,2045,Dotprod,Bezier
+Intersectpartseg,basic1,2049,2151,Crossprod,Norm,Reflectpoint,Osplineseg,Intersectseg,Op,Intersectline
+Collectsameseg,basic1,2155,2197
+Intersectcurvespp,basic1,2201,2307,LLcrd,Intersectpartseg,Collectsameseg,Nearestpt
+Intersectcurves,basic1,2311,2318,Intersectcurvespp,190917
+Nearestptcrvphy,basic1,2324,2333,Pcrd,Measuredepth,Nearestpt
+Nearestptcrv,basic1,2337,2343,Nearestpt
+Nearestpt,basic1,2347,2400,Measuredepth,Paramoncurve
+Derivative,basic1,2404,2495,Strsplit,Lineplot,Intersectcurvespp,Pointoncurve,Dotprod,Divoptions,Toupper,PaO,Pcrd,Assign
+Tangentplot,basic1,2499,2546,Divoptions,Strsplit,Toupper,Intersectcurvespp,Derivative,Lineplot
+Integrate,basic1,2550,2563,Integratefn,Integratedt
+Integratedt,basic1,2567,2599,Divoptions,Toupper,IntegrateO,Measuredepth,MeetCurve,LLcrd
+Integratefn,basic1,2603,2663,Divoptions,Toupper,Strsplit,Assign,IntegrateO,Textformat
+IntegrateO,basic1,2667,2746,Measuredepth,Meetcurve,LLcrd,Dotprod
+FindareaP,basic1,2750,2763,Lcrd
+FindareaO,basic1,2767,2788,Dist,IntegrateO
+Findarea,basic1,2792,2818,Divoptions,Strsplit,Toupper,FindareaO,FindareaP
+Findlength,basic1,2822,2834,Lcrd
+Inversefun,basic1,2838,2861,Textformat
+Com0th,basic1,2865,2869
+Com1st,basic1,2873,2878
+Com2nd,basic1,2882,2887
+Com2ndpre,basic1,2891,2895
+Texcom,basic1,2899,2906,Com2nd
+Ketcindylogo,basic1,2910,2914,Com2nd
+Drwline,basic1,2918,2921,Textformat,Com2nd
+Dashline,basic1,2926,2928,Com2nd
+Invdashline,basic1,2932,2934,Com2nd
+Dottedline,basic1,2938,2940,Com2nd
+Drawlinetype,basic1,2944,2965,Toupper,Drwline,Dashline,Invdashline,Dottedline
+Setunitlen,basic1,2969,3021
+Setmarklen,basic1,3025,3029,Com2nd,Textformat
+Setorigin,basic1,3033,3037,Com2nd,Textformat
+Fontsize,basic1,3041,3044,Com2nd
+Setpen,basic1,3048,3052,Com2nd
+Setscaling,basic1,3056,3070,Com0th,Setwindow
+Lcrd,basic1,3074,3082
+Pcrd,basic1,3086,3094
+LLcrd,basic1,3098,3107
+Doscaling,basic1,3111,3138,Lcrd,LLcrd
+Unscaling,basic1,3142,3169,Lcrd,LLcrd
+Setpt,basic1,3173,3179,Ptsize,Com2nd
+Definecolor,basic1,3183,3191,Texcom
+Setcolor,basic1,3195,3222,Colorcmyk2rgb,Com2nd
+Colorrgb2cmyk,basic1,3226,3238
+Colorcmyk2rgb,basic1,3242,3249
+Colorrgbhsv,basic1,3253,3285
+Colorhsvrgb,basic1,3289,3303
+Colorrgbhsl,basic1,3307,3343
+Colorhslrgb,basic1,3347,3368,Hue2rgb
+Hue2rgb,basic1,3372,3390
+Colorrgbhwb,basic1,3394,3400,Colorrgbhsl,Colorcode
+Colorhwbrgb,basic1,3404,3429
+Colorcode,basic1,3433,3446,Colorrgb2cmyk,Colorcmyk2rgb,Colorrgbhsv,Colorrgbhsl,Colorrgbhwb,Colorhsvrgb,Colorhslrgb,Colorhwbrgb
+Colorname2rgb,basic1,3450,3500,Colorcmyk2rgb,Assign
+Getlinestyle,basic1,3504,3569,Toupper,Drwline,Dashline,Invdashline,Dottedline,Textformat,Drwpt
+Chunderscore,basic1,3573,3608,PaO
+AddGraph,basic1,3612,3712,Divoptions,Flattenlist,Pcrd,Measuredepth,PaO,Textformat,Com2nd,Getlinestyle,Texcom
+Joincrvs,basic1,3716,3812,LLcrd,Divoptions,Numptcrv,Ptstart,Ptend,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Partcrv,basic1,3816,3905,Measuredepth,Divoptions,Numptcrv,Ptstart,Ptend,Joincrvs,Nearestpt,LLcrd,Pcrd,Textformat,Lcrd,Com2nd,Getlinestyle,Texcom
+Opcrvs,basic1,3909,3917,Listplot
+Pointdata,basic1,3921,4065,Divoptions,Strsplit,Colorcmyk2rgb,Colorname2rgb,Toupper,Lcrd,Measuredepth,Pcrd,PaO,Texcom,Textformat,Com2nd
+Listplot,basic1,4069,4150,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom,Lcrd
+Lineplot,basic1,4154,4237,Strsplit,Toupper,Divoptions,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Plotdata,basic1,4241,4446,Divoptions,Strsplit,PaO,Dqq,Toupper,Assign,Norm,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Paramplot,basic1,4450,4622,Divoptions,Strsplit,PaO,Dqq,Toupper, differs from Scilab ,Assign,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Polarplot,basic1,4626,4635,Strsplit,Paramplot
+Connectseg,basic1,4639,4701,Norm
+Implicitplot,basic1,4705,4888,Divoptions,Strsplit,Toupper,Impfun,Connectseg,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Circledata,basic1,4892,5011,Divoptions,Strsplit,Toupper,Lcrd,Defvar,Lineplot,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Framedata,basic1,5015,5067,Measuredepth,LLcrd,Divoptions,Lcrd,Listplot
+Framedata2,basic1,5071,5078,Lcrd,Framedata
+Ovaldata,basic1,5082,5152,Divoptions,Lcrd,Listplot,Circledata,Reflectdata,Joincrvs,Com2nd,Getlinestyle,Texcom,Pcrd,Textformat
+Segmark,basic1,5156,5216,Drawsegmark,Divoptions,Toupper,Circledata,Listplot
+Parabolaplot,basic1,5220,5260,Lcrd,Rotatepoint,Textformat,Plotdata,Rotatedata
+Ellipseplot,basic1,5264,5307,Lcrd,Rotatepoint,Paramplot,Rotatedata
+Hyperbolaplot,basic1,5311,5375,Divoptions,Toupper,Lcrd,Rotatepoint,Paramplot,Lineplot,Rotatedata
+Polygonplot,basic1,5379,5425,Divoptions,Strsplit,Toupper,Lcrd,Putpoint,Listplot
+Putintersect,basic1,5429,5457,Intersectcrvs,Putpoint
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic2list.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic2list.txt
index 32e67feb5c..0e6e2a577c 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic2list.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic2list.txt
@@ -1,97 +1,99 @@
Drwfigs,basic2,22,24,Drawfigures
-Drawfigures,basic2,28,87,Divoptions,Strsplit,Toupper,Measuredepth,Pointdata,Listplot,Dqq
-Setarrow,basic2,91,117
-Arrowheaddata,basic2,121,214,Divoptions,Strsplit,Toupper,Touppera,Measuredepth,Nearestpt,|Ptend,Ptstart,Numptcrv,Ptcrv,LLcrd,Intersectcrvspp,Pcrd
-Arrowhead,basic2,218,310,Strsplit,Toupper,Measuredepth,Pcrd,Arrowheaddata,Inwindow,Listplot,Divoptions,Dqq,Textformat,LLcrd,Com2nd,Texcom
-Arrowdata,basic2,314,428,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Listplot,LLcrd,Arrowhead,Setscaling,Lcrd
-Lightarrowdata,basic2,432,547,Pcrd,Divoptions,Strsplit,Toupper,Listplot,Textformat,LLcrd,Com2nd,Texcom,Setscaling,Lcrd
-Anglemark,basic2,551,684,Divoptions,Indexall,Strsplit,Dqq,Toupper,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Paramark,basic2,688,798,Divoptions,Indexall,Strsplit,Dqq,Toupper,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Makebowdata,basic2,802,815,Lcrd,Rotatepoint
-Bowdata,basic2,819,990,Divoptions,Lcrd,Strsplit,Toupper,Makebowdata,Defvar,Norm,LLcrd,Dqq,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
-Bowname,basic2,994,997,Expr
-Bownamerot,basic2,1001,1015,Measuredepth,Ptend,Ptstart,Exprrot
-Deqdata,basic2,1019,1077,funP,Lcrd,funN
-Deqplot,basic2,1081,1225,Lcrd,Divoptions,Toupper,Indexall,Deqdata,Pcrd,Assign,Textformat,RSform,Com2nd,Getlinestyle,Texcom
-Enclosing,basic2,1393,1559,Enclosing2,Divoptions,isList,Lcrd,Listplot,Intersectcurvespp,Prepend,Op,Length,Partcrv,Pointoncurve,Pcrd,PaO,Textformat,Com2nd,Getlinestyle,Texcom,LLcrd
-Makehatch,basic2,1567,1669,Lineplot,Intersectseg,Norm,Listplot
-Anyselected,basic2,1673,1681
-Hatchdata,basic2,1685,1981,HatchdataR,Hatchdatacindy,Listplot,Joincrvs,Enclosing2,Divoptions,Strsplit,Toupper,Anyselected,Bracket,isexists,ReadOutData,Makehatch,Textformat,PaO,Com2nd,Getlinestyle,Texcom,WriteOutData,LLcrd
-Shadein,basic2,1985,2072,Framedata,Partcrv,Paramoncrv,Listplot,Intersectcurvespp,Pointoncrv,Joincrvs,Inwindow
-Shade,basic2,2076,2204,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Enclosing,Shadein,Listplot,Joincrvs,Pcrd,PaO,Textformat,Dqq
-Rotatepoint,basic2,2210,2220,Lcrd
-Translatepoint,basic2,2224,2234,Lcrd
-Scalepoint,basic2,2238,2248,Lcrd
-Reflectpoint,basic2,2252,2277,Lcrd
-Rotatedata,basic2,2281,2367,Divoptions,Lcrd,Strsplit,Toupper,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
-Translatedata,basic2,2371,2449,Divoptions,Strsplit,Toupper,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Getlinestyle,Texcom
-Scaledata,basic2,2453,2555,Divoptions,Lcrd,Strsplit,Toupper,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
-Reflectdata,basic2,2559,2653,Divoptions,Strsplit,Toupper,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Getlinestyle,Texcom
-Mksegments,basic2,2658,2673,Listplot
-Mkcircles,basic2,2678,2698,Strsplit,Circledata
-MakeRarg,basic2,2702,2715,RSslash,Textformat
-Htickmark,basic2,2719,2742,Listplot,Expr
-Vtickmark,basic2,2746,2767,Listplot,Expr,180710to// tmp=MakeRarg
-Vtick,basic2,2771,2781,Listplot
-Htick,basic2,2785,2797,LLcrd,Listplot
-Setax,basic2,2801,2818
-Drwxy,basic2,2822,2917,Divoptions,Strsplit,Toupper,Lightarrowdata,Listplot,Expr,Letter,Addax
-Drwpt,basic2,2921,2930,Pointdata
-Drawpoint,basic2,2933,2961,Measuredepth,Textformat,Com2nd,Setpen
-Addax,basic2,2965,2968
-Expr,basic2,2972,2987,Letter
-Letter,basic2,2991,3086,Divoptions,Removespace,Strsplit,Toupper,RSslash,Com2nd,Lcrd,Texcom,Pcrd
-Letterrot,basic2,3090,3132,Divoptions,Letter,Com2nd,Dqq,Texcom
-Exprrot,basic2,3136,3179,Divoptions,Expr,Com2nd,Dqq,Texcom
-Slider,basic2,3183,3230,Toupper,Strsplit,Indexall,Putpoint,Listplot,Putonseg
-Putpoint,basic2,3234,3245,Textformat,Pcrd
-Putpoint,basic2,3249,3260,Textformat,Pcrd
-Bezierpt,basic2,3264,3289,Lcrd
-Bezier,basic2,3293,3305,Beziercurve
-Beziercurve,basic2,3309,3386,Divoptions,Measuredepth,Lcrd,Bezierpt,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
-Putbezierdata,basic2,3390,3452,Divoptions,Putpoint,Lcrd,Letter
-Bezierstart,basic2,3456,3458
-Mkbezierptcrv,basic2,3462,3488,Readcsvsla,Measuredepth,Putbezierdata,Bezier
-Mkbeziercrv,basic2,3492,3503,Measuredepth,Bezier
-Ospline,basic2,3507,3566,Dotprod,Lcrd,Bezier
-CRspline,basic2,3570,3616,Lcrd,Reflectpoint,Bezier
-Beziersmooth,basic2,3620,3681,Bzspline,Putpoint,Lcrd,Bezier
-Beziersym,basic2,3685,3734,Bzsspline,Putpoint,Lcrd,Bezier
-Listbspline2bz,basic2,3738,3753,Lcrd
-Bspline,basic2,3757,3765,Listbspline2bz,BezierCurve
-Meetcurve,basic2,3769,3829,Measuredepth,LLcrd,Lcrd
-Putonline,basic2,3833,3853,LLcrd,Lineplot,Putonseg
-Putonseg,basic2,3857,3893,LLcrd,Divoptions,Lcrd,Putpoint,Pcrd,Textformat
-Putoncurve,basic2,3897,3926,putoncurve,Putpoint,Paramoncurve,Putonseg,Textformat,Ptend
-Crosspoint,basic2,3930,3948,MeetCurve,Putpoint
-Periodfun,basic2,3952,4085,Divoptions,Strsplit,Toupper,Plotdata,Translatedata,Setscaling,Norm,Listplot,Textformat
-Mkcstable,basic2,4089,4105,Textformat
-Fourierseries,basic2,4109,4179,Divoptions,Strsplit,Toupper,Plotdata,Assign,Listplot
-Tabledata,basic2,4183,4205,Divoptions,Toupper,Tabledatageo,Tabledatalight
-Tabledatalight,basic2,4209,4328,Divoptions,Strsplit,Toupper,Tlistplot,Changetablestyle,Addax,Setwindow
-Tabledatageo,basic2,4332,4396,Divoptions,Strsplit,Toupper,Putpoint,Tabledatalight
-Tgrid,basic2,4400,4415
-Tlistplot,basic2,4419,4448,divoptions,Toupper,Tgrid,Listplot
-Changetablestyle,basic2,4452,4540,Indexall,Changestyle,Replaceall,Tlistplot
-Findcell,basic2,4544,4570,Tgrid
-Putcell,basic2,4574,4609,Findcell,Letter
-Putcellexpr,basic2,4613,4625,Putcell
-Putrow,basic2,4629,4644,Putcellrow,Putcell
-Putrowexpr,basic2,4648,4661,Putrow
-Putcol,basic2,4665,4680,Putcellexpr,Putcell
-Putcolexpr,basic2,4684,4697,Putcellexpr,Putcol
-Setrange,basic2,4701,4707,Pcrd
-Inwindow,basic2,4711,4723
-Dashlinedata,basic2,4727,4800
-Windispg,basic2,4804,4870,Drwxy,Measuredepth,Dashlinedata,Textformat
-Extractdata,basic2,4875,4931,Divoptions,Com2nd,Getlinestyle,Texcom
-Removeout,basic2,4935,4945
-Makecmdlist,basic2,4949,4979
-Savecmdlist,basic2,4983,4989
-Quicksort,basic2,4993,5013
-Lessstr,basic2,5017,5044
-Makehelplist,basic2,5048,5092,PPa
-Helplist,basic2,5096,5150,Makehelplist
-Help,basic2,5154,5205
-Helpkey,basic2,5209,5227,Help
-Example,basic2,5231,5255
+Drawfigures,basic2,28,106,Divoptions,Strsplit,Toupper,Measuredepth,Pointdata,Listplot,Dqq
+Setarrow,basic2,110,136
+Arrowheaddata,basic2,140,233,Divoptions,Strsplit,Toupper,Touppera,Measuredepth,Nearestpt,|Ptend,Ptstart,Numptcrv,Ptcrv,LLcrd,Intersectcrvspp,Pcrd
+Arrowhead,basic2,237,329,Strsplit,Toupper,Measuredepth,Pcrd,Arrowheaddata,Inwindow,Listplot,Divoptions,Dqq,Textformat,LLcrd,Com2nd,Texcom
+Arrowdata,basic2,333,335,Lightarrowdata
+OldArrowdata,basic2,339,453,Arrowdata,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Listplot,LLcrd,Arrowhead,Setscaling,Lcrd
+Lightarrowdata,basic2,457,578,Pcrd,Divoptions,Strsplit,Toupper,Listplot,Textformat,LLcrd,Indexall,Dqq,Com2nd,Texcom,Setscaling,Lcrd
+Anglemark,basic2,582,715,Divoptions,Indexall,Strsplit,Dqq,Toupper,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Paramark,basic2,719,829,Divoptions,Indexall,Strsplit,Dqq,Toupper,Lcrd,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Makebowdata,basic2,833,846,Lcrd,Rotatepoint
+Bowdata,basic2,850,1021,Divoptions,Lcrd,Strsplit,Toupper,Makebowdata,Defvar,Norm,LLcrd,Dqq,Measuredepth,Pcrd,Textformat,Com2nd,Getlinestyle,Texcom
+Bowname,basic2,1025,1028,Expr
+Bownamerot,basic2,1032,1046,Measuredepth,Ptend,Ptstart,Exprrot
+Deqdata,basic2,1050,1108,funP,Lcrd,funN
+Deqplot,basic2,1112,1256,Lcrd,Divoptions,Toupper,Indexall,Deqdata,Pcrd,Assign,Textformat,RSform,Com2nd,Getlinestyle,Texcom
+Enclosing,basic2,1260,1423,Enclosing2,Divoptions,isList,Lcrd,Listplot,Intersectcurvespp,Prepend,Op,Length,Partcrv,Pointoncurve,Pcrd,PaO,Textformat,Com2nd,Getlinestyle,Texcom,LLcrd
+Makehatch,basic2,1429,1531,Lineplot,Intersectseg,Norm,Listplot
+Anyselected,basic2,1535,1543
+Hatchdata,basic2,1547,1843,HatchdataR,Hatchdatacindy,Listplot,Joincrvs,Enclosing2,Divoptions,Strsplit,Toupper,Anyselected,Bracket,isexists,ReadOutData,Makehatch,Textformat,PaO,Com2nd,Getlinestyle,Texcom,WriteOutData,LLcrd
+Shadein,basic2,1847,1934,Framedata,Partcrv,Paramoncrv,Listplot,Intersectcurvespp,Pointoncrv,Joincrvs,Inwindow
+Shade,basic2,1938,2066,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Enclosing,Shadein,Listplot,Joincrvs,Pcrd,PaO,Textformat,Dqq
+Rotatepoint,basic2,2072,2082,Lcrd
+Translatepoint,basic2,2086,2096,Lcrd
+Scalepoint,basic2,2100,2110,Lcrd
+Reflectpoint,basic2,2114,2139,Lcrd
+Rotatedata,basic2,2143,2229,Divoptions,Lcrd,Strsplit,Toupper,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
+Translatedata,basic2,2233,2311,Divoptions,Strsplit,Toupper,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Getlinestyle,Texcom
+Scaledata,basic2,2315,2417,Divoptions,Lcrd,Strsplit,Toupper,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
+Reflectdata,basic2,2421,2515,Divoptions,Strsplit,Toupper,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Getlinestyle,Texcom
+Mksegments,basic2,2520,2535,Listplot
+Mkcircles,basic2,2540,2560,Strsplit,Circledata
+MakeRarg,basic2,2564,2577,RSslash,Textformat
+Htickmark,basic2,2581,2604,Listplot,Expr
+Vtickmark,basic2,2608,2629,Listplot,Expr,180710to// tmp=MakeRarg
+Vtick,basic2,2633,2643,Listplot
+Htick,basic2,2647,2659,LLcrd,Listplot
+Setax,basic2,2663,2687,Divoptions
+Drwxy,basic2,2691,2797,Divoptions,Strsplit,Toupper,Lightarrowdata,Listplot,Expr,Letter,Addax
+Drwpt,basic2,2801,2810,Pointdata
+Drawpoint,basic2,2813,2841,Measuredepth,Textformat,Com2nd,Setpen
+Addax,basic2,2845,2848
+Expr,basic2,2852,2867,Letter
+Letter,basic2,2871,2972,Divoptions,Removespace,Strsplit,Toupper,RSslash,Com2nd,Lcrd,Texcom,Pcrd
+Letterrot,basic2,2976,3018,Divoptions,Letter,Com2nd,Dqq,Texcom
+Exprrot,basic2,3022,3065,Divoptions,Expr,Com2nd,Dqq,Texcom
+Ptpos,basic2,3069,3089,Textformat
+Strictmove,basic2,3093,3113,textformat,Textformat
+Slider,basic2,3117,3164,Toupper,Strsplit,Indexall,textformat,Listplot,Putonseg
+Putpoint,basic2,3168,3179,Textformat,Pcrd
+Bezierpt,basic2,3183,3208,Lcrd
+Bezier,basic2,3212,3224,Beziercurve
+Beziercurve,basic2,3228,3305,Divoptions,Measuredepth,Lcrd,Bezierpt,Pcrd,Textformat,RSform,Com2nd,Getlinestyle,Texcom
+Putbezierdata,basic2,3309,3371,Divoptions,Putpoint,Lcrd,Letter
+Bezierstart,basic2,3375,3377
+Mkbezierptcrv,basic2,3381,3407,Readcsvsla,Measuredepth,Putbezierdata,Bezier
+Mkbeziercrv,basic2,3411,3422,Measuredepth,Bezier
+Ospline,basic2,3426,3485,Dotprod,Lcrd,Bezier
+CRspline,basic2,3489,3535,Lcrd,Reflectpoint,Bezier
+Beziersmooth,basic2,3539,3600,Bzspline,Putpoint,Lcrd,Bezier
+Beziersym,basic2,3604,3653,Bzsspline,Putpoint,Lcrd,Bezier
+Listbspline2bz,basic2,3657,3672,Lcrd
+Bspline,basic2,3676,3684,Listbspline2bz,BezierCurve
+Meetcurve,basic2,3688,3748,Measuredepth,LLcrd,Lcrd
+Putonline,basic2,3752,3772,LLcrd,Lineplot,Putonseg
+Putonseg,basic2,3776,3812,LLcrd,Divoptions,Lcrd,Putpoint,Pcrd,Textformat
+Putoncurve,basic2,3816,3845,putoncurve,Putpoint,Paramoncurve,Putonseg,Textformat,Ptend
+Crosspoint,basic2,3849,3867,MeetCurve,Putpoint
+Periodfun,basic2,3871,4004,Divoptions,Strsplit,Toupper,Plotdata,Translatedata,Setscaling,Norm,Listplot,Textformat
+Mkcstable,basic2,4008,4024,Textformat
+Fourierseries,basic2,4028,4095,Divoptions,Strsplit,Toupper,Deffun,Plotdata,Assign,Listplot
+Tabledata,basic2,4099,4121,Divoptions,Toupper,Tabledatageo,Tabledatalight
+Tabledatalight,basic2,4125,4244,Divoptions,Strsplit,Toupper,Tlistplot,Changetablestyle,Addax,Setwindow
+Tabledatageo,basic2,4248,4312,Divoptions,Strsplit,Toupper,Putpoint,Tabledatalight
+Tgrid,basic2,4316,4331
+Tlistplot,basic2,4335,4364,divoptions,Toupper,Tgrid,Listplot
+Changetablestyle,basic2,4368,4456,Indexall,Changestyle,Replaceall,Tlistplot
+Findcell,basic2,4460,4486,Tgrid
+Putcell,basic2,4490,4525,Findcell,Letter
+Putcellexpr,basic2,4529,4541,Putcell
+Putrow,basic2,4545,4560,Putcellrow,Putcell
+Putrowexpr,basic2,4564,4577,Putrow
+Putcol,basic2,4581,4596,Putcellexpr,Putcell
+Putcolexpr,basic2,4600,4613,Putcellexpr,Putcol
+Setrange,basic2,4617,4623,Pcrd
+Inwindow,basic2,4627,4639
+Dashlinedata,basic2,4643,4716
+Windispg,basic2,4720,4787,Drwxy,Measuredepth,Dashlinedata,Textformat
+Extractdata,basic2,4792,4848,Divoptions,Com2nd,Getlinestyle,Texcom
+Removeout,basic2,4852,4862
+Makecmdlist,basic2,4866,4896
+Savecmdlist,basic2,4900,4906
+Quicksort,basic2,4910,4930
+Lessstr,basic2,4934,4961
+Makehelplist,basic2,4965,5009,PPa
+Helplist,basic2,5013,5067,Makehelplist
+Help,basic2,5071,5122
+Helpkey,basic2,5126,5144,Help
+Example,basic2,5148,5172
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic3list.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic3list.txt
index 9cacb8566f..a5d8260177 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic3list.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/basic3list.txt
@@ -11,46 +11,52 @@ Rform,basic3,312,322,PaO
Defvar,basic3,326,370
IftoR,basic3,374,413,PaO,Indexall,Bracket
FortoR,basic3,417,446,PaO,Bracket
-Deffun,basic3,450,497,Bracket,Indexall,FortoR,IftoR,RSform,PaO
-WritetoRS,basic3,501,734,WritetoSci,Lcrd,Datetime,Textformat,Cindyname,RSform,PPa,iswindows,Indexall,Dqq,PaO
-Readoutdata,basic3,738,851,Divoptions,Strsplit,Toupper,Pcrd,Textformat
-Writeoutdata,basic3,855,917,Flattenlist,Measuredepth
-Makeshell,basic3,921,1021,kc,Indexall,Dqq
-Convsjiswin,basic3,1025,1049,nkfwin,nkfcpdel,isexists,pathsep
-Makebat,basic3,1053,1191,kc,iswindows,isincludefull,isexists,Indexall,Dqq
-Addpackage,basic3,1195,1213
-Usegraphics,basic3,1217,1227,Addpackage
-Viewtex,basic3,1231,1305,iswindows,Makebat,kc,Makeshell,WritetoRS
-Viewparent,basic3,1309,1327,isexists,iswindows,Makebat,Makeshell,WritetoRS,kc
-Figpdf,basic3,1331,1451,Removespace,isexists
-Slidework,basic3,1455,1474,isexists,makedir,pathsep,Changework
-Setslidemargin,basic3,1478,1481
-Setslidepage,basic3,1485,1510
-Setslidemain,basic3,1514,1538
-Setslidebody,basic3,1542,1579
-Setslidehyper,basic3,1583,1661,Divoptions,Addpackage,Indexall,Toupper
-Settitle,basic3,1665,1736,Toupper,Indexall
-Maketitle,basic3,1740,1835,iswindows,Makebat,Makeshell,kc,Cindyname,isexists,PaO
-Repeatsameslide,basic3,1839,1994,Indexall
-Presentation,basic3,1998,2663,readfile2str,isexists,Removespace,fileslist,Repeatsameslide
-Mkslides,basic3,2667,2731,Fillblack,Changework,Setdirectory,setexec,isexists,Presentation,iswindows,Makebat,Makeshell,kc,pathsep,Fillrestore
-Mkslidesummary,basic3,2735,2800,Fillblack,pathsep,ismacosx,setexec,PPa,PaO,CalcbyR,iswindows,Makebat,Makeshell,kc,Changework,Fillstore
-BBdata,basic3,2804,2947,Divoptions,Toupper,ismacosx,Dqq,iswindows,kc,Sprintf,Removespace
-Gcd,basic3,2951,2963
-Fracform,basic3,2967,2992
-Totexformpart,basic3,2996,3064,Bracket,Strsplit,Assign
-Totexform,basic3,3068,3119,Totexformpart,Assign,Indexall,Bracket
-Tocindyformpart,basic3,3123,3191,Bracket,Strsplit,Assign
-Tocindyform,basic3,3195,3242,Tocindyformpart,Indexall,Bracket
-Animepar,basic3,3246,3246,Animationparam
-Animationparam,basic3,3250,3269,seconds,stopanimation
-Copyketcindyjs,basic3,3273,3334,iswindows,Dqq,kc
-Ketjsoption,basic3,3338,3339,Setketcindyjs
-Setketcindyjs,basic3,3343,3352
-Ketcindyjsdata,basic3,3356,3394,Textformat,Dqq
-Findfun,basic3,3398,3465,Removespace,Indexall
-Extractfun,basic3,3469,3486,Indexall,Findfun
-Extractall,basic3,3495,3539
-Textedit,basic3,3543,3549
-Textedit2value,basic3,3553,3595,Toupper,Textedit,Removespace,Tocindyform,Totexform,Tomaxform,Strsplit
-Mkketcindyjs,basic3,3599,4158,Strsplit,Toupper,Colorcode,Colorname2rgb,Copyketcindyjs,isexists,Cdyname,Extractfun,Extractall,pathsep,Readlines,Removespace,Dqq,indexall,Indexof,Indexall
+Deffun,basic3,450,503,Removespace,Bracket,Indexall,FortoR,IftoR,RSform,PaO
+WritetoRS,basic3,507,740,WritetoSci,Lcrd,Datetime,Textformat,Cindyname,RSform,PPa,iswindows,Indexall,Dqq,PaO
+Readoutdata,basic3,744,857,Divoptions,Strsplit,Toupper,Pcrd,Textformat
+Writeoutdata,basic3,861,923,Flattenlist,Measuredepth
+Makeshell,basic3,927,1027,kc,Indexall,Dqq
+Convsjiswin,basic3,1031,1055,nkfwin,nkfcpdel,isexists,pathsep
+Makebat,basic3,1059,1197,kc,iswindows,isincludefull,isexists,Indexall,Dqq
+Addpackage,basic3,1201,1219
+Usegraphics,basic3,1223,1233,Addpackage
+Viewtex,basic3,1237,1311,iswindows,Makebat,kc,Makeshell,WritetoRS
+Viewparent,basic3,1315,1333,isexists,iswindows,Makebat,Makeshell,WritetoRS,kc
+Figpdf,basic3,1337,1457,Removespace,isexists
+Slidework,basic3,1461,1480,isexists,makedir,pathsep,Changework
+Setslidemargin,basic3,1484,1487
+Setslidepage,basic3,1491,1516
+Setslidemain,basic3,1520,1544
+Setslidebody,basic3,1548,1585
+Setslidehyper,basic3,1589,1667,Divoptions,Addpackage,Indexall,Toupper
+Settitle,basic3,1671,1742,Toupper,Indexall
+Maketitle,basic3,1746,1841,iswindows,Makebat,Makeshell,kc,Cindyname,isexists,PaO
+Repeatsameslide,basic3,1845,2000,Indexall
+Presentation,basic3,2004,2669,readfile2str,isexists,Removespace,fileslist,Repeatsameslide
+Mkslides,basic3,2673,2737,Fillblack,Changework,Setdirectory,setexec,isexists,Presentation,iswindows,Makebat,Makeshell,kc,pathsep,Fillrestore
+Mkslidesummary,basic3,2741,2806,Fillblack,pathsep,ismacosx,setexec,PPa,PaO,CalcbyR,iswindows,Makebat,Makeshell,kc,Changework,Fillstore
+BBdata,basic3,2810,2953,Divoptions,Toupper,ismacosx,Dqq,iswindows,kc,Sprintf,Removespace
+Gcd,basic3,2957,2969
+Fracform,basic3,2973,3010
+Totexformpart,basic3,3014,3082,Bracket,Strsplit,Assign
+Totexform,basic3,3086,3149,Totexformpart,Indexall,Bracket
+Tocindyformpart,basic3,3153,3221,Bracket,Strsplit,Assign
+Tocindyform,basic3,3225,3263,Bracket,Indexall,Tocindyformpart
+Animepar,basic3,3267,3267,Animationparam
+Animationparam,basic3,3271,3290,seconds,stopanimation
+Copyketcindyjs,basic3,3294,3355,iswindows,Dqq,kc
+Ketjsoption,basic3,3359,3360,Setketcindyjs
+Setketcindyjs,basic3,3364,3373
+Ketcindyjsbody,basic3,3377,3381
+Ketcindyjsdata,basic3,3385,3425,Textformat,Dqq,set
+Findfun,basic3,3429,3496,Removespace,Indexall
+Extractfun,basic3,3500,3517,Indexall,Findfun
+Extractall,basic3,3526,3570
+Textedit,basic3,3574,3580
+Textedit2value,basic3,3584,3626,Toupper,Textedit,Removespace,Tocindyform,Totexform,Tomaxform,Strsplit
+Parsejson,basic3,3630,3683, unicode
+Resizetextsize,basic3,3687,3711,Parsejson
+Movetojs,basic3,3715,3723
+Movetojsexe,basic3,3727,3743,Dqq,Parsejson
+Setplaybuttons,basic3,3747,3772,Movetojs
+Mkketcindyjs,basic3,3776,4448, 12px/10pt = 12px/,Toupper,Colorcode,Colorname2rgb,Copyketcindyjs,isexists,Cdyname,Extractfun,Extractall,pathsep,Readlines,Ketcindyjsdata,Movetojsexe,Resizetextsize,indexall,Indexof,Indexall,Removespace,Strsplit,Dqq
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/ignoredfun.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/ignoredfun.txt
index 5f388e6701..6aa9da7fa1 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/ignoredfun.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/ignoredfun.txt
@@ -18,8 +18,13 @@ Fontsize
Help
Helplist
Invdashline
+Ketcindyjsbody
Ketcindyjsdata
Ketjsoption
+Parsejson
+Resizetextsize
+Movetojs
+Movetojsexe
Mkketcindyjs
Presentation
//Putbezierdata
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/makefunlist.cdy b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/makefunlist.cdy
index f7993fa39c..02a555ec1f 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/makefunlist.cdy
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketcindyjs/makefunlist.cdy
Binary files differ
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dlogr.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dlogr.txt
index 169d22e767..fba482f626 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dlogr.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dlogr.txt
@@ -1,3 +1,18 @@
+// 20190821
+// Start3d debugged ( isstring added )
+// 20190818
+// Projpara,Spaceline,Spacecurve,Joincrvs3d,Xyzax3data,Embed,
+// Rotatedata3d,Translatedata3d,Reflectdata3d,Scaledata3d,Bezier3d,
+// Vertexedgeface,Phparadata,Faceremovaldata,Skeletondatacindy,
+// 20190714
+// Perpplane changed (option)
+// Pointdata3d changed (option,Defvar)
+// 20190713
+// Ketinit3d changed (TH,PHI copied from Start3d)
+// 20190709
+// Rotatepoint3d,Scalepoint3d debugged (length(...)==1>!isstring())
+// Rotatepoint3d debugged ( w1,w2 )
+// VertexEdgeFace(label) debugged
// 20190511
// Start3d changed (KetcindyDataList initialized)
// 20190506
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dr.cs b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dr.cs
index 956e726b43..0f45dc6f61 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dr.cs
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylib3dr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d[20190511] loaded");
+println("ketcindylib3d[20190822] loaded");
//help:start();
@@ -47,6 +47,13 @@ Ketinit3d(subflg):=(
TSIZE=10;
TSIZEZ=10;
ErrFlg=0;
+ xPos=-5; yTh=tmp-0.5; yPh=tmp-1;
+ Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190713from
+ Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]);
+ drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right");
+ drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right");
+ THETA=(TH.x-xPos)*20*pi/180;
+ PHI=(FI.x-xPos)*40*pi/180; //190713to
);
////%Ketinit3d end////
@@ -54,7 +61,8 @@ Ketinit3d(subflg):=(
Start3d():=Start3d([],[]);
Start3d(Arg):=( //190503from
regional(tmp);
- tmp=select(Arg,indexof(#,"=")>0);
+ tmp=select(Arg,isstring(#)); //190822
+ tmp=select(tmp,indexof(#,"=")>0);
if(length(tmp)==0,
Start3d(Arg,[]);
,
@@ -516,7 +524,7 @@ Projpara(ptdata,optionsorg):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -528,7 +536,7 @@ Projpara(ptdata,optionsorg):=(
,
if(Noflg==1,Ltype=0);
);
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
+ GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
);
);
if(length(Out)==1,Out=Out_1);
@@ -706,7 +714,7 @@ Spaceline(nm,ptlistorg,optionorg):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -873,7 +881,7 @@ Spacecurve(nm,funstr,variable,optionorg):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1012,7 +1020,7 @@ Joincrvs3d(nm,plotstrL,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1131,7 +1139,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,optionorg):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1305,7 +1313,7 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1328,18 +1336,21 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
);
////%Embed end////
-////%Rotatepoint3d start////
+////%Rotate3pt start////
Rotate3pt(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);
Rotate3pt(point,w1,w2,center):=Rotatepoint3d(point,w1,w2,center);
+////%Rotate3pt end////
+////%Rotatepoint3d start////
Rotatepoint3d(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);//180809
-Rotatepoint3d(point,w1,w2,center):=(
+Rotatepoint3d(point,w1org,w2org,center):=(
//help:Rotatepoint3d(pt3d,[0,0,1],pi/2);
//help:Rotatepoint3d(pt3d,[0,0,1],pi/2,[1,1,1]);
- regional(Eps,ct,st,v3,v1,v2,Ans,ns,PtL,num,
+ regional(Eps,w1,w2,ct,st,v3,v1,v2,Ans,ns,PtL,num,
pt,tmp,tmp1,tmp2,Retflg,x,y,z,xx,yy,zz,flg);
Eps=10^(-4);
+ w1=w1org; w2=w2org; //190709
Retflg=0;
- if(length(w2)==1,
+ if(!islist(w2), //190709
ct=cos(w2);
st=sin(w2);
v3=1/|w1|*w1;
@@ -1471,7 +1482,7 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1568,7 +1579,7 @@ Translatedata3d(nm,P3data,w1,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1665,7 +1676,7 @@ Reflectdata3d(nm,P3data,vecL,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1695,7 +1706,7 @@ Scalepoint3d(point,ratio,center):=(
//help:Scalepoint3d(A,[3,2,4],[1,2,3]);
regional(ra1,ra2,ra3,X1,Y1,Z1,X2,Y2,Z2,Cx,Cy,Cz);
X1=point_1; Y1=point_2; Z1=point_3;
- if(length(ratio)==1, //1808from
+ if(!islist(ratio), //1808from.190709
ra1=ratio; ra2=ratio; ra3=ratio;
,
ra1=ratio_1; ra2=ratio_2; ra3=ratio_3;
@@ -1761,7 +1772,7 @@ Scaledata3d(nm,P3data,ratio,options):=(
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2270,13 +2281,26 @@ Putperp(name,ptstr,pLstr,option):=(
////%Perpplane start////
Perpplane(name,ptstr,nvec):=
Perpplane(name,ptstr,nvec,"draw");
-Perpplane(name,ptstr,nstr,option):=(
+Perpplane(name,ptstr,nstr,optionorg):=(
//help:Perpplane("A-B","P",[1,3,2]);
//help:Perpplane("A-B","P",[1,3,2]);
-//help:Perpplane(option=["Put/Draw"]);
- regional(Eps,nvec,sgstr,pP,v1,v2,v3,
- th,ph,pA,pB,tmp,tmp1,tmp2);
+//help:Perpplane(options=["Put/Draw"]);
+ regional(Eps,options,eqL,strL,nvec,sgstr,pP,v1,v2,v3,
+ gptflg,th,ph,pA,pB,tmp,tmp1,tmp2);
Eps=10^(-4);
+ options=optionorg; //190714from
+ if(!islist(options),options=[options]);
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ strL=tmp_7;
+ gptflg=0;
+ forall(strL,
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="P",
+ gptflg=1;
+ options=remove(options,#);
+ );
+ ); //190714to
if(isstring(nstr),nvec=parse(nstr+"3d"),nvec=nstr);
if(indexof(ptstr,"3d")==0, //181107from
pP=parse(ptstr+"3d");
@@ -2296,17 +2320,13 @@ Perpplane(name,ptstr,nstr,option):=(
tmp=indexof(pLstr,"-");
pA=pP+v1;
pB=pP+v2;
- if(islist(option),tmp=option_1,tmp=option);
- tmp=Toupper(substring(tmp,0,1)); // 16.06.19
- if(tmp=="P",
+ if(gptflg==1, //190714from
Putpoint3d([tmp1,pA,tmp2,pB],["fix"]);
,
- Defvar(tmp1+"3d",pA); //181107[2lines]
+ Defvar(tmp1+"3d",pA); //190714from
Defvar(tmp2+"3d",pB);
- );
- if(tmp=="D",
- Drawpoint3d(pA);
- Drawpoint3d(pB);
+ Pointdata3d(tmp1,pA,options);
+ Pointdata3d(tmp2,pB,options); //190714to
);
[pA,pB];
);
@@ -2336,12 +2356,17 @@ Drawpoint3d(pt3,options):=(
Pointdata3d(nm,pt3):=Pointdata3d(nm,pt3,[]);//181017from
Pointdata3d(nm,pt3,options):=( //181017from
//help:Pointdata3d("1",pt3dlist,options);
- regional(pt3L,pt2L,tmp);
- if(Measuredepth(pt3)==0,pt3L=[pt3],pt3L=pt3);
- pt2L=apply(pt3L,Parapt(#));
+ regional(pt2L,tmp);
+ if(Measuredepth(pt3)==0,tmp=[pt3],tmp=pt3);
+ pt2L=apply(tmp,Parapt(#));
Pointdata("2d"+nm,pt2L,append(options,"Disp=n"));
- tmp="pt3d"+nm+"="+format(pt3L,6)+";"; //190415
- parse(tmp);
+ tmp=substring(nm,0,1); //190714from
+ if((tmp>="A")&(tmp<="Z"),
+ tmp=nm+"3d";
+ ,
+ tmp="pt3d"+nm;
+ );
+ Defvar(tmp,pt3); //190714to
); //181017to
////%Pointdata3d end////
@@ -2565,7 +2590,7 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
@@ -2898,7 +2923,7 @@ Mkobjfile(path,fnameorg,objL):=(
////%VertexEdgeFace start//// //190502
VertexEdgeFace(nm,vfnL):=Vertexedgeface(nm,vfnL,[]);
VertexEdgeFace(nm,vfnLorg,optionorg):=Vertexedgeface(nm,vfnLorg,optionorg);
-////%VertexEdgeFace start////
+////%VertexEdgeFace end////
////%Vertexedgeface start////
Vertexedgeface(nm,vfnL):=Vertexedgeface(nm,vfnL,[]); // 16.02.10
@@ -3051,7 +3076,7 @@ Vertexedgeface(nm,vfnLorg,optionorg):=(
enL=append(enL,tmp+"3d");//16.02.29
);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(msgflg=="Y",
println("generate "+namev+","+namee+","+namef);
);
@@ -3163,7 +3188,7 @@ Phparadata(nm,nmvf,vfL,options):=(
GLIST=append(GLIST,tmp);
);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
@@ -3568,7 +3593,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=(
GLIST=append(GLIST,tmp);
);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
@@ -4694,7 +4719,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
);
); //no ketjs off
- if((Noflg<2)&(mkflg>-1), //181103
+ if((Noflg<3)&(mkflg>-1), //181103,190818
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1logr.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1logr.txt
index d77763598c..a232cdc7be 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1logr.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1logr.txt
@@ -1,3 +1,47 @@
+// 20190927
+// Setwindow debugged ( for Strictmove)
+// 20190917
+// Ketinit changed (Strictmove moved from windispg)
+// Intersectcurves debugged (op => pp)
+// 20190916
+// Ketinit changed (JSBODY moved from Setketincyjs, KETJSOP=[] added)
+// 20190912
+// Setwindow changed ( Ptpos used )
+// 20190909
+// Setwindow debugged ( Strictmove added to another place )
+// 20190901
+// Ketinit changed (AXSTYLE)
+// 20190831
+// Ketinit changed (StrictSep added)
+// 20190829
+// Setwindow changed (Strictmove(SW,NE))
+// 20190818
+// Getlinestyle changed ( to register "nodisp"(2) dat to GCLIST )
+// Chanestyle,AddGraph,Joincrvs,Partcrv,Pointdata,Listplot,Lineplot,Plotdata,
+// Paramplot,Implicitplot,Circledata,Ovaldata
+// changed (Nflg<2 => Nflg<3 )
+// 20190813
+// Assign debugged
+// 20190811
+// Assign changed ( precise options added (def=6))
+// 20190809
+// lightgray 0.17=>0.15
+// offwhite added
+// 20190805
+// Ptselected change (Isptselected removed)
+// 20190803
+// Reparse added
+// 20190802
+// Ketinit() changed (MOVETOLIST commented out)
+// Initglist changed (GCLISTadd + Ketinit);
+// Koutenseg changed ( re(out) for JS)
+// 20190719
+// Initglist debugged (GCLISTadd)
+// Setglist changed (GLIST (//no ketjs)
+// 20190704
+// Ketinit changed (MOVETOJSLIST added)
+// 20190628
+// Pointdata debugged ( Inside )
// 20190622
// Implicitplot changed ("x","y" supported)
// 20190603
@@ -96,6 +140,8 @@
// Divoptions changed ("dr,thickness" )
// 20190116
// Ketinit() debuggded ( Mackc for Linux)
+// 20190801
+// Ketinit changed (KetcindyjsDataList=[] removed)
// 20190115
// Plotdata debugged( ( => [ )
// Pointdata change( colorcode => colorcmyk2rgb)
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1r.cs b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1r.cs
index c68a550dd1..2dc633a782 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1r.cs
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic1r.cs
@@ -14,9 +14,9 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.9");
+println("KeTCindy V.3.3.0");
println(ketjavaversion());
-println("ketcindylibbasic1[20190622] loaded");
+println("ketcindylibbasic1[20190927] loaded");
//help:start();
@@ -38,17 +38,19 @@ println("ketcindylibbasic1[20190622] loaded");
Ch=[0]; ChNum=1;
////%Ketinit start////
-Ketinit():=Ketinit("fig",1,[-5,5],[-5,5]); //181001
+Ketinit():=Ketinit("fig",1,[-5,5],[-5,5],0.3); //190831from
Ketinit(Arg):=(//181001from
if(isstring(Arg),
- Ketinit(Arg,1,[-5,5],[-5,5]);
+ Ketinit(Arg,1,[-5,5],[-5,5],0.3);
,
- Ketinit("fig",Arg,[-5,5],[-5,5]);
+ Ketinit("fig",1,[-5,5],[-5,5],Arg);
);
);
-Ketinit(work,sy,rangex,rangey):=(//181001to
+Ketinit(Arg1,Arg2):=Ketinit(Arg1,1,[-5,5],[-5,5],Arg2);
+Ketinit(work,sy,rangex,rangey,strictsep):=(////190831to
//help:Ketinit();
//help:Ketinit("");
+ //help:Ketinit(0.3); //190831
regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc);
PenThickInit=8;
ULEN="1cm";
@@ -83,25 +85,26 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
COM2ndlist=[]; // no ketjs off
// COM2ndlistb=[]; //180612
ADDAXES="1";
- AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216
+ AXSTYLE=[["l","x","e","y","n","O","sw","","",""],[]]; //190901
AXCOUNT=1; //181215
SHADECTR=1; //190222
LFmark=unicode("000a");
CRmark=unicode("000d");//16.12.13
Dq=unicode("0022");
- CommonMake=0;//180610
+ CommonMake=0;//180610 //no ketjs on
WaitUnit=10;
CONTINUED=0;
OutComList=[];
OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
+ FigPdfList=[]; // 16.04.08 //no ketjs off
Fillstore(); //181212
- ADDPACK=[]; // 16.05.16
+ ADDPACK=[]; // 16.05.16 //no ketjs on
GPACK="tpic"; //180817
ErrFlag=0;
KETJSOP=[]; //190129
REMOVEPTJS=[]; SLIDEFLG="Y"; //190504
- KetcindyjsDataList=[];
+// MOVETOJSLIST=[]; //190802
+// KetcindyjsDataList=[]; //190801
// setdirectory(Dirwork);
if(!isstring(Fhead), // 17.10.13from, 17.11.12
Fhead=text(curkernel());
@@ -151,12 +154,15 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
BezierNumber=1; //15.01.03
SCALEX=1;
SCALEY=sy;
-// Setscaling(sy);
XMIN=rangex_1/SCALEX;
XMAX=rangex_2/SCALEX;
YMIN=rangey_1/SCALEY;
YMAX=rangey_2/SCALEY;
+ StrictSep=strictsep; //190831
Setwindow("Msg=n"); // 16.05.31
+ forall(remove(allpoints(),[SW,NE]),Strictmove(#.name)); //190917
+ KETJSOP=[]; //190916
+ JSBODY=[[],[]]; //190916
// no ketjs on 190122
// for Presentation
letterc=[0.98,0.13,0,0.43]; boxc=[0.2,0,0,0];//190307 [0,0.32,0.52,0];
@@ -172,24 +178,16 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
);
////%Ketinit end////
-////%Initglist start//// 190530
+////%Initglist start//// 190802
Initglist():=(
- GLIST=[]; // no ketjs
- GCLIST=[];
- COM0thlist=[]; // no ketjs on
- COM1stlist=[];
- COM2ndlist=[]; // no ketjs off
- KCOLOR=[0,0,0];
- SCALEX=1;
- SCALEY=1;
- XMIN=SW.x; XMAX=NE.x; //190603[2lines]
- YMIN=SW.y; YMAX=NE.y;
+ GCLISTadd=[]; //190719
+ Ketinit(); //190802
);
////%Initglist end////
////%Setglist start//// 190530
Setglist():=(
- GLISTadd=GLIST;
+ GLISTadd=GLIST; // no ketjs
GCLISTadd=GCLIST;
COM0thlistadd=COM0thlist; // no ketjs on
COM1stlistadd=COM1stlist;
@@ -199,7 +197,7 @@ Setglist():=(
////%Addglist start//// 190530
Addglist():=(
- GLIST=GLISTadd;
+ GLIST=GLISTadd; // no ketjs
GCLIST=GCLISTadd;
COM0thlist=COM0thlist; // no ketjs on
COM1stlist=COM1stlistadd;
@@ -324,27 +322,23 @@ Getcdyname():=( //17.12.27
////%Cindyname end////
////%Setwindow start////
-Setwindow():=Setwindow("Msg=yes");
+Setwindow():=Setwindow("Msg=y");
Setwindow(str):=(
regional(tmp,tmp1,tmp2,msg);
- msg="y";
+ msg="Y";
tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
+ msg=Toupper(substring(str,tmp,tmp+1));
+ Strictmove("SW"); Strictmove("NE");//190927
if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
+ tmp1=LLcrd(Ptpos(SW));//190912[2lines]
+ tmp2=LLcrd(Ptpos(NE));
XMIN=tmp1_1; XMAX=tmp2_1;
YMIN=tmp1_2; YMAX=tmp2_2;
,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
-// createpoint("SW",Pcrd([XMIN,YMIN]));
-// createpoint("NE", Pcrd([XMAX,YMAX]));
Putpoint("SW",Pcrd([XMIN,YMIN]));
- Putpoint("NE", Pcrd([XMAX,YMAX]));
+ Putpoint("NE", Pcrd([XMAX,YMAX]));
);
- if(msg=="y", // no ketjs on
+ if(msg=="Y", // no ketjs on
println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
);
layer(KETPICLAYER);
@@ -358,9 +352,13 @@ Setwindow(xrange,yrange):=(
XMAX=xrange_2;
YMIN=yrange_1;
YMAX=yrange_2;
- Putpoint("SW",[XMIN,YMIN]);//181016
- Putpoint("NE",[XMAX,YMAX]);//181016
-// Ketinit();
+ Ptpos(SW,Pcrd([XMIN,YMIN])); //190927from
+ Ptpos(NE,Pcrd([XMAX,YMAX]));
+ Strictmove("SW"); Strictmove("NE");
+ layer(KETPICLAYER);
+ autoclearlayer(KETPICLAYER,true);
+ drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
+ Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); //190927to
);
////%Setwindow end////
@@ -397,6 +395,20 @@ Setparent(file):=( // 17.11.27
);
////%Setparent end////
+////%Reparse start////
+Reparse(str):=( //190803
+//help:Reparse(str);
+//help:Reparse(strlist);
+ regional(out);
+ if(islist(str),
+ out=apply(str,re(parse(#)));
+ ,
+ out=re(parse(str));
+ );
+ out;
+);
+////%Reparse end////
+
////%Dqq start////
Dqq(str):=DqDq(str); //18.02.11
////%Dqq end////
@@ -899,8 +911,8 @@ Changestyle(nameL,style):=(
Ltype=Ltypeorg;
GCLIST=select(GCLIST,#_1!=name);
COM2ndlist=select(COM2ndlist, //no ketjs
- (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13 //no ketjs
- if(Noflg<2,
+ (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13 //no ketjs
+ if(Noflg<3,
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -912,8 +924,8 @@ Changestyle(nameL,style):=(
,
if(Noflg==1,Ltype=0);
);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
);
);
);
@@ -936,7 +948,7 @@ Op(n,object):=( // 16.05.25
////%Op end////
////%Ptselected start////
-Ptselected():=Isptselected(allpoints()); //180706
+Ptselected():=Ptselected(allpoints()); //190805
Ptselected(ptlistorg):=(
//help:Ptselected();
//help:Ptselected(geopoint);
@@ -1212,20 +1224,26 @@ Assign(str):=( //190125from
forall(VLIST,tmp=concat(tmp,[#_1,#_2]));
Assign(str,tmp);
); //190125to
-Assign(funstr,vrL):=(
- regional(nn,out);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
+Assign(funstr,vrL):=Assign(funstr,vrL,6);
+Assign(funstr,Arg1,Arg2):=( //190813from
+ regional(vrL,precise,nn,out,tmp);
+ if(islist(Arg1),
+ vrL=Arg1; precise=Arg2;
+ nn=length(vrL)/2;
+ out=funstr;
+ forall(1..nn,
+ out=Assign(out,vrL_(2*#-1),vrL_(2*#),precise);
+ );
+ ,
+ out=Assign(funstr,Arg1,Arg2,6);
);
out;
-);
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
+); //190813to
+Assign(funstr,varname,rep,precise):=(
//help:Assign("a*x^2+b*x",["a",1,"b",2]);
+//help:Assign("a*x^2+b*x",["a",aa,"b",bb],10(def=6));
regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,6)+")");
+ if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,precise)+")"); //190811to
// 15.02.09, 07.06,17.08.24
tmp=[46]; // 12.20
tmp=concat(tmp,48..57);
@@ -1708,7 +1726,8 @@ Koutenseg(pA,pB,pC,pD,options):=(
Tmp1=pA+rT*pV;
Out=[Tmp1,rT,1];
);
- Out;
+ if(!isstring(Out_1),Out=apply(Out,re(#))); //190802
+ Out;
);
////%Koutenseg end////
@@ -2294,7 +2313,7 @@ Intersectcurves(crv1org,crv2org,options):=(
//help:Intersectcurves(crv1,crv2);
//help:Intersectcurves(options=[Eps1(0.1),Dist(2)])
regional(tmp);
- tmp=Intersectcurvesop(crv1org,crv2org,options);
+ tmp=Intersectcurvespp(crv1org,crv2org,options); //190917(debugged)
tmp=apply(tmp,#_1);
);
////%Intersectcurves end////
@@ -3465,9 +3484,9 @@ Colorname2rgb(name):=( //181212
["olivegreen",[0.64,0,0.95,0.4]],["rawsienna",[0,0.72,1,0.45]],
["sepia",[0,0.83,1,0.7]],["brown",[0,0.81,1,0.6]],
["tan",[0.14,0.42,0.56,0]],["gray",[0,0,0,0.5]],
- ["lightgray",[0,0,0,0.17]], //190429
+ ["lightgray",[0,0,0,0.15]], //190429,0809
["cindycolor",[0.66,0,69,0.71]], //190504
- ["black",[0,0,0,1]],["white",[0,0,0,0]]
+ ["black",[0,0,0,1]],["white",[0,0,0,0]],["offwhite",[0,0,0,0.03]] //190809
];
tmp=select(dL,#_1==name);
if(length(tmp)>0,
@@ -3492,46 +3511,45 @@ Getlinestyle(str,name):=(
);
noflg=parse(substring(str,0,1));
if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
+ if(noflg<=1, //1900818from
+ tmp1=Toupper(substring(str,1,3));
+ ,
+ tmp1="NO";
+ ); //1900818to
tmp2=""; //190119from
tmp=indexof(str,",");
if(tmp>0,
tmp2=substring(str,tmp,length(str));
); //190119to
- if(tmp1=="dr" % tmp1=="Dr",
-// Ltype=0;
+ if(tmp1=="DR",
if(length(tmp2)==0,tmp2="1"); //190125
Ltype=[0,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Drwline(name+Dop);
);
);
- if(tmp1=="da" % tmp1=="Da",
-// Ltype=1;
+ if(tmp1=="DA",
if(length(tmp2)==0,tmp2="1,1"); //190125
Ltype=[1,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Dashline(name+Dop);
);
);
- if(tmp1=="id" % tmp1=="Id",
-// Ltype=2; // 15.11.09
- if(length(tmp2)==0,tmp2="1,1"); //190125
- Ltype=[2,tmp2]; //190119
+ if(tmp1=="ID",
+ if(length(tmp2)==0,tmp2="1,1"); //190125
+ Ltype=[2,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Invdashline(name+Dop);
);
);
- if(tmp1=="do" % tmp1=="Do",
-// Ltype=3;
+ if(tmp1=="DO",
if(length(tmp2)==0,tmp2="1,1"); //190125
Ltype=[3,tmp2]; //190119
if(noflg==0 & subflg==0, // 16.02.29
Dottedline(name+Dop);
);
);
- if(tmp1=="dp" % tmp1=="Dp",
-// Ltype=0;
+ if(tmp1=="DP",
if(length(tmp2)==0,tmp2="1"); //190125
Ltype=[0,tmp2]; //190119
tmp1=parse(name);
@@ -3544,9 +3562,9 @@ Getlinestyle(str,name):=(
Drwpt(tmp2+Dop);
);
);
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
+ if(tmp1=="NO", //190818from
+ Ltype=[-1,"0"];
+ ); //190818to
Ltype;
);
////%Getlinestyle end////
@@ -3677,7 +3695,7 @@ AddGraph(nm,pltdata,options):=(
GLIST=append(GLIST,tmp1); //no ketjs
);
); // 16.04.04 until
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -3776,7 +3794,7 @@ Joincrvs(nm,plotstrL,options):=(
tmp1=substring(tmp1,0,length(tmp1)-1);
GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")"); //no ketjs
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -3869,7 +3887,7 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
+","+Textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
GLIST=append(GLIST,tmp1); //no ketjs
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -3904,11 +3922,11 @@ Pointdata(nm,list):=Pointdata(nm,list,[]);
Pointdata(nm,listorg,options):=(
//help:Pointdata("1",[2,4],["Size=5"]);
//help:Pointdata("2",[[2,3],[4,1]]);
-//help:Pointdata(options=["Size=(1)","Disp=(y)","Msg=(y)","Inside=","Color="]);
-//help:Pointdata("Inside=color/ratio/no"]);
+//help:Pointdata(options=["Size=(1)","Msg=(y)","Color="]);
+//help:Pointdata("Inside=color/ratio/no","Border=y(n)"]);
regional(list,name,nameL,ptlist,opstr,opcindy,Msg,
eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3,
- Ltype,Noflg,color,inside);
+ Ltype,Noflg,color,inside,border);
name="pt"+nm;
nameL=name+"L";
tmp=Divoptions(options);
@@ -3921,6 +3939,7 @@ Pointdata(nm,listorg,options):=(
size="";
dispflg="Y";
inside=color;
+ border="Y";
Msg="Y";
forall(eqL,
tmp=Strsplit(#,"=");
@@ -3933,20 +3952,39 @@ Pointdata(nm,listorg,options):=(
if(tmp1=="D", //181030from
dispflg=Toupper(substring(tmp_2,0,1));
);
- if(tmp1=="I", //190405from
- if(Toupper(substring(tmp_2,0,1))=="N",
- inside=[-1,-1,-1];
+ if(tmp1=="I", //190628from
+ tmp2=Toupper(substring(tmp_2,0,1));
+ if(tmp2=="[",
+ tmp=parse(tmp_2);
+ if(length(tmp)==4,
+ tmp=Colorcmyk2rgb(tmp);
+ );
+ inside=text(tmp);
,
- tmp3=["0","1","2","3","4","5","6","7","8","9"];
- if(contains(tmp3,substring(tmp_2,0,1)),
- inside=parse(tmp_2)*color;
+ if(contains(["0","1"],tmp2),
+ tmp=[1,1,1]-color;
+ tmp=parse(tmp_2)*tmp;
+ inside=[1,1,1]-tmp;
,
- tmp3=Divoptions(["Color="+text(tmp_2)]);
- inside=tmp3_(length(tmp3)-2);
+ if(tmp2=="N",
+ inside=[1,1,1];
+ ,
+ inside=Colorname2rgb(tmp_2);
+ );
);
- opcindy=opcindy+",pointcolor->"+text(inside);
+ tmp1=indexof(opcindy,"color->");
+ tmp=substring(opcindy,tmp1,length(opcindy));
+ tmp2=indexof(tmp,"]");
+ tmp=substring(tmp,tmp2,length(tmp));
+ opcindy=substring(opcindy,0,tmp1-1)+"color->"+text(inside)+tmp;
+ );
+ ); //190628to
+ if(tmp1=="B", //1810628from
+ border=Toupper(substring(tmp_2,0,1));
+ if(border=="N",
+ opcindy=opcindy+",border->false";
);
- ); //100405to
+ ); //1810628to
if(tmp1=="M", //190206from
Msg=Toupper(substring(tmp_2,0,1));
); //190206to
@@ -3999,8 +4037,9 @@ Pointdata(nm,listorg,options):=(
);
GLIST=append(GLIST,name+"=Pointdata("+tmp2+")"); //no ketjs
);
- if(Noflg<2,
- tmp=[nameL,[0,1],opcindy]; //190126
+ if(Noflg<3, //190818
+ if(Noflg<2,tmp=[0,1],tmp=[-1,1]); //190819
+ tmp=[nameL,tmp,opcindy]; //190126
GCLIST=append(GCLIST,tmp);
if(Noflg==0,
if(length(size)>0,
@@ -4092,7 +4131,7 @@ Listplot(nm,list,options):=(
parse(tmp);
GLIST=append(GLIST,name+"=Listplot("+Textformat(ptlist,5)+")"); // 180719 //no ketjs
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180711
@@ -4163,7 +4202,7 @@ Lineplot(nm,list,optionorg):=(
parse(tmp);
GLIST=append(GLIST,name+"=Lineplot("+Textformat(list,5)+opstr+")"); //no ketjs
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4371,7 +4410,7 @@ Plotdata(name1,func,variable,options):=(
tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4387,7 +4426,7 @@ Plotdata(name1,func,variable,options):=(
);
PdL;
,
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4547,7 +4586,7 @@ Paramplot(nm,funstr,variable,options):=(
tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4563,7 +4602,7 @@ Paramplot(nm,funstr,variable,options):=(
);
Out;
,
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4831,7 +4870,7 @@ Implicitplot(name1,func,xrngorg,yrngorg,optionsorg):=(
GLIST=append(GLIST,tmp); //no ketjs
// Drawfigures(name,[name],[options]); //190508
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4954,7 +4993,7 @@ Circledata(nm,cenrad,options):=(
);
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -5091,7 +5130,7 @@ Ovaldata(nm,Pdata,options):=(
GLIST=append(GLIST, //no ketjs
name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30 //no ketjs
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2logr.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2logr.txt
index 35a48c5d4d..90dd67b995 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2logr.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2logr.txt
@@ -1,3 +1,43 @@
+// 20190921
+// Enclosing debugged/changed ( in case of length(KL)==1, epspara removed)
+// 20190917
+// Windispg changed (Strictmove moved to ketinit)
+// Slider changed (Strictmove removed)
+// 20190905
+// Ptpos added ( <= Setpintxy renamed/changed )
+// 20190902
+// Setax debugged (AXSTYLE)
+// 20190901
+// Drwxy changed ("Size" supported for labels)
+// Setpointxy added (Ptposition arrange )
+// Setax, Drwxy changed ( "Size=" option )
+// 20190831
+// Strictmove changed (StrictSep used)
+// 20190829
+// Windispg changed (remove SW,NE from Stricstmove)
+// 20190827
+// Strictmove added
+// Windispg changed (Stricstmove added)
+// Slider changed ( A-C-B)
+// 20190826
+// Slider changed ( for pA-pC-pB, initial position)
+// 20190824
+// Slider changed ( for ketcindyjs, separation controlable)
+// 20190818
+// Windispg changed ( to remove "nodisp" data )
+// Arrowhead,Lightarrowdata,Anglemark,Paramark,Bowdata,Deqplot,
+// Enclosing,Hatchdata,Rotatedata,Translatedata,Scaledata,Reflectdata,
+// Beziercurve,Extractdata,
+// changed
+// 20190814
+// Fourier debugged/changed (Num>num, deffun)
+// 20190727
+// Lightarrowdata => Arrowdata, Arrowdata => OldArrowdata
+// Lightarrowdata debugged ( arrowhead option )
+// 20190704
+// Bowdata changed (BOWMIDDLE message)
+// 20190627
+// Letter changed ( resize font size with Ketcindyjsscale )
// 20190531
// Drawfigures (Drwfigs) changed
// 20190524
@@ -358,4 +398,4 @@
//2017.09.16
// RSform, Deffun, IftoR, FortoR changed( added )
//2017.09.14
-// Makeshell, Makebat changed \ No newline at end of file
+// Makeshell, Makebat changed
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2r.cs b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2r.cs
index c1e21281ed..5f65ad6c50 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2r.cs
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic2r.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibbasic2[20190531] loaded");
+println("ketcindylibbasic2[20190921] loaded");
//help:start();
@@ -28,9 +28,9 @@ Drwfigs(nm,figlist,optionlist,commonops):=Drawfigures(nm,figlist,optionlist,comm
Drawfigures(nm,figlist):=Drawfigures(nm,figlist,[]);
Drawfigures(nm,figlist,optionlist):=Drawfigures(nm,figlist,optionlist,[]);
Drawfigures(nm,figlistorg,optionlistorg,commonops):=(
-//help:Drawfigures(["pt1","cr1"], [["Size=3"],[]],["Msg=n"]);
+//help:Drawfigures("1",["pt1","cr1"], [["Size=3"],[]],["Msg=n"]);
+//help:Drawfigures("","re1",[["Size=3"],[]],["Msg=n"]);
regional(figlist,name,figL,optionlist,nn,kk,fig,eqL,msg,tmp,tmp1,tmp2);
- name="figs"+nm;
tmp=Divoptions(commonops);
eqL=tmp_5;
msg="Y";
@@ -42,7 +42,12 @@ Drawfigures(nm,figlistorg,optionlistorg,commonops):=(
);
);
figlist=figlistorg;
- if(isstring(figlist),figlist=parse(figlist));
+ if(isstring(figlist), //190818from
+ name=figlist+nm;
+ figlist=parse(figlist);
+ ,
+ name="figs"+nm;
+ ); //190818to
nn=length(figlist);
optionlist=optionlistorg;
if(length(optionlist)==0, //190531from
@@ -62,26 +67,40 @@ Drawfigures(nm,figlistorg,optionlistorg,commonops):=(
fig=figlist_kk;
if(isstring(fig),fig=parse(fig));
if(length(fig)>0,
- if(Measuredepth(fig)==0,fig=[fig]); //190531from
- if(Measuredepth(fig)==1,fig=[fig]);
- forall(1..(length(fig)),
- tmp1=fig_#;
- tmp2=name+"n"+text(kk)+"p"+text(#);
- if(length(tmp1)==1,
- Pointdata(tmp2,tmp1,optionlist_kk);
- figL=append(figL,"pt"+tmp2);
+ if(isstring(figlistorg),
+ tmp1=Measuredepth(fig);
+ tmp2=append(optionlist_kk,"Msg=n");
+ tmp=fig;
+ if(tmp1==2,tmp=tmp_1);
+ if(length(tmp)>1,
+ Listplot("-"+name+"n"+text(kk),fig,tmp2);
,
- Listplot("-"+tmp2,tmp1,optionlist_kk);
- figL=append(figL,tmp2); //190427
+ if(tmp1==2,fig=apply(fig,#_1));
+ Pointdata("-"+name+"n"+text(kk),fig,tmp2);
);
- ); //190531to
+ figL=append(figL,name+"n"+text(kk));
+ ,
+ if(Measuredepth(fig)==0,fig=[fig]); //190531from
+ if(Measuredepth(fig)==1,fig=[fig]);
+ forall(1..(length(fig)),
+ tmp1=fig_#;
+ tmp2=name+"n"+text(kk)+"p"+text(#);
+ if(length(tmp1)==1,
+ Pointdata(tmp2,tmp1,optionlist_kk);
+ figL=append(figL,"pt"+tmp2);
+ ,
+ Listplot("-"+tmp2,tmp1,optionlist_kk);
+ figL=append(figL,tmp2); //190427
+ );
+ ); //190531to
+ tmp=apply(figL,Dqq(#));
+ tmp=name+"="+text(tmp)+";";
+ parse(tmp);
+ );
+ );
+ if(msg=="Y",
+ println("generate "+name+"="+text(figL));
);
- );
- tmp=apply(figL,Dqq(#));
- tmp=name+"="+text(tmp)+";";
- parse(tmp);
- if(msg=="Y",
- println("generate "+name+"="+text(figL));
);
figL;
);
@@ -280,7 +299,7 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
Listplot("-arh"+nm,apply(list,LLcrd(#)),concat(options,["notex","Msg=n"]));
);
@@ -310,12 +329,18 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
);
////%Arrowhead end////
-////%Arrowdata start////
-Arrowdata(ptlist):=Arrowdata(ptlist,[]); //181110from
-Arrowdata(Arg1,Arg2):=(
+////%Arrowdata start//// 190727 (<= Lightarrowdata)
+Arrowdata(ptlist):=Lightarrowdata(ptlist,[]);
+Arrowdata(Arg1,Arg2):=Lightarrowdata(Arg1,Arg2);
+Arrowdata(nm,ptlistorg,optionsorg):=Lightarrowdata(nm,ptlistorg,optionsorg);
+////%Arrowdata end////
+
+////%OldArrowdata start////
+Arrowdata(ptlist):=OldArrowdata(ptlist,[]); //181110from
+OldArrowdata(Arg1,Arg2):=(
regional(name);
if(isstring(Arg1),
- Arrowdata(Arg1,Arg2,[]);
+ OldArrowdata(Arg1,Arg2,[]);
,
name="";
forall(Arg1,
@@ -323,14 +348,14 @@ Arrowdata(Arg1,Arg2):=(
name=name+#.name; //190505
);
);
- Arrowdata(name,Arg1,Arg2);
+ OldArrowdata(name,Arg1,Arg2);
);
); //181110from
-Arrowdata(nm,ptlistorg,optionsorg):=(
-//help:Arrowdata("1",[A,B]);
-//help:Arrowdata("1",[pt1,pt2]);
-//help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Coord=p/l"]);
-//help:Arrowdata(optionsadded=["line"]);
+OldArrowdata(nm,ptlistorg,optionsorg):=(
+// help:Arrowdata("1",[A,B]);
+// help:Arrowdata("1",[pt1,pt2]);
+// help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Coord=p/l"]);
+// help:Arrowdata(optionsadded=["line"]);
regional(options,Ltype,Noflg,name,opstr,opcindy,eqL,reL,strL,color,size,coord,
flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut,scaley,ptlist);
name="ar"+nm;
@@ -426,7 +451,7 @@ Arrowdata(nm,ptlistorg,optionsorg):=(
Setscaling(scaley); //190412
[Lcrd(pA),Lcrd(pB)];
);
-////%Arrowdata end////
+////%OldArrowdata end////
////%Lightarrowdata start////
Lightarrowdata(ptlist):=Lightarrowdata(ptlist,[]); //181110from
@@ -445,8 +470,8 @@ Lightarrowdata(Arg1,Arg2):=(
);
); //181110from
Lightarrowdata(nm,ptlist,optionsorg):=(
-//help:Lightarrowdata("1",[pt1,pt2]);
-//help:Lightarrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Line=y(n)"]);
+//help:Arrowdata("1",[pt1,pt2]);
+//help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Line=y(n)"]);
regional(options,Ltype,Noflg,opstr,opcindy,eqL,reL,strL,color,size,coord,lineflg,
flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut,scaley,Ev,Nv,pP);
pA=Pcrd(ptlist_1); pB=Pcrd(ptlist_2);
@@ -510,7 +535,7 @@ Lightarrowdata(nm,ptlist,optionsorg):=(
tmp="ar"+nm+"="+Textformat([pA,pB],5)+";";
parse(tmp);
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if(lineflg==1, //190504from
Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
@@ -532,10 +557,16 @@ Lightarrowdata(nm,ptlist,optionsorg):=(
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
Setscaling(scaley);
- tmp1=Textformat(LLcrd(pP),5);
+ tmp1=Textformat(LLcrd(pP),5); //no ketjs on
tmp2=Textformat(LLcrd(pB-pA),5);
+ if(cut>0, //190727from //no ketjs on
+ tmp=Indexall(opstr,",");
+ tmp=tmp_(length(tmp));
+ opstr=substring(opstr,0,tmp-1);
+ opstr=opstr+","+Dqq("Cut="+text(cut));
+ ); //190727to
Com2nd("Arrowhead("+tmp1+","+tmp2+opstr+")");
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ if((Noflg==0)&(color!=KCOLOR), //180904
Texcom("}");//180722
); //no ketjs off
,
@@ -665,7 +696,7 @@ Anglemark(nm,plist,options):=(
tmp=name+"=Anglemark("+tmp1+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -780,7 +811,7 @@ Paramark(nm,plist,options):=(
tmp=name+"=Paramark("+tmp1+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -959,7 +990,7 @@ Bowdata(nm,plist,options):=(
);
if(Noflg<3,
if(Msg=="Y", //190206
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
+ println("generate bowdata "+name+" and BOWMIDDLE="+Bpos);//16.10.31,190704
);
if(Measuredepth(Out)==1,Out=[Out]);
tmp1=[];
@@ -973,7 +1004,7 @@ Bowdata(nm,plist,options):=(
tmp=name+"=Bowdata("+tmp1+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1208,7 +1239,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
tmp=RSform(tmp);
GLIST=append(GLIST,tmp);
); //no ketjs off
- if((nn>0)&(Noflg<2), //190211
+ if((nn>0)&(Noflg<3), //190211
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1225,170 +1256,6 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
);
////%Deqplot end////
-////////// old enclosing ///////////////
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-// help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,color
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-5); // 16.12.05
- EEps=0.05;
- Start=[];
- Flg=0;
- forall(realL,
- if(islist(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=Intersectcrvspp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=Norm(pt-Start);
- forall(2..(length(KL)),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=Norm(tmp1-Start); // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..(length(plist)),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=Intersectcrvspp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..(length(KL)),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=Paramoncurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..(length(tmp))));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+Textformat(AnsL,5)+";";
- parse(tmp);
- tmp=name+"=Enclosing(";//16.11.07from //no ketjs on
- tmp1="list"+PaO();
- forall(plist,
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=Getlinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-/////////// new enclosing ///////////
-
////%Enclosing start////
Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706[2lines]
Enclosing(nm,plistorg,options):=Enclosing2(nm,plistorg,options);
@@ -1398,7 +1265,7 @@ Enclosing2(nm,plistorg,options):=(
//help:Enclosing(options=[startpoint,epspara(1)]);
regional(name,plist,AnsL,Start,Eps,Eps1,Eps2,flg,Fdata,Gdata,KL,
t1,t2,tst,ss,ii,nn,nxtno,Ltype,Noflg,realL,eqL,opstr,opcindy,
- tmp,tmp1,tmp2,color,epspara,p1,p2);
+ tmp,tmp1,tmp2,color,p1,p2);
name="en"+nm;
plist=plistorg;
tmp=Divoptions(options);
@@ -1410,7 +1277,6 @@ Enclosing2(nm,plistorg,options):=(
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
Eps=10^(-5); // 16.12.05
- epspara=1; //180707
Eps1=0.01;
Eps2=0.1;
Start=[];
@@ -1419,7 +1285,6 @@ Enclosing2(nm,plistorg,options):=(
if(isList(#) % ispoint(#),
Start=Lcrd(#); // 18.02.02
,
- if(flg==0,epspara=#);//180707
if(flg==1,Eps1=#);
if(flg==2,Eps2=#);
flg=flg+1;
@@ -1496,8 +1361,7 @@ Enclosing2(nm,plistorg,options):=(
,
KL=sort(KL,[#_2]);//180706
tmp=parse(Fdata);
- tmp1=t1+epspara/50*length(tmp);
-// KL=select(KL,#_2>t1+epspara/50*length(tmp)); //180707
+ tmp1=t1+Eps;
KL=select(KL,(#_2>tmp1)%((#_2>t1)&(|#_1-p1|>Eps1))); //180713,16
t2=KL_1_2;
ss=KL_1_3;
@@ -1537,10 +1401,10 @@ Enclosing2(nm,plistorg,options):=(
);
tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from //no ketjs on
if(length(Start)>0,tmp=tmp+","+Textformat(Start,6));
- tmp=tmp+","+text(epspara)+")";//18.0706to,180707
+ tmp=tmp+","+text(Eps1)+")";//18.0706to,180707
GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -1559,8 +1423,6 @@ Enclosing2(nm,plistorg,options):=(
);
////%Enclosing end////
-/////////// end of new enclosing ///////////
-
/////////// new Hatchdata(cindy) ///////////
////%Makehatch start////
@@ -1947,7 +1809,7 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102 //no ketjs
);
);
- if((Noflg<2)&(mkflg>-1),
+ if((Noflg<3)&(mkflg>-1), //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2349,7 +2211,7 @@ Rotatedata(nm,plist,angle,optionorg):=(
+Textformat(angle,5)+","+RSform(Textformat(Pt,5))+")"; //17.12.23
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2431,7 +2293,7 @@ Translatedata(nm,plist,mov,optionorg):=(
tmp=name+"=Translatedata("+tmp1+","+RSform(Textformat(mov,5))+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2537,7 +2399,7 @@ Scaledata(nm,plist,rx,ry,optionorg):=(
+Textformat(rx,5)+","+Textformat(ry,5)+","+RSform(Textformat(Pt,5))+")";
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2635,7 +2497,7 @@ Reflectdata(nm,plist,symL,optionorg):=(
tmp=name+"=Reflectdata("+tmp1+","+RSform(Textformat(symL,5))+")";//17.12.23
GLIST=append(GLIST,tmp); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -2798,38 +2660,48 @@ Htick(px,lenorg,options):=(
////%Htick end////
////%Setax start////
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
+Setax(arglistorg):=(
+//help:Setax(["l","x","e","y","n","O","sw","Size=1.5"]);
//help:Setax([7,"nw"]);
//help:Setax([8,linestyle,colorax,colorlabel]);
- regional(st,nn,tmp); //181215from
- st=1; nn=1;
+ regional(arglist,st,nn,tmp,eqL);
+ tmp=Divoptions(arglistorg); //190901from
+ eqL=tmp_5;
+ arglist=remove(arglistorg,eqL);
+ if(length(arglist)==0,
+ arglist=["l","x","e","y","n","O","sw"];
+ ); //190901to
+ st=1; nn=1;
if(isreal(arglist_1),
st=2;
nn=arglist_1;
);
forall(st..(length(arglist)),
tmp=arglist_#;
- if(length(tmp)>0,AXSTYLE_nn=tmp);
+ if(length(tmp)>0,AXSTYLE_1_nn=tmp);
nn=nn+1;
- ); //181215from
+ );
+ AXSTYLE=[AXSTYLE_1,eqL]; //190901,02
// tmp=MakeRarg(arglist);
// Com1st("Setax("+tmp+")");
);
////%Setax end////
////%Drwxy start////
-Drwxy():=Drwxy(0,[]); //190103from
-Drwxy(Arg):=(
- if(islist(Arg),Drwxy(0,Arg); Drwxy(Arg,[]));
+Drwxy():=Drwxy(0,[]);
+Drwxy(Arg):=( //190901from
+ if(islist(Arg),
+ Drwxy(0,Arg);
+ ,
+ Drwxy(Arg,[]);
+ ); //190901to
);
-Drwxy(add):=Drwxy(add,[]);
-Drwxy(add,optionsorg):=( //190103to
+Drwxy(add,optionsorg):=(
//help:Drwxy();
//help:Drwxy(1[the last axis will be drawn],oprions);
//help:Drwxy(options);
-//help:Drwxy(options=["Xrng=","Yrng=","Ax=l,x,e,..."]);
- regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size,
+//help:Drwxy(options=["Xrng=","Yrng=","Ax=l,x,e,...","Size="]);
+ regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size,labelsize,
linesty,colorax,colorla,tmp,tmp1,tmp2);
options=optionsorg;
tmp=Divoptions(options);
@@ -2842,7 +2714,16 @@ Drwxy(add,optionsorg):=( //190103to
//tmp1=max([org_2+YMIN,YMIN]);
//tmp2=min([org_2+YMAX,YMAX]);
yrng=[YMIN,YMAX]; //190103
- ax=AXSTYLE;
+ ax=AXSTYLE_1; //190901from
+ labelsize="Size=1";
+ forall(AXSTYLE_2,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(contains(["S","L"],tmp1),
+ labelsize="Size="+tmp_2;
+ options=remove(options,[#]);
+ );
+ ); //190901to
linesty=ax_8;
if(length(ax_9)>0, //190427
if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
@@ -2859,8 +2740,6 @@ Drwxy(add,optionsorg):=( //190103to
);
); //181217to
forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
if(tmp1=="O", //190103from
org=parse(tmp_2);
options=remove(options,[#]);
@@ -2908,9 +2787,10 @@ Drwxy(add,optionsorg):=( //190103to
Listplot("-axy"+text(AXCOUNT),tmp,tmp1);
);
AXCOUNT=AXCOUNT+1;
- Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216[3lines]
- Expr([[org_1,yrng_2],ax_5,ax_4],[colorla]);
- Letter([org,ax_7,ax_6],[colorla]);
+ tmp=[colorla,labelsize]; //190901from
+ Expr([[xrng_2,org_2],ax_3,ax_2],tmp);
+ Expr([[org_1,yrng_2],ax_5,ax_4],tmp);
+ Letter([org,ax_7,ax_6],tmp); //190901to
if(add==0, //190103
Addax(0);
);
@@ -3025,6 +2905,7 @@ Letter(list,options):=(
Off=-4;
Dmv=8;
Nj=1;
+// if(Ketcindyjsfigure>0,sz=round(sz*Ketcindyjsscale) ); // only ketjs
while(Nj+2<=length(list),
Pos=list_Nj;
Dir=list_(Nj+1);
@@ -3077,6 +2958,11 @@ Letter(list,options):=(
if(Ymv==0,Ymv=-4);//16.10.08
aln="mid"; // 16.09.30until
);
+// if(Ketcindyjsfigure>0, // only ketjs on
+// Off=round(Off*Ketcindyjsscale);
+// Xmv=round(Xmv*Ketcindyjsscale);
+// Ymv=round(Ymv*Ketcindyjsscale);
+// ); // only ketjs off
Str=list_(Nj+2); //17.10.17
drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
size->sz,color->color,align->aln,bold->bld,italics->ita);//16.10.09
@@ -3179,54 +3065,102 @@ Exprrot(pt,dir,tmov,nmov,str,options):=(
);
////%Exprrot end////
+////%Ptpos start//// 190906
+Ptpos(pt):=Ptpos(pt,[]);
+Ptpos(ptorg,pos):=(
+//help:Ptpos(A);
+//help:Ptpos(A, [3,2]);
+ regional(pt,out,tmp);
+ if(ispoint(ptorg),pt=ptorg,pt=parse(ptorg));
+ if(length(pos)==0,
+ tmp=pt.name+"position";
+ out=parse(tmp);
+ if(!islist(out),
+ tmp=tmp+"="+Textformat(pt.xy,6)+";";
+ parse(tmp);
+ );
+ ,
+ pt.xy=pos;
+ tmp=pt.name+"position="+Textformat(pt.xy,6)+";";
+ parse(tmp);
+ out=pt.xy;
+ );
+ out;
+);
+////%Ptpos end////
+
+////%Strictmove start////
+Strictmove(pC):=Strictmove(pC,StrictSep); //190831
+Strictmove(pCorg,sep):=(
+ regional(pC,tmp,tmp1,tmp2);
+ pC=pCorg;
+ if(ispoint(pC),pC=pC.name);
+ tmp1=pC+"position";
+ if(!islist(parse(tmp1)),
+ tmp=tmp1+"="+textformat(parse(pC).xy,6)+";";
+ parse(tmp);
+ ,
+ tmp=parse(pC).xy;
+ tmp2=mouse().xy;
+ if(|tmp-tmp2|>sep,
+ tmp=pC+".xy="+pC+"position";
+ parse(pC).xy=parse(pC+"position");
+ ,
+ tmp=tmp1+"="+Textformat(parse(pC).xy,6)+";";
+ parse(tmp);
+ );
+ );
+);
+////%Strictmove end////
+
////%Slider start////
Slider(ptstr,p1,p2):=Slider(ptstr,p1,p2,[]);
Slider(ptstr,p1,p2,options):=(//190120
//help:Slider("A-C-B",[-3,0],[3,0]);
//help:Slider("C",[-3,0],[3,0]);
-//help:Slider(options=["Color=0.6*[0,0,1]","Size=2"]);
- regional(pA,pB,pC,seg,sname,Alpha,color,size,tmp,tmp1);
+//help:Slider(options=["Color=[0,0,0.6]","Thick=2"]);
+//help:Slider(options2=["Sep=0.3"]); //190824
+ regional(pA,pB,pC,color,thick,sep,tmp,tmp1,tmp2);
color="Color=0.6*[0,0,1]"; //190120from
- size="size->2";
+ thick="size->2";
+ sep=0.3; //190824
forall(options,
tmp=Toupper(substring(#,0,1));
if(tmp=="C",
color=#;
);
- if(tmp=="S",
+ if(tmp=="T",
tmp=Strsplit(#,"=");
- size="size->"+tmp_2;
+ thick="size->"+tmp_2;
);
- ); //190120to
+ if(tmp=="S",//190824from
+ tmp=Strsplit(#,"=");
+ sep=parse(tmp_2);
+ ); //190824to
+ );
tmp=Indexall(ptstr,"-");
- if(length(tmp)>0, //190209from
- pA=substring(ptstr,0,tmp_1-1);
+ if(length(tmp)>0,
+ pA=substring(ptstr,0,tmp_1-1); //190824from
pC=substring(ptstr,tmp_1,tmp_2-1);
pB=substring(ptstr,tmp_2,length(ptstr));
- seg=pA+pB;
- Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- sname="";
- forall(1..(length(seg)),
- tmp=substring(seg,#-1,#);
- tmp1=indexof(Alpha,tmp);
- if(tmp1>0,
- sname=sname+unicode(text(tmp1+96),base->10);
- ,
- sname=sname+tmp;
- );
- );
- Putpoint(pA,p1);
- Putpoint(pB,p2);
- Listplot([parse(pA),parse(pB)],["Msg=n","notex",color,size]);
- Putonseg(pC,parse("sg"+pA+pB));
+ parse(pA).xy=p1;
+ parse(pB).xy=p2; //190824to
+ tmp1=pC+"position"; //190827from
+ if(!islist(parse(tmp1)),
+ tmp2=parse(pC).xy;
+ if(|tmp2-p1|<0.1,tmp2=p1+0.1*(p2-p1)/|p2-p1|);
+ if(|tmp2-p2|<0.1,tmp2=p2+0.1*(p1-p2)/|p1-p2|);
+ tmp=tmp1+"="+textformat(tmp2,6)+";";
+ parse(tmp);
+ parse(pC).xy=tmp2;
+ ); //190827to
PTEXCEPTION=concat(TEXCEPTION,[pA,pC,pB]);
,
- pA=""; pB=""; pC=ptstr;
- tmp=pC+"l"+pC+pC+"r";
- Listplot(tmp,[p1,p2],["Msg=n","notex",color,size]);
- Putonseg(pC,parse("sg"+tmp));
- PTEXCEPTION=concat(PTEXCEPTION,[pC]); //190329
- ); //190209to
+ pC=ptstr; pA=pC+"l"; pB=pC+"r";
+ PTEXCEPTION=concat(PTEXCEPTION,[pC]);
+ );
+ Listplot(pA+pB,[p1,p2],["Msg=n","notex",color,thick]);
+ Putonseg(pC,parse("sg"+pA+pB));
);
////%Slider end////
@@ -3245,21 +3179,6 @@ Putpoint(name,Ptinit,Pt):=(
);
////%Putpoint end////
-////%Putpoint start////
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);//16.10.06
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+Textformat(Pcrd(Pt),5)+";";
- parse(ptstr);
- );
-);
-////%Putpoint end////
-
////%Bezierpt start////
Bezierpt(t,ptlist,ctrlist):=(
regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
@@ -3367,7 +3286,7 @@ Beziercurve(nm,ptlistorg,ctrlistorg,options):=(
tmp2=RSform(tmp2,3); //17.12.23
GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")"); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -4150,17 +4069,14 @@ Fourierseries(nm,coefforg,per,nterm,range,optionorg):=(
cn=coeff_2;
sn=coeff_3;
fs=c0;
+ fn="(cn)*cos(n*2*pi/per*x)+(sn)*sin(n*2*pi/per*x)";
+ fn=Assign(fn,["cn",cn,"sn",sn,"per",per]);
if(tbflg=="N", //190523
forall(1..nterm,
- tmp=parse(Assign(cn,["n",#]));
- tmp1=Assign("("+format(tmp,5)+")*cos(n*2*pi/per*x)",
- ["n",#,"per",per]);
- tmp=parse(Assign(sn,["n",#]));
- tmp2=Assign("("+format(tmp,5)+")*sin(n*2*pi/per*x)",
- ["n",#,"per",per]);
- fs=fs+"+"+tmp1+"+"+tmp2;
- );
- Plotdata("-four"+nm,fs,range,append(options,"Num="+Num));
+ fs=fs+"+"+Assign(fn,["n",#]);
+ );
+ Deffun("four(x)",[fs]);
+ Plotdata("-four"+nm,"four(x)",range,append(options,"Num="+num));
,
c0=parse(c0); //190523from
cn=apply(1..nterm,parse(Assign(cn,["n",#])));
@@ -4814,6 +4730,7 @@ Windispg(gcLorg):=( //190125
if(length(gcL)>0,
if(!islist(gcL_1),gcL=[gcL]);
); //190125to
+ gcL=select(gcL,#_2_1>=0); //190818
gsave();
layer(KETPIClayer);
forall(gcL,Nj,
@@ -4856,7 +4773,7 @@ Windispg(gcLorg):=( //190125
);
,
if(indexof(opcindy,"size")==0, //190425from
- opcindy=opciny+",size->"+text(TenSize/TenSizeInit);
+ opcindy=opcindy+",size->"+text(TenSize/TenSizeInit);
); //190425to
tmp="draw("+text(Nk_1)+opcindy+");";
parse(tmp);
@@ -4913,7 +4830,7 @@ Extractdata(number,name,options):=(
];
GLIST=concat(GLIST,tmp3); //no ketjs off
);
- if(Noflg<2,
+ if(Noflg<3, //190818
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3logr.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3logr.txt
index 439a634247..0d2b2ac394 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3logr.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3logr.txt
@@ -1,3 +1,49 @@
+// 201908918
+// Defvar changed ( precision 5 -> 16)
+// 201908916
+// Setketcindyjs changed ( JSBODY moved to Ketinit)
+// 201908915
+// Tocindyform,Totexform debugged ( ^ )
+// Totexform change ( "*" to "\cdot " or "" )
+// 201908914
+// Fracform changed ( numer, denom added to output)
+// 201908911
+// Mketcindyjs debugged (JSBODY, ` => ')
+// 201908910
+// Ketcindyjsbody added (JSBODY)
+// Setketcindyjs,Mkketcindyjs changed (JSBODY)
+// 201908905
+// Mkketcindyjs debugged (multi-initialization)
+// 20190827
+// Mkketcindyjs debugged (case of no "axes:" )
+// 20190816
+// Deffun debugged (return )
+// 20190814
+// Deffun changed( for ketcindyjs )
+// 20190808
+// Setplaybuttons changed ( space option added )
+// 20190802
+// Movetojs debugged ( MOVETOJSLIST initialized )
+// Ketcindyjsdata debugged ( set() used to remove identical elements )
+// 20190801
+// Ketcindyjsdata debugged ( KetcindyjsDataList initialized )
+// Mkketcindyjs debugged ( position of KetcindyjsDataList)
+// 20190731
+// Setplaybuttons added
+// 20190729
+// Mkketcindyjs changed (Axes option)
+// Movetojs changed (number of text available)
+// 20190715
+// Totexform debugged ( for pi )
+// 20190712
+// Totexformpart changed (double spaces replaced with \;)
+// Tocindyformpart changed (single space replaced with *)
+// 20190704
+// Parsejson,Resizetextsize,Movetojs,Movetojsexe added
+// 20190629
+// Fracform changed
+// 20190627
+// Mkketcindyjs ( Axes and Figure options added )
// 20190623
// Fracform,Gcd added
// 20190618
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3r.cs b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3r.cs
index 8a953f20a9..b5308c171b 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3r.cs
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindylibbasic3r.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibbasic3[20190623] loaded");
+println("ketcindylibbasic3[20190918] loaded");
//help:start();
@@ -356,7 +356,7 @@ Defvar(name,value):=(
if(isstring(#), // 16.11.14
tmp1=tmp1+Dq+#+Dq+","; // 16.11.14
,
- tmp1=tmp1+format(#,5)+",";
+ tmp1=tmp1+format(#,16)+","; //190918
);
);
tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
@@ -452,11 +452,15 @@ Deffun(name,bodylist):=(
regional(funstr,str,Pos,nbody,bdy,ppL,bpL,excma,tmp,tmp1,tmp2);
funstr=name+":=(";
forall(bodylist,
- funstr=funstr+#+";";
+ tmp1=Removespace(#); //190816from
+// tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
+// if(tmp!=",", tmp1=tmp1+";");
+ tmp1=tmp1+";";
+ funstr=funstr+tmp1; //190816to
);
funstr=funstr+");";
parse(funstr);
- tmp=indexof(name,"(");
+ tmp=indexof(name,"("); // no ketjs on //190814
str=substring(name,0,tmp-1)+"<-function"+PaO();
str=str+substring(name,tmp,length(name))+"{";
forall(1..(length(bodylist)-1),nbody,
@@ -492,8 +496,10 @@ Deffun(name,bodylist):=(
str=str+bdy+";";
);
);
- str=str+"return"+PaO()+bodylist_(length(bodylist))+")}";
- FUNLIST=append(FUNLIST,str);
+ tmp1=bodylist_(length(bodylist)); //190816from
+ tmp1=RSform(tmp1,2);
+ str=str+"return"+PaO()+tmp1+")}"; //190816to
+ FUNLIST=append(FUNLIST,str); // no ketjs off
);
////%Deffun end////
@@ -2963,12 +2969,14 @@ Gcd(xL,nmx):=(
);
////%Gcd end////
-////%Fracform start//// //190623
+////%Fracform start//// //190623,29
Fracform(x):=Fracform(x,5);
-Fracform(x,denorg):=(
+Fracform(x,den):=Fracform(x,den,5);
+Fracform(x,denorg,deg):=(
//help:Fracform(1.3);
-//help:Fracform(1.3,[denomlist]);
- regional(den,fL,tmp,nn,mm,err);
+//help:Fracform(1.3,[denomlist],5);
+ regional(Eps,den,fL,flg,tmp,nn,mm,err);
+ Eps=10^(-deg);
den=denorg;
if(islist(den),
if(!contains(den,1), den=prepend(1,den));
@@ -2976,19 +2984,29 @@ Fracform(x,denorg):=(
den=1..den;
);
fL=[];
+ flg=0;
forall(den,
- tmp=round(x*#);
- fL=append(fL,[tmp,#,abs(tmp/#-x)]);
+ if(flg==0,
+ tmp=round(x*#);
+ tmp=[tmp,#,abs(tmp/#-x)];
+ if(tmp_3<Eps,
+ flg=1;
+ ,
+ fL=append(fL,tmp);
+ );
+ );
+ );
+ if(flg==0,
+ fL=sort(fL,#_3);
+ tmp=fL_1;
);
- fL=sort(fL,#_3);
- tmp=fL_1;
mm=tmp_1; nn=tmp_2; err=tmp_3;
if(nn>1,
out="fr("+text(mm)+","+text(nn)+")";
,
out=text(mm);
);
- [out,"err="+format(err,6)];
+ [out,"err="+format(err,6),mm,nn]; //190914
);
////%Fracform end////
@@ -3067,9 +3085,21 @@ Totexformpart(str):=( //190514
////%Totexform start////
Totexform(str):=( //190514
//help:Totexform("frac(2,3)");
- regional(out,plv,flg,nn,tmp,tmp1);
- out=replace(str," ","\ ");
- out=replace(str,"*"," ");
+ regional(out,plv,flg,nn,tmp,tmp1,tmp2);
+ out=replace(str,"pi","\pi"); //190715
+ tmp1=apply(0..9,text(#)); //190915from
+ tmp2=Indexall(out,"*");
+ forall(tmp2,
+ tmp=substring(out,#,#+1);
+ if(contains(tmp1,tmp),
+ out=substring(out,0,#-1)+"$"+substring(out,#,length(out));
+ ,
+ out=substring(out,0,#-1)+"%"+substring(out,#,length(out));
+ );
+ );
+ out=replace(out,"$","\cdot ");
+ out=replace(out,"%",""); //190915to
+ out=replace(out," ","\;");
plv=Bracket(out,"()"); //190515from
flg=0; //190521from
if(length(plv)==0,
@@ -3102,7 +3132,6 @@ Totexform(str):=( //190514
out=replace(out,"-+","\mp ");
out=replace(out,"<=","\leq ");
out=replace(out,">=","\geq ");
- out=Assign(out,["pi","\pi"]); //190521
tmp1=Indexall(out,"^");
forall(tmp1,nn,
if(substring(out,nn,nn+1)=="(",
@@ -3110,8 +3139,9 @@ Totexform(str):=( //190514
tmp2=select(tmp2,#_2==-1);
tmp2=tmp2_1_1+nn;
tmp=substring(out,nn+1,tmp2-1);
+ tmp2=substring(out,tmp2,length(out));//190915
out=substring(out,0,nn)+"{"+tmp+"}";
- out=out+substring(out,tmp2,length(out));
+ out=out+tmp2;
);
);
);
@@ -3196,6 +3226,10 @@ Tocindyform(str):=( //190521
//help:Tocindyform("frac(2,3)");
regional(out,plv,flg,nn,tmp,tmp1);
out=str;
+ out=replace(out,"\",""); //190712[4lines]
+ out=replace(out," "," ");
+ out=replace(out," "," ");
+ out=replace(out," ","*");
plv=Bracket(out,"()");
flg=0;
if(length(plv)==0,
@@ -3223,19 +3257,6 @@ Tocindyform(str):=( //190521
);
);
);
- if(flg<=1,
- tmp1=Indexall(out,"^");
- forall(tmp1,nn,
- if(substring(out,nn,nn+1)=="(",
- tmp2=Bracket(substring(out,nn,length(out)),"()");
- tmp2=select(tmp2,#_2==-1);
- tmp2=tmp2_1_1+nn;
- tmp=substring(out,nn+1,tmp2-1);
- out=substring(out,0,nn)+"{"+tmp+"}";
- out=out+substring(out,tmp2,length(out));
- );
- );
- );
out=replace(out,"{","(");
out=replace(out,"}",")");
out;
@@ -3352,10 +3373,19 @@ Setketcindyjs(list):=(
);
////%Setketcindyjs end////
+////%Ketcindyjsbody start//// 190909
+Ketcindyjsbody(list1,list2):=(
+//help:Ketcindyjsbody(listfront,listrear);
+ JSBODY=[list1,list2];
+ JSBODY;
+);
+////%Ketcindyjsbody end////
+
////%Ketcindyjsdata start//// //190421
Ketcindyjsdata(datalistorg):=(
//help:Ketcindyjsdata(["ans",ans,"pea[parse]",pea]);
regional(nn,func,tmp,tmp1,tmp2);
+ if(!islist(KetcindyjsDataList),KetcindyjsDataList=[]); //190801
datalist=datalistorg;
forall(1..(length(datalist)/2), nn, //190423from
tmp1=datalist_(2*nn-1);
@@ -3383,11 +3413,12 @@ Ketcindyjsdata(datalistorg):=(
);
tmp2=substring(tmp,0,length(tmp)-1)+"]";
,
- tmp2=Dqq(tmp2);
+ if(isstring(tmp2),tmp2=Dqq(tmp2));
);
tmp=tmp1+"="+tmp2;
KetcindyjsDataList=append(KetcindyjsDataList,tmp);
- ); //190423to
+ KetcindyjsDataList=set(KetcindyjsDataList); //190802
+ );
);
Ketcindyjsdata(name,vaL):=(
Ketcindyjsdata([name,vaL]);
@@ -3595,15 +3626,163 @@ Textedit2value(no,options):=(
);
////%Textedit2value end////
+////%Parsejson start////
+Parsejson(json):=(
+//help:Parsejson("{a:[1,2,[3,4],5],b:{1,2,3}}");
+ regional(outL,symbolleftL,symbolrightL,symbolstack,stacksize,leftpos,rightpos,breakflg,strflg,flg);
+ outL=[];
+ symbolleftL =["[","{"];
+ symbolrightL=["]","}"];
+ leftpos=1;
+ while(leftpos<=length(json),
+ while( ( json_leftpos==" " % json_leftpos=="{" ) & leftpos<=length(json), leftpos=leftpos+1);
+ rightpos=leftpos;
+ symbolstack=" ";
+ stacksize=0;
+ breakflg=0;
+ strflg=0;
+ while(breakflg==0 & rightpos<=length(json),
+ flg=0;
+ if(strflg==0 & json_rightpos==unicode("0022"), // unicode("0022")='"'
+ strflg=1;
+ flg=1;
+ );
+ if(flg==0 & strflg==1 & json_rightpos==unicode("0022"),
+ strflg=0;
+ flg=1;
+ );
+ if(strflg==0,
+ repeat(length(symbolleftL),
+ if(flg==0 & stacksize>0,
+ if(symbolstack_stacksize==symbolleftL_# & json_rightpos==symbolrightL_#,
+ stacksize=stacksize-1;
+ flg=1;
+ );
+ );
+ if(flg==0 & json_rightpos==symbolleftL_#,
+ stacksize=stacksize+1;
+ symbolstack_stacksize=symbolleftL_#+" ";
+ flg=1;
+ );
+ );
+ if(flg==0 & json_rightpos==",",
+ if(stacksize==0, breakflg=1);
+ flg=1;
+ );
+ if(flg==0 & json_rightpos=="}",
+ if(stacksize==0, breakflg=1);
+ flg=1;
+ );
+ );
+ if(breakflg==0,rightpos=rightpos+1);
+ );
+ if(leftpos<rightpos,outL=append(outL,substring(json,leftpos-1,rightpos-1)));
+ leftpos=rightpos+1;
+ );
+ outL;
+);
+////%Parsejson end////
+
+////%Resizetextsize start////
+Resizetextsize(json,defaultsize,scale):=(
+//help:Resizetextsize("{textsize: 10}",12,4);
+//help:Resizetextsize("{aaa: bbb}",12,4);
+ regional(out,propertiesL,textsize,existflg,breakflg);
+ out=json;
+ propertiesL=Parsejson(out);
+ existflg=indexof(out,"textsize");
+ if(existflg==0,
+ if(length(propertiesL)>0,
+ textsize="textsize: "+round(scale*defaultsize);
+ out=replace(out,propertiesL_length(propertiesL),propertiesL_length(propertiesL)+", "+textsize);
+ );
+ );
+ if(existflg>0,
+ breakflg=0;
+ forall(propertiesL,
+ if(breakflg==0 & indexof(#,"textsize")>0,
+ textsize="textsize: "+round(scale*parse(substring(#,indexof(#,":"),length(#))));
+ out=replace(out,#,textsize);
+ breakflg=1;
+ );
+ );
+ );
+ out;
+);
+////%Resizetextsize end////
+
+////%Movetojs start////
+Movetojs(geoorg,pos,textsize):=(
+//help:Movetojs(Text51,[1,2],12);
+ regional(geo); //190729from
+ geo=geoorg;
+ if(isreal(geo),geo=parse("Text"+text(geo))); //190729to
+ inspect(geo,"textsize",textsize);
+ if(!islist(MOVETOJSLIST), MOVETOJSLIST=[]); //190802
+ MOVETOJSLIST=append(MOVETOJSLIST,[geo.name,[pos_1,pos_2]]);
+);
+////%Movetojs end////
+
+////%Movetojsexe start////
+Movetojsexe(json):=(
+ regional(out,geo,propertiesL,breakflg);
+ out=json;
+ geo=select(MOVETOJSLIST,indexof(json,"name: "+Dqq(#_1))>0);
+ if(length(geo)>0,
+ geo=geo_1;
+ propertiesL=Parsejson(out);
+ forall(propertiesL,
+ breakflg=0;
+ if(breakflg==0 & ( indexof(#,"pos:")>0 % indexof(#,"dock:")>0 ),
+ out=replace(out,#,"pos: ["+geo_2_1+","+geo_2_2+",1]");
+ breakflg=1;
+ );
+ );
+ );
+ out;
+);
+////%Movetojsexe end////
+
+////%Setplaybuttons start////
+Setplaybuttons(pt,font):=Setplaybuttons(pt_1,pt_2,font,[]);
+Setplaybuttons(Arg1,Arg2,Arg3):=(
+ if(islist(Arg1),
+ Setplaybuttons(Arg1_1,Arg1_2,Arg2,Arg3);
+ ,
+ Setplaybuttons(Arg1,Arg2,Arg3,[]);
+ );
+);
+Setplaybuttons(x,y,font,sporg):=(
+//help:Setplaybuttons(-2,-6,14);
+//help:Setplaybuttons([-2,-6],14,[1,1,1]);
+ regional(x1,sp,tmp,tmp1);
+ sp=sporg;
+ tmp=length(sp);
+ if(tmp==0,tmp1=0,tmp1=sp_tmp);
+ tmp=apply(1..(3-tmp),tmp1);
+ sp=concat(sp,tmp);
+ x1=x;
+ Movetojs(71,[x1,y],font);
+ x1=x1+(0.84*font+sp_1)/10;
+ Movetojs(72,[x1,y],font);
+ x1=x1+(1.06*font+sp_2)/10;
+ Movetojs(73,[x1,y],font);
+ x1=x1+(0.76*font+sp_3)/10;
+ Movetojs(74,[x1,y],font);
+);
+////%Setplaybuttons end////
+
////%Mkketcindyjs start//// 190115
Mkketcindyjs():=Mkketcindyjs(KETJSOP); //190129
Mkketcindyjs(options):=( //17.11.18
//help:Mkketcindyjs();
//help:Mkketcindyjs(options=["Local=(y)","Scale=(1)","Nolabel=[]","Color=","Grid="]);
-//help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy","Ignore=","Equal="]);
+//help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy","Ignore=","Remove=(list)"]);
+//help:Mkketcindyjs(optionsadd2=["Equal=","Axes=","Figure=(n)"]);
regional(webflg,localflg,htm,htmorg,from,upto,flg,fL,fun,jj,tmp,tmp1,tmp2,tmp3,
libnameL,libL,lib,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale,
- nolabel,color,grid,out,Out,igno,onlyflg,rmptL,colorrgb,ptname,eqflg,eqrep);
+ nolabel,color,grid,axes,out,Out,igno,onlyflg,rmptL,colorrgb,ptname,eqflg,eqrep,
+ figure,dpi,margin,defaultbuttonsize,defaulteditsize);
libnameL=["basic1","basic2","basic3","3d"]; //190416,190428
webflg="Y"; //190128 texflg removed
localflg="Y"; //190209,0215
@@ -3611,7 +3790,13 @@ Mkketcindyjs(options):=( //17.11.18
nolabel=["SW","NE"]; //190129
color="lightgray"; //190503
eqflg=0; //190603
+ figure=0;
+ dpi=86.4; // 12px/10pt = 12px/(10/72)in = 86.4dpi
+ margin=5; // mm
+ defaultbuttonsize=12; // px
+ defaulteditsize=12; // px
grid="";
+ axes="";
path=Dircdy;
igno=[];
rmptL=REMOVEPTJS;
@@ -3658,6 +3843,12 @@ Mkketcindyjs(options):=( //17.11.18
grid=tmp2;
);
);
+ if(tmp1=="A",
+ if(length(tmp2)>0,
+ tmp2=Toupper(substring(tmp2,0,1)); //190729[2lines]
+ if(contains(["N","F"],tmp2),axes="false");
+ );
+ );
if(tmp1=="E", //190603from
eqflg=1;
if(length(tmp2)>0,
@@ -3684,6 +3875,11 @@ Mkketcindyjs(options):=( //17.11.18
rmptL=concat(rmptL,tmp2);
); //190503to
); //190503to
+ if(tmp1=="F",
+ if(length(tmp2)>0,
+ if(Toupper(substring(tmp2,0,1))=="Y",figure=1,figure=0);
+ );
+ );
);
if(substring(color,0,1)=="[",
tmp=parse(color);
@@ -3911,12 +4107,25 @@ Mkketcindyjs(options):=( //17.11.18
);
);
);
+ Ketcindyjsdata(["Ketcindyjsfigure",figure,"Ketcindyjsscale",scale]);//190801from[moved]
+ forall(KetcindyjsDataList,
+ println(SCEOUTPUT,#+";");
+ ); //190801to[moved]
tmp=select(partL,#_1=="csinit");
if(length(tmp)>0,
tmp=tmp_1;
- from=tmp_2+5; //190206
+ from=tmp_2; //190905from
+ flg=0;
+ forall(1..6,
+ if(flg==0,
+ if(indexof(htmorg_from,"ketcindy.ini")>0,
+ flg=1;
+ );
+ from=from+1;
+ );
+ );//190905to
upto=tmp_3;
- tmp1=htmorg_((from+1)..(upto-1)); //190119
+ tmp1=htmorg_((from)..(upto-1)); //190905
ketflg="off"; //190206from
onlyflg="off"; //190502
forall(tmp1,
@@ -3945,9 +4154,6 @@ Mkketcindyjs(options):=( //17.11.18
);
);
);
- forall(KetcindyjsDataList, //190422from
- println(SCEOUTPUT,#+";");
- ); //190422to
println(SCEOUTPUT,"</script>");
tmp=select(partL,#_1=="csdraw");
tmp=tmp_1;
@@ -4001,6 +4207,8 @@ Mkketcindyjs(options):=( //17.11.18
nn=Indexall(tmp,Dq);
tmp=substring(tmp,nn_1,nn_2-1);
if(!contains(tmp2,tmp),
+ tmp1_jj=Movetojsexe(tmp1_jj);
+ if(figure>0,tmp1_jj=Resizetextsize(tmp1_jj,defaultbuttonsize,scale));
out=append(out,tmp1_jj); //190129
);
flg=1;
@@ -4009,6 +4217,8 @@ Mkketcindyjs(options):=( //17.11.18
if(indexof(tmp1_jj,"Evaluate")>0,
tmp=replace(tmp1_jj,Dqq("Evaluate"),Dqq("EditableText"));
if(eqflg==1,tmp=replace(tmp,"=",eqrep)); //190604
+ tmp=Movetojsexe(tmp);
+ if(figure>0,tmp=Resizetextsize(tmp,defaulteditsize,scale));
out=append(out,tmp);
flg=1;
);
@@ -4016,8 +4226,10 @@ Mkketcindyjs(options):=( //17.11.18
if(flg==0,
if(indexof(tmp1_jj,"Calculation")>0,
tmp=replace(tmp1_jj,Dqq("Calculation"),Dqq("EditableText"));
+ tmp=Movetojsexe(tmp);
if(eqflg==1,tmp=replace(tmp,"=",eqrep)); //190604
- out=append(out,tmp);
+ if(figure>0,tmp=Resizetextsize(tmp,defaulteditsize,scale));
+ out=append(out,tmp);
flg=1;
);
);
@@ -4100,6 +4312,7 @@ Mkketcindyjs(options):=( //17.11.18
if(substring(tmp1,length(tmp1)-1,length(tmp1))==",", //190201from
out_(tmp-1)=substring(tmp1,0,length(tmp1)-1);
); //190201to
+ if(figure==0,
tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
jj=tmp_1;
tmp1=out_jj;
@@ -4110,7 +4323,7 @@ Mkketcindyjs(options):=( //17.11.18
if(tmp==":",
tmp2=substring(tmp1,#+1,length(tmp1)-1);
flg=1;
- );
+ );d
);
);
tmp=round(scale*parse(tmp2));
@@ -4130,6 +4343,21 @@ Mkketcindyjs(options):=( //17.11.18
);
tmp=round(scale*parse(tmp2));
out_jj=" height: "+text(tmp)+",";
+ );
+ if(figure>0,
+ tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
+ jj=tmp_1;
+ tmp=round(dpi*scale*(XMAX-XMIN+margin/10*2)*10/25.4);
+ out_jj=" width: "+text(tmp)+",";
+ tmp=select(1..(length(out)),indexof(out_#,"height:")>0);
+ jj=tmp_1;
+ tmp=round(dpi*scale*(YMAX-YMIN+margin/10*2)*10/25.4);
+ out_jj=" height: "+text(tmp)+",";
+ tmp=select(1..(length(out)),indexof(out_#,"transform:")>0);
+ jj=tmp_1;
+ tmp=" transform: [{visibleRect: ["+text(XMIN-margin/10)+","+text(YMAX+margin/10);
+ out_jj=tmp+","+text(XMAX+margin/10)+","+text(YMIN-margin/10)+"]}],";
+ );
if(length(color)>0,
tmp=select(1..(length(out)),indexof(out_#,"background: ")>0);
jj=tmp_1;
@@ -4146,9 +4374,71 @@ Mkketcindyjs(options):=( //17.11.18
);
out_jj=tmp1;
);
- forall(out,
- println(SCEOUTPUT,#);
- ); //190129to
+ if(length(axes)>0,
+ tmp=select(1..(length(out)),indexof(out_#,"axes:")>0);
+ if(length(tmp)>0,
+ jj=tmp_1;
+ tmp1=" axes: "+axes;
+ if(indexof(out_jj,",")>0,
+ tmp1=tmp1+",";
+ );
+ out_jj=tmp1;
+ );
+ );
+ forall(out,tmp1, //190910from
+ if(indexof(tmp1,"</body>")==0,
+ println(SCEOUTPUT,tmp1);
+ if(indexof(tmp1,"<body>")>0,
+ forall(JSBODY_1,
+ tmp2=replace(#,"_;","&emsp;");
+ tmp2=Removespace(tmp2);
+ tmp=indexof(tmp2,">");
+ tmp3=substring(tmp2,1,tmp-1);
+ if(indexof(tmp3,"p")>0,
+ tmp2=substring(tmp2,tmp,length(tmp2));
+ );
+ tmp3=Strsplit(tmp3,",");
+ forall(reverse(1..(length(tmp3))),nn,
+ tmp=tmp3_nn;
+ if(substring(tmp,0,1)=="f",
+ tmp="<font size="+Dqq(substring(tmp,1,length(tmp)))+">";
+ tmp2=tmp+tmp2+"</font>";
+ );
+ if(substring(tmp,0,1)=="p",
+ tmp2="<p>"+tmp2+"</p>";
+ );
+ );
+ tmp2=replace(tmp2,"''",Dq);
+ tmp2=" "+replace(tmp2,"`","'");
+ println(SCEOUTPUT,tmp2);
+ );
+ );
+ ,
+ forall(JSBODY_2,
+ tmp2=replace(#,"_;","&emsp;");
+ tmp2=Removespace(tmp2);
+ tmp=indexof(tmp2,">");
+ tmp3=substring(tmp2,1,tmp-1);
+ if(indexof(tmp3,"p")>0,
+ tmp2=substring(tmp2,tmp,length(tmp2));
+ );
+ tmp3=Strsplit(tmp3,",");
+ forall(reverse(1..(length(tmp3))),nn,
+ tmp=tmp3_nn;
+ if(substring(tmp,0,1)=="f",
+ tmp="<font size="+Dqq(substring(tmp,1,length(tmp)))+">";
+ tmp2=tmp+tmp2+"</font>";
+ );
+ if(substring(tmp,0,1)=="p",
+ tmp2="<p>"+tmp2+"</p>";
+ );
+ );
+ tmp2=replace(tmp2,"''",Dq);
+ tmp2=" "+replace(tmp2,"`","'");
+ println(SCEOUTPUT,tmp2);
+ );
+ );
+ ); //190910to
closefile(SCEOUTPUT);
setdirectory(Dirwork);
if(webflg=="Y",tmp="json",tmp="jsoff");
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutlogr.txt b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutlogr.txt
index ddfac03553..738591b8af 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutlogr.txt
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutlogr.txt
@@ -1,3 +1,7 @@
+// 20190821
+// CalcbyR changed ( pre->dig, 6->8)
+// 20190818
+// Readcsv changed (Head=y as default, old def removed)
// 20190424
// PlotdiscR changed ( "-" added to Listplot )
// Mxfun debugged (options)
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutr.cs b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutr.cs
index 7de07986f3..7e4a4e5ba8 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutr.cs
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketcindyliboutr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout[20190424] loaded");
+println("ketcindylibout[20190821] loaded");
//help:start();
@@ -679,7 +679,7 @@ MkprecommandR():=MkprecommandR(6,"PVOFG"); //180508(9lines)
MkprecommandR(Arg):=(
regional(out,tmp1);
if(isstring(Arg),
- MkprecommandR(6,Arg);
+ MkprecommandR(8,Arg); //190921
,
if(islist(Arg),
out=[];
@@ -693,14 +693,14 @@ MkprecommandR(Arg):=(
);
);
);
-MkprecommandR(prec,chstr):=(
+MkprecommandR(dig,chstr):=( //190921 pre->dig
regional(cmdL,Plist,tmp,tmp1,tmp2);
cmdL=[];
cmdL=concat(cmdL,["arccos=acos; arcsin=asin; arctan=atan",[]]); //181209
if(indexof(chstr,"P")>0,
Plist=[];
forall(remove(allpoints(),[SW,NE]),
- tmp=textformat(re(Lcrd(#)),prec);
+ tmp=textformat(re(Lcrd(#)),dig);
tmp=RSform(tmp);
tmp1=#.name;
tmp1=tmp1+"="+tmp+";Assignadd('"+tmp1+"',"+tmp1+")";
@@ -726,11 +726,11 @@ MkprecommandR(prec,chstr):=(
if(islist(tmp1),
tmp2="[";
forall(tmp1,
- tmp2=tmp2+textformat(#,prec)+",";
+ tmp2=tmp2+textformat(#,dig)+",";
);
tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
,
- tmp1=format(tmp1,prec);
+ tmp1=format(tmp1,dig);
);
);
tmp1=RSform(tmp1);
@@ -772,7 +772,7 @@ CalcbyR(name,Arg1,Arg2):=(
);
CalcbyR(name,path,cmd,optionorg):=(
//help:CalcbyR(name,cmd);
-//help:CalcbyR(options=["m/r","Wait=2","Out=y/n","Pre=PVFG"]);
+//help:CalcbyR(options=["m/r","Wait=2","Out=y/n","Dig=8","Pre=PVFG"]);
//help:CalcbyR(options2=["Pre=!G" ]);
regional(options,tmp,tmp1,tmp2,tmp3,realL,strL,eqL,
cat,dig,prestr,flg,wflg,file,nc,arg,cmdR,cmdlist,wfile,waiting);
@@ -781,7 +781,7 @@ CalcbyR(name,path,cmd,optionorg):=(
eqL=tmp_5;
realL=tmp_6;
strL=tmp_7;
- dig=5;
+ dig=8; //190921
tmp=cmd_(length(cmd)-1); //181130from
if(!isstring(tmp),tmp=text(tmp)); //190109
if(indexof(tmp,"=")+indexof(tmp,"::")>0,
@@ -866,7 +866,7 @@ CalcbyR(name,path,cmd,optionorg):=(
file=Cindyname();
);//180412to
cmdR=[];
- cmdR=MkprecommandR(6,prestr);
+ cmdR=MkprecommandR(dig,prestr); //190921
cmdR=concat(cmdR,cmd); //18.01.27to
cmdlist=[];
if(dig>5, //16.10.28from
@@ -1148,143 +1148,6 @@ Rfun(name,fun,argL,optionorg):=(
////%Rfun end////
////%Readcsv start////
-Readcsv(file):=Readcsv(Dirwork,file,[]);
-Readcsv(Arg1,Arg2):=(
- if(isstring(Arg2),
- Readcsv(Arg1,Arg2,[]);
- ,
- Readcsv(Dirwork,Arg1,Arg2);
- );
-);
-Readcsv(pathorg,file,optionorg):=(
-// help:Readcsv("ex.csv");
-// help:Readcsv(directory,"ex.csv");
-// help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
- regional(path,fname,fout,options,eqL,header,cmdL,sep,
- dt,nrow,tmp,tmp1,tmp2,csv,use,flat);
- options=optionorg;
- tmp=divoptions(options);
- eqL=tmp_5;
- header=1;
- sep="-999";
- csv="Y"; // 16.12.12
- use="R";
- flat="N";
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,0,tmp-1);
- tmp2=substring(#,tmp,length(#));
- tmp=Toupper(substring(tmp1,0,1)); //181111
- if(tmp=="H",
- tmp=Toupper(substring(tmp2,0,1));
- if(tmp=="F" % tmp=="N",
- header=0;
- options=remove(options,[#]);
- );
- );
- if(tmp=="S",
- sep=tmp2;
- options=remove(options,[#]);
- );
- if(tmp=="C",
- csv=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- if(tmp=="U",
- use=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- if(tmp=="F",
- flat=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- );
- if(flat=="Y",csv="N");
- sep=","+sep;
- tmp=indexof(file,".");
- if(tmp==0,
- fname=file+".csv";
- fout=file+"sep.csv";
- ,
- fname=file;
- tmp1=substring(file,0,tmp-1);
- tmp2=substring(file,tmp-1,length(file));
- fout=tmp1+"sep"+tmp2;
- );
- path=pathorg;
- if(!isexists(path,fname),
- println(path+" "+fname+" not found");
- ,
- path=replace(path,"\","/");
- if(use=="S",
- cmdL=[ // 16.12.20from
- "cd('"+path+"')",[],
- "Dt=mgetl('"+fname+"');",[],
- "cd('"+Dirwork+"')",[],
- "Dt2=[]",[],
- "for I=1:size(Dt,1),
- Tmp=Dt(I,:)+'"+sep+"';
- Dt2=[Dt2;Tmp];
- end",[],
- "mputl(Dt2,'"+fout+"')",[]
- ];
- CalcbyS("sep",cmdL,options);
- ,
- cmdL=[
- "setwd",[Dq+path+Dq],
- "tmp1=readLines",[Dq+fname+Dq,"warn=FALSE"],
- "fun=function(s) paste(s,"+Dq+sep+Dq+",sep="+Dq+Dq+")",[],
- "tmp2=sapply(tmp1,fun)",[],
- "writeLines",["tmp2",Dq+fout+Dq]
- ];
- CalcbyR("sep",cmdL,concat(options,["Cat=n"]));
- ); // 16.12.20until
- if(ErrFlag==1,
- println("Readcsv not completed");
- ,
- dt=load(fout);
- dt=tokenize(dt,sep);
- dt=dt_(1..(length(dt)-1));//16.12.20
- if(isstring(dt_1),// 17.02.10from
- if(indexof(dt_1,",")==0,csv="N");
- ,
- csv="N";
- );// 17.02.10until
- if(csv=="Y",
- dt=apply(dt,tokenize(#,","));
- ,
- dt=apply(dt,[#]);
- );
- forall(1..(length(dt)),nrow,
- tmp1=dt_nrow;
- tmp2=[];
- forall(tmp1,
- if(!isstring(#),
- tmp=#;
- ,
- if(substring(#,0,1)==Dq,
- tmp=parse(#);
- ,
- tmp=#;
- );
- );
- tmp2=append(tmp2,tmp);
- );
- dt_nrow=tmp2;
- );
- if(header==0,dt=dt_(2..(length(dt))));
- if(length(dt)==1,
- dt=dt_1
- ,
- if(length(dt_1)==1,
- dt=apply(dt,#_1);
- );
- );
- dt;
- );
- );
-);
-// New readcsv [181125]
Readcsv(file):=Readcsv(Dirwork,file);
Readcsv(Arg1,Arg2):=( //190301from
if(islist(Arg2),
@@ -1300,16 +1163,17 @@ Readcsv(path,file,options):=(
regional(dt,eqL,head,from,end,tmp);
tmp=Divoptions(options);
eqL=tmp_5;
- head="n"; from=1; //190125from
+ head="Y"; from=1; //190125from,190818
+ from=2;
forall(eqL,
tmp=Strsplit(#,"=");
if(Toupper(substring(tmp_1,0,1))=="H",
- head=substring(tmp_2,0,1);
+ head=Toupper(substring(tmp_2,0,1));//190818
);
);
- if(Toupper(head)=="Y",
- from=2;
- ); //190125to
+ if(head=="N",//190818from
+ from=1;
+ ); //190125,190818to
tmp=file;
if(indexof(tmp,".csv")==0,tmp=tmp+".csv"); //190301
dt=readfile2str(path,tmp);
@@ -1968,7 +1832,7 @@ Scatterplot(nm,file,optionorg,optionsreg):=(
,
tmp=file;
);
- parse("rc"+nm+"="+tmp+";"); //181013to //190415
+ parse("rc"+nm+"="+Textformat(tmp,5)+";"); //181013to //190415
Pointdata(name,parse("rc"+nm),options);
tmp=parse("rc"+nm);
dtx=apply(tmp,#_1);
diff --git a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketpiccurrent.r b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketpiccurrent.r
index be7bba6346..76998cc41d 100644
--- a/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketpiccurrent.r
+++ b/graphics/ketcindy/ketcindyfolder/scripts/ketlib/ketpiccurrent.r
@@ -16,10 +16,14 @@
#########################################
-ThisVersion<- "KeTpic for R v5_2_4(20190511)"
+ThisVersion<- "KeTpic for R v5_2_4(20190921)"
print(ThisVersion)
+# 20190921
+# Enclosing2 debugged/changed (epspara removed)
+# 20190627
+# Plotdata, Paramplot debugged (Exc)
# 20190511
# Implicitplot changed (Eps=> 10^(-6))
# 20190508
@@ -5411,10 +5415,14 @@ Paramplot<- function(...)
}
}
}
+ Tmp<- Nrow(P) #190627from
+ Tmp1<- Op(1,P)
+ if(Tmp1[1]==Inf){
+ P<- P[2:Tmp,]
+ } #190627to
Tmp<- Nrow(P)
Tmp1<- Op(Tmp,P)
- if(Tmp1[1]==Inf)
- {
+ if(Tmp1[1]==Inf){
P<- P[1:(Tmp-1),]
}
return(P)
@@ -5611,10 +5619,14 @@ Plotdata<- function(...)
}
}
}
+ Tmp<- Nrow(P) #190627from
+ Tmp1<- P[1,]
+ if(Tmp1[1]==Inf){
+ P<- P[2:Tmp,]
+ } #190627to
Tmp<- Nrow(P)
- Tmp1<-P[Tmp,]
- if(Tmp1[1]==Inf)
- {
+ Tmp1<- P[Tmp,]
+ if(Tmp1[1]==Inf){
P<- P[1:(Tmp-1),]
}
return(P)
@@ -13009,7 +13021,6 @@ Enclosing2<- function(...){
Nargs=length(varargin)
plist=varargin[[1]]
Eps0=10^(-5)
- epspara=1; #180707
Eps1=0.01
Eps2=0.1
Start=c()
@@ -13019,9 +13030,8 @@ Enclosing2<- function(...){
if(length(tmp)>1){
Start=tmp
}else{
- if(flg==0){epspara=tmp}
- if(flg==1){Eps1=tmp}
- if(flg==2){Eps2=tmp}
+ if(flg==0){Eps1=tmp}
+ if(flg==1){Eps2=tmp}
flg=flg+1
}
}
@@ -13105,19 +13115,8 @@ Enclosing2<- function(...){
t2=Length(Fdata)
ss=1 #18.02.02to
}else{
-# KL=Quicksort(KL,2); #180706from
-# for(j in Looprange(1,length(KL))){
-# tmp1=t1+epspara/50*Length(Fdata)#180713(2lines)
-# tmp2=Op(2,KL[[j]])
-# if((tmp2>tmp1)||((tmp2>t1)&&(Norm(Op(3,KL[[j]])-p1)>Eps1))){
-# break
-# } #180711,16
-# }
-# t2=Op(2,KL[[j]])
-# p2=Pointoncurve(t2,Fdata)#180713
-# ss=Op(3,KL[[j]])# 180706to
- tmp=c() #180711from
- for(j in Looprange(1,length(KL))){
+ tmp=c(Op(2,KL[[1]])) #180711from #190921
+ for(j in Looprange(2,length(KL))){
tmp=c(tmp,Op(2,KL[[j]]))
}
tmp1=order(tmp)
@@ -13125,7 +13124,7 @@ Enclosing2<- function(...){
KL=list()
for(j in tmp1){
tmp=tmp2[[j]]
- tmp3=t1+epspara/50*Length(Fdata)
+ tmp3=t1+Eps0
tmp4=Op(2,tmp)
if((tmp4>tmp3)||((tmp4>t1)&&(Norm(Op(1,tmp)-p1)>Eps1))){
KL=c(KL,list(tmp))
diff --git a/graphics/ketcindy/ketcindyfolder/work/samples/s10maxima/s1010fourier.cdy b/graphics/ketcindy/ketcindyfolder/work/samples/s10maxima/s1010fourier.cdy
index 124b792569..9baa0d5039 100644
--- a/graphics/ketcindy/ketcindyfolder/work/samples/s10maxima/s1010fourier.cdy
+++ b/graphics/ketcindy/ketcindyfolder/work/samples/s10maxima/s1010fourier.cdy
Binary files differ
diff --git a/graphics/ketcindy/ketcindyfolder/work/template4ketcindyjs.cdy b/graphics/ketcindy/ketcindyfolder/work/template4ketcindyjs.cdy
index eb7ee2d1c4..c11df4d48a 100644
--- a/graphics/ketcindy/ketcindyfolder/work/template4ketcindyjs.cdy
+++ b/graphics/ketcindy/ketcindyfolder/work/template4ketcindyjs.cdy
Binary files differ