texlive[49502] Master/texmf-dist: ketcindy (25dec18)
commits+karl at tug.org
commits+karl at tug.org
Tue Dec 25 22:49:04 CET 2018
Revision: 49502
http://tug.org/svn/texlive?view=revision&revision=49502
Author: karl
Date: 2018-12-25 22:49:04 +0100 (Tue, 25 Dec 2018)
Log Message:
-----------
ketcindy (25dec18)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/support/ketcindy/README
trunk/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
trunk/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/howtouseslideJ.txt
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java
trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
trunk/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
trunk/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
trunk/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy
Added Paths:
-----------
trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/
trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex
trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/
Added: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/README
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/README 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/README 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,7 +1,7 @@
KeTCindy
========
-Version: $Version$
+Version: 20181225.0
KeTCindy combines a plugin to Cinderella with free mathematical software
(R, Maxima, ...) to produce high-quality LaTeX graphics.
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/howtouseslideJ.txt
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/howtouseslideJ.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/howtouseslideJ.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,4 +1,4 @@
-ketslideによるプレゼンテーション 2018.07.29
+ketslideによるプレゼンテーション 2018.12.25
0.作成の流れ
@@ -17,7 +17,7 @@
1.txtファイルの編集
- 1)すべての行の最後は必ず // をつける.
+ 1)すべての行の最後につける.
注)urlの指定で//を用いるとき,||||とすると//に変換される.
2)各ブロックの引数の区切りは ::
3)コマンド
@@ -31,7 +31,7 @@
1行目の//を外す.
次の行から,::区切りで書き加え,最後に//をおく.
注)タイトル画面が不要の場合は,
- タイトル(またはtitle):://
+ タイトル(またはtitle)::(//をつけてもよい)
・main::段落タイトル名//
注)ページ番号を表示するときは,直後に\slidepage[1]//を入れる.
・new(::行下げ)::タイトル((::位置)::読み込みファイル)//
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,43 +1,29 @@
-PK \xC7QdM & private/de.cinderella/construction.cdy\x9D\x9C\xEBr۸\x80\xFF\xFB)8\xFA\xB3t+Ӽ\xE8\xEA\x9D\xED\x8Cc+\x976N<\xB1\xB7n\xC0$$\xA1\xA6HI\xD9qw\xF6\x81\xFA}\xB2\xA4$\x8B<瀠;#\x83\xDF@ \xFCx\x999?\xBFI\xF4r\xE6;s\xEBa+\xE2\xC8\xF2\xE6\xAEgپ\xEBM\xCF\xDDɹ\xE7[\xDE\xF4\xC2uOO\xCEϯr\xCEJ
Yira}I\x9F\xAC\xD1В\xD8\xCC\xF2\xDC
o$\xBF\xAC\xCBI\xBDO\xF3
\xABd\x8F\xACLӂ\x97\xC56\x95\x85\xD7_\xAD/_\xEF\xAD\xC5\xF5\xA7{\xEB\xEC\xEC̺\xB9\xBC\xFA\xF8\xE9\xCB\xC2\xFA\xB0\xF8\xB2\xF8vy\xBF\xB8\xB6\xAE\xBE^/N>\xF0t\xC3\xCB\xFC\xE5\xE2\xA7\xC56\x8CE\xC4Y\xF2\xE3\x89=\xB8\xFBepz\xF1\xD3\xFB\x9C\xF3\xDBT$\xA5\xFDϑ\xE3\xFEY\xFC\xC9u\xDC\xE1Y\xFD\xF2\xACz\xED9\x93\xDD\xEB\x9D\xFEx\xA2\xC2
ك\xCB,\xE3,gI\xC8m8\x96\x9C'\xBF\xD5_\xCF
\x96\xF9\x96\x97,.\xF8q at Y\xE6\xE2a[r{\xA6q\x9A\x86\xA09\xEE\xE4<\x92\x8Cl\xDE\xD5b\xF1\x96\x9Bp+y\xA2\x89
dq\xB6f\xA1 \xFE\x9D\xE7\xA1(8\x8F\xF9\x86'\xA5d\xAB\xD3$\xE8(g\xCFe\xCEB\xDE\xC1UL̓U\xB9V\xAD\xBBT\xEBW<\x8ALQ:&\xEDi\xE4<\x89x\xDE\xD1+Q<\x89B<Ī\xF7jF\xA9\xF9\xF7\xD2Y\xA6I\xB9d\xBFH\xF8\x8E%\xC5
\xCFŒ\x88\xC8b\x96\xA8J\xA9\xDEe"ID\xB2\xEA\xE8^\xCC
\xE4\x98Eݝ+\xC4Tk\x9EO\x87\xA2
\xD28\xEA\x9A&\x89\x89\x92\xC5",:\xC8l\xDF\xE8\x98l3S\xD7\xDCC\x9A\xD7\xF3\xA09\x85,\x97`\xC26\xAA:]]\x8Eذ\x95\xE4l\xE4
-afh\x9E\x96\xAC\xA9\xBAr\xDC\xE6\xC9|Vp\x9Bv0
\x86^}\xBD\x951\\xC7z\xA7J1_]\x8Aq+sL\xEAW\x95_dL?\xBF\xEC(\xBF\xC7\xDB~\xA1\xB0\xB6_(\xF8\x82m\xBF at B\xE7H\xE3~\x81
\xEE\x82k\xF8\x85`\x9A~\x81\xE2\xA1~A\xEC\xF0
\x8Ch\xFA9\x8E\xF8R\x88_\xF0ε\xFD\x82S\xC0/8\x86\xF99\x83\xB6_\xF7
\xB6\xFDB\xD4\xD5\xF4\x8Bj\xFAE\x8F"~\xD9\xF8岥\xF7\xE0\x94c\xBB\xB8Gv\xB9\xEC)\x97K\xBD[\xF0\xC3m\xB5T\xDB,\xC4\xB8\xB6W \xA0\xD3
-\x80q\xAB
\x97
-\x8E5\x9C\x82#M\xA5 1
-`P\xA1\xC0\xD6:|\x9A:\x81\x87\x9B \x91 ڱ\xB6KP\xA8\xA50\x93\xC0ηE \xDC#\x90kk\xAF\xA9i
Ӕ\x88\x96D
ri\xAA\x90wd\x86\xE2;c\xEA\x8F\xE6\xEE|:\x99L'sW\xEE:\x93`2\xF1\xE6өL\xA6\xE3\x997:\xF2˻\x9E~y\xA7\xF7
~\xB8\xED\x82j\xFB\x85\xC0\x80_ \xD7\xF6
t~0\xEE\x80\xE1~\xC1\xB1\x86_p\xA4\xE9\xC0 ~
\xEA\xD8Z\x87_@@\xD3/\xF00\xE2 !~A;\xD6\xF6
-\xBF\xA0\xE6\xD8\xF9\xB6_ \x81\xFBrm\xBF\xE055\xFD\xA2c\x9A~ђ\x88_ޙ\xFA\x85)\xBF\xDC\xF1\x95\xBA.T\xC22TƑ\xB0\xB6(\xBD(v|\x9E\xA7\xCF\xF7/\xB7]բ\xEBgG\xA1E\x82}\xB8m\x82j[\x84\xC0\x80E t0n\x80\xE1\xC1\xB1\x86Ep\xA4i\xC0
j\xD8Z\x87E@@\xD3"\xE00"\xB4Ͷ P\xA50A\xC0~\x89\x84\xEF\xDBĉ\xF4\x89\xE71\xCB\xE8S\x8BX\xB1V\x97\x84$\xD4\xCB'&\xACS\xA4\xB1\x88\xE8&\xC2\xD1t
-\xAD \x93\x89,B&\x97w\xA9Z\xAB\x93W?;E\x99\xF32\?
-\xEFt\x8BV \xF6\xE0J\x89\xA7Jj\xBE&\x9FeCJEC\xF9)3\xD7\xDEl>\xF2\xE6#\x84\xBDcrݑ\xF8\xEE4\x98z\x93\xB9;>Jp\xAEz&8W\xFA?\xDCVA\xB5\xD5D`@M\x80k\xAB :5W\xC0p5\xE1XCM8\xD2T`5Ul\xADCM \xA0\xA9&xIp \x84\xF8
\xEDX\xDB_(\xFC\x85R\x98\xBF`\xE7\xDB $\xF0rm\xDD\xE055
\xD3t\x92\x96D\x9C+C \xED\xEA\x8DWd\xF6\xE0\xFE\xD7\xDB\xC5 =\xF2\xED\xF2\xFE\xD3ׁ
-
\x8F&\xF3\xB1?\xAE>U\x92\xF34\xF3&\x93\x99\xBF8\xEE\xE5л\xCA]ꅭ*\xAAKZ\xDA\xF1\xDAک\xFBv\xF0\xCEQtO}
\xD1H\xDB?\xB2\xED
-<\x84\xB2m\xA1\x90\xCEGh \xEE$ŽD\xA3
-7\xD1X\xD3O(\x878
-\xE5PO\xE1-w\xB8
-
-j\xFA
-Gg\xD13\xBFq,\xD1\x8D)b?\xF1\xF2ҚVg\xEEl<\xF6\xA6\xB3Y@\xCA\xE2\xB1
\x8B\xF2\xC5`r+\xFD\x81\xE4\x87
\xBC\x8DH\x9EET-\xDDBP\xD5n˲R\x88~JjL\xE6A\xB9\xC8\xD4½a\x8F\\xBA6\xE6\xF2Z\xD77P\xA6\xAB\x95霫$y\xAF*֣\xFB;\xC6L\xB72ѻIbw\x8EW\xB8\xF2ڳ\xEB4|\x94\xABJ\xA6T\xAE3
z\xA3@\xEDB)\xDB&\xDB8>\xC81\x80
e\xD1\xF4\xB8\x8F\xD2\xF9\x91`0AR(fH\x8AE ȃ\x90\xEA\x92$\x8C\xA0- YZ\x93
<IpP\x94$L AR\x95H\xE3\xAE\x84QP\x96CؒX;]z
-h*L\xD9aL|\e\x83\x88:\x93\xA8\x95&d\xDB\xD6\xFC\xBB\xE0\xCF2^\xE01<6'\xDE
\xAEN\xA2\xFB;w\xBE\xABm\xDEc\xF6\xA4\x86\xD1'\x8ER\xFE\xDCѵ@\xF1\xEE\xB5\xEA\xA2u\xF8&\x98\xB2\xEC-)\xE6>L\x9Bd\x9AfR,\x9AhR0\x9EjBM6!֙n\xC2M\xC2 aM\xCAI\xC00\xE9$@$\xED\x84$\x95xB\x92N=\x91\xF6M\x92O\x86\xA4\x9FD%\xA0Ċ\xD89u\xAA\x8D\x93Pڕ\x86\xE2\x83C%\xA2\xC4P\xE2\xA9(Q5\x9E\x8CB\xB8-\xD6[y\xF1/\xA5\xAAx\xDE\xC8G\xF1V\x88\x8C\x94\xE8\xFFΫ\xAA\x85\xF7]0\x9A\x95R\xA3\x88\xE5\xA58Kf\xA6;\xBCV+\xDEÖZ\xE7xv\xEAbj}\x9BYM\xC4\xDAë}\xB4\xDA˪fR\xED\xEF\xD4>J\xEDcTS\xA1\xFB\xD4X\xA7=l\xFA6\x99\x9A\xB8\xD4\\xA5\xDA\xECt\xAE\xCDM\xDA[\xA4\xBD<\xDAG\xA3},\xDA\xF9\x9E\xFE\x91%bSm)6-\xDAG\xA2:\x87^\xCA\xEA\xBBX\\xA1=
\xDAO\xA0G\xFED{\xD7ԧ?\xF6P}z\xC1\xF8S\x95\xBDA\xA0\x870\x9DA)S(\xC9b%aT\xA2\x8DY\xC1\xBA4\x8A\x84\xD0
E`Z\xA4
LJ\x81P\xA5I\xB8!I\x99b\xED\xD8 \x83:\xC5 §Ԋ\xD8 u\xACM\x85\x8A\x84v\x95
B\xA9\xD4P\xA2N\xA5\xAAF\xA5\x8A\xC0m\xAB\x8A\xA5]/D\xFBn\xCD\xE38crm\x94\xA7q\x87'\x96\xA5vQ
Uj\x9F\xD5\xEBV\xF9C~\xC9(!\x97\xD0\xF7ti\xEA\xA6\xE1o\x83"\xBF
-v\xA1Ϲ(y\x99\xCA"\xDB?
\xEE~\xFAv'8\xBB
\xC4)\xE1
-\xA7\xEB5Vl\x8DY\x9C\x9C3D\xE3Ky|\x8Fa\xAC\x8BM\x95O\xA7x"
\xB7i\xDD7mӺ۴\x83&\xC2=\xB6i)O\x84\x8D\xB6i!ՙ\xF7ئ\x85\xAC&6ܦ%8$6ݦ\x85 \x9D\xBFi\x9BF!\x89\xB0\xF16-\xB1
-\xF6\x89\xB0n\xA4\x8C\xE1\xBE۴\xF8\xB8\xC0\x8F\xD95c\x88\xE7\xC1=vi!
\xF3\xE0B=oY4\x92\xE0
\xB4D\xCFw\xBDSuw\xB0hl\xBE?\x8B\xA3d|\xBC?\x8B\xF6\xAEi\xCE`L\xA9\xD9D\x8B\x98l#\xAE\xCF> L\xD4l+b\xDD
-\xED\xB3\x99 a\x9DDM\xB7Ө\xF1\x86$5"}ۖ
\xC3Tj\xBE\xA9@\xAC\x88\x9DL}퀙۴\xF7\xBE>:\x94O\xFBl,5F5\xD8Z\xA8\x95\xBA\xDDlX\xFE\xD2k\x9F\xED\xE2
vj\xBD+^\x94]4.\xD7
[
8K\xEB\xF5x\x93\x81\xE8bӰ#\x8Fإ
!\x86
\xBDͰ#\xC3jX\x8AE
-K\xC1\xB8a!\x8Db\x9D\x86\x85!\xC3BXcX\x86\x86%@İ\x90\xA4
IڰH\xFB&\x86\x85a\x88a\x882,\xB1"v\x86
-t\xA0\xB1`ah\x97`\xF1\xC1\xA1vn\x89\xA1\xC4
-KT\x8D\xC2а\xCBXdj\xB7\xF9+Yx3\x84^\x89\xD8\xE9\xF5\xBDl\xA0\x8BE\xE5J\x8D"&W\x9C%\xE5::\x96+\xDA\xC1V\xF2
-Ԋ\xFE?+\xE7\xE7\xF2k\xB1\xB3\x87\xF5)Y\xA6y\xBD1~\xB2W\x8A\xF5\xFB\x89e\x89$ۖ\xD5+˒M-j\xCD\xB6}*+V\x85,\x8An\xD2Hi\x85;\xA1\xDA\xD0ɹ\\xAB\x8Ez\x92\xA0pn\xD2'9W\xF4N\x9EA\xCC/\xA3Ȑ\xBF\xD9ƥPx\xF3 \x8BWi.\xCA\xF5\xA6p\xFE\x9A\x8AĬ\xAEk\xBE \xBFJ7+\x8A\xCE\xF6Y\xA8\x86\xA9p~N\xA2\xD4\xFE \x9E\xF8G\xF5 \xA7i\xC07ye\xF9\x81\xFF\xE3䏓\xBEfO"ͭ\xDFɓ\xC8ӤzvkW]\xFDGN\x91\xFA\x90tS\xD8\xD5ͱ\xFEn\xB2\xD9\xFB\xF43\xE2\xB1\xED
8\xAE\xFE&-\xD3\_\xB1ף\xE2G\x9E'<\xAE\xD6|ھڼ;\x94\xBC\x97u\xCA\xF7\xA1^\xA3\xF0.\xE3<R
-\x9D\xAAuz\xA7\xC6\xC1\xCAҼr\x95
\xD7v$ݜ/
G\x8E\xC7V^@_2\xB9:\x9C\xEA\x97\xD67\xEE\xAFe=\xF9\xB9X\xADKyY\x84\x8FU(\
\xB7i\xB6\xCDnd\xD5j\xBA
+݈(\x8A\xB9\xAEVui\xE8+\x93\xD6V\xBF\xBFʙ\xFF~Y\xEA_\x9BG6\xEA\x92(\xE4\xDD:,
\x9E\xB0\x87\xE6s hH\x94o\x9C\xF49\xA9T\xFFs\x9C\x8Bpm\xFDM4O
\xD9&\xD3F\x85i\xF6R
-\x9D\x8C\xFC\xDF}\xD7Y\xFD*\xC8\xF2\xB4\x94=\xE5
-Cvѻ\xBBAa\xA6\x9B\x8DR\x8B\xCD\xF05KV|3u\xEF~-p\xB6I,6BuT]\xAC\xD3g\x91\xB0,\x8By\xD9ٜ\xD41\x8BXɜ\xF5vÒ\xA3\x87+\xF4\xB4\\xE5\xBB\x95\x9Be,\xEF\xD9+^\xEE
\xFA\xD2\xF7X\xADߗz\xF0\x9D'\x9E\xF5C1_\xB1\xF0\xA5\xAB<\xDD&ѕJolo2z\xD3\xC9Л7\xAF\xFCw\xB1k\xA4J\xE3?ʕ\xAB\xD5U\xFEX}2Y}KL\xA9\xC0:\xDC\xCAnSe\xC9\xFA\xD5\xCA\xD53$\xC7ϵ
^;\xA14\xA7\\xF4\xB5\xA7\x90\xA8V\xF6
- \xD5\xE7\xE1p\xA6\x8DGZ \xAC\x96\x86â˜7 _\xE4]6\xDF\xF72\xAC9\xE7\xF2\xE6+\x87W\xD6\xC9
-\xF5\x9B\x84ã2\xDF,\xC6\xD5[\x81.\x9A%u\x8A\xF4Z\xD2է*bW;\xCEV\x84
\xE3m\x9CJ\xA6~A
-\xA2z\xB2\xA8\x9AU\xDB\xD5\xF6
\xDA7K\x80\xCByr\xCD3\xF5\x8E\xA1"\xF7\xE6\xA8\xBC\xE3\xAC\xE5;\xBC\xB0\x94\x9D\xDD\xC6,\xEFd\xE5O\xAF\xE8\xE1B\x81\xE7\xFE]\x8A]Ͷ\xAE\xC2"\xA9
\xD57(Ϡ\xA8\xD3u\xFCd\xF9~\xF5W
q?\x86\x93\xA9㎃\xD9|:\x99\x8D\x83\x89;\xC6\xE7\xBF+o++\x918jA\x81O\xCC\xA2z\xE7\xF3\xE3\x90\xDBT\x91\xBD\xBE/\xCB\xCB_ԛ{\xE6O\xA5\xB9\xBA\xC2\xED`\xEE
\x8A\xEFԙ\xD8\xE0<ǿVM\xFFjW]m\x95\xFEîzs(\xBD\x91i\xABa~=#9?͒;9\xFB\x92?TB\x9CD\xAF\x99\xC6\xFFPK\x8DE\xC0b
- .Q PK \xC7QdM % private/de.cinderella/certificate.bin\x8Bvr0NNJ6\xB64M\xE3 PK\xAD\x93Cg
PK \xC7QdM / private/de.cinderella/scripts/Draw/0/figures.csm\x91AK\xC30\x86\xEF\xFD#\xA7
-\xDD*"
D\xF1\xA2\xB7
-<t=\xB4M\xB6\x85\xB5Mi\x83n\x8E\x81kQ\x9C8\x8A(\xA20D\x84\xE1A\x84\xC9~L\xEC\xC4\xD3\xFE\x82I\xA50\xD0\xC3\xC9\xF3\xBEy\xF3}\xC9f\xC4#
\xE6WE\xD3\xCAAx\x8FM\xB8A\xB5մ5\x84|\xD3n\x9Au
u\xE0\x9B\x9500\xFE*:\xDA%>\xAA\xB9-\xA3\xE3bD\xCC\xE5.P\xE7\xA1\xE9\xD7dX\xD2&f\xA9%\x8D9\xB9Ϗ[
\x9DL/\xDF妘ϕ1c\x849\x98G_oO\xDF7G\xB3\xF1)\x8F^x<dz2\xE6\xBD+\xDE{\xB0\x92\xBAbqz\xC2\xE3\xD7L\xBC\x9E\x8D\xCFdRI$ɉ\xFE7(\xE2\x96P\xCAEm,G\x8CDCn\xB4}
@ \x91R\xC1-\x9B\xBAT\xB7͠\x8E\xABV\xADjQ\x89yRޤ
\xC9>\x86 L\xDDY\xFBPW@\xD8Y,t;%Q<~\xE0\xD10\xEDb\x92.\x8Ey\xFC,\x9E#\xF3,\x88J\xCEI0eM\xFB\xC9\xE8n.I&\xF7\xA3.P
U\xEBԡ\xC1\xAA^T\x8BjA-\xBF\xEF\xBAC<DB\xBF\x9E\xFE\xEDPK\xEE\xD3ĕ] \xE8 PK \xC7QdM . private/de.cinderella/scripts/Init/0/KETlib.cs+-N\xD5P\xF2N-q\xCE\xCCK\xA9
\xC8)M\xCF\xCCSҴ\xE6r\xC9,JN\xA9\xB4\xCD\xC9OLI\xC9,JM.\xC9/\xAA\xB4\xE6*N-\x81\xF34
+PK &1\x99M & private/de.cinderella/construction.cdy\x9D\x9C\xEBr\xE3\xB6\x80\xFF\xFB)8\xFA\xBA\x95i^tu&\x9D\xF1\xDA\xDEK\xBB\xDE\xF5\xAC\x9D\xA6\x99\xA6?`\x92PS$\x87\xA4\xECu3y\xA0\xBEF\x9F\xAC )\xC9\xCF9 \xA9\xECz\x87\xBF\x80 \xF8\xF16s~~%\x92\xE8\xF5\xCCw\xE6\xD6\xE3Fđ\xE5\xCD]ϲ}כ\x9E\xBB\x93sϷ\xBC\xE9\x85랞\x9C\x9F_圕<\xB2\xD2\xE4º\xE6\xA1叇\x96\xE4f\xD6\xE4_x\x81uy+\xA9\xF7i~a\x95쉕iZ\xF0\xB2ؤ\xB2\xF0\xFA\xAB\xF5\xE5\xEB\x83us\xFD\xE9\xC1:;;\xB3n/\xAF>~\xFArc}\xB8\xF9r\xF3\xED\xF2\xE1\xE6ں\xFAz}s\xF2\x81\xA7k^\xE6\xAF?\xDDl\xC2XD\x9C%?\x9E\xFB_\xA7?\xBD\xCF9\xBFKER\xDA\xFF
9\xEE\x9Fş\\xC7
\x9EՇgձ\xE7L\xB6\xC7\xFF:\xFD\xF1D\x859\xB2\x97Y\xC6YΒ\x90\xDB\xFEp,9O~\xA9?\x9E;,\xF3
+.X\\xF0À\xB2\xCC\xC5\xE3\xA6\xE4\xF6 L\xE34
\xFE\xC0p\xDE\xC9y$ټk\xC4
\xE3
+\xEF\xC2-\xE5\x85&f\x90\xC5يI\x84&\xF8w\x9E\x87\xA2\xE0<\xE6k\x9E\x94\x92\xAD.\x93\xA0\xA3\x9C\xBD\x949
y
W11O\x96\xE5J\xB5\xEER\xADW\\xF1$2E\x99\x98H\xAC\x8D\x97\x91\xF3$\xE2yK\xAFD\xF1,
+\xF1\xABޫ\xA5\xE4\xDFKg\x91&傭E\xFC*\xE1{\x96\xF7<
""\x8BY\xA2*\xA5z\x97\x89$ɲ\xA5{1{\x94c\xB5w\xAE\xFFQ\xADy>9
\x8AzL\xE3\xA8m\x9A$&J\x8B\xB0h!\xB3]\xA3c\xB2\xCDL\xDDs\x8Fi^σ\xE1\xB2\\x82 [\xAB\xEALu9b͖\xDD g-W\xEB\x86\xE6i\xC9J\x91\xAA;\xC7\xD5/泚\x80\xBB\xB4\xB0\x83a0\xF4\xEA\xFB}\xA8\x8C\xE1:\xFE\xD0;U\x8A\xF9rӦ\xB72Ǥ>\xAA\xFC"c\xFA\xF9e@\xF9\x858\xDF\xF4
\x855\xFDBq\xC0/l\xFA&\xBF@\xF7
\xE4p\xBF\x9C\xE6\x82\xD1\xFD!\xC4/B\xFD\x824\xD8\xE2\xA1\xFB9\x8F\xF8R\x88_\xF0\xCE5\xFD\x82S\xC0/8\x86\xF9\xB9\x82\xA6_\xF7
6\xFDBԥ\xFB\xC5\xE9~1\xA3\x88_\xB6
\xFCr\xD9Ћ\xBBwʡ]\xDC\xBB\\xF6\x94˥\xD9-\xF8\xE9\xA6Z\xAAib\\xD3+ 0i\xC0\xB8U \x86K\xC74\xA7\xE0\x88\xAE\xC0 F
*\xD8Z\x8BO@\x80\xAEx\xB1 \x80\x99\xA0
k\xBA\x85\x80JP
+3 \xEC|S$\x90\xC0=\xB9\xA6F\xF0\x9At\x8B\x98]"Fq\xC8eW\x85\xBC#3\xDF\xFBS4w\xE7\xD3\xC9d:\x99\xFB\xDBrי\x93\x897\x9FN\xFD`2
ϼс_\xDE\xF5\xF4\xCB;\xB3_\xF0\xD3M\xBFT\xD3/\xFC\xB8\xA6_ `\xF2
\x80q\xBF
\xF7
\x8Ei~\xC1\xDD/\x80A\xFC\xD4/\xB0\xB5\xBF\x80 \xDD/\xF04\xE2 !~A;\xD6\xF4
+\xBF\xA0\xE6\xD8\xF9\xA6_ \x81\xFBrM\xBF\xE05\xE9~11\xBA_\x8C$\xE2\x97w]\xFD_\xEE\xF9R\xDD*a*\xE3\xC8
+XS\x81Y[>\xCFӗ\x87ۮj\xD1u\x87\xB3\x83\x93\xD0"\xC1\x80>ݴA5-B`\xC0"\x80kZ &\x8B \xB7\xC0p\x8B\xE0\x98f
\xD1-\xC4"\x80A-[k\xB1\xD0-N#\x82@\xDBl
+\x85\x80 P
+\xEC\x97H\xF8\xAEM\x9CH\x9Fy
\xB3\x8C\xBE\xB4\x88+uKHB
>3\xB9`\x9D"\x8DED7\xB9\x8E\xA1k\xC08hM\x98LL`2\xB9\xBC\xD3H\xD5Z]\xBC\xFA\xDE)ʜ\x97\xE1\xEA\xFBAx\xAB[\x8CJ\xB0WJ<UR\xF35\xF9,R*\xCAOH\xC1(\x98\xB9\xFE(\xF0f\xF3\x917\xF9#\xEC\x93뎼\xC0w\xA7\xC1ԛ\xCC\xDD\xF1A\x82s\xD53\xC1\xB92'8\xF8馚\xAA\xA9&j\SM 0\xA9 \xC0\xB8\x9A \x86\xAB \xC745ሮ&\xC0 j
\xAA&\xD8Z\x8B\x9A@\x80\xAE&xIp \x84\xF8
\xEDX\xD3_(\xFC\x85R\x98\xBF`\xE7\x9B $\xF0rM\xDD\xE05\xE9 \x8E\x89ѝd$\x91窣\x84\xB6\xF5\xC6\xCBkV2{\xF0\xF0\xEB\xDD\xCD =\xF3\xED\xF2\xE1\xD3ׁ
+
\x8F&\xF3\xB1?\xAE~\xAA$\xE7i\xE6M&3\xFF\xE6̛V\xDEz\x90C\xEF*w\xA9[UT\x974\xB4\xE35\xB5S\xF7m \xE8\x9E\xFA>\xA2\x91\xA6
d\xD3Axe\x9B.B!\x93\x8F\xD0 \xDCI(\x8A{\x89F57ј\xEE'\x94C
\x85r\xA8\xA7\xF0\x96[\\x85\xE9\xBE\xC2\xC4Y\xF4\xCC/D
W\xF3Ns
+\xD9ͼ\xBC\xB7\xA6՟\x99;\x8F\xBD\xE9lЁ2\x87x\xAAFCĢ|\xED0\xBB\x95\xFF@\xF6C\x8F\xDEZ$/"\xAAւi%\xA8j7eY9\xC4<'5&\xA1\dj\xE5'.esy\xB3\x9B(\xD3\xE5\xB2뤫$\xF9\xA0*6\xA3\xBBG\xC6̴4\xD1\xC7Ib\x8F\x8E7\xB8ڳ\xEB4|\x92\xCBJ\xE6T\xAE3
z\xA3 at mC)\xDD&\x9B8\xDE\xDB1\x80
e\xD1~\xDCE\x99I0\x98!)S$Ţ\x8E\x840&IH\xB5YFК\x84,\xEDI\x82\xA2$8hJ\xAA\x84 \xE9J\xA4\xF1\xB2\x84QЖC\xE8\x92XЗ\xEC*L\xD9bL|\e\x83\x88:\x93\xA8\x95&d\x9B\xD6\xFC\xBB\xE0/2^\xE0)<4'\xDE
\xAEN\xA2\xFB[w\xBE\xCBM\xDEc\xF6\xA4\x86\xD1'\x8ER\xFE\xDCҵ@\xF1\xEE5\xEA\xA2u\xF8f\x98\xB2\xEC\x98
sf\xCC2 \xCD3)\xCD4)\xCF5!\x8Df\x9Bk\xCD7a\x88!!\xE7$`\x98u \x92wB\x92\xCA<!I\xE7\x9EH\xFB]\xB2O\x86\xE4\x9FDe\xA0Ċ@rPHv\xCEBah[
\x8A\x8F\x95\x89c\x89\xE7\xA2D\xD5x6
+\xE1\xA6Y\xEF\xE4ݿ\x90\xAE⹖\x90\xE2\xAD))\xD1\xFF\xADXU
\xEF\xDB`4-\xA5FKLq\x96LM\xB7x\xEDV\xBC\x87
+\xB7\xCE\xF1\xF4\xD4\xC5\xDCz\x9CZ\xBB\x98\xB5\x87X\xFBx\xB5\x97V\xBBY\xB5\xBFT\xFB8\xB5\x8FR\xBB\xB5\xB3P;\xFB\xB4\x87N\x8F\xB3i\x99vwig\x95
o\xD2\xDE"\xED\xE5\xD1>\xEDc\xD1\xD6\xF5O,\xEBjSQ\xB7h\x89\x9A
z)\xABocq\x85\xF60h?\x81
\xF8흮O\xEC\xA1\xFA\xF4\x82\xF0\xA7*;B\xA0\xFB0\x93A)S(\xC9b%aT\xA2\x8DY\xC1\xDA4\x8A\x84\xD0
E`Z\xA4
LJ\x81P\xA5I\xB8!I\x99b\xEDw\xB0)u\x8AA\x84O\xA9\x85\x8A\x90]\x8D\x8A\x84\xB6(\x95
©\xD4X\xA2R\xA5\xAAF\xAD\x8A\xC0M\xAD\x8A\x85]\xAFD\xFB~\xC5\xE38crq\x94\xA7q\x87'\x96\xA5\xF6Q
Uj\x9F\xD5\xF1#\xAB"\xFF\xCA(!\xD7\xD0\xF7ta\x8F\xEAgL\xC3\xDFE(~lC_rQ\xF22\x95E\xB6:\xDC~\xF7\xED^~s\xF6\x88K\xC2
N
+\xD6["\xAC\xEE\xD8\xD389g\x88\xC7 \x96\xF9\xDFg\xC2Xu\x97O\xA7x&
7jݣ6j\xDD\xB5\x83f\xC2=6j)τ;m\xD4B\xAA5\xEE\xB1Q
YC&\xDCq\xA3\x96\xE0\x90L\xB8\xEBF-\xE9L\xF8\xA8\x8DZ\x85d7j\x89U\x80d\xC2Go\xD4\xC2ȶLؼQ\xDBe
\xF1D\xB8\xC7>-da"\\xA8W.
-
\xEE\xB1EK\xF4|+\xD0{Uw
\x8Bf\xC1\xDDwhq\x94̂wh\xD1\xDE\xE9\xE6
Ɣ:\x91]\x84\xE0\xB8m\x84\xA0\xCB>\xE1\xFA쳓@\xC1\x84@\xBB\xED%@\xAC]\xA1}v l\x92h\xD7\xFD\xC44\xDAyG\x92\x91
\xB7\xA7 \xC30\x95v\xDFU V&\xD3\xE3\xF7`h\xABN\xCD;
\x9D\x86\x92j\x9F\xADSJݬ\xD7,\xD5\xC5\xDAg\x81\xB8\x86\xADZ\xAFŒe\x8D˵\xC7
\xCE\xD2z=\xDCe \xBA\xA8v\xE4۴#İ\xA3\xE3
;\xEAbXB
+K\xB1\xA8a)7,\xA4Q\xC3B\xACհ0\xC4`X
K\xC0а\x88\x92\x94a!Ii\xBF\x8BaabX\xA2
K\xACİ\x90\xEClX\xDAfX|t\xA8\xBD[b,q\xC5U㊅0T\xEC"\x99\xDA\xC2\xD5+
o\x86\xF0+q[\xBF\xBE\x97
+\xB4\xB1\xA8]\xA9Q\xC4슳\xA4]G\x87vE;\xD8\xC8^\x81[\xD1\xFF\xD7\xCA\xF9\xB9\xFC{\xB3Շ\xF5)Y\xA4y\xBD5~\xB2s\x8A\xF5\xFB\x89e\x89$۔Ցeɦnj\xCF\xB6}*+V\x85,\x8An\xD3Hy\x85;\xA1\xDA\xD1ɹ\\xAB\x8Ez\x9B\xA0pn\xD3g9W\x83.轼\x82\x98_FQG\xFEv\x97B\xE1\xFAI/\xD3\\x94\xABu\xE1\xFC5I\xB7\xBA\xAE\xF9B$\xFC*]g\xAC(Z\xDBg\xA1\xA6\xC2\xF99\x89\xD2\xCE\xF0\xF1\xCC?\xAA\x979\xBB|\x93OQ\x96\xEF\xF9?N\xFE8y\xE4+\xF6,\xD2\xDC\xFA\xFD&yy\x9AT\xEFom\xA!
B\xAB\xFF\x93S\xA4~L\xBA.\xEC\xEA\xE9Xi\x84l\xF6!\xFD̟yl{\x87'\xAB\xBFM\xCB47W\xEC\xF5\xA8\xF8\x89\xE7 \x8F\xAB5\x86\xB6\xAFv\xEF\xF6%\xEFe\x9D\xDEg\x9CG\xAA\xA1S\xB5N\xEF\xD58XY\x9A\x97B\xAE\xD2\xC3\xDA\xAC\x9B\xF3E\xE1\xC8\xF1\xD8\xC8(\xE2
&W\x87S\xFD\xE2\xBAV\xB1\xF6\x80-\xEB\xC9\xCF\xC5rU\xCA\xDB"|\xAAB\xE1\xEA\xB8K\xB3Mv+\xABV\xD3ձҵ\x88\xA2\x98\x9BjU\xB7\x86\xB92im\xF5{\xF0˜I\xF1\xEF\x96\xF5\xA0\xFE\xD5y4`\xADn\x89B>\xAE\xC3\xD2\xE1 {\xD4\xDFM at C\xA2|\xED\xA4/I\xA5\xFA\x9F\xE3\\x84+\xEBor\xA0y\xF2\xC4֙1*L\xB3\xD7j\xE8d\xE4\xFF\xFE\xEB\xBB\xDE\xC8\xEAWA\x96\xA7\xA5\xEC)\xD7
\xD9Fo\x9FE\xA7\x980]\xAF\x95\xCAX\xDC
+_\xB1d\xC91S\xEF\xB7g\x93\xC4b-TGM\xD1\xC5*} ˲\x98\x97\xAD\xCDI
\xB3\x88\x95\xCCYm\xD6,9x\xC1\xC2L\xCBU\xBE}Pu`Ӣl\x83\xE53{\xC9\xCB\xED\x8B_\xE6
\xAB\xF5\xFBZ\xBE\xF3\xCC\xF3\xA2~1#\xE6K\xBE\xEAA\xEFX\xF8\xB4\xCC\xD3M]\xA9\xFC\xC6\xF6&\xB3\xA17\x9D
\xBD\xB9~翋%X#U
\xAF\x9D\xFC(WV\xACVW
+\xF8c\xF5\xB3\xC9\xEAKbJ\xD6\xFEQv\x97*K֏\xA8FJ\xA8\xDE#9|\xB7m\xEC\x84Ҝr\xD1מB\xA2\xE97\x80T\x9C\xC7\xFD\x95j\xAF\xB5 X-
+\x87E\xFF\x96Io\xBEʧl.\xBE\xEFRdXs\xCE\xE5\xC3W\xAF\xAC\x93\xEA\x97 \x87e~\xB7GT\x9F\xDAh\x96\xD4)\xD2[I[\x9F\xAA\x88m\xED8[r\x8C7q*\x99\xFA\x80D\xF5vQ5'\xAA\xB6
\xAA\xED
\xB4k\x96 #\x96?\xF1\xE4\x9Ag\xEA#CE\xEE\xCCP\xF9\xC4Yɏxa);\xBB\x89Y\xDE\xCA\xCA\xEF\xDE\xD0\xFD\x8D\xAF\xFD\xBB\xBB\x9AmS\x85ER\xBD8jnP^AQ\xA7\xEB\xF8\xC5\xF2\xDD\xEA\xAF\xE2n
'S\xC7
\xB3\xF9t2w\x8CϿ
++K\x918jA\x81O\xCC\xA2z\xE7\xF3Ð\xBBT\x91\xBD\xFB
\xBE+\xCB\xCB_ԇ{\xE6O\xB5ҏ\\xDD\xE1v0\xF7\xF6\xC5\xF7\xEAJlp
\xFB\xF3_\xAB\xA6\xB5\xAB\xAE6J\xFFaW\xBDٗ\xDEʁ\xB4\xD50\xBF]\x91\x9C\xBD\xE4^NƮ\xE4\x95'\xD1[\xA6\xF1PK$:\xBFF\xFC
2Q PK &1\x99M % private/de.cinderella/certificate.bin\x8Bvr0LL51\xB0H5\xE7 PK\x87\xE5\xBC\xEF
PK &1\x99M / private/de.cinderella/scripts/Draw/0/figures.cs\xF3N-\xC9\xCC\xCB,\xD1д\xE6\xE2\xD2\xD7wLI)HL\xCENLOՈV*\xC8L.1JU\x8AJ\xA1\xC9D\xA7\x94e\xA4\xA4\xE5V\xC4V禦d&Z\xD6*\xE9
&\xE6e!
\xE6&\x96\xA4\x82D\xB3SK\xC0J\xC0\xC6 \xCDQx\xB2w\xCE㦮g\xD3v\x828\x86\x9A
+\xC1\xA9%%\x99%9\xA9\x8F\x9B&=߾\xE2\xE5\xEC\xB6\xF7{z
7\xAD{ܼ(\xF2\xACk\xCF\xE3\xC6\xE9\x8F\x97C\xC0\xAA\x9A\x81\xBA\xF7?n\xDE
\x93\x9C\xF9~O\xC8$#\xA0I9\x99)8pm)I'\xE5\xA7Tj(%\xE5 \xBD\xA2tL8\xA3\xB2 \xB5HC $\xC4\x92Z\x91\x9C\x9F\xAB\xA1\xE3\x93X\x94\x9E\x93\x94\x93\x94\x9F\x93\xF4OH\xDA-?\xAF\xA48\xB3*UC\xA9\xAC\xE6|\x8Dh.\xA5\xE2j3\x83\xDAj# ~ܼ\xF0q\xD3\xB0+\xF6\x83
\x8F\x9BW\x83\xA6\xC6\x88\x9FN\xE8}\xDAً$\xC2\xCF:\x9En\x9C\x87$hln}\xBA`c\xADW\xACN\xB4\x92s~N~\x91m\xB4\xA1\x8E\xA1\x8E\x81\x8EA,$\\xC33\xF3R2\x8B
\xD2\xC1\xD1 PK\xE57\xA4\x91O \xD3 PK &1\x99M . private/de.cinderella/scripts/Init/0/KETlib.cs+-N\xD5P\xF2N-q\xCE\xCCK\xA9
\xC8)M\xCF\xCCSҴ\xE6r\xC9,JN\xA9\xB4\xCD\xC9OLI\xC9,JM.\xC9/\xAA\xB4\xE6*N-\x81\xF34
\xC0\x8A\xE1|\xA0\xA6\xCC܂\xFC\xA2
-\xA5\xECԒd\x90qz\x99y\x99 \xC3 PK
pLO d PK \xC7QdM D private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.cs\xD5TMo\xDA@\xBD\xE7Wl]U\xDA&\xC1\x90
\xD2\xC4T\xD4\xA9TT[\xBDDi\xB5\xB1\xD7x\x83?\x90m\xF4\xD0\xDFޝ\xF5&6E\x95z\xE9\xBC;\xF3\xDE\xEC̾gs\xAF\xD8
]W>(\xE8
7\xDEFO3>
\xFA\x8F\xEAB\xDC\xC3ox\x9A0\xE0\xD9&\xB4\xF7k\xE6\xB5\\xE9=r\x97c\xAA\x88\xDEBc\x9E\xAE\xAD,\xD1\xE5)\xBE\xDC$
k-h¢
\xF7劮\xC52\xE3\xCE\xF05A\xD6&\xF1\xF0
+\xA5\xECԒd\x90qz\x99y\x99 \xC3 PK
pLO d PK &1\x99M D private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.cs\xD5TMo\xDA@\xBD\xE7Wl]U\xDA&\xC1\x90
\xD2\xC4T\xD4\xA9TT[\xBDDi\xB5\xB1\xD7x\x83?\x90m\xF4\xD0\xDFޝ\xF5&6E\x95z\xE9\xBC;\xF3\xDE\xEC̾gs\xAF\xD8
]W>(\xE8
7\xDEFO3>
\xFA\x8F\xEAB\xDC\xC3ox\x9A0\xE0\xD9&\xB4\xF7k\xE6\xB5\\xE9=r\x97c\xAA\x88\xDEBc\x9E\xAE\xAD,\xD1\xE5)\xBE\xDC$
k-h¢
\xF7劮\xC52\xE3\xCE\xF05A\xD6&\xF1\xF0
Q\xA0n\xB3\xB8\xD6Z\xDC\xF2\xB9\x97u\x90ͳ\x80a;/\x8C\x8D">\xC1#Q3\xE0.\xC3\xBC%\xE3\x8DO\x95\xEF\x97/
\x9B,\xF5\xFA\x84M\x82\xBE0\xDB\xE0\x91\xBB\x9FZxz\xAAʠ\xB5I\xC3G\xEF\x91+b\xB8G\x90\xE3/\xF1-A3\xDCQ\xBBQ\xD7\xC5\xF7%\xE1
֊\xBA \xDDfl\x97\xE10ޤ
\x93\xCB\xDD^-\x8A\xAA)\xFFɺ\xC3\xFE\xB5VG\x87\xB1[\xF5\xD1\xD1TȪ\xF5|\xEF\xA1
\xE4\xED5E\xBD\xBA2W\x9E\xD4G`\xBFq\x87bYx\xE5\xC0\xF3\x98\xD0\xCF k)cA\xC87M\xEC \xB0\x93\x80\xAF\x9F\xE2x\x85K\xBD\x89`U\xC1\xE786ۅ\xE0\x81,\x97\xA7;\xBA\xF8\x86:@0|F]\x96\xE4x#\xA4<*\xA9.\xC52|q'\xC3ª\x86\xAF?\xC8\xC0#d1\xED\xB1\x92B\xA6\xC5\xF5\xBD:ٖ\xBD\x82\xEDƤ+\x96I
6:\ Ɵ
<\xBD8(Z<\x8E (lҌy\\x96\xAD\xED\x9AxK\x8E\xF6F\xD0\xC1*\x85e\xDAčW\xB8\xDFڄ!M\xF6\xA4F\xC8#M\x9A)\xB5\xCE\xDD/\xE1B\x87m\xFC\xF4\x8C\xE7\xC6ld~R\xE7\xA7\x869V\xE7\xC6|a\x9E\xCF\xFC)\xF0\xAF\x8C,!.Ɂ\xEDs\xD9f\x9D\xD0S\xE0\xFA\xC1\xE4\x8Es\xA7e\xE2[\xA5\xF8*,Zf\xBEP\x92Tߜ6!\xE1\xFB\xE5\xC4Q&l\x90
\xB0*\xF3$\xCFI]\xAFY\xE4
RwU
$7\xFC\xB5\x93\xBAZ-\xAD'L\x93\xB38\xB5\x9EL\xE3$J
"\x95\x93\xFE4[G\xCEV
,\xFE;\xDA9J\xF75\xA5{\x96r\xFF\xEAS0zU\xDF\xEAy
-rt\xA5\xED\xD4\xB1\xD1\xF6\xD9q\xBF\xFFk)A,\xED\xF2\xF2X\xB0\xBA(\xA7\xB5>\xA9\xD7_\xA9\xF1\xEB\xFF\x99(\xA4;\F\xD5\xCEJ5lv\xF8z6ߓ\x83G\xBE\xB6\xBE#\xED\xE7\xFDPK\xB7ya\xC5 \x92 PK \xC7QdM\x8DE\xC0b
- .Q & private/de.cinderella/construction.cdyPK \xC7QdM\xAD\x93Cg
% _
- private/de.cinderella/certificate.binPK \xC7QdM\xEE\xD3ĕ] \xE8 / \xC0
- private/de.cinderella/scripts/Draw/0/figures.csPK \xC7QdM
pLO d . z private/de.cinderella/scripts/Init/0/KETlib.csPK \xC7QdM\xB7ya\xC5 \x92 D % private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.csPK \xD2 \ T Construction created with Cinderella (http://cinderella.de)
+rt\xA5\xED\xD4\xB1\xD1\xF6\xD9q\xBF\xFFk)A,\xED\xF2\xF2X\xB0\xBA(\xA7\xB5>\xA9\xD7_\xA9\xF1\xEB\xFF\x99(\xA4;\F\xD5\xCEJ5lv\xF8z6ߓ\x83G\xBE\xB6\xBE#\xED\xE7\xFDPK\xB7ya\xC5 \x92 PK &1\x99M$:\xBFF\xFC
2Q & private/de.cinderella/construction.cdyPK &1\x99M\x87\xE5\xBC\xEF
% P
+ private/de.cinderella/certificate.binPK &1\x99M\xE57\xA4\x91O \xD3 / \xB1
+ private/de.cinderella/scripts/Draw/0/figures.csPK &1\x99M
pLO d . ] private/de.cinderella/scripts/Init/0/KETlib.csPK &1\x99M\xB7ya\xC5 \x92 D private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.csPK \xD2 ? T Construction created with Cinderella (http://cinderella.de)
©2014 Ulrich Kortenkamp
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0901paraboloid.cdy 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,33 +1,39 @@
-PK Yy\xEEL & private/de.cinderella/construction.cdy\x9D\x9C\xDDR\xDC8\x80\xEFy
-Wf\xB71\x96\xBB\x99\x9A\xAD\xCA2\xC9\xECRCf\xD8\xD9
a\x8BF\x8B\xDB\xEE\xB2\xDD$dj
h_c\x9Fl%w7\xB4t\x8Ed\xF5\x92\xD0\xD6w\xF4\xEF\xCFǎ+''oy]>G\xC1̻[\xF1\xAA\xF4\xC8,$\x9E\x85$? \xB3y$?
-ã\x83\x93\x93\xB7-\xA3=+\xBD\xA6>\xF5D\xF9\xF4$\xCCOH\xE2\x91\xF4\x94\x84\xA7)Ļ\xA6=\xF5z\xFAH\xFB\xA6\xE9X߭q\xF0\xEC\xD2\xFBx\xF9\xD9;?\xFB\xF0\xD9;>>\xF6.}\xFF\xE1\xE3\xB9\xF7\xE3\xF9\xC7\xF3_\xDE|>?\xF3\xDE^\x9E\x9D\xFCȚ\xEB\xDB\xE7\xD3\xEF\xCFWE\xC5KF\xEB\xEF\xFCë\xDF\x8FN\xBF\xD72\xF6\xA9\xE1u\xEF\xFF3 ¿\xF2\xBF\x84A8\x9DNԯL\x94
Ea0\xCD\xD2l\x9A\xF1\x91\xA7ٶ\xE0_G\xDF
\xC8*ѻ7\xCB%\xA3-\xAD
\xE6G\x93T\xF1-\xFF\x90pҷ+6\xB9\xA7U\xC7v\xFA\xBE\xE5w\xAB\x9E\xF9\x87ES5\xED\xE1\xE40:\xB4\x94-+s,\xEA\xB5bwՊ\xB9ps1 \xB5
\xA4\xD5\xF2\x81
-\xC4L\xB0\xAF\xAC-x\xC7X\xC5\xAC\xEE;
\xD3@\x97-\xFDҷ\xB4`#\xDC\xC0T\xAC\x9E\xF7\xB2\xF5\xD0\xD4\xFA\xC0u\x8F|))S\xF2\x85u-\xABK֎\xF4\x8AwO\xBC\xE3w\x95\xEC\xBD\QS\x83\xECk\xDC7uO\xBCz\xF0\xAD\xBB+\xD6\xF2{CIJ\xA2\xB5\xAC\xD4Ի%\xAFk^\xCFG\xBAW\xD1;1g\xE5x\xE7:\xFEM\xB6F"\xE3tHꮩʱe\xEFiŋn\x84\nM\x8Dm.\xE5\xF9x״\xEBu\xB0
a\xD9
-\xB0\xA6
Y\x9D\xAD\xAE\x80/\xE8\xDC
-b\x87P7\xB4mz\xDA\xF3F\x9E9\xA1:\x98\x9F\xE5|j:?\x9E\xC4\xB2>\xDF'RaMȑ\xD4\xCF\xC7sM?\xC7q\x90\xA7[\xCD\xEC\xB8(
\xF2dFR\x92LɌ\x90,\x9ANw\x95#\xAA\xD9O9\xDB \x93r
\xE5\xBArL\x98\xAE
\x94A]9\x90\xB0)Ҹr \x87+\xC7\xC0)\xCA10\xAAr \x84(B\xA8r\x90G\x94#T\xE5 \xE5\x88r \x85(
\x9C\xCA\xC11L9\xC8t\xE5 \xAE
ԕc\xA8KU\x8ER\x95cG\xE5l
\x94\xF3\xF9\xBD\xAE\x9C(H\xA3<I\xA7\x89Hgb\xF1m\xA4\xF3\xAADq\x98g\xB3\x97\xCF\xE9\xBA`\x90\x8F\xA8p?\xF9lL\xF21\x94\xEB\xF21a\xBA|L
\x90u\xF9@\xC2&H\xE3\xF2\x81
.\xA7\xC8\xC7\xC0\xA8\xF2\x81"\xA1\xF2A
\x91\x8CP僔#\xF2\x81"\xBCs\xBA|p
-\xC8\xC70\xF9 #\xD0\xE5\x83 \xB8|P\x97\x8F\xA1.U>VH\x95\x8F
E\xE4\xB3 p\x90ϻH\xBE+_ b\x9F0S\xBE\xF2
\xFB\x88\xF7\xB3\xCF6\xC0dC\xB9n\xA6\xDB\xC7\xC4\xFB at P\xB7$l\xF6\x814n\xC8\xE1\xF61p\x8A}
\x8Cj!\xF6\x81j\xA4\xC1\xFB\xC0\xD5>H9bH!\xF6\xC1;\xA7\xDB\xA7\x80}p
\xB32\xDD>\x82\xDBu\xFB\xEAR\xEDc\x85T\xFB\xD8Q\xC4>\x9B \xFB\j\xF2 w\xEF\xAFB\xDD;\x83^.\xA1]b\x9B].\xEDr\xC1\x8Bu\xB7(]-
\x98p\xBAX `\xF3
-\x80q\xAD
\xB7
-\x8E)R\xC1\xD5)\x80A\x94\xD4(\xB0\xB5\xA1\x80 \xD5'\xB0\xD1 \x80\x9B\xA0
\xDB\xCA$4\xCD\xEA\x94\xC2T;\xBFm165h \xE4t\x8F\xE05\xA9\xB11\xAAE\xAC$"\x91Kg\x87|3?0~\x95H$$M\xA3Y\x9C\xA6q\xC6$۽aUhR\x89G\xA4\xF2\xCDd\x95\xF8\xD0R\xB4b\xC0\x80W
\x81Y aU
\xA0
-n\x9CA.8\xA7\xDAg4\xBD \xF3
\x80p\xC1\xC0\xC7
"4\xC5\xC0r\xCC1\x80\xC2$\x83vX\xA5\xA0fP
\xF5
-D
\xA6\x81 P
-^\x97\xE6\xA4\xC9Ɗb\xB6\xF9檛k\xB3mH at fd:\x8Bg\xB3i\x92\x92\xC6\xD9NI\x9A\xE4! \xF3,O\xA7y\x9A\xEC\xC8\xE7zτ\xE6ڞ\xD0\xE0źy
\x94.
\xBC8]; \xB0Y\xC0\xB8t \x86;\xC7\xE5\xE0\x88j
\xC0 \xC2
\xEA\xD8ڈn@\x80jX\x8C\xC8@\x88kЎ\xE9\xAAA!`\x94\xC2D;\xAF{\xB8f \xA7[\xAFI\x95\x8C\x8DQ
c%\xC5\;\xC61\xA1ɒ\x89\x88Hk\xE2p6\x9D\xE6\xF1\xAES\xF6Mh\xAEGC9ЊcBc\xE2\xA0XFHX\xD5\xE2\x98\xD0@\xCE \x87\x84\xC6\xC0hzqIh \x84
f\xEF\x84Fh\x8AqJh \x85I\xC6)\xA1\xC1)\xA8\xE7\x84\x8DkB\x83\x80 at 5. \x8D\xD2d\xB3oBs\xED\x9C\xD0\xDCm\xE9\xE6U\xF9[\xA4<\x86\xB9\xD93k\xB9\xB1g-x\xB1\xAE\xA5\xDBŀ\xB9 Nw
lj0n\x80\xE1b\xC11\xC5+8\xA2j0\x88U \x83J\xB66\xE2\xA0*#F"\xB4c\xBAOP\xE8\xA50\x9B\xC0\xCE\xEB2\x81\xEE\xC8\xE9*\xC1kRMbcT\x91XI\xC4#7\xCEq\xCCZ\xE2$ \x93i\x94g\x84dS\x92D\xBBN\xD97k\xB9\xC9Z
\xE5 at +\x8EY\x8B\x89\x83b\xCDZ aU\x8Bc\xD69\x83\
\xB2\xA3\xE9\xC5%k\x81.\x98\xBD\xB3\xA1)\xC6)k\x81&\xA7\xAC\xA7\xA0f\x9C\xB3d@4\xAEY
ոd-VH\x93;Yˍs\xD6r\xAB\xFF\xB35\xF2\xEFE\xC3s\x97,O\x85o\xE2|\x9ALINv\x9F\xFA\xDE\xEE\x99\xC2\xDC\xDAS\xBCXw\x8D\x81\xD2Uc\xC0\x80i \xA7\x8B 6\xCF \xD7
\xC0p\xCB\xE0\x98"
Q
D1\x80A
-[
P\xFD\x8B\xBD \xB1
\xDA1].(܂R\x98Z`\xE7u\xB3@
\xE4t\xAF\xE05\xA9Z\xB11\xAAU\xAC$"\x95[g\xA7XRdYDH\x9ED$
-I\x94m\xB7\xD8\xFFa\xE9vߌ\xE6S\xCDh
\xE5\xC02\x8E\x8D\x89\x83\x9E\xCDh a5\x8DcF9\x83k
2\xA3\xD9\xC6%\xA3\x813\xA1\xC7)\xA3\x81\xE6
\xA7\x8C\xA7\xA0u\x9C3d\xC0;\xAE
-\xF3\xB8d4VHsϾͭsF\xF3Y\xCCX
Kɟ|\xBC9\xA4)\x84\xE8\xAFӭk{}\x9Bw'
-zd\xF3V\xAA\x99o\xF5ZP\xF0f\xAF\x85\x85o\xF7\xA20x\xC3\xA5\xACo\xF9\xA2\x867}Q\xD6U\xDF\xF85s\xDA[\xBF(\x88\xBD\xF9\x8B\x82\xF8ۿx\xE3co \xA3Q\xDA[\xC08\x83\xBD l\xDE\xF7\xBC\xAA\xE4
dP2\xDB] N\x8F|\xF83
-\xA7iJ\xF2\xE94\xB6DV\xBC~
\xE6\x84W\xBCvY\xE8Af\xAD\xDB|\x93\xB8\xE0\xF5^\xFBº+dū\xBE\0\xB28k.芖/\xE5N\xFEg_D\xBC4\xC0c!>G\x9A\xE9\x9B\xF9\xDCy\xC8\x81\xBE\xE3\xF3U;o\xAFS\xEBv\xC5\xDF\xCC6\xA2\xE8\xDBٯ\xF4\xA0>C\xF7Κ\xE2Ql5q\x9B\xE9\x84
Ϥ\xE5G\xBD\xAA\xAA\x83\x928
-\x95\xC7\xFE\x87\xBE\x84\xD9$j\x820\x8BYL\xA3F\xF5(Bc"E\xB01\x93"!f\x95"\xB0٥&\xC8\xD4B\x9B"\xA4A\xA7i\xF4)־\x83P\x910hT
2(մ#6NMm\xA0\xABS\x91\xD0\xA9&\xC7`U\xD3T\xA2Z5U\x8Dz\x81u\xB1\xF2{\xBD\xFD\xABVUK*\xF6F\xF4\xB7pr\xE0y\xF4\x91u\xF2\xA84\x91?\xDF\xD1\xC1⯈\xE2b
}m\xEE\xFD\x9F\xF9\x9DL.'\xBFv\xFF\xFD\xF0H~iy\xCF\xFAF
\xF0\xA3\xA3\xC9\xE6\xB7_\xAE\xC4/@\xE0\x86\xE17M\xD5FំޏјÍ+\x86H\xDC\xC0\x9A,\xBE\xC5\xD77tQ\xF5x\x9Ek
G\xFF_\x80\x93\xF1\xF7|\xA3*\xEFC}ߴ\x8B!\xD5>\xD8\xFA\xCB\xFBC,\xAF\x97\xAB~\xF8\xC9\xF3DK\xE7k\xA7u\xBE$*\x96iY^4\xA5t
-\xB9\xAC\xADXr,ı.\xB8h\x9E\x98t\xE8\x82^\x89T\xECMY:\xF2\xAB\xAA\xE7W
i5oĎyXt\xC1O\xE2>\xAE3v\xCFk\xF6\xB6Y,i\xB6O
9M]\xF0k]6\xCE\xF0\x8F\xFC\x89\xBD\x97\x8F@\~a]O\xDB\xFEσ?\xEE\xD8}\xE2M\xEB\xFDq^?\xF1\xB6\xA9\xE5R\xF8\x9B\xEA\xD6_b\x89\xC4
\xA1\x8B\xCE\xAE\xC4\xEBo\x85\xCD~n~fO\xAC\xF2\xC9n\xC1n\xF5Mߴ\xF6\x8A\xC9
?\xB2\xB6fհ\xE9\x8BB\x9C\xC6\xDF\xED
y'\xEAd\xDD\xF1z\xF0j\xC9X):\x92\xFB\xF4J\xB7lڞ\x8B]\xBA[\xDB\xEEm*\xBB\xEFče\xBDgP\xC9\xEE\xA9\xD8
\xC1p۪T\xAC\\xCC\xFB\xF5\xE2\xB7|\xFEЋӢx
B\xE1\xEE\xF8\xD4,W\xCB
Q\xB5\.\xC7J\xBC,+f\xABU\x9E\xF6\xCA\xC4%B\xDE\xCF[*\xAE2\xDBm\xBD\xB9mF\xF2\x94\xE8DjP\xF4\xAB\xE9\x9D\xFA|
-)\xDBE\xD0|\xA9\x87\xEBʯUˋ\xEF\xEFb\xA2Y\xFDHKkT\xD1,\x9F\x87\xA9\x91\xFF\xFDO\x92\xC4ۯ\x82\xA5\xB8\xB7=e\x8A"\xC7\xE8ͥ\xA7s\x8A)\x9A\xC5B\xAA\x8CVn\xF8\xAD\xE7쾢2Qx=\xAC\xEA\x8A/\xB8\xEC\xA8-\xBA{h\xBE\xF0\x9A.\x97\xEBG\x9B:\xA6%\xEDi\xF0\xB0Z\xD0z\xE7\xF1\x8A\x9D\xBB|s\xADr`\x9B\xAE\x83E\x820gÎ
\xED\xB1ܿ\xCF\xEB\xC9\x9EXۭ\x9F\xC9TlN\x8Bg5\xE8Z<\xCE\xDBfU\x97oe.\xE5\x93l:!y6!3\xF5\xCC\xFF\xA1\xE0\xEE\x94\xC2\xF7bgUrw\xAD\x81(M'\x9Bo\x81Ix/\x97\xB2O\x8D\xB4\xE4\xFA\xA5\xA5\x9F\xF2RWPq\xCDZ\xF1\xE5\xE7\xA0\xE6\x9B~\xED)$JK\xF5$\xBBܽ\x8CTy\xA4`\xB95Z\xFE[$\xD8u\xF1,\xAE\xB2-\xFF\xBAM\xC7a\xCD-_1\xBD\xA2N\xDAɛ\xB6\xC9α\xC8-&\xE0\xC3}\xC7M\xEBu\x96\xF4zd\xACOCĦv\x9C
1ǫ\xAA\xCC\xFA\xD3$\xCAg\x8BÚ\xC8\xDANMmo\xA1m\xB3\xB0\xA4\xED#\xAB\xCF\xD8Rޞ
\xE4\xD6| W\x9Cq;Y\xF4\xA2\xB3\xAB\x8A\xB6\xA3\xAC\xF8\xED}9Q\xE0ؿ
-\xB1\xCBնU\xD8 I\x8C6(FЭ\xEF
-\xF05d\xDB\xDD?l\xC4\xED
\xC6"\xF3
\xA7\xB3,\x8F\xC3x\x96\x90$q\x88\x97\x959\xAF\xB9!\xA383\xAC2\xF4.KwC>5b\x8A\xFC\xED=\xFF\xF6X\xDB\xFF&\xEFD\xFC<!\xCA\xD1\xF7L\x9E\xE1~B\xF2\x97\xC3Wr$>\xC7K\xF9\xE5\xD0\xF4\x8D?tU;z\xED\xBDy9z!&җ\xD3\xFC:"\xB1>\xEA\x91+\xB1\xDB#ʄ\xB8._3\x8D\xFFPKY\xE5\xD9-d
\xDAK PK Yy\xEEL % private/de.cinderella/certificate.bin\x8Bvr0N25H122\xE2 PK\$+A
PK Yy\xEEL / private/de.cinderella/scripts/Draw/0/figures.cs\x8DR\xDFk\xC20~\xEF_\xF2T]\xA5Z\xE7\xD3\xE8\x93l\xE8\xDBh
\x85\xD8\4\xD3\xD2Di\xFD\xEBwI\xD51\xD9\xC6H!\xF7\xE3\xBB\xEF\xEE\xBE4\xB7\xAC\xB1S
\x9E\x82
\xAC\x90
-LHi\xEFլm{7x=ZւA\xE8#\xBAݙ\xB5S\xCE,\xC3tD۴͢\xD9\xCD\xEE\xCB<_MW/\xF8$-\x82\xC1\xC7Q\xD8n\x92\x87n\x93
h\x84\x916͆ee\xC2\xD5\xC0\x97gC#\xB5w0\x97\xA5\xC58J
\xD9\xCA[\xC3Z:h\xB0\xF6\x9C\x89\xE7\xACiD\xE2\x98pR'\xCC
\x9D
\xC06\xB2$\xE2\xA8K++m\xFEj\xE5\xC7\xCA6\xC9?\x9AJ.
-\xD3;\xE1\xC0\xB5\x95\x82\xAC\xF1˒HC
((-\xF0\x80\xE4\xE2\xA2΄F\xB8:*\x80̹\xDB
\xE1\xE4FȖ\xBB9\xEFpdޜ\x8C\xF8\x96\xA0Nk\xBC
VL\xF9
-\xC7o\xBA\xAC|$\xA2\xA1\xB5D\xE1\xFA登Y؉IŶ
-G\x9E[(\xCB\x9F{\xBAb\x8D\x9F\xEF\xB4\xC7=\xC0\xD8N\xBEkq\xE3\xC7<\xE5M\x94\xD0{\xD4\xB3O\xAE \x86S\xCD+U5i1\x89\xC6\xEE\xAC**\xDDJע
\xDF \xFFy\xE3\xD7\x97\xA6\xF68\xF7\xBDK\xED\xFC\x9D\x93\xB7Z\x80\xAACzY\x8DzA\xFA\xD0Mg
~PKz)\xA6~ \xE1 PK Yy\xEEL . private/de.cinderella/scripts/Init/0/KETlib.cs+-N\xD5P\xF2N-q\xCE\xCCK\xA9
\xC8)M\xCF\xCCSҴ\xE6r\xC9,JN\xA9\xB4\xCD\xC9OLI\xC9,JM.\xC9/\xAA\xB4\xE6*N-\x81\xF34
+PK 9z\x91M & private/de.cinderella/construction.cdy\x9D\x9C\xEBR\xDBH\x80\xFF\xF3*~\x89]#ԺX6S\xB3U\x99 at .\xB3!P!\xB3\xEC\xEC\x8FFjL/\xB2\xE4\x92d\x99\xCA\xEDk\xEC\x93m\xB7l\x83\xBB\xCF\xE9V{Ip\x81\xFA;}ק#E\x95\xA3\xA3\xB7\xBC*\x9E\xA3`\xEA\xDD.yYxdϏB\x92
\x85\xE3#y$;Ã\xBD\xA3\xA3\xB7
+\xA3
+\xBC\xBA:\xF6NX.
+F\x9E\xE0&^|,\x98\x94xg\x82zW7\xC7^GhW\xD7-\xEB\xDAe-\x9E\x9C{\x9FϿz\xA7'\xBFz\x87\x87\x87\xDEٛ\xB7>~>\xF5ޟ~>\xFD\xF2\xE6\xEB\xE9\x89\xF7\xF6\xFC\xE4t\xEF=\xAB\xE7\xACk\x9E\x8F>]\xE6%/\xAD~\xDA\xF3\xF7/\xDF?8\xFE\xF9]\xC3\xD8Eͫ\xCE\xFFg\x84\xE5 \x83p$:\x9E\xA8_cQr\xD8\x85\xC1d\x9C\x8E'c">\xB2t\xBC)\xF8\xD7\xC1O{\xB2\xCA@\xF4\xEE\xCDb\xC1hC\xAB\x9C\xF9\xD1(AD|\xCB?$
u͒\x8D\xEEhٲ퀮k\xF8\xED\xB2c\xFE~^\x97u\xB3?ڏ\xF6-\xE5A\xC3
+\xC1
\x8Az\xAD\xD8m\xB9d.\xDCLLBei\xB9\xB8\xA71\xECkr\xDE2V\xB29\xAB:\xC1\xF6\xC34\xD0EC\x9F\xBA\x86\xE6l\x80뙒U\xB3\xEE^\xB6
\x9AZ\xEF\xB9\xF6\x81/$ec
+>\xB7\xA3aU\xC1\x9A\x81^\xF1\xF6\x91\xB7\xFC\xB6\x94\xBD\x97+jj\x90}낻\xBA\xEA\xEE蜗\xCF\xBE\xA4U{\xC9~g\x88X\x94\xB4\x92\x95\x9Az\xB7\xE0Uū\xD9@\xF7Jz+\xE6\xAC\xEE\˿\xCB\xD6Hd\x9CI\xDD\xD6e1\xB4L\xE3
-y\xDE\x90\x8BM\xA3\xA9\xB1ͅ<o\xEBf\xB5\x96!,Vt.\xAB\xB3\xD5\xF09\x9D\xB9A\xC1\\xEC\xEA\x866uG;^\xCB3'T\xF3I.\xC0E\xDD\xFA\xF1(
\x91\xD5\xF9>\x92\xFA\x83hD\xA4~>\x9Fj\xFA9\x8C\x83,\xDDhf\xCBEa\x90%S\x92\x92dB\xA6\x84\x8C\xA3\xC9d[9\xA2\x9Aݔ\xB3 0)\xC7P\xAE+DŽ\xE9\xCA1q at 9ԕ \x9Br \x8D+r\xB8r
\x9C\xA2
\xA3*B\x88r \x84*ip at 90BUR\x8E(R\x88r\xF0\xCE\xE9\xCA\xC1)\xA0
Ô\x83\x8C at W\x82\xE0\xCAA@]9\x86\xBAT\xE5X!U9vQ\xCE:\xC0A9_?\xE8ʉ\x824ʒt\x92\x88t&\x9F\xD1Z:\xAF\xFA!A\x87\xD9x\xFA\xF29Y\xF4\xF2\xEE&\x9FM\x80I>\x86r]>&L\x97\x8F\x89\xF2\x81\xA0.H\xD8\xE4i\>\x90\xC3\xE5c\xE0\xF9U>B\xE4!T>H\x83\xF2\x81\xAA|\x90rD>\x90B\xE4\x83wN\x97N\xF9\xE0&d\xBA|\x97\xEA\xF21ԥ\xCA\xC7
+\xA9|\xD6\xF2y\xF7\xC9wb\xE5+A\xEC\x8E\x95\xAFl\xCB>\xA2\xC6\xDD\xEC\xB3 0\xD9\xC7P\xAE\xDBDŽ\xE9\xF61q\xC0>\xD4\xED \x9B} \x8D\xDBr\xB8}
\x9Cb\xA3\xDAB\x88} \x84\xDAip\xC0>0B\xB5R\x8E\xD8R\x88}\xF0\xCE\xE9\xF6\xC1)`
\xC3샌@\xB7\x82\xE0\xF6A@\xDD>\x86\xBAT\xFBX!\xD5>v\xB1\xCF:\xC0\xC1>\xE7\x9A|\xC2\xED\xFB\xABP\xF7N\xAF\x97sh\x97\xD8f\x97s\xBB\\xF0b\xDD-JW\x8Bf\x9C. ؼ`\+ í\x82c\x8ATpDu
+`\xA5 5
+lm@( @\xF5 ,Ft \xC4&h\xC762 M\xF3\x80\xBA\xA50\x95\xC0\xCEoZ\x8CM
+D9\xDD#xM\xAAFl\x8Cj+\x89H\xE4\xDC\xD9!\xDF\xCD\x8C_% I\xD3h\xA7i
\x861o\xDF0\x89*4\xA9\xC4R\xF9n\xB2J\xBCo)Z1`\xC0+\x8A\x80\xC0,\x80\xB0\xAA\xD0\xB7 \xCE \x9CS\xED\x823\x9A^ \x84\xF9@\xB8``\x83C\x86\x9Ab`9\xE6@a\x92A;,\x83RP3(\x86z\x8E \x88"\xD3@\xA8\xAFKs\x8D
+\xD2dcE1\xDB|w\xD5͕\xD96$ S2\x99\xC6\xD3\xE9$II\xE3\xF1VI\x9Ad! \xB3q\x96N\xB24ْ\xCFՎ ͕=\xA1\xC1\x8Bu\xF3(]<
xp\xBAv `\xB3\x80q\xE9
w\x8E)\xCA\xC1\xD58\x80A\x84\xD47\xB0\xB5݀ \xD56\xB0\x91
+\x80נ
\xD3U\x83B\xC04(\x85\x89v^\xF7
$p\xCD at N\xB7
^\x93*\xA3:\xC6J"\x8A\xB9r6\x8CcB3N\xA6$""\xAD\x89\xC3\xE9d\x92\xC5\xDBN\xD95\xA1\xB9Hh
\xE5 at +\x8E \x8D\x89\x83bLh aU\x8BcB9\x83\
\xA3\xE9\xC5%\xA1\x81.\x98\x9D\xA1)\xC6)\xA1\x81&\xA7\x84\xA7\xA0f\x9Cd@4\xAE
+ո$4VH\x93ͮ ͕sBsm\xB4M
\xA4\xEBWi\xE4o\x91\xF2\xE6zǬ\xE5ڞ\xB5\xE0ź^
\x94n\xE48\xDD- \xB0\xA9\xC0\xB8Y \x86\x8B\xC7\xAF\xE0\x88\xAA\xC0 V
*\xD8ڀS@\x80\xAAX\x8C@\x88PЎ\xE9>A!\xA0\x94\xC2l;\xAF\xCB\xB8K \xA7\xAB\xAFI5\x89\x8DQEb%\x8F\;k\xC41k\x89\x93$L&Q6&d<!I\xB4\xED\x94]\xB3\x96끬\xC5P\xB4☵\x988(\x96\xC1\xACV\xB58f-\x903\xC8\xC5!k10\x9A^\\xB2\xE1\x82\xD99k\x81\x9Ab\x9C\xB2Ha\x92q\xCAZp
+j\xC69kAF D㚵 P\x8DK\xD6b\x854\xD9욵\;g-7\xFA?[#\xFF^\xD4?wg\xA9\xF0M\x9CM\x92 \xC9\xC8\xF6Sߛ
S\x98{
+\x83\xEB\xAE1P\xBAj
0
+\xE0t\xD1 \xC0\xE6 \xE3\x9An
S$\x83#\xAAc \x83(0\xA8a`k\x82\xAA_`1\xA2 !vA;\xA6\xCB\x85\x80[P
+S
\xEC\xBCnH\xE0b\x81\x9C\xEE\xBC&U+6F\xB5\x8A\x95D\xA4r\xE3\xECK
+C\x82\xF18"$K"\x85$o
\xB7\xD8\xFFa\xE9f\xE6S\xCDh
\xE5\xC02\x8E\x8D\x89\x83\x9E\xCCh a5\x8DcF9\x83k
2\xA3\xD9\xC6%\xA3\x813\xA1\xC7)\xA3\x81\xE6
\xA7\x8C\xA7\xA0u\x9C3d\xC0;\xAE
+\xF3\xB8d4VHsϮ͍sF\xF3U\xCCX
Kɟ|\xBC>\xA4)\x84\xE8\xAFӭj{}\x9Bw+
+zd\xFDV\xAA\x99o\xF5ZP\xF0f\xAF\x85\x85o\xF7\xA20x\xC3\xA5\xACo\xF9\xA2\x867}Q\xD6U\xDF\xF85s\xDA[\xBF(\x88\xBD\xF9\x8B\x82\xF8ۿx\xE3Co \xA3Q\xDA[\xC08\x83\xBD l\xDEw\xBC,\xFB=`%\xB3\xD9\xE2\xF4\xC8\xFA?\x93p\x92\xA6$\x9BLbKdɫ\x87~Nxɻg\x97\x85\xEEeָ\xCDw?\x89s^=\xF1\xA2\xDF\xD6]!+^v]\xC5YqA\x9B7|!w\xF2?8{\xF1\xD2 \xB9\xF8
h\xA6\xABg3\xE7= ?\xFA\x8Eϖ\xCD\xBC\xB9L\xAC\xDB3ۈ\xA2og\xBFҽ\xFA
\xDD;\xA9\xF3\xB1\xD5\xC4mZ\xA4#\xD2?\x93\x96ղ,_
J\xE2(T
\xFB?
\xFAf\x93\xA8 \xC2,jd1\x8Daԣ\x8D\x89\xC1\x86L\x8A\x84\x98U\x8A\xC0f\x97\x9A` Sm\x8A\x90\x9D"\xA4ѧX\xFBBE Q1ȠTӎ\x80NEHW\xA9"\xA1V5̎A\xAB\xA6\xB9D\xBDj\xAA+\xEBf\xE5w\xFEj'\xFA\x97\xF7\xAC,Tl\x8E\xEE\xE0o\xE1h\xCF\xF3\xCE\xE8k\xE5Q\xFF`$\xBE\xA5\xBD@\xC4_\xC5\xC5
\xFAV\xDF\xF9\x9F\xF8\xAD\xCC.G\xEC\xB79\xFFc\xFF@>5\xBCc]-\xF8\xD1\xC1h\xFDۗK\xF1\xCB
0\xB8a@\xB8\xC2MS\xB5v\xF8E\xDF\xFB!\x93\xB8q\xC5\x8BX\x93\xC67\xF8\xCA\xE3\x86.\xAA"\xCF2M\xE4\xE8
pt$\xFE\x9E\xAE]\xE5}\xAC\xEE\xEAf\xDE\xE7\xDA{\x81y\x8A\xC5\xE0\xD5b\xD9\xF5?y\x9Eh\xE9t%\xB5\xD6\xF7D\xC5\xF2 -\x8A\xB3\xBA\x90cA.\x97\xB5KN\x83\xB98\xD6g\xF5#\xF3\xF6]\xD0K1\x80\x92\xBD)
+G\xFElYv\\xE2j!-g\xB5\xD81\xF7\xF36\xF8U\xDCH\xB8\xD5u\xC2\xEEx\xC5\xDE\xD6\xF3m\xDB\xC1\xF6i.\xA7\xA9
+~\xAB\x8A\xDA~\xCF\xD9\xF9
\xC45\xE0
k;ڼ\xF0?\xF6~\xECݲ{\xFA\xC8\xEB\xC6\xFB\xF3\xB4z\xE4M]ɥ\xF0\xD7խ\xBE\xC4\x89=B\xE7\xAD\xDF_\x8AW\xDF
+!\x9A\xFDZb\x8F\xAC\xF4\xC9v\xC1v\xF5guW7\xF6\x8A\xC9?\xB0\xA6be\xBF\xE9\xF3\\x9C\xC6?m
y'\xEAdm\xF1z\xF0r\xC1X!:\x90\xFB\xF4R\xB7\xA8\x9B\x8E\x8B]\xBA]\xDB\xF6}*\xBBkŝe\xB5gP\xC1\xEE\xA8\xD8
AߪT\xAC\ͻ\xD5\xE27|v߉\xD3"\xE8C\xE1\xCBř\xA8Z.\x97c\xA5s^%\xB3\xD5*O
+{e\xE2!\xEF\x81g
+W\x99Ͷ^\xDF7\xA3syJ\xB4"7Ȼ\x80U\xF4V}@\x81\x86\xCD<\xA8\x9F\xAA\xFE\xBA\xF2[\xD9\xF0\xFC\xDE\xFB\xBB\x98hV=\xD0\xF9\xC2\x95\xE7~\xEAD\xE4\xFF\x85$\xF1v\xAB`!n\xEEEO\x99\xA2\xC8!z}\xE9i\x9Db\xF2z>\x97*\xA3\xA5~O\xAB\xBB+\xA9\xCC^˪\xE4s.;j\x8Bn\xEF\xEB'^\xD1Ţd\xDD`sBǴ\xA0
+\xEE\x97sZm=_\xB1\xD3b\x97\xAF\xAFUl\xDDvC\xB0Hf\xAC߱\x83=\x96\xFB\xF7y5\xF9\xC1#k\xDA\xD5C\x99\x92\xCDh\xFE\xAC\xFDB\xF3\x87YS/\xAB\xE2\xADL\xA6|2\x9E\x8CH6
\x91\xA9z\xE6\xFFR
+p\x85\xF47
+J\xE1\xB1\xB3J\xB9\xBBV@\x94\xA6\xA3\xF5\xB7\xC0\xA4
+\xBC\x97K\xD9E--\xB9\xBADi\xF9\xA7|\x86\xD4\xE6T\\xB3VC|\xF99ȅ9Ŧ_y
+\x89\xD2r} \xC9.\xB7/#U\x9EiXn\x8D\x80\xFFv\x95?\x8B\xABlÿm\xF2qXs\xC3\xC4\xC5WL\xAF\xA8\x93\xB6\xF2\xAEm\xB4u,r\x8B x\xE31D\xD3j\x95%\xBD
\xEAS\xB1\xAE
g{B\xCC\xF1\xB2\xAC\xB3\xFA\xC14\x89\xF2\xE1b\xBF&\xB2\xB6cS\xDBhӬ,h\xF3\xC0\xAA\xB6\x90\xF7'=\xB91@\xC5\xE7^\xDCO\xE6\x9D\xE8첤\xCD +~{E_N8\xF6oB\xECr\xB5m\xB6B\x83
+\x8A\xB4\xAB{|
+\xD9f\xF7\xF7q3\x87\xB1\xC8\xFC\xC2\xC9t\x9C\xC5a<MH\x928Ċ\xCBʌW\x81ܐQ<6\xAC\xD2\xF7n\x9Cn\x87\\xD4b\x8A\xFC\xCDM\xFF\xE6X\xD3\xFD.\xEFD\xFC,!\xCA\xD1L\x9E\xE1~B\xB2\x97×r$>\xC7K\xF9y\xDF\xF4\xB5\xDFwU;z\xE5\xF7\xBDy9z&&җ\xD3\xFC:"\xB1>\xEA\x91K\xB1\x9B#?dB\\xAF\x99\xC6\xFF PK\x85\2d
\xDFK PK 9z\x91M % private/de.cinderella/certificate.bin\x8Bvr05I\xB3044\xB6\xE4 PKy\x8Af_
PK 9z\x91M / private/de.cinderella/scripts/Draw/0/figures.cs\x8DQMo\xC20
\xBD\xF7WD9\xB5,\xAC\xA3\xC0i\xEA\xA9\xDA\xB7\xA9e\xDA$T\xA4\xD08(R\x9AVM@\x85_?'\xB0\xAF˴S\x9E\x9D\xE7\xE7g\xBBr|ps'\x8FQN*
+6\xA6\xF4\xF5| \xE3\xAEa\xF4rt|\x8B\xD4\x86\xEF\xE7
\xE7\x82;\x8Eߌ\x8E\xF9v\xBAd\xCB\xE1\xF9^>\xA1\xAF\x97b\x96o#\x82\xC9\xC54
w\xD9\xDDy\x97%\x94af\xCC\xCBI\xD3\xD9x\x93\x84\xF2rb\x95 \xFE\x95\xF9\xF6\x81e^lФW> \xD5A3
\x9A=e$M\x89 \xA9
\xC2-A\xEB\xBC7\xA8\x86ȣi\x9C\xEA\x8C\xFD\xABU\xB0U\xEE\xB24U2^[n\xE2ķU\x92lV\xE9\xF3\x9A(K,hh
\x88\x88T\xF2\xB6\x9De8:n \x95+\xBFl{
\xA4_7R\xF6\xC2\xFB\xFC\xC9c[*6\xBB_\xD2\xA1鄲=\xAD=\xBBNV\xFE\xA2S|,\xEA\xCC\xC5W}\xD1\xE9n\xC8\xA1.M_Mӵ-
\x92
Ѹ"\x82\x9E
\xB8\xD2|\xAFy\xE4i\x84\xA6iE\xE1ű\xD2\xEDM\xEF\xE0\xE0\xFD"e\xBA\x8F\xE9\x8DG\x83\xFA5\xF55&? PK\xE0'X R PK 9z\x91M . private/de.cinderella/scripts/Init/0/KETlib.cs+-N\xD5P\xF2N-q\xCE\xCCK\xA9
\xC8)M\xCF\xCCSҴ\xE6r\xC9,JN\xA9\xB4\xCD\xC9OLI\xC9,JM.\xC9/\xAA\xB4\xE6*N-\x81\xF34
\xC0\x8A\xE1|\xA0\xA6\xCC܂\xFC\xA2
-\xA5\xECԒd\x90qz\x99y\x99 ø\x80\xE6\x99%@6\x94i\x9C\xE2 PK\x93\xF3~f^ } PK Yy\xEEL D private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.cs\xD5TMo\xDA@\xBD\xE7Wl]U\x9AK\x82!9\xA4\x89\xA9Z\xD3H\xADd@\xF5\xA5\xD5\xC6^\xF0[\xB6I\xA0\x87\xFE\xF6\xEE\xAC?0\xB1)\xAA\xD4K\xE0\xF5\xCC{\xF3\xF5f-\xB0;\xA0\x96e\xBC3\xC8\xA2^\xBC\xE8y
\xC84C\xE3\xFD\xA0\xFF\xC0\xCE\x91
x%\xD3D\xF0 ƛp\xBE\x8B\x85GYy\xB2z\xF4&\xC7T\xAB\x87,BF2\x8DgYb\xE9b\xDC\xC9\xE5&`R2\xE5\x89Xg\xD0\xD7'
\xAB
(q\xA2')\xE0\x92\x92\xD9&Y\xC050n3\xB8\xD9|\xE6\xCBE\xD6!s\x99\xE6y`\x98\xAAX\x81\xF4̨\xC2/\x85jkt,l\xFF0l\xD0\xA9\xF0Gp\x8E\xF1\xAD\xE5\xD8>yK<e\x83
%\xAE\xBF\x84kJ\xC6\xD0a]J\xB8\xE7\xC1-%I\xF8\xC3ZP/\xE1ϙ\xD8fF\x9BT =\xDF\xEEX\x94\xA5\xF2\xA7\xE8\xFB\x97X\xA5#\xAF\xAA\xA3c2\xF4\xB2\xBA\xBFwCș2ʽʦ\xC1..\x9C\xD5B+\xA1\xB0_\xA5\xC0\xA4\xA0\xAF\|
\xFA9!ւ\x84\xFC\xA5\x89
\xF6.\x90\xF1c\xAD\xA0T\x96*Velp.\x913\xDB\xB5W\xC8\xF2x\xBC\xA2+d\xE0\x86p \xB6/\xB8'\x92
o\x87\\xAEK\xAA
+\xA5\xECԒd\x90qz\x99y\x99 ø\x80\xE6\x99%@6\x94i\x9C\xE2 PK\x93\xF3~f^ } PK 9z\x91M D private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.cs\xD5TMo\xDA@\xBD\xE7Wl]U\x9AK\x82!9\xA4\x89\xA9Z\xD3H\xADd@\xF5\xA5\xD5\xC6^\xF0[\xB6I\xA0\x87\xFE\xF6\xEE\xAC?0\xB1)\xAA\xD4K\xE0\xF5\xCC{\xF3\xF5f-\xB0;\xA0\x96e\xBC3\xC8\xA2^\xBC\xE8y
\xC84C\xE3\xFD\xA0\xFF\xC0\xCE\x91
x%\xD3D\xF0 ƛp\xBE\x8B\x85GYy\xB2z\xF4&\xC7T\xAB\x87,BF2\x8DgYb\xE9b\xDC\xC9\xE5&`R2\xE5\x89Xg\xD0\xD7'
\xAB
(q\xA2')\xE0\x92\x92\xD9&Y\xC050n3\xB8\xD9|\xE6\xCBE\xD6!s\x99\xE6y`\x98\xAAX\x81\xF4̨\xC2/\x85jkt,l\xFF0l\xD0\xA9\xF0Gp\x8E\xF1\xAD\xE5\xD8>yK<e\x83
%\xAE\xBF\x84kJ\xC6\xD0a]J\xB8\xE7\xC1-%I\xF8\xC3ZP/\xE1ϙ\xD8fF\x9BT =\xDF\xEEX\x94\xA5\xF2\xA7\xE8\xFB\x97X\xA5#\xAF\xAA\xA3c2\xF4\xB2\xBA\xBFwCș2ʽʦ\xC1..\x9C\xD5B+\xA1\xB0_\xA5\xC0\xA4\xA0\xAF\|
\xFA9!ւ\x84\xFC\xA5\x89
\xF6.\x90\xF1c\xAD\xA0T\x96*Vel!
p.\x913\xDB\xB5W\xC8\xF2x\xBC\xA2+d\xE0\x86p \xB6/\xB8'\x92
o\x87\\xAEK\xAA
\xA5X\xB6\xAFf2,\x96\xD2\xF6\xAD{mx@\xEF\xDEf>TRh\xB7ߋ\xCCs]+.\x98\xC28|%2\xBDl\x8D
\xA7\x88\xC3\xF6\xEF\x9F\x8B((J<\xCEt+\xB8\xA0#\xAER<\xA6M\xDCq\xC5\xFE\xCE6aȓ
\xADrK\x93\xE6h\xED\xF2\xFD\xD5p5\xD7\xE7\xE8\xF1L\xEC\xF1{\xE7#\x9B|\xF8l;#6\xB1'\xD3\xF9\xA7\xC98\xE7\xD7\xF4
.\xA1\xEBG\xD2mi\xF5\xDA(\xBE\x81X/3_M\x9AV\xB7\xBFm\xD0\xF8%q\xA3u\xA6dJ\x98i?\xCD}\x9A\xC1\xE3X\xAC\xBD\xBD\xEB\xA6r\xA1$\xB6\xFF\xBD\x96\xA9k\xD6\xDCV"\xD4\xE2dY\xEB\xCE4J2\xA4\xE4&Z)\xFD\xA7\xDE:\xBA\xB72\xB1\xFA(ݗ\x94\xEEI\xCA\xED\x8B \xA6".\xD6\xCA^[y
z0\xD2\xF65Zl\x94}\xB2\xDDo\xFFZJ\xCB<??\xAC.\xCAq\xAD\x8F\xEA\xF5Wj\xFC\xFA:
-\xF9\x8A\x85a\xE6I\xA9\x86\xCD\xC6\xF6_\xB7\xE6=\xD9\xEFȗ\xD6;Ҟ\xEF7PK+\x94r
\x96
PK Yy\xEELY\xE5\xD9-d
\xDAK & private/de.cinderella/construction.cdyPK Yy\xEEL\$+A
% \xB8
private/de.cinderella/certificate.binPK Yy\xEELz)\xA6~ \xE1 /
- private/de.cinderella/scripts/Draw/0/figures.csPK Yy\xEEL\x93\xF3~f^ } . \xF4 private/de.cinderella/scripts/Init/0/KETlib.csPK Yy\xEEL+\x94r
\x96
D \xAE private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.csPK \xD2 \xB6 T Construction created with Cinderella (http://cinderella.de)
+\xF9\x8A\x85a\xE6I\xA9\x86\xCD\xC6\xF6_\xB7\xE6=\xD9\xEFȗ\xD6;Ҟ\xEF7PK+\x94r
\x96
PK 9z\x91M\x85\2d
\xDFK & private/de.cinderella/construction.cdyPK 9z\x91My\x8Af_
% \xB8
private/de.cinderella/certificate.binPK 9z\x91M\xE0'X R /
+ private/de.cinderella/scripts/Draw/0/figures.csPK 9z\x91M\x93\xF3~f^ } . \xCE private/de.cinderella/scripts/Init/0/KETlib.csPK 9z\x91M+\x94r
\x96
D \x88 private/de.cinderella/scripts/Key type/0/Script+%28CindyScript%29.csPK \xD2 \x90 T Construction created with Cinderella (http://cinderella.de)
©2014 Ulrich Kortenkamp
\ No newline at end of file
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1301basic.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1303objparts.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1304symbol.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1305hyperpara.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1306poly.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1307poly2.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1308discont.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1309discont2.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1310totaldiff.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1311plate.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1312plane.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s13objview/s1313changescale.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy 2018-12-25 21:49:04 UTC (rev 49502)
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java 2018-12-25 21:49:04 UTC (rev 49502)
@@ -196,7 +196,8 @@
flg=14;
}
// 16.07.21
- if(str.indexOf(".SH")>-1 || str.indexOf(".BAT")>-1){
+ if(str.indexOf(".SH")>-1|| str.indexOf(".SH")>-1 || str.indexOf(".BAT")>-1){
+ //181125
if(str.indexOf("MAXIMA.")==-1 && str.indexOf("KC.")==-1){ /* 2016.07.22 */
flg=15;
}
@@ -311,16 +312,30 @@
@CindyScript("iskcexists")
public static boolean iskcexists(String dir){
- File file = new File(dir+"/kc.sh");
- if(file.exists()){
- file.setExecutable(true,false);
- //16.10.19
- return true;
- }
- else{
- return false;
- }
- }
+ if(ismacosx()){
+ File file = new File(dir+"/kc.command");
+ if(file.exists()){
+ file.setExecutable(true,false);
+ //16.10.19
+ return true;
+ }
+ else{
+ return false;
+ }
+ }
+ if(islinux()){
+ File file = new File(dir+"/kc.sh");
+ if(file.exists()){
+ file.setExecutable(true,false);
+ //16.10.19
+ return true;
+ }
+ else{
+ return false;
+ }
+ }
+ return false;
+ }
@CindyScript("pathsep")
// 17.09.06
@@ -357,13 +372,14 @@
if (!file.exists()) {
return "";
}
- FileReader fileReader = new FileReader(file);
- BufferedReader bufferedReader = new BufferedReader(fileReader);
+// FileReader fileReader = new FileReader(file);
+// BufferedReader bufferedReader = new BufferedReader(fileReader);
+ BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
String data;
- while ((data = bufferedReader.readLine()) != null) {
- res=res+data+"//";
+ while ((data = br.readLine()) != null) {
+ res=res+data+"/LF/";
}
- bufferedReader.close();
+ br.close();
} catch (IOException e) {
e.printStackTrace();
}
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,72 @@
+\documentclass{article}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\renewcommand{\labelitemi}{$\cdot$}
+
+\begin{document}
+
+\begin{center}
+installing of KeTCindy
+\end{center}
+
+\hfill Modified\ :\ \today
+
+\begin{enumerate}[\bf\large 1.]
+\item Install Cinderella, R and Maxima.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \item \url{https://www.sumatrapdfreader.org/download-free-pdf-viewer.html} (Sumatra)\\
+ \hspace*{10mm}Rem) Sumatra is only for Windows.
+
+ \end{itemize}
+\item Install TeX if any TeX has not been installed.
+ \begin{enumerate}[(1)]
+ \item TeXLive is recommended.
+ \begin{itemize}
+ \item Files necessary for KeTCindy have been implemented (2018 or later).
+ \begin{enumerate}[i)]
+ \item texmf-dist/scripts/ketcindy ketlib, setketcindy, ketoutset, etc.
+ \item texmf-dist/tex/latex/ketcindy Style files for ketcindy
+ \item texmf-dist/doc/support/ketcindy Manuals and source files
+ \end{enumerate}
+ \end{itemize}
+ \item KeTTeX is a light-weight TeXLive.
+ \begin{itemize}
+ \item Download from\\
+ \hspace*{5mm}Mac (kettex.dmg)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0}\\
+ \hspace*{5mm}Windows (kettex.exe)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/fthw4btjqqs33tc/kettex.exe?dl=0}\\
+ \hspace*{5mm}Linux (kettex.tar.xz)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0}
+ \item Move kettex generated by double clicking to the folder as follows.\\
+ \hspace*{10mm}Mac\ \ /Applications,Windows\ \ C:\
+ \end{itemize}
+ \item In case of other TeX, see Readme in ketcindy of {\bf 3.}(2).
+ \end{enumerate}
+
+\item Install KeTCdindy
+ \begin{enumerate}[(1)]
+ \item Download ketcindy from CTAN(\url{https://ctan.org}).\\
+ \hspace*{10mm}Search ketcindy > Package ketcindy > download
+ \begin{itemize}
+ \item[Rem)]The latest version can be download from Repository:\\
+ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\
+ \hspace*{10mm}Clone or download > Download ZIP
+ \item[Rem)]Download ketcindy-master as follows\\
+ \hspace*{10mm}Clone or download > Download ZIP
+ \end{itemize}
+ \item Install KeTCindy according to Readme in forMac/forWindow/forLinux.
+ \end{enumerate}
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,68 @@
+\documentclass{ujarticle}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[dvipdfmx,colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\西暦
+
+\renewcommand{\labelitemi}{・}
+
+\begin{document}
+
+\begin{center}
+KETCindyのインストール
+\end{center}
+
+\hfill 修正日:\today
+
+\begin{enumerate}[\bf\large 1.]
+\item Cinderella, R, Maxima をインストールする.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \item \url{https://www.sumatrapdfreader.org/download-free-pdf-viewer.html} (Sumatra)\\
+ \hspace*{10mm}注)SumatraはWindowsだけである.
+ \end{itemize}
+\item TeXをインストールしていない場合はインストールする.
+ \begin{enumerate}[(1)]
+ \item TeXLiveを推奨
+ \begin{itemize}
+ \item 2018以降ではketcindyが既に入っている.
+ \end{itemize}
+ \item KeTTeXはTeXLiveの軽量版
+ \begin{itemize}
+ \item 以下からダウンロードできる.\\
+ \hspace*{5mm}Mac (kettex.dmg)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0}\\
+ \hspace*{5mm}Windows (kettex.exe)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/fthw4btjqqs33tc/kettex.exe?dl=0}\\
+ \hspace*{5mm}Linux (kettex.tar.xz)\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0}
+ \item ダブルクリックしてできるkettexを以下に入れる.\\
+ \hspace*{10mm}Mac\ \ /Applications,Windows\ \ C:\
+ \end{itemize}
+ \item 他のTeXの場合は,{\bf 3.}(2)のReadmeを参照する.
+ \end{enumerate}
+
+\item KeTCindyのインストール
+ \begin{enumerate}[(1)]
+ \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\
+ \hspace*{10mm}ketcindyで検索 > Package ketcindy > download
+ \begin{itemize}
+ \item[注)]最新版は,Repositoryのサイト\\
+ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\
+ から以下のようにダウンロードできる.\\
+ \hspace*{10mm}Clone or download > Download ZIP
+ \item[注)]この場合は,ketcindy-masterになる.
+ \end{itemize}
+ \item forMac/forWindow/forLinuxにあるReadmeに従って,インストールする.
+ \end{enumerate}
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -156,12 +156,16 @@
\itemket{Description}Generic function to set the style of axis.
\itemket{Details}Parameters are:\\
1. Style of axis ("l" ; line(default), "a" : arrow)\\
-2. Name of horizontal ax ( default is x)\\
-3. Posion of horizontal name (default is "e")\\
-4. Name of horizontal ax ( default is y)\\
-5. Posion of horizontal name (default is "n")\\
-6. Name of origin (default is O)\\
-7. Position of origin (default is "sw")
+\hspace*{10mm}Rem)Write like \verb|"a0.5"| when setting the size.\\
+2. Name of horizontal ax ( default is \verb|"x"|)\\
+3. Posion of horizontal name (default is \verb|"e"|)\\
+4. Name of horizontal ax ( default is \verb|"y"|)\\
+5. Posion of horizontal name (default is \verb|"n"|)\\
+6. Name of origin (default is \verb|"O"|)\\
+7. Position of origin (default is \verb|"sw"|)\\
+8. Line style\\
+9. Color of axes\\
+10. Color of labels\\
\itemket{Examples}\mbox{}
\verb|Setax(["a","","","","","","nw"]);|\\
@@ -676,6 +680,15 @@
\end{center}
\end{cmd}
+%-------------Setarrow------------------------------
+\begin{cmd}{Setarrow}{setarrow}
+\itemket{Usage}Setarrow([arrowsize,angle,position,cut,linestyle]);
+\itemket{Description}Generic function to set styles of arrows.
+\itemket{Details}Defaults are arrowsize(1),angle(18),position(1),cut(1),linestyle("dr").
+\verb|-1| means to unchange the default.
+\itemket{Examples}Setsarrow([-1,30,-1,0.2]);
+\end{cmd}
+
%------------Arrowdata--------------------------------
\begin{cmd}{Arrowdata}{arrowdata}
\itemket{Usage}Arrowdata(name,[starting point, ending point] , options)
@@ -3032,7 +3045,6 @@
\verb|Assign("a*x^2+b*x",["a",1,"b",2]);| \hspace{10mm}// \verb|a| $\to$ \verb|1 and b| $\to$ \verb|2|
\end{cmd}
-
%-----------BBdata---------------------------------
\begin{cmd}{BBdata}{bbdata}
\itemket{Usage}BBdata(file name, options);
@@ -3050,7 +3062,20 @@
\includegraphics[bb=0.00 0.00 562.03 124.01,width=12cm]{Fig/bbdata.pdf}
\end{cmd}
+%-----------Asin---------------------------------
+\begin{cmd}{Asin}{asin}
+\itemket{Usage}Asin(real) , Acos(real)
+\itemket{Description} Return arcsine and arccosine.
+\end{cmd}
+
+%-----------Sqr---------------------------------
+\begin{cmd}{Sqr}{sqr}
+\itemket{Usage}Sqr(real)
+\itemket{Description} Return square root.
+
+\end{cmd}
+
%---------Colorcode-----------------------------------
\begin{cmd}{Colorcode}{colorcode}
\itemket{Usage}Colorcode(colortype1,colortype2,colorcode)
@@ -5251,6 +5276,7 @@
{\bf Drawing} \> \\
\hyperlink{addgraph}{AddGraph} \> manipulate more than one PD all together.\\
\hyperlink{anglemark}{Anglemark} \> draw an angle mark.\\
+\hyperlink{setarrow}{Setarrowdata} \> set styles of arrows.\\
\hyperlink{arrowdata}{Arrowdata} \> draw an arrow line between two points.\\
\hyperlink{arrowhead}{Arrowhead} \>draw an arrowhead with specified direction at a designated point.\\
\hyperlink{bezier}{Bezier} \> draw a Bezier curve.\\
@@ -5318,6 +5344,7 @@
\hyperlink{vtickmark}{Vtickmark} \> tick on the vertical ax.\\
{\bf Calculus and I/O} \> \\
+\hyperlink{asin}{Asin} \> return arcsine and arccosine.\\
\hyperlink{crossprod}{Crossprod} \> return the cross product of 2 vectors.\\
\hyperlink{derivative}{Derivative} \> find the derivative of a function or a plotting data.\\
\hyperlink{dotprod}{Dotprod} \> return the dot product of 2 vectors.\\
@@ -5336,6 +5363,7 @@
\hyperlink{ptstart, ptend}{Ptstart, Ptend} \> returns start point and end point of PD.\\
\hyperlink{ptcrv}{Ptcrv} \> Returns n-th point from PD.\\
\hyperlink{readoutdata}{ReadOutData} \> read external data.\\
+\hyperlink{sqr}{Sqr} \> return square root.\\
\hyperlink{writeoutdata}{WriteOutData} \> write out data in \ketcindy\ format.\\
{\bf Making Table} \> \\
Modified: trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -136,7 +136,7 @@
\hypertarget{addax}{}
\item[関数] Addax(0または1)
\item[機能] 座標軸の表示
-\item[説明] 引数が1のとき座標軸を描き,0のとき描かない。ただし,描画面には座標軸は表示されない。
+\item[説明] 引数が1のとき座標軸を描き,0のとき描かない。
初期設定は1で,座標軸を描かない場合のみ \verb|Addax(0)| とすればよい。
\vspace{\baselineskip}
@@ -160,26 +160,44 @@
引数はリストで与え,要素は順番に
-1. 軸の形状(直線は "l" ,矢印は "a") 初期設定は直線
+1. 軸の形状(直線は "l" ,矢印は "a") 初期設定は直線\\
+ 矢印の大きさの倍率を指定するときは,"a0.5"のようにする。\\
+ また,矢印のスタイルは Setarrowで指定する。
-2. 横軸名 初期設定は $x$
+2. 横軸名 初期設定は \verb|"x"|
-3. 横軸名の位置
+3. 横軸名の位置 初期設定は \verb|"e"|
-4. 縦軸名 初期設定は$y$
+4. 縦軸名 初期設定は \verb|"y"|
-5. 縦軸名の位置
+5. 縦軸名の位置 初期設定は \verb|"n"|
-6. 原点名 初期設定はO
+6. 原点名 初期設定は \verb|"O"|(文字として書かれる)
-7. 原点名の位置
+7. 原点名の位置 初期設定は \verb|"sw"|
-それぞれダブルクウォートでくくる。
+<<<<<<< HEAD
+8. 線種
-7つの引数のうちn番目だけを指定する場合は,[n,"内容"]で指定できる。
+9. 色
-また,後方は 初期設定なら省略できる。
+10. 文字の色
+それぞれダブルクウォートでくくる。色は,色名が使える。"red" など。
+
+10の引数のうちn番目だけを指定する場合は,[n,"内容"]で指定できる。
+=======
+8. 線スタイル
+
+9. 線の色
+>>>>>>> 8640fc8c8ce40892b14715d7a28d85d1079ee61b
+
+10.ラベルの色
+
+n番目以降を指定する場合は,[n,"内容"]で指定できる。
+
+また,後方は省略できる。
+
\vspace{\baselineskip}
【例】座標軸の先端を矢印にし,原点の北西にOを書く。
@@ -189,6 +207,10 @@
\hspace{10mm} \verb|Setax([7,"nw"]);|
+【例】軸を赤の点線にする。
+
+\hspace{10mm} \verb|Setax(["","","","","","","","do","red"]);|
+
【例】先端を矢印にし,横軸を$\theta$,縦軸を$x$にして矢じりの左側に書く。
\hspace{10mm} \verb|Setax(["a","\theta","","x","w"]);|
@@ -365,6 +387,14 @@
\end{verbatim}
\hspace{10mm}\input{Fig/pointsize}
+\hypertarget{setarrow}{}
+\item[関数] Setarrow(size,angle,position,cut,segstyle)
+\item[機能] 矢線の形状の設定をする。
+\item[説明] 引数は,順に,矢じりの大きさ, 開き角, 矢じり位置, 切り込み位置, 線種と表示色
+
+それぞれの意味と値は,\hyperlink{arrowdata}{Arrowdata()} を参照のこと。
+
+\vspace{\baselineskip}
\hypertarget{setmarklen}{}
\item[関数] Setmarklen(数)
\item[機能] 座標軸の目盛の長さを設定する
@@ -862,6 +892,8 @@
トリミング : "Cutend=m" または "Cutend=[m,n]" で,右辺が数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。
+これらの設定は,\hyperlink{setarrow}{Setarrow()} で初期設定を変更することができる。
+
\vspace{\baselineskip}
【例】オプションの設定とその結果を示す。
@@ -894,6 +926,13 @@
円A,Bの半径が同じ(たとえば0.5)であれば,\verb|Arrowdata([A,B],["Cutend=0.5"]);| でよい。
+\vspace{\baselineskip}
+\hypertarget{setarrow}{}
+\item[関数] Setarrow([arrowsize,angle,position,cut,linestyle])
+\item[機能] Arrowdata,Arrowheadで描く矢印のスタイルを設定する。
+\item[説明] arrowsize,angle,position,cut,linestyleは,順に大きさ(1),開き角(18),位置(1),切り込み(0),矢線スタイル("dr")である。(カッコ内はデフォルト値)
+
+
%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\vspace{\baselineskip}
\hypertarget{arrowhead}{}
@@ -2043,7 +2082,7 @@
\vspace{\baselineskip}
\hypertarget{expr}{}
-\item[関数] Expr([座標 , 位置 , 文字列])
+\item[関数] Expr([座標 , 位置 , 文字列],option)
\item[機能] \TeX 記法の文字列を与えて数式を書く。
\item[説明] Letterで文字列の前後に\$ \$をおくのと同じ。
@@ -2051,6 +2090,8 @@
複数の箇所に文字を書く場合は,Letter() と同様,引数をリストにして与える。
+optionは フォントサイズで,["size=32"] のように指定する。
+
\vspace{\baselineskip}
【例】 $f(x)=\dfrac{1}{4} x^2$ とその導関数 $f'(x)=\dfrac{1}{2} x$ の式,軸上に必要な数を入れる。
\begin{verbatim}
@@ -2078,16 +2119,18 @@
\vspace{\baselineskip}
\hypertarget{exprrot}{}
-\item[関数] Exprrot([座標 , 向き , 方向,文字列])
+\item[関数] Exprrot(座標 , 向き , 方向,文字列,option)
\item[機能] \TeX 記法の文字列を与えて傾いた数式を書く。
\item[説明] 「座標」の位置に,指定された向きで数式を書く。
向きはベクトルで与える。
-方向はオプションで, t (ベクトルと同じ向き) と n(ベクトルと垂直な向き) の両方を数字つきで与える。ただし,方向はオプション。
+方向は t (ベクトルと同じ向き) と n(ベクトルと垂直な向き) の両方を数字つきで与える。ただし,方向はオプション。
座標,向きとも,Cinderellaで作図した幾何点を用いることができる。
+optionは フォントサイズで,["size=32"] のように指定する。
+
\begin{verbatim}
Exprrot([3,2],[2,-1],"t0n1","\sqrt{3}");
Exprrot(C,B-A,"\frac{2}{3}");
@@ -2097,7 +2140,7 @@
\hspace{10mm}\includegraphics[bb=0.00 0.00 181.01 131.01,width=4cm]{Fig/exprrot.pdf} \hspace{10mm} \input{Fig/exprrot}
\vspace{\baselineskip}
-\hypertarget{letter}{}\item[関数] Letter([位置, 方向, 文字列])
+\hypertarget{letter}{}\item[関数] Letter([位置, 方向, 文字列],option)
\item[機能] 文字列を表示する
\item[説明] 「位置(座標)」と方向で指定された場所に文字を書き込む。
@@ -2112,6 +2155,14 @@
注)導関数の記号$'$は,数式モード(\$ ではさむ)で$'$(シングルクウォート)を用いる。
+optionは フォントサイズで,["size=32"] のように指定する。
+
+文字列が一つのときは,
+
+Letter(位置, 方向, 文字列,option)
+
+にできる。
+
\vspace{\baselineskip}
【例】
@@ -2128,12 +2179,14 @@
\hspace{10mm} \verb|Letter([A,"sw","A",E,"s","$ f(x)=\frac{1}{4} x^2 $"]);|
\vspace{\baselineskip}
-\hypertarget{letterrot}{}\item[関数] Letterrot(座標, 方向ベクトル,移動量, 文字列)
+\hypertarget{letterrot}{}\item[関数] Letterrot(座標, 方向ベクトル,移動量, 文字列,option)
\item[機能] 文字列を回転して表示する
\item[説明] 座標で示された位置に,方向ベクトルで指定された向きに回転して文字を書き込む。
第3引数は微小移動量で,略すこともできる。
+optionは フォントサイズで,["size=32"] のように指定する。
+
\begin{verbatim}
Letterrot(C,B-A,"t2n5","AB");
\end{verbatim}
@@ -3287,6 +3340,19 @@
計算値やプロットデータの値を取得したり,R用とのデータのやりとりをする。
\begin{description}
+
+\hypertarget{asin}{}
+\item[関数] Asin(実数),Acos(実数)
+\item[機能] 逆三角関数の値を求める。
+\item[説明] CindyScriptの組み込み関数に,arcsin(x),arccos(x) があるが,xの絶対値が1より大きい場合は虚数を返す。このことがRではエラーになるので,計算誤差により1よりわずかに大きくなる場合のために用意した関数。
+
+\vspace{\baselineskip}
+\hypertarget{sqr}{}
+\item[関数] Sqr(実数)
+\item[機能] 平方根を求める。
+\item[説明] CindyScriptの組み込み関数に,sqrt(x) があるが,xが負の場合は虚数を返す。これに対し,xが負の場合は0を返すようにした関数。計算誤差により1よりわずかに大きくなる場合のために用意した。
+
+\vspace{\baselineskip}
\hypertarget{bbdata}{}
\item[関数] BBdata(ファイル名,option)
\item[機能] 画像ファイルのサイズを求める
@@ -3911,7 +3977,7 @@
\verb| );|
\vspace{\baselineskip}
-\hspace{5mm} 点Aをドラッグ中(選択状態)\hspace{5mm} 他の点をクリックして選択状態を解除
+\hspace{5mm} 点Aをドラッグ中(選択状態)\hspace{5mm} 点A以外をクリックして選択状態を解除
\hspace{10mm}\includegraphics[bb=0.00 0.00 218.01 204.51,width=40mm]{Fig/ptselected01.pdf}
\hspace{10mm}\includegraphics[bb=0.00 0.00 219.01 204.51,width=40mm]{Fig/ptselected02.pdf}
@@ -5851,7 +5917,7 @@
\end{description}
\newpage
-%================== 3D ===============
+%================== 3D 概要 ===============
\section{\ketcindy 3D}
\subsection{概要}
\ketcindy 3Dの画面は次のように構成される。
@@ -5873,8 +5939,9 @@
KeTCindy3Dでは,線や面についての陰線処理を行う。陰線処理はC言語との連携により処理を速めている。C言語を使う環境整備が必要であるが,現在はこれを標準としている。C言語が使えない場合はRで計算する関数を用いることになるが,その場合はかなり時間がかかる。(場合にもよるが2分程度)
+%================== 3D 設定 ===============
\newpage
-\subsection{設定・定義}
+\subsection{設定}
\begin{description}
@@ -5889,6 +5956,7 @@
この関数は Initialization スロットに置く。Ketinit() も,平面の場合と異なり Initialization スロットに置く。KeTCindy3Dにおける変数の初期化などを行う,Start3d()はDrawスロットに書く。
+%---------------- Start3d --------------------------------------------
\vspace{\baselineskip}
\hypertarget{start3d}{}
\item[関数] Start3d(option)
@@ -5901,6 +5969,7 @@
optionに,除外点のリストを与えると,その点は空間点としない。(始点を移動しても位置は変わらない)
+ %---------------- Startsurf --------------------------------------------
\vspace{\baselineskip}
\hypertarget{startsurf}{}
\item[関数] Startsurf(options)
@@ -5921,43 +5990,204 @@
(3) ExeccmdC(); で,C言語を用いてまとめて描画する。
+%-------------------Xyzcoord -----------------------------------------------
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+\hypertarget{xyzax3data}{}
+\item[関数] Xyzax3data(name,xの範囲,yの範囲,zの範囲,options)
+\item[機能] 座標軸を描く
+\item[説明] 描画面に座標軸を描き,プロットデータ ax3d を作成する。nameは空文字列でよい。option は次の2つ。
+矢じり:"an":nは数字で矢じりの大きさ。nはなくてもよい。
+
+原点O:"Onesw":neswは微小位置。数字も付けられる。neswをつけない場合の初期値はsw。
+
+【例】 初期設定の座標軸\\
+\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|
+
+ 矢じりをつける
+
+ \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");|
+
+ 矢じりを大きくする
+
+ \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);|
+
+原点のOを表示する。
+
+ \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|
+
+ 原点のOの位置を調整して右上に表示する。やじりもつける。
+
+ \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);|
+
+
+【注意】Putaxes3d() で点を取ると原点に点Oが作成される。この点名Oと表示が重複するのが煩わしい場合は,作図後にこのoptionをつけてから出力するとよい。
+
+\end{description}
+%================== 3D 描画 ===============
+
+\newpage
+\subsection{描画}
+
+%================== 3D 点・線 ===============
+\subsubsection{点・線}
+
+\begin{description}
+ %---------------- Drawpoint3d --------------------------------------------
+\hypertarget{drawpoint3d}{}
+\item[関数] Drawpoint3d(座標)
+\item[機能] 空間点を描く
+\item[説明] 引数で与えた空間座標の点を描く。この点は幾何点ではない。また,TeX にも出力されない。幾何点にするには \hyperlink{putpoint3d}{Putpoint3d()} を用いる。TeXに点を出力するには,\hyperlink{pointdata3d}{Pointdata3d()} を用いる。
+
+引数は,座標のリストにすることもできる。
+
\vspace{\baselineskip}
-\hypertarget{isangle}{}
-\item[関数] Isangle()
-\item[機能] 角度スライダ(視点スライダ)の選択判断
-\item[説明] 角度スライダを選択しているときは true ,そうでないときは false を返す。
+【例】
+\begin{verbatim}
+ Drawpoint3d([1,1,1]);
+ Drawpoint3d([[1,1,1],[0,1,0]]);
+\end{verbatim}
-曲面の描画・陰線処理には時間がかかるため,角度スライダを動かすと反応が悪くなる。そこで,角度スライダを選択しているときは曲面の描画をしないようにすることで反応がよくなる。
+\vspace{\baselineskip}
+ %---------------- Pointdata3d --------------------------------------------
+\hypertarget{pointdata3d}{}
+\item[関数] Pointdata3d(名前,点リスト,options)
+\item[機能] 点の3Dデータと2Dデータを作成し,画面と\TeX に出力する。
+\item[説明] optionsは\hyperlink{pointdata}{Pointdata()}と同様。
\vspace{\baselineskip}
-【例】放物面の描画
-次のようにすると,スライダの点を選んでいる間はワイヤフレームモデルが描かれ,画面上の他の部分をクリックして選択状態が解除されると陰線処理された放物面が描かれる。
+【例】
\begin{verbatim}
- fd=[
- "z=4-(x^2+y^2)",
- "x=R*cos(T)","y=R*sin(T)",
- "R=[0,2]","T=[0,2*pi]","e"
- ];
- if(Isangle(),
- Sf3data("1",fd);
- ,
- Startsurf();
- Sfbdparadata("1",fd);
- Crvsfparadata("1","ax3d","sfbd3d1",fd);
- ExeccmdC("1");
- );
+ Pointdata3d("1",[[1,1,1],[0,1,0]],["Size=2","Color=red"]);
\end{verbatim}
+\vspace{\baselineskip}
-\end{description}
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+ %---------------- Putpoint3d----------------------------------------------
+\hypertarget{putpoint3d}{}
+\item[関数] Putpoint3d(リスト,option)
+\item[機能] 空間に幾何点を作図する
+\item[説明] 点の名称と座標を与えて点を作図する。複数の点を一度に作図できる。
+optionは,"fix"( 初期設定) または "free"。リスト ["free"] にしてもよい。
+
+"fix" では,固定点(ドラッグで移動できない点)とする。同じ名称の点がすでに存在する場合は,指定した位置に移動して固定点とする。
+
+"free" では,自由点(ドラッグで移動できる)とする。同じ名称の点がすでに存在する場合はなにもしない。
+
+\vspace{\baselineskip}
+【例】いくつか記述例を示す。
+
+ \verb|Putpoint3d(["A",[2,1,3]]);|
+
+ \verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");|
+
+ \verb|Putpoint3d(["A",[2,1,3]],"free");|
+
+\vspace{\baselineskip}
+ なお,この関数は幾何点を作るものであり,TeXには出力されない。TeXに点を出力するには,\hyperlink{pointdata}{Pointdata()} または \hyperlink{drwpt}{Drawpoint()}を併用する。
+
+ 空間における点の座標は,点名に"3d"を付加した名前の変数に代入される。たとえば,点Aの座標はA3dである。これにより,点の座標を取得できる。
+
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\newpage
-\subsection{描画}
-\begin{description}
+ %---------------- Putaxes3d---------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{putaxes3d}{}
+\item[関数] Putaxes3d([x,y,z])
+\item[機能] 軸上に幾何点を作る。
+\item[説明] 引数のリスト [x,y,z] に対し,点X(x,0,0) ,Y(0,y,0) , Z(0,0,z) および 原点Oを主画面上にとり,副画面上に対応する点Xz,Yz,Zz,Oz を作る。すでに同じ名称の点がある場合は,指定された位置に移動する。
+引数は,実数にすることもでき,Putaxes3d(a) は,Putaxes3d([a,a,a]) と同じになる。
+
+\vspace{\baselineskip}
+【例】
+
+Putaxes3d(5); 原点と,$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。
+
+Putaxes3d([1,2,3]); 原点と,$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+ %---------------- PutonCurve3d---------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{putonCurve3d}{}
+\item[関数] PutonCurve3d(点名,PD)
+\item[機能] 空間曲線上に点をとる
+\item[説明] プロットデータPDの曲線上に,点名の点をとる。
+
+とった点は固定点ではなく,曲線上にインシデントとなる。したがって,ドラッグして曲線上を動かすことができる。例は \hyperlink{partcrv3d}{Partcrv3d()} を参照のこと。
+ %---------------- Putonseg3d----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{putonseg3d}{}
+\item[関数] Putonseg3d(点名,点1,点2)
+\item[機能] 線分上に点を作る
+\item[説明] 点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。指定した点がすでに存在する場合は動かさない。
+
+点1,点2は幾何点の名称または座標で指定する。
+
+\vspace{\baselineskip}
+【例】A(1,-1,0)とB(0,2,2) の中点に点Cをとる。つぎのいずれでもよい。
+
+ \verb|Putonseg3d("C",A,B);|
+
+ \verb|Putonseg3d("C",[A,B]);|
+
+ \verb|Putonseg3d("C",[[1,-1,0],[0,2,2]]);|
+
+\vspace{\baselineskip}
+
+%------------------ Spaceline-----------------------------------------------
+\hypertarget{spaceline}{}
+\item[関数] Spaceline(name,list)
+\item[機能] 折れ線を描く
+\item[説明] 点の名称または座標のリストを与えて折れ線を描く。平面での Listplot() にあたる。
+
+options は線種(dr,da,do)
+
+\vspace{\baselineskip}
+【例】いくつか示す。
+
+・Spaceline("1",[[2,5,1],[4,2,3]]); 指定された2点を結んだ線分を描く。
+
+・Spaceline("2",[A,B,C,A]); 作図されている2点A,B,Cを結んだ三角形を描く。
+
+
+・節点を表示する場合は,Pointdata3d() で描画する。
+
+\begin{layer}{150}{0}
+\putnotese{80}{10}{ \input{Fig/oresenex01}}
+\end{layer}
+\begin{verbatim}
+ pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]];
+ Spaceline("1",pt);
+ Pointdata3d("1",pt,["Size=3"]);
+\end{verbatim}
+
+点の名前が必要であれば
+
+\verb|pname=apply(1..6,"P"+text(#));|
+
+のようにして,名前リストを作ることができる。
+\vspace{\baselineskip}
+%------------------ Spacecurve-----------------------------------------------
+\hypertarget{spacecurve}{}
+\item[関数] Spacecurve(name,式,定義域,options)
+\item[機能] 空間曲線を描く
+\item[説明] 媒介変数で表された曲線を描く。optionは解像度 Num
+
+\vspace{\baselineskip}
+【例】螺旋を描く
+
+\verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|
+
+\vspace{\baselineskip}
+ \begin{center} \input{Fig/rasen} \end{center}
+
+
+ %---------------- Bezier3d-----------------------------------------------
\hypertarget{bezier3d}{}
\item[関数] Bezier3d(name,リスト1,リスト2)
\item[機能] 空間ベジェ曲線を描く
@@ -5984,398 +6214,265 @@
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{changestyle3d}{}
-\item[関数] Changestyle3d(リスト,リスト)
-\item[機能] 3Dプロットデータの属性を変更
-\item[説明] 第1引数のプロットデータの属性を,第2引数に変更する。
-
-たとえば,補助線など,画面には描いてもTeXに書き出さない線を描画するときは,optionに["notex"] をつけるが,これをあとから付加したい場合に利用する。プロットデータはリストにできるので,複数のプロットデータの属性をまとめて変更することができて便利である。
-
+%------------------ Mkbezierptcrv3d-----------------------------------------------
\vspace{\baselineskip}
-【例】4つの点で四面体の辺を描き,まとめて notex にする。点A,B,C,Dはとってあるものとする。
-\begin{verbatim}
- Spaceline("1",[A,B]);
- Spaceline("2",[A,C]);
- Spaceline("3",[B,C]);
- Spaceline("4",[A,D]);
- Spaceline("5",[B,D]);
- Spaceline("6",[C,D]);
- edges=apply(1..6,"sl3d"+text(#));
- Changestyle3d(edges,["notex"]);
-\end{verbatim}
+\hypertarget{mkbezierptcrv3d}{}
+\item[関数] Mkbezierptcrv3d(点リスト)
+\item[機能] 制御点を自動的にとる空間ベジェ曲線
+\item[説明] リストで与えた点に対し,制御点を自動的に生成してベジェ曲線を描く。
-\hypertarget{concatobj}{}
-\item[関数] Concatobj(リスト,option)
-\item[機能] いくつかのobjデータを結合する
-\item[説明] 多面体の各面の頂点リストから面データ(頂点リストと面リスト)を作る。
-
+ 制御点は,2つの点に対して,その点を端点とする線分上に2つ作られる。これを適宜移動して任意の曲線にすることができる。\hyperlink{bezier3d}{空間ベジェ曲線 Bezier3d()} を参照のこと。
+
\vspace{\baselineskip}
-【例】4点A,B,C,Dを頂点とする四面体を描く。
-
-四面体は4つの面からなっている。頂点をA,B,C,Dとすると,4つの面は
-
- △ABC,△ABD,△ACD,△BCD\\
-である。
-
- \begin{center} \input{Fig/concatobj} \end{center}
-
-そこで
-
- \verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|
+【例】\verb|Mkbezierptcrv3d(["A","B","C","D"]);|\\
+ 線分AB上に2点a1p,a2p,線分BC上に2点a2p,a2q,線分CD上に2点a3p,a3qができる。
-とすると,面データ [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] が返される。
-
-この面データを使って四面体を描くことができる。コード例は,\hyperlink{vertexedgeface}{VertexEdgeFace()} を参照のこと。
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{crvsfparadata}{}
-\item[関数] Crvsfparadata(name,PD1,PD2,式)
-\item[機能] 曲面による曲線の陰線処理を行う。
-\item[説明] 曲線PD1を表示するにあたり,曲面PD2によって隠れる部分処理を行う。
+\vspace{\baselineskip}
+%------------------ Skeletonparadata-----------------------------------------------
+\hypertarget{skeletonparadata}{}
+\item[関数] Skeletonparadata(name,PDリスト,PDリスト,option)
+\item[機能] 陰線処理(スケルトン処理)をおこなう
+\item[説明] 描画されている線と軸について陰線処理をおこなう。
-曲面PD2のプロットデータを作るため,Sfbdparadata() も同時に用いることになる。nameは,Sfbdparadata() と同じものにする。
+第2引数の線(プロットデータ)が,第3引数の線(プロットデータ)によって隠される部分を消去する。第2,第3引数を省略した場合は,すべての線について,互いの陰線処理をおこなう。optionで消去する部分の長さを指定できる。\\
+他のオプション\\
+ \verb|"No=点リスト"| 点リストの点が選ばれているときは実行しない\\
+ \verb|"File=y/m/n (n)"| データファイルを作るか\\
+ \verb|"Check=点リスト"| 点リストの点が変更されていたら,ファイルを作り直す
-作図例は,\hyperlink{execcmdc}{ExeccmdC()} を参照のこと。
-C言語が使えない場合は,CrvsfparadataR(name,PD1,PD2,式,options1,options2) を使う。
-options1 は分割数と誤差限界, options2 は陰線の線種。
-
\vspace{\baselineskip}
-\hypertarget{datalist}{}
-\item[関数] Datalist2d()
-\item[機能] 画面上のプロットデータのリストを取得する
-\item[説明] 画面に描かれているすべてのプロットデータのリストを返す。
+【例】螺旋と線分,座標軸の陰線処理
-空間図形は,Cinderellaの画面上に射影し表示する。そのため,KeTCindy3Dは,空間におけるプロットデータと,画面上に表示するプロットデータの2つを作っている。Datalist2d()では,画面上に表示するプロットデータのリストを返す。
-
-\vspace{\baselineskip}
-【例】
+次のように螺旋と線分,座標軸を描いておく。
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
- Spaceline("1",[A,B]);
- println("PD="+Datalist2d());
+ Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");
+ Putpoint3d(["A",[0,-2,-2]]);
+ Putpoint3d(["B",[-1,1,3]]);
+ Spaceline([A,B]);
+ Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
\end{verbatim}
-とすると,コンソールに PD=[ax2d,AB2d] と表示される。ax2dは座標軸のプロットデータ ax3d に,AB2d は線分ABのプロットデータ AB3d に対応している。
+座標軸のプロットデータは ax3d,線分は AB3d,螺旋は sc3d1 である。これに対し,
-\vspace{\baselineskip}
-\hypertarget{datalist}{}
-\item[関数] Datalist3d()
-\item[機能] 空間のプロットデータのリストを取得する
-\item[説明] 空間に描かれているすべてのプロットデータのリストを返す
+\hspace{10mm} \verb|Skeletonparadata("1");|
-\vspace{\baselineskip}
-【例】
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
- Spaceline("1",[A,B]);
- println("PD="+Datalist3d());
-\end{verbatim}
-とすると,コンソールに PD=[ax3d,AB3d] と表示される。
+ 描画されている線と軸について陰線処理をおこなう。(図左)
+\hspace{10mm} \verb|Skeletonparadata("1",[2]);|
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+ 重なった部分の空きを2にする。(図中央)
+
+\hspace{10mm} \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);|
+
+螺旋によって隠れる部分だけ消去する。(図右)
-\hypertarget{dist3d}{}
-\item[関数] Dist3d(a1,a2)
-\item[機能] 空間の2点間の距離を返す
-\item[説明] 引数a1,a2 は作図点の名称,空間点の名称のいずれでもよい。
+\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02}
+ \input{Fig/skeletonparadata03} \end{center}
-次の3通りの記法は同じ結果を返す。混在も可
-\begin{verbatim}
- Dist3d("A","B");
- Dist3d(A,B);
- Dist3d(A3d,B3d);
-\end{verbatim}
-\vspace{\baselineskip}
+このほか,次も可能。
-\hypertarget{drawpoint3d}{}
-\item[関数] Drawpoint3d(座標)
-\item[機能] 空間点を描く
-\item[説明] 引数で与えた空間座標の点を描く。この点は幾何点ではない。また,TeX にも出力されない。幾何点にするには \hyperlink{putpoint3d}{Putpoint3d()} を用いる。TeXに点を出力するには,\hyperlink{pointdata3d}{Pointdata3d()} を用いる。
+\hspace{10mm} \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"],[2]);|
-引数は,座標のリストにすることもできる。\\
-\vspace{\baselineskip}
-【例】
-\begin{verbatim}
- Drawpoint3d([1,1,1]);
- Drawpoint3d([[1,1,1],[0,1,0]]);
-\end{verbatim}
-\vspace{\baselineskip}
+\hspace{10mm} \verb|Skeletonparadata("1",["AB3d"],["ax3d","sc3d1"]);|
-\hypertarget{execcmdc}{}
-\item[関数] ExeccmdC(name,options1,options2)
-\item[機能] 曲面を表示する。戻り値は,対象にしたプロットデータのリスト。
-\item[説明] データが作成された曲面を表示する。
-options1 には"r","m", "Wait=n" と輪郭線の線種が指定できる。Wait の初期値は20
+\end{description}
- "r","m"に関しては,オプションなしまたは,”” のとき
+%================== 3D 多面体 ===============
+\subsubsection{多面体}
+
+多面体の描画について,四面体の場合を例にして説明する。
+
+四面体は4つの面からなっている。頂点をA,B,C,Dとすると,4つの面は
- i) データファイルがなければ,新しく作る
-
- ii) データファイルが既にあればそれを読み込む
-
- "m" のとき,強制的にデータファイルを作り直す。
-
- "r" のとき,すでにあるデータファイルを読み込む。
-
-options2 には 軸の陰線について "nodisp" または線種が指定できる。 初期設定は "do"。
+\hspace{20mm} △ABC,△ABD,△ACD,△BCD
-options2だけを指定したい場合は,options1 を空リスト [ ] にする。
+である。
+ \begin{center} \input{Fig/concatobj} \end{center}
-\vspace{\baselineskip}
-【例】回転放物面と座標軸,線分を陰線処理したデータを作って表示する。線分の端点A,Bはあらかじめ作図しておく。
+頂点のリスト[A,B,C,D] に対し,Aから順に番号をつけると,各面の頂点の順番は
- 初期設定では陰線は点線で表示される。(下図左)
-\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
- Spaceline([A,B]);
- fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
- Startsurf();
- Sfbdparadata("1",fd);
- Crvsfparadata("1","AB3d","sfbd3d1",fd);
- Crvsfparadata("2","ax3d","sfbd3d1",fd);
- ExeccmdC("1");
-\end{verbatim}
-options2を ["nodisp"] にすると,陰線は非表示になる。(下図右)
-\begin{verbatim}
- ExeccmdC("1",[],["nodisp"]);
-\end{verbatim}
+\hspace{20mm}[1,2,3],[1,2,4],[1,3,4],[2,3,4]
- \begin{center} \input{Fig/crvsfparadata2} \input{Fig/crvsfparadata1} \end{center}
+と表現できる。
-戻り値を使うと,陰線のスタイル(線種,色)を変えることができる。戻り値と同じものがコンソールに「readoutdata from template3D1.txt : 」として表示されるので,これを見て操作対象を決めればよい。たとえば,上の左図で,線分ABの陰線はリストの4番目の crvsfh3d1 なので,
+頂点のリストと,この面リストを組にして [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] としたものを「面データ」という。この面データを使って,多面体を描画するのが VertexEdgeFace() である。
-\begin{verbatim}
- ret=ExeccmdC("1");
- Changestyle3d(ret_4,["da","Color=red"]);
-\end{verbatim}
+多面体の陰線処理は2通りある。ひとつは,多面体を線画と考えて,隠れる部分だけを処理する方法で,Skeletonparadata() を用いる。\hyperlink{concatobj}{Concatobj()} の例を参照のこと。
-とすると,赤の破線になる。
+もうひとつは,面と考えて,面に隠れる部分を点線で描いたり,非表示にしたりする方法で,Phparadata() を用いる。 \hyperlink{phparadata}{Phparadata()}の例を参照のこと。
+
+\begin{description}
-\hspace{20mm} \input{Fig/execcmdc1}
+ %-----------------Concatobj -----------------------------------------------
+\hypertarget{concatobj}{}
+\item[関数] Concatobj(リスト,option)
+\item[機能] いくつかのobjデータを結合する
+\item[説明] 多面体の各面の頂点リストから面データ(頂点リストと面リスト)を作る。
-この他,\hyperlink{sfbdparadata}{Sfbdparadata()},\hyperlink{wireparadata}{Wireparadata()} も参照のこと。
+たとえば,\verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);| とすると,面データ [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] が返される。
\vspace{\baselineskip}
-\hypertarget{embed}{}
-\item[関数] Embed(name,PDリスト,式,変数リスト)
-\item[機能] 2D図形の空間内平面へ埋め込む
-\item[説明] 第2引数は2Dの図形のプロットデータのリスト,式と変数は平面を記述する式と変数。平面は原点$vo$と2つの基本ベクトル $\overrightarrow{vx},\overrightarrow{vy}$を用いて,$vo+x \cdot \overrightarrow{vx}+y \cdot \overrightarrow{vy}$ の形で表すことができる。変数(基本ベクトルの係数)は$x,y$ でなく,$s,t$ でもよい。式,変数リストともに文字列にする。また,基本ベクトルは直交していなくてもよいし,長さが異なってもよいが,縦横同じスケールの直交座標系にするのがわかりやすいだろう。
+【例】4点A,B,C,Dを幾何点として作り,これを頂点とする四面体を描く。
-\vspace{\baselineskip}
-【例】正三角形と外接円を空間内の平面に埋め込む
\begin{verbatim}
- Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]);
- Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]);
- Defvar("vo=[3,3,3]");
- Defvar("vx=[0,1,0]");
- Defvar("vy=[0,0,1]");
- Putpoint3d(["A",[3,3,3]]);
- Circledata("1",[[0,0],[2,0]],["nodisp"]);
- Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
- Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");
- Ptsize(3);
- Drawpoint(A);
+Putpoint3d("A",2*[0,0,sqrt(3)]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[-1,-1/sqrt(3),0]);
+phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
+VertexEdgeFace("1",phd);
+Skeletonparadata("1");
+pa=Parapt(A3d);
+pb=Parapt(B3d);
+pc=Parapt(C3d);
+pd=Parapt(D3d);
+Letter([pa,"ne","A",pb,"sw","B",pc,"se","C",pd,"e","D"]);
\end{verbatim}
- \begin{center} \input{Fig/embed01} \end{center}
-ここで,Embed()で引き渡す vo,vx,vy については,Rでの変数定義が必要なので(\ketcindy では行わない)Defvar() によって定義をしている。
+\begin{center} \input{Fig/concatobj} \end{center}
-原点,基本ベクトルを,点を作図して次のようにすることもできる。この場合は Defvar() は不要。
+<参考1>
-\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);
- Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");
-\end{verbatim}
-\begin{center}
-\includegraphics[bb=0 0 477.02 383.02 , width=6cm]{Fig/embed03.pdf}
-\end{center}
+幾何点を作らないで四面体を描くのであれば,
-この場合,点B,Cの座標がそのまま基本ベクトルとなっているが,原点Aに対して描画平面上にはB,Cがないので図がわかりにくい。図をわかりやすくするならば次のようにする。
\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);
- Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]");
+a=2*[-1,-1/sqrt(3),0];
+b=2*[1,-1/sqrt(3),0];
+c=2*[0,sqrt(3)-1/sqrt(3),0];
+d=2*[0,0,sqrt(3)];
+phd=Concatobj([[a,b,c],[a,b,d],[a,c,d],[b,c,d]]);
\end{verbatim}
- また,平面を記述するのに,平面の原点と法線ベクトルを用いて Perpplane() を用いると,基本ベクトルが生成されるので、これを利用することができる。次のスクリプトでは,Skeletonparadata() を用いて陰線処理もしている。
+としてもよい。
+
+\vspace{\baselineskip}
+<参考2>
+四面体のような凸型多角形の場合は,CindyScriptの convexhull3d() 関数を用いて次のようにすることができる。面リストではなく頂点リストを与えるだけなので手間を省くことができる。
+
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");
- Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);
- Perpplane("E-F","P",P3d-O3d,"put");
- vec1=3*(E3d-P3d);
- vec2=3*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2]);
- Putpoint3d(["B",P3d+vec1-vec2]);
- Putpoint3d(["C",P3d-vec1-vec2]);
- Putpoint3d(["D",P3d-vec1+vec2]);
- Spaceline("1",[A,B,C,D,A]);
- Circledata("1",[[0,0],[2,0]],["nodisp"]);
- Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
- Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");
- Ptsize(3);
- Drawpoint(P);
- Skeletonparadata("1");
+a=2*[0,0,sqrt(3)];
+b=2*[1,-1/sqrt(3),0];
+c=2*[0,sqrt(3)-1/sqrt(3),0];
+d=2*[-1,-1/sqrt(3),0];
+phd=convexhull3d([a,b,c,d]);
\end{verbatim}
- \begin{center} \input{Fig/embed02} \end{center}
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+%-------------------VertexEdgeFace -----------------------------------------------
+\hypertarget{vertexedgeface}{}
+\item[関数] VertexEdgeFace(name,面データ,options)
+\item[機能] 面データを用いて多面体を描く
+\item[説明] 面データは,たとえば四面体ABCDの場合は,[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] である。
+4点A,B,C,Dをとっておき,このリストを引数に与えると,四面体が描かれる。
-\hypertarget{intersectcrvsf}{}
-\item[関数] Intersectcrvsf(name,PD,式)
-\item[機能] 曲線と曲面の交点の座標を求める
-\item[説明] PDは曲線のプロットデータ。式は曲面の式。
+生成されるプロットデータは,
- 曲面は,Sfbdparadata()でデータを作成し,ExeccmdC()で表示しておく。交点の座標は,"intercrvsf"+name に代入される。コマンドの実行順序は次の例のようにする。
+phv3d:頂点のリスト
+phe3d:辺のリスト
+
+phf3d:面リスト
+
+なお,それぞれ末尾にnameが付加される。
+
\vspace{\baselineskip}
-【例】回転放物面と線分の交点の座標を表示する。
+【例】4点A,B,C,Dを取り,正四面体ABCDを描く
\begin{verbatim}
- Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]);
- Spaceline("1",[A,B]);
- fd=[
- "z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)",
- "R=[0,2]","T=[0,2*pi]","e"
- ];
- Startsurf();
- Sfbdparadata("1",fd);
- Intersectcrvsf("1","sl3d1",fd);
- ExeccmdC("1",[""]);
- println("Intersect="+intercrvsf1);
- Drawpoint3d(intercrvsf1);
+ Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+ Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+ Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+ Putpoint3d("D",2*[0,0,sqrt(3)]);
+ phd=[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]];
+ VertexEdgeFace("1",phd);
\end{verbatim}
-実行すると,コンソールに\\
- \verb|Intersect=[[0,1.57,1.52],[0,-1.91,0.36]] |
-と表示され,画面には緑で交点が表示される。。
+ \begin{center} \input{Fig/vertex01} \end{center}
+面リストは,Congatobj() を使って作ることができる。陰線処理して描く場合も含め,\hyperlink{concatobj}{Concatobj()} の例を参照のこと。
-
\vspace{\baselineskip}
-\hypertarget{intersectsgpL}{}
-\item[関数] IntersectsgpL(点名,線分,面,描画方法)
-\item[機能] 空間の線分(直線)と平面の交点を求める。
-\item[説明] 引数の線分は線分の端点を "A-B" の形もしくは空間座標のリストで与える。
+ %------------------Phparadata -----------------------------------------------
+\hypertarget{phparadata}{}
+\item[関数] Phparadata(name,name2,options)
+\item[機能] 多面体を陰線処理して描く
+\item[説明] 多面体のプロットデータをVertexEdgeFace() で作る。このプロットデータに対し,隠れている面(辺)を陰線処理して表示する。第1引数は通常のname,第2引数のname2は,VertexEdgeFace() で与えたnameと同じものとする。
- 引数の面は,面内の3点を "C-D-E" の形もしくは空間座標のリストで与える。
+ optionsは,全体の線種("dr,2"など)と,陰線の線種を"Hidden=線種" で指定できる。 初期設定では陰線は表示しない。
- 戻り値は,[pt,flag1,flag2,val1,val2]
-
- pt:直線と平面の交点の座標。直線と平面が平行で交点が存在しない場合は空リスト[]
-
- flag1 : 交点が線分内にあれば true ,なければ false
-
- flag2 : 交点が面内にあれば true,なければ false
-
- val1,val2 :
-
- 描画方法は,"put" または "i" , "e" 。
-
- put : 幾何点を作る
-
- i : 線分内にあれば点を描く
-
- e : 平面で交われば点を描く
-
\vspace{\baselineskip}
-【例】座標のリストで与える記述例\\
- \verb|IntersectsgpL("P",[p1,p2],[p3,p4,p5],"draw");|
-
-\vspace{\baselineskip}
-【例】立方体を平面で切った図を描く。
+\begin{layer}{150}{0}
+\putnotese{80}{0}{ \input{Fig/phparadata04}}
+\end{layer}
- いろいろな手順が考えられるが,ここでは次の手順で描く。
-
- (1) 立方体の頂点をとる。1辺の長さをHnとする。
-
- ここでは軸上の点はPutaxes3d()でとる。
-
-(2) 切断面を決める点E,F,Gを辺上の自由点としてPutonseg3d()でとる。
-
-(3) E,F,Gを通る平面と,辺AC,DYとの交点をとり,M,Nとする。
-
-(4) 全体を多面体として面データを作って描画する。
+【例】 四面体を描く。
\begin{verbatim}
- Hn=3;
- Putaxes3d(Hn);
- Putpoint3d("A",[Hn,Hn,0]);
- Putpoint3d("B",[Hn,0,Hn]);
- Putpoint3d("C",[Hn,Hn,Hn]);
- Putpoint3d("D",[0,Hn,Hn]);
- Putonseg3d("E",X,B);
- Putonseg3d("F",Z,B);
- Putonseg3d("G",Z,D);
- IntersectsgpL("M","A-C","E-F-G","put");
- IntersectsgpL("N","D-Y","E-F-G","put");
- phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O],
- [O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]);
- VertexEdgeFace("1",phd);
- Nohiddenbyfaces("1","phf3d1");
+Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[0,0,sqrt(3)]);
+phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
+VertexEdgeFace("1",phd);
+Phparadata("1","1",["Hidden=do"]);
\end{verbatim}
-Cinderellaの描画面はつぎのようになる。点E,F,Gをドラッグして,適当な位置の断面にする。ただし,M,Nは辺上にあることが条件である。
+なお,VertexEdgeFace() で四面体が描かれるが,Phparadata() により非表示になる。
+Figureボタンで描き出せば正しく出力されるので,Phparadata() を実行する前に画面上に表示して確認してからPhparadata() を実行するとよい。
+
\vspace{\baselineskip}
-\includegraphics[bb=0 0 713.04 327.02 , width=12cm]{Fig/IntersectsgpL0.pdf}
+【例】切頂二十面体を描く。
-
-できた図は下図左。これに,次のスクリプトを追加すれば,断面上方の立方体の各辺も点線で描かれる。(下図右)
+小林・鈴木・三谷による多面体データ \verb|polyhedrons_obj| を用いて,s06の切頂二十面体(サッカーボール型)を描く。 \verb|polyhedrons_obj| は KeTCindyシステムの data ディレクトリにあるので,Setdirectory() でカレントディレクトリを作業ディレクトリと切替ながら出力する。
\begin{verbatim}
- Spaceline("1",[E,B,F],["do"]);
- Spaceline("2",[B,C,M],["do"]);
- Spaceline("3",[C,D,N],["do"]);
- Spaceline("4",[D,G],["do"]);
+ Setdirectory( Dirhead+"/data/polyhedrons_obj");
+ phd=Readobj("s06.obj",["size=3"]);
+ Setdirectory(Dirwork);
+ VertexEdgeFace("s06",phd);
+ Phparadata("1","s06");
\end{verbatim}
-\begin{center} \input{Fig/IntersectsgpL1} \input{Fig/IntersectsgpL2} \end{center}
+ VertexEdgeFace() の name は通常の "1" でもよい。その場合は,\verb|Phparadata("1","1");| とするが,わかりにくいので上のようにした。
+
+実行すると,Cinderellaの描画面は次のように頂点だけが描かれる。
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+\begin{center}
+ \includegraphics[bb=0 0 726.04 365.02 , width=10cm]{Fig/phparadata01.pdf}
+\end{center}
+
+\vspace{\baselineskip}
+全体の線種と,陰線の線種を
+
+\verb|Phparadata("1","s06",["dr,2","Hidden=do"]);|
-\hypertarget{invparapt}{}
-\item[関数] Invparapt(座標,PD)
-\item[機能] 描画面上の座標に対応する曲線上の点の座標を返す
-\item[説明] Cinderellaの描画面上の座標を与えて,それに対応する曲線上の3次元座標を返す。
-\\
-空間内の曲線を作図すると,曲線の空間内のプロットデータとともに,描画面上に描くためのプロットデータも作られる。これを利用すると,描画面上の位置から曲線上の座標を求めることができる。
+で指定したのが下図右である。
-\vspace{\baselineskip}
-【例】螺旋と線分を描いたとき,描画面上での交点(空間内の交点ではない)に対応する螺旋上の点の座標を求め部分曲線を描く。
+ \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center}
+【注意】
+
+ polyhedrons obj のデータを使って,続けて異なる多面体を描きたい場合は注意が必要である。Readobj()だけを変更して別のデータを読めばよさそうであるが,前のデータが残っていてうまくいかない。VertexEdgeFace() のname を(したがって,Phparadata()の第2引数も)書き換えるか,作業フォルダ(fig) の中身を削除してから実行する。たとえば,上のコードで切頂二十面体を描いた後,正八面体(r02)を描こうとするならば,
\begin{verbatim}
- Spaceline("1",[[-1,-1,-1],[1,2,3]]);
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]);
- tmp=Intersectcrvs("sl2d1","sc2d1");
- p1=Invparapt(tmp_1,"sc3d1");
- p2=Invparapt(tmp_2,"sc3d1");
- Partcrv3d("1",p1,p2,"sc3d1");
+ Setdirectory( Dirhead+"/data/polyhedrons_obj");
+ phd=Readobj("r02.obj",["size=3"]);
+ Setdirectory(Dirwork);
+ VertexEdgeFace("2",phd);
+ Phparadata("1","2");
\end{verbatim}
- \begin{center}\scalebox{0.8}{ \input{Fig/invparapt}} \end{center}
-
-ここで,sl2d1,sc2d1 は線分と螺旋の描画面上での(平面の)プロットデータである。Intersectcrvs() で平面上の交点の座標(複数あるのでリストが返る)を求め,Invparapt() で対応する螺旋上の点の座標を求めて部分曲線を描いている。実際に交わる点での部分曲線ではないことに注意。
-
-\vspace{\baselineskip}
-\hypertarget{mkbezierptcrv3d}{}
-\item[関数] Mkbezierptcrv3d(点リスト)
-\item[機能] 制御点を自動的にとる空間ベジェ曲線
-\item[説明] リストで与えた点に対し,制御点を自動的に生成してベジェ曲線を描く。
-
- 制御点は,2つの点に対して,その点を端点とする線分上に2つ作られる。これを適宜移動して任意の曲線にすることができる。\hyperlink{bezier3d}{空間ベジェ曲線 Bezier3d()} を参照のこと。
+ のようにする。
-\vspace{\baselineskip}
-【例】\verb|Mkbezierptcrv3d(["A","B","C","D"]);|\\
- 線分AB上に2点a1p,a2p,線分BC上に2点a2p,a2q,線分CD上に2点a3p,a3qができる。
-
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+%------------------- Nohiddenbyfaces -----------------------------------------------
\hypertarget{nohiddenbyfaces}{}
\item[関数] Nohiddenbyfaces(name,PD1,PD2,option1,option2)
\item[機能] 面に対し曲線を陰線処理する
\item[説明] PD2で与えられた面に対し,曲線PD1の面に隠れている部分を陰線処理する。
-引数PD1を省略するとすべての曲線が対象となる。陰線処理された線は初期設定では点線で表される。この線種はoption2で変更できる。たとえば,["da"] とすると破線になる。option1は曲線全体のoptionであるので,option2 だけを指定する場合は,option1 として空リスト[ ] が必要である。
+引数PD1を省略するとすべての曲線が対象となる。陰線処理された線は初期設定では点線で表される。この線種はoption2で変更できる。たとえば,["da"] とすると破線になる。["nodsip"] とすると,陰線は表示されない。option1は曲線全体のoptionであるので,option2 だけを指定する場合は,option1 として空リスト[ ] が必要である。
option2では,"Eps=" で,陰線処理時の許容限界を設定できる。陰線処理がうまくいかないときは,この値を \verb|Eps=10^(-4)| のように変えてみるとよい。初期設定は \verb|Eps=10^(-2)|。
\vspace{\baselineskip}
@@ -6404,343 +6501,665 @@
とすれば,座標軸だけが陰線処理されて破線で描かれる。
%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+\end{description}
+
+%================== 3D 曲面 ===============
+\subsubsection{曲面}
+
+曲面の描画には,ワイヤーフレームモデルとサーフェスモデルがある。ワイヤーフレームモデルは,曲面を編目で表すものであり,サーフェスモデルは編目のない面として,その輪郭線を描くものである。
+
+ \begin{center} \input{Fig/surfacemodel} \end{center}
+
+%\hspace{20mm}ワイヤーフレームモデル \hspace{10mm}サーフェスモデル
+
+KeTCindyでは,それぞれ次の関数を用いて描画する。
+\begin{tabbing}
+12345678901234567890123456789012345678\=\kill
+陰線処理をしないワイヤーフレームモデル \>Sf3data(name,form,options)\\
+サーフェスモデル \>Sfbdparadata(name,form,options)\\
+陰線処理をしたワイヤーフレームモデル \>Wireparadata(name,PD,form,n1,n2,options)
+\end{tabbing}
+ただし,陰線処理をするためには面のデータが必要なので,Sfbdparadata() で描画した後,Wireparadata()で陰線処理して描画する。
+
+また,サーフェスモデルの描画では,陰線処理に時間がかかるため,C言語の使用を前提としている。したがって,C言語を用いて描画を行う ExeccmdC() を併用する。
+
+引数の form は,方程式 と,変数の定義域を文字列のリストにしたものである。方程式のパターンは次の3通りがある。
+
+(1) $z=f(x,y)$
+
+ \hspace{5mm} 【例】式:$z=x^2-y^2$
+
+ \hspace{15mm} 定義域:$x=(-2,2) , y=(-2,2)$
+
+(2) $z=f(x,y),x=g(r,t),y=h(r,t)$
+
+ \hspace{5mm} 【例】式:$z=4-(x^2+y^2) , x=r\cos t , y=r\sin t$
+
+\hspace{15mm} 定義域:$r=(0,2) , t=(0,2\pi)$
+
+(3) $x=f(u,v),y=g(u,v),z=h(u,v),$
+
+ \hspace{5mm} 【例】式:$x=2\sin u \cos v , y=2\sin u \sin v , z=2\cos u $
+
+\hspace{15mm} 定義域:$u=(0,\pi) , v=(0,2\pi)$
+
+ここで,(2)と(3)は媒介変数型で,$x,y,z$ それぞれの式と,媒介変数2つの定義域からなっている。そのままでは区別がつかないので,引数として与えるときは,(3) の型には,識別文字として "p" を先頭に付加する。
+
+また,定義域については,開区間でとる場合と閉区間でとる場合がある。その区別を境界指定として"ewsn"で表す(ともに閉区間)。"ewsn" の意味は次のように考える。
+
+変数が $u,v$ のとき,$u,v$平面において,$a \leq u \leq b,c \leq v \leq d$ の矩形を考え,境界値を東西南北(ewsn)で示す。それぞれの文字が書かれたときは境界値を含む。
+
+ \begin{center} \input{Fig/ewsn} \end{center}
+
+この境界指定を最後に付加するが,省略することもでき,省略した場合は初期値の "ewsn" (閉区間)とする。ともに開区間とする場合は,"" を付加する。ただし,陰線処理をしない Sf3data() では,境界にも線を引くので,この指定は省略してよい。
+
+具体的な例を示そう。
+
+次は,円錐の form である。(formは form data を短縮した fd がよく使われる)
+
\vspace{\baselineskip}
-\hypertarget{parapt}{}
-\item[関数] Parapt(座標)
-\item[機能] 点の投影面での座標
-\item[説明] 引数の空間座標に対応するCinderellaの描画面の座標を返す。
+\verb|fd=["p","x=r*cos(t)","y=r*sin(t)","z=2*(2-r)","r=[1,2]","t=[0,2*pi]","ew"]|
\vspace{\baselineskip}
-【例】\verb|Parapt([2,1,5]);| により,点(2,1,5) が表示されている描画面の座標,たとえば [-0.52,3.27] が返される。
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+"ew" は $1 \leq r \leq 2$ であることを示す。したがって,円錐台の上面と底面が表示される。
+これを "e" とすると $1 < r \leq 2$ となり,上面が表示されない。
+
+また,これを "w" とすると $1 \leq r < 2$ となり,底面が表示されない。
+
+さらに,"ewn" あるいは "ews" としたり,指定を略して初期値の "ewsn" とすると,$t=(0,2\pi)$ の左右いずれかの値が含まれることになり,不要な境界線が現れる。
+
\vspace{\baselineskip}
-\hypertarget{perpplane}{}
-\item[関数] Perpplane(点名,点,ベクトル,option)
-\item[機能] 点を通り線分に垂直な平面上に基準点を2つとる
-\item[説明] 引数の点名は,作成する2点で "A-B" の形
+\hspace{12mm}"ew" \hspace{25mm}"e" \hspace{25mm}"w" \hspace{25mm}"ewn"
-第2引数は通る点の名称または座標
+\input{Fig/frustumew} \input{Fig/frustume} \input{Fig/frustumw} \input{Fig/frustumewn}
+
+\begin{description}
+
+%------------------ Sf3data -----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{sf3data}{}
+\item[関数] Sf3data(name,リスト,options)
+\item[機能] 陰線処理なしの曲面をワイヤーフレームモデルで描く
+\item[説明] optionsは,メッシュの密度と解像度(各変数に対応する分割数)。
+
+メッシュ密度は,縦横で "Wire=[a,b]" で指定。初期値はa,bとも20。
+
+解像度は,"Num=[a,b]" で指定。初期値はa,bとも25。
+
+\begin{layer}{150}{0}
+\putnotese{88}{10}{ \input{Fig/saddle1}}
+\end{layer}
+
+\vspace{\baselineskip}
+【例】 $z=f(x,y)$ 型
+
+ $z=x^2-y^2$を定義域$x=[-2,2],y=[-2,2]$ で描画する。
-第3引数は法線ベクトル
+\verb| fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\
+\verb| Sf3data("1",fd)|;
+
+メッシュの数を縦横とも10,解像度をx,yとも10にすると
+
+ メッシュ密度,解像度とも下げるので粗い描画となる。
+
+\verb|Sf3data("1",fd,["Num=[10,10]","Wire=[10,10]"]);|
-optionは "put" で,2つの幾何点を作図する。optionがない場合は幾何点は作らず,無名の点のみを表示する。put以外の文字列を書いたときは無効な命令とし,何も作成されない。
+\vspace{\baselineskip}
+【例】$z=f(x,y),x=g(r,t),y=h(r,t)$型
+
+次図左
-記述例を示すと
+\verb|fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]"];|
+
+\verb|Sf3data("1",fd);|
+
+次図右
+
+\verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",|
+
+\verb| "r=[0,3]","t=[0,2*pi]"];|
+
+\verb|Sf3data("1",fd);|
+
+ \begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center}
+
+(3) $x=f(u,v),y=g(u,v),z=h(u,v),$ 型
+
+ この場合,(2)と区別するために,"p" を先頭につけておく。
- \verb|Perpplane("A-B","P",[1,1,1],"put");|
+ \vspace{\baselineskip}
+ 【例】球面
+
+ \verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",|
-点Pを通り,法線ベクトル(1,1,1)に垂直な平面上に点A,Bをとる。
+\verb|"u=[0,pi]","v=[0,2*pi]",""];|
+\verb|Sf3data("1",fd);|
- \verb|Perpplane("A-B","P",P3d-O3d);|
+\begin{center} \input{Fig/sf3ddata4} \end{center}
+
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+%------------------ Sfbdparadata -----------------------------------------------
+\hypertarget{sfbdparadata}{}
+\item[関数] Sfbdparadata(name,式,options)
+\item[機能] 陰線処理した曲面のデータを作る
+\item[説明] この関数はデータを作るだけなので,表示するには ExeccmdC() を併用する。
+
+optionsは,"Wait=n","r","m",および線種。Wait の初期値は30。
+
+ "r","m"に関しては,
- 点Pを通り,線分OPに垂直な平面上に点A,Bをとる。
- これらにおいて,PAとPBは垂直で,PA=PB=1 となる。
+\hspace{5mm} オプションなしまたは,”” のとき
+\hspace{10mm} i) データファイルがなければ,新しく作る
+
+\hspace{10mm} ii) データファイルが既にあればそれを読み込む
+
+\hspace{5mm}"m" のとき,強制的にデータファイルを作り直す。
+
+\hspace{5mm}"r" のとき,すでにあるデータファイルを読み込む。
+
+この処理は時間がかかるため,この関数を実行した状態で画面上のスライダやその他の点を動かそうとすると反応が悪くなる。そこで,Isangle() または Isptselected() を用いて,スライダの点を選択しているときはワイヤフレームモデルを描画するようにするとよい。
+
+なお,C言語の環境がない場合は,ExeccmdC() が使えないので,SfbdparadataR(name,式,optons1,optons2) を使う。options2には陰線の表示方法について "nodisp" または線種 を指定する。 初期設定は"nodisp" 。options2のみ指定するときは,options1に [""] (空文字)を書いておく。
+
+作図例は 次の ExeccmdC を参照のこと。
+
+%------------------- ExeccmdC -----------------------------------------------
\vspace{\baselineskip}
-【例】ベクトル $\vec{p}=(1,1,1)$ に垂直で点$(1,1,1)$を通る平面ABCDを描く。
+\hypertarget{execcmdc}{}
+\item[関数] ExeccmdC(name,options1,options2)
+\item[機能] 曲面を表示する。戻り値は,対象にしたプロットデータのリスト。
+\item[説明] データが作成された曲面を表示する。
- 点A,B,C,Dは作図ツールで適当に取っておく。正確な位置はスクリプトで決める。
+options1 には"r","m", "Wait=n" と輪郭線の線種が指定できる。
+
+options2 には 軸の陰線について "nodisp" または線種が指定できる。 初期設定は "do"。
-\begin{layer}{120}{0}
-\putnotese{80}{20}{ \input{Fig/perpplane}}
+options2だけを指定したい場合は,options1 を空リスト [ ] にする。
+
+\vspace{\baselineskip}
+
+【例】サドル面
+
+\begin{layer}{150}{0}
+\putnotese{85}{0}{ \input{Fig/sfbdpara01}}
+\putnotese{85}{45}{ \input{Fig/sfbdpara02}}
\end{layer}
+陰線を消去して表示
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Putpoint3d(["O",[0,0,0]]);
- Putpoint3d(["P",[1,1,1]]);
- Perpplane("E-F","P",P3d-O3d,"put");
- vec1=2*(E3d-P3d);
- vec2=2*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2]);
- Putpoint3d(["B",P3d+vec1-vec2]);
- Putpoint3d(["C",P3d-vec1-vec2]);
- Putpoint3d(["D",P3d-vec1+vec2]);
- Spaceline("1",[A,B,C,D,A]);
- Arrowdata([O,P],["dr,2"]);
- Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]);
- Skeletonparadata("1");
+ fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
+ if(Isangle(),
+ Sf3data("1",fd);
+ ,
+ Startsurf();
+ Sfbdparadata("1",fd);
+ ExeccmdC("1",[],["nodisp"]);
+ );
\end{verbatim}
+全体を実線で太めにして,陰線を点線で表示
+\verb|ExeccmdC()| を変更する。
+\verb| ExeccmdC("1",["dr,2"]);|
+
+\vspace{10mm}
+【例】放物面 : 式を変更する。
+\begin{verbatim}
+ fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
+\end{verbatim}
+
+ 陰線を消去(下図左):\verb|ExeccmdC("1",[],["nodisp"]);|
+
+ 陰線を破線で表示(下図右):\verb|ExeccmdC("1",[],["da"]);|
+ \begin{center} \input{Fig/sfbdpara03} \input{Fig/sfbdpara04} \end{center}
+
+【例】曲面を2つ表示するときは,Sfbdparadata() の name は "1" と "2" にするが,まとめて \verb|ExeccmdC("1")| で表示できる。
+
+\begin{verbatim}
+fd=[
+ "p",
+ "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",
+ "r=[1,2]","t=[0,2*pi]","ew"
+];
+fd2=[
+ "p",
+ "x=r*cos(t)-3","y=r*sin(t)+3","z=2*(2-r)",
+ "r=[0,2]","t=[0,2*pi]","ew"
+];
+if(!ptselected(),
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Sfbdparadata("2",fd2);
+ ExeccmdC("1");
+);
+\end{verbatim}
+ \begin{center} \input{Fig/sfbdpara05} \end{center}
+
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\vspace{\baselineskip}
-\hypertarget{perppt}{}
-\item[関数] Perppt(点名,点,点リスト,option)
-\item[機能] 平面に下ろした垂線の足を求める
-\item[説明] 第2引数の点から,第3引数の点リストで決まる平面に下した垂線の足を,第1引数の名前の点とする。
-オプションは次の通り。 初期設定は "draw"
-draw:点を打つ。幾何点は作らない
+%-------------------Wireparadata -----------------------------------------------
+\hypertarget{wireparadata}{}
+\item[関数] Wireparadata(name,PD,式,整数,整数,optons)
+\item[機能] Sfbdparadataで作成した曲面について,陰線処理したワイヤーフレームモデルを作る。
+\item[説明] PDは,第3引数の式で描いたワイヤフレームモデルのプロットデータ名。第4,第5引数は分割線の数。
-put :幾何点を作る
+options には "r","m","Wait=n" が指定できる。
+
+Sfbdparadata() とペアで使い,そのあとに ExeccmdC で描画する。
-none:計算だけ行い,点は作図しない。
+C言語の環境がない場合は,ExeccmdC() が使えないので,WireparadataR(name,PD,式,整数,整数,optons1,optons2) を使う。options2には陰線の表示方法について "nodisp" または線種 を指定する。 初期設定は"nodisp" 。options2のみ指定するときは,options1に [""] (空文字)を書いておく。
-\vspace{\baselineskip}
-【例】原点から点ABCを通る平面に下した垂線の足Hの座標を求める。
+\vspace{\baselineskip}
+【例】
- \verb|Perppt("H","O","A-B-C","none");| 表示はされない。
-
- \verb|Perppt("H","O","A-B-C");| Hの位置に緑色の点が表示される。
-
- \verb|Perppt("H","O","A-B-C","put");| 幾何点Hが作図される。
-
- いずれの場合も,Hの座標は変数H3d に代入される
-
-\vspace{\baselineskip}
-作図例
+サドル面
+
+\begin{layer}{150}{0}
+\putnotese{85}{5}{ \input{Fig/wirepara1}}
+\end{layer}
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Putpoint3d("O",[0,0,0]);
- Putpoint3d("A",[3,0,0]);
- Putpoint3d("B",[0,3,0]);
- Putpoint3d("C",[0,0,3]);
- Perppt("H","O","A-B-C","put");
- Spaceline("1",[A,B,C,A]);
- Spaceline("2",[O,H]);
- Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]);
+ fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
+ if(Isangle(),
+ Sf3data("1",fd);
+ ,
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Wireparadata("1","sfbd3d1",fd,4,5);
+ ExeccmdC("1");
+ );
\end{verbatim}
-\vspace{\baselineskip}
-\begin{center} \input{Fig/perppt} \end{center}
+回転放物面:次を変更
-\vspace{\baselineskip}
-\hypertarget{partcrv3d}{}
-\item[関数] Partcrv3d(name,始点,終点,PD)
-\item[機能] 部分曲線のプロットデータを作成する
-\item[説明] 曲線PDにおいて,始点から終点までのプロットデータを作成する。
+\begin{layer}{150}{0}
+\putnotese{85}{0}{ \input{Fig/wirepara2}}
+\end{layer}
+\begin{verbatim}
+ fd=["z=4-(x^2+y^2)","x=r*cos(t)",
+ "y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"];
+ Wireparadata("1","sfbd3d1",fd,5,7);
+\end{verbatim}
+\vspace{10mm}
-始点と終点は,プロットデータの番号もしくは曲線上にとった点の識別名で示す。
+球面
-\vspace{\baselineskip}
-【例】螺旋を描き一部分を太くする。PutonCurve3d() で螺旋上に点C,Dができるので,ドラッグして適当な位置に移動する。
+\begin{layer}{150}{0}
+\putnotese{80}{0}{ \input{Fig/wirepara3}}
+\end{layer}
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
- PutonCurve3d("C","sc3d1");
- PutonCurve3d("D","sc3d1");
- Partcrv3d("1",C,D,"sc3d1",["dr,3"]);
- Letter([C,"n2","C",D,"n2","D"]);
+ fd=["p","x=2*sin(u)*cos(v)",
+ "y=2*sin(u)*sin(v)",
+ "z=2*cos(u)","u=[0,pi]",
+ "v=[0,2*pi]",""];
+ Sfbdparadata("1",fd);
+ Wireparadata("1","sfbd3d1",fd,12,12);
\end{verbatim}
- ここで,\verb|"sc3d1"| は,螺旋,\verb|"part3d1"| は,部分曲線のプロットデータである。
-
-\begin{center} \input{Fig/partcrv3d1} \end{center}
-\vspace{\baselineskip}
-【例】稲妻状の螺旋を点線で描き,その一部を実線にする。位置はプロットデータの番号で示す。小数にすると曲線を分割している線分の途中の位置になる。
+\vspace{8mm}
+
+【例】球面で座標軸を陰線処理し,面の陰線は非表示で表す。
+
+\begin{layer}{150}{0}
+\putnotese{70}{5}{ \input{Fig/wirepara4}}
+\end{layer}
+
\begin{verbatim}
-Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=10","do"]);
-Partcrv3d("1",3.3,8.5,"sc3d1");
+ fd=["p","x=2*sin(u)*cos(v)",
+ "y=2*sin(u)*sin(v)",
+ "z=2*cos(u)",
+ "u=[0,pi]","v=[0,2*pi]",""];
+ if(Isangle(),
+ Sf3data("1",fd);
+ ,
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Wireparadata("1","sfbd3d1",fd,12,12);
+ Crvsfparadata("1","ax3d","sfbd3d1",fd);
+ ret=ExeccmdC("1");
+ forall(1..length(ret),
+ if(indexof(ret_#,"wireh")>0,
+ Changestyle3d([ret_#],["nodisp"]);
+ );
+ );
+ );
\end{verbatim}
- \begin{center} \input{Fig/partcrv3d2} \end{center}
+【例】トーラスを描く
-\hypertarget{phparadata}{}
-\item[関数] Phparadata(name,name2,options)
-\item[機能] 多面体を陰線処理して描く
-\item[説明] 多面体を陰線処理して描く。多面体は面データ(頂点リストと面リスト)を与えて,VertexEdgeFace() でプロットデータを作る。このプロットデータに対し,隠れている面(辺)を非表示にして表示する。第1引数は通常のname,第2引数のname2は,VertexEdgeFace() で与えたnameと同じものとする。
+式を次のように変え,軸は非表示にして,\verb|ExeccmdC("1",[],["nodisp"])| にする。
- optionsは,全体の線種("dr,2"など)と,陰線の線種を"Hidden=線種" で指定できる。 初期設定では陰線は表示しない。
-
-\vspace{\baselineskip}
-【例】小林・鈴木・三谷による多面体データ \verb|polyhedrons_obj| から,s06の切頂二十面体(サッカーボール型)を描く。 \verb|polyhedrons_obj| は KeTCindyシステムの data ディレクトリにあるので,Setdirectory() でカレントディレクトリを作業ディレクトリと切替ながら出力する。
\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("s06.obj",["size=3"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("s06",phd);
- Phparadata("1","s06");
+ fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",
+ "u=[0,2*pi]","v=[0,2*pi]","s"];
\end{verbatim}
- VertexEdgeFace() の name は通常の "1" でもよい。その場合は,\verb|Phparadata("1","1");| とするが,わかりにくいので上のようにした。
-
-実行すると,Cinderellaの描画面は次のように頂点だけが描かれる。
-
-\vspace{\baselineskip}
-\begin{center}
- \includegraphics[bb=0 0 726.04 365.02 , width=10cm]{Fig/phparadata01.pdf}
-\end{center}
+%\vspace{\baselineskip}
+ \begin{center} \input{Fig/wirepara5} \end{center}
-\vspace{\baselineskip}
-全体の線種と,陰線の線種を
-
-\verb|Phparadata("1","s06",["dr,2","Hidden=do"]);|
+%------------------- Crvsfparadata -----------------------------------------------
-で指定したのが下図右である。
+\hypertarget{crvsfparadata}{}
+\item[関数] Crvsfparadata(name,PD1,PD2,式)
+\item[機能] 曲面による曲線の陰線処理を行う。
+\item[説明] 曲線PD1と曲面PD2について,PD1はPD2による陰線処理を行う。
- \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center}
+Crvsfparadata() のあとに ExeccmdC() でまとめて描画する。
-【注意】
+C言語が使えない場合は,CrvsfparadataR(name,PD1,PD2,式,options1,options2) を使う。
+options1 は分割数と誤差限界, options2 は陰線の線種。
- polyhedrons obj のデータを使って,続けて異なる多面体を描きたい場合は注意が必要である。Readobj()だけを変更して別のデータを読めばよさそうであるが,VertexEdgeFace() のname も(したがって,Phparadata()の第2引数も)書き換えないと,前のデータが残っていてうまくいかない。たとえば,上のコードで切頂二十面体を描いた後,正八面体(r02)を描こうとするならば,
+【例】回転放物面と座標軸,線分を陰線処理したデータを作って表示する。線分の端点A,Bはあらかじめ作図しておく。
+
+ExeccmdC()の 初期設定では陰線は点線で表示される。(下図左)
\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("r02.obj",["size=3"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("2",phd);
- Phparadata("1","2");
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
+ Spaceline([A,B]);
+ fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Crvsfparadata("1","AB3d","sfbd3d1",fd);
+ Crvsfparadata("2","ax3d","sfbd3d1",fd);
+ ExeccmdC("1");
\end{verbatim}
- のようにする。
-
+ExeccmdC()の options2を ["nodisp"] にすると,陰線は非表示になる。(下図右)
+\begin{verbatim}
+ ExeccmdC("1",[],["nodisp"]);
+\end{verbatim}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+ \begin{center} \input{Fig/crvsfparadata2} \input{Fig/crvsfparadata1} \end{center}
-\hypertarget{pointdata3d}{}
-\item[関数] Pointdata3d(名前,点リスト,options)
-\item[機能] 点の3Dデータと2Dデータを作成し,画面と\TeX に出力する。
-\item[説明] optionsは\hyperlink{pointdata}{Pointdata()}と同様。
-\vspace{\baselineskip}
+戻り値を使うと,Changestyle3d() を使って陰線のスタイル(線種,色)を変えることができる。戻り値の内容は,コンソールに「readoutdata from template3D1.txt : 」として表示されるので,これをテキストエディタで開き,操作対象を決めればよい。たとえば,上の左図で,線分ABの陰線はリストの4番目の crvsfh3d1 なので,
-【例】
\begin{verbatim}
- Pointdata3d("1",[[1,1,1],[0,1,0]],["Size=2","Color=red"]);
+ ret=ExeccmdC("1");
+ Changestyle3d(ret_4,["da","Color=red"]);
\end{verbatim}
-\vspace{\baselineskip}
+とすると,赤の破線にすることができる。
+
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{projcoordpara}{}
-\item[関数] Projcoordpara(座標)
-\item[機能] 投影座標を求める
-\item[説明] 空間座標を平面に投影した座標を求める。
+\end{description}
+\newpage
+%================== 3D プロットデータの操作 ===============
+\subsection{プロットデータの操作}
-戻り値の第1,第2要素はCinderellaの描画面のx,y座標。第3要素はxy平面に垂直なzの座標で.投影面からの(符号付)距離を表す。
-
+\begin{description}
+%------------------- Datalist2d -----------------------------------------------
\vspace{\baselineskip}
-【例】\verb|Projcoordpara([3,1,2]);|
+\hypertarget{datalist}{}
+\item[関数] Datalist2d()
+\item[機能] 画面上のプロットデータのリストを取得する
+\item[説明] 画面に描かれているすべてのプロットデータのリストを返す。
- 戻り値は [-0.65,1.7,3.27] のようになる。(視点によって値は異なる)
+空間図形は,Cinderellaの画面上に射影し表示する。そのため,KeTCindy3Dは,空間におけるプロットデータと,画面上に表示するプロットデータの2つを作っている。Datalist2d()では,画面上に表示するプロットデータのリストを返す。
-
\vspace{\baselineskip}
-\hypertarget{putaxes3d}{}
-\item[関数] Putaxes3d([x,y,z])
-\item[機能] 軸上に幾何点を作る。
-\item[説明] 引数のリスト [x,y,z] に対し,点X(x,0,0) ,Y(0,y,0) , Z(0,0,z) および 原点Oを主画面上にとり,副画面上に対応する点Xz,Yz,Zz,Oz を作る。すでに同じ名称の点がある場合は,指定された位置に移動する。
+【例】
+\begin{verbatim}
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
+ Spaceline("1",[A,B]);
+ println("PD="+Datalist2d());
+\end{verbatim}
+とすると,コンソールに PD=[ax2d,AB2d] と表示される。ax2dは座標軸のプロットデータ ax3d に,AB2d は線分ABのプロットデータ AB3d に対応している。
+%------------------- Datalist3d -----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{datalist}{}
+\item[関数] Datalist3d()
+\item[機能] 空間のプロットデータのリストを取得する
+\item[説明] 空間に描かれているすべてのプロットデータのリストを返す
-引数は,実数にすることもでき,Putaxes3d(a) は,Putaxes3d([a,a,a]) と同じになる。
-
\vspace{\baselineskip}
-【例】Putaxes3d(5); 原点と,$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。
+【例】
+\begin{verbatim}
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
+ Spaceline("1",[A,B]);
+ println("PD="+Datalist3d());
+\end{verbatim}
+とすると,コンソールに PD=[ax3d,AB3d] と表示される。
- Putaxes3d([1,2,3]); 原点と,$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\vspace{\baselineskip}
-\hypertarget{putonCurve3d}{}
-\item[関数] PutonCurve3d(点名,PD)
-\item[機能] 空間曲線上に点をとる
-\item[説明] プロットデータPDの曲線上に,点名の点をとる。
+%------------------- Changestyle3d -----------------------------------------------
+\hypertarget{changestyle3d}{}
+\item[関数] Changestyle3d(リスト,リスト)
+\item[機能] 3Dプロットデータの属性を変更
+\item[説明] 第1引数のプロットデータの属性を,第2引数に変更する。
-とった点は固定点ではなく,曲線上にインシデントとなる。したがって,ドラッグして曲線上を動かすことができる。例は \hyperlink{partcrv3d}{Partcrv3d()} を参照のこと。
+たとえば,補助線など,画面には描いてもTeXに書き出さない線を描画するときは,optionに["notex"] をつけるが,これをあとから付加したい場合に利用する。プロットデータはリストにできるので,複数のプロットデータの属性をまとめて変更することができて便利である。
\vspace{\baselineskip}
-\hypertarget{putonseg3d}{}
-\item[関数] Putonseg3d(点名,点1,点2)
-\item[機能] 線分上に点を作る
-\item[説明] 点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。指定した点がすでに存在する場合は動かさない。
+【例】4つの点で四面体の辺を描き,まとめて notex にする。点A,B,C,Dはとってあるものとする。
+\begin{verbatim}
+ Spaceline("1",[A,B]);
+ Spaceline("2",[A,C]);
+ Spaceline("3",[B,C]);
+ Spaceline("4",[A,D]);
+ Spaceline("5",[B,D]);
+ Spaceline("6",[C,D]);
+ edges=apply(1..6,"sl3d"+text(#));
+ Changestyle3d(edges,["notex"]);
+\end{verbatim}
-点1,点2は幾何点の名称または座標で指定する。
+%------------------- Intersectcrvsf -----------------------------------------------
+\hypertarget{intersectcrvsf}{}
+\item[関数] Intersectcrvsf(name,PD,式)
+\item[機能] 曲線と曲面の交点の座標を求める
+\item[説明] PDは曲線のプロットデータ。式は曲面の式。
+ 曲面は,Sfbdparadata()でデータを作成し,ExeccmdC()で表示しておく。交点の座標は,"intercrvsf"+name に代入される。コマンドの実行順序は次の例のようにする。
+
+\begin{layer}{150}{0}
+\putnotese{80}{40}{ \includegraphics[bb=0 0 149.51 121.51 , height=4cm]{Fig/Intersectcurvsf.pdf}}
+\end{layer}
+
\vspace{\baselineskip}
-【例】A(1,-1,0)とB(0,2,2) の中点に点Cをとる。つぎのいずれでもよい。
+【例】回転放物面と線分の交点の座標を表示する。
+\begin{verbatim}
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]);
+ Spaceline("1",[A,B]);
+ fd=[
+ "z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)",
+ "R=[0,2]","T=[0,2*pi]","e"
+ ];
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Intersectcrvsf("1","sl3d1",fd);
+ ExeccmdC("1",[""]);
+ println("Intersect="+intercrvsf1);
+ Drawpoint3d(intercrvsf1);
+\end{verbatim}
+実行すると,コンソールに
- \verb|Putonseg3d("C",A,B);|
-
- \verb|Putonseg3d("C",[A,B]);|
+\verb| Intersect=[[0,1.57,1.52],[0,-1.91,0.36]] |
- \verb|Putonseg3d("C",[[1,-1,0],[0,2,2]]);|
+のように表示され,画面には緑で交点が表示される。
+%------------------- IntersectsgpL -----------------------------------------------
\vspace{\baselineskip}
+\hypertarget{intersectsgpL}{}
+\item[関数] IntersectsgpL(点名,線分,面,描画方法)
+\item[機能] 空間の線分(直線)と平面の交点を求める。
+\item[説明] 引数の線分は線分の端点を "A-B" の形もしくは空間座標のリストで与える。
-\hypertarget{putpoint3d}{}
-\item[関数] Putpoint3d(リスト,option)
-\item[機能] 空間に幾何点を作図する
-\item[説明] 点の名称と座標を与えて点を作図する。複数の点を一度に作図できる。
+引数の面は,面内の3点を "C-D-E" の形もしくは空間座標のリストで与える。
-optionは,"fix"( 初期設定) または "free"。リスト ["free"] にしてもよい。
-
-"fix" では,固定点(ドラッグで移動できない点)とする。同じ名称の点がすでに存在する場合は,指定した位置に移動して固定点とする。
+戻り値は,[pt,flag1,flag2,val1,val2]
+
+pt:直線と平面の交点の座標。直線と平面が平行で交点が存在しない場合は空リスト[]
+
+flag1 : 交点が線分内にあれば true ,なければ false
+
+flag2 : 交点が面内にあれば true,なければ false
+
+val1,val2 : 線分についてのパラメータ値,平面についてのパラメータ値
+
+描画方法は,"put" または "i" , "e" 。
+
+\hspace{10mm} put : 幾何点を作る
-"free" では,自由点(ドラッグで移動できる)とする。同じ名称の点がすでに存在する場合はなにもしない。
+\hspace{10mm} i : 線分内にあれば点を描く
+\hspace{10mm} e : 平面で交われば点を描く
+
\vspace{\baselineskip}
-【例】いくつか記述例を示す。
+【例】交点の有無と戻り値
- \verb|Putpoint3d(["A",[2,1,3]]);|
-
- \verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");|
-
- \verb|Putpoint3d(["A",[2,1,3]],"free");|
-
-\vspace{\baselineskip}
- なお,この関数は幾何点を作るものであり,TeXには出力されない。TeXに点を出力するには,\hyperlink{pointdata}{Pointdata()} または \hyperlink{drwpt}{Drawpoint()}を併用する。
+次のスクリプトで\verb|p2| を変えたときの戻り値の \verb|flag1, flag2|
+
+\begin{verbatim}
+p1=[1,-1,0];
+p2=[0,0,1/2];
+p3=[0,1,0];
+p4=[-1,0,0];
+p5=[0,0,1];
+Spaceline("1",[p1,p2]);
+Spaceline("2",[p3,p4,p5,p3]);
+ret=IntersectsgpL("P",[p1,p2],[p3,p4,p5],"put");
+println("flag1="+ret_2+": flag2="+ret_3);
+\end{verbatim}
+\begin{layer}{150}{0}
+\putnotese{10}{20}{ \input{Fig/wire01}}
+\putnotese{60}{20}{ \input{Fig/wire02}}
+\putnotese{10}{60}{ \input{Fig/wire03}}
+\putnotese{60}{60}{ \input{Fig/wire04}}
+\end{layer}
+ \begin{verbatim}
+ p2=[0,0,1/2]; p2=[-1,1,1];
+ flag1=false : flag2=true flag1=true : flag2=true
- 空間における点の座標は,点名に"3d"を付加した名前の変数に代入される。たとえば,点Aの座標はA3dである。これにより,点の座標を取得できる。
+
+
+
+
+
+ p2=[1,2,1]; p2=[1,0,1/2];
+ flag1=true : flag2=false flag1=false : flag2=false
+\end{verbatim}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{30mm}
+【例】立方体を平面で切った図を描く。
-\vspace{\baselineskip}
-\hypertarget{readobj}{}
-\item[関数] Readobj(ファイル名)
-\item[機能] objファイルを読み込む。
-\item[説明] 小林・鈴木・三谷による整面凸多面体のデータは\\
-\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
-からダウンロードできる。\verb|polyhedrons_obj|を,例えば,ユーザホームのketcindy作業フォルダに入れておく。
+ いろいろな手順が考えられるが,ここでは次の手順で描く。
+
+ (1) 立方体の頂点をとる。1辺の長さをHnとし,軸上の点をPutaxes3d()でとる。
+
+(2) 切断面を決める点E,F,Gを辺上の自由点としてPutonseg3d()でとる。
+
+(3) E,F,Gを通る平面と,辺AC,DYとの交点をとり,M,Nとする。
+
+(4) 全体を多面体として面データを作って描画する。
\begin{verbatim}
- Setdirectory(gethome()+"/ketcindy/polyhedrons_obj");
- polydt=Readobj("r02.obj");
- Setdirectory(Dirwork);
+ Hn=3;
+ Putaxes3d(Hn);
+ Putpoint3d("A",[Hn,Hn,0]);
+ Putpoint3d("B",[Hn,0,Hn]);
+ Putpoint3d("C",[Hn,Hn,Hn]);
+ Putpoint3d("D",[0,Hn,Hn]);
+ Putonseg3d("E",X,B);
+ Putonseg3d("F",Z,B);
+ Putonseg3d("G",Z,D);
+ IntersectsgpL("M","A-C","E-F-G","put");
+ IntersectsgpL("N","D-Y","E-F-G","put");
+ phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O],
+ [O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]);
+ VertexEdgeFace("1",phd);
+ Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
-これで,r02.obj データが,変数 polydt に代入される。
+スクリプトを実行後,点E,F,Gをドラッグして適当な位置の断面にする。
-オプションは "size=n" で,n倍したデータにする。負の数にすると上下が反転される。
+\begin{center}\includegraphics[bb=0 0 713.04 327.02 , width=10cm]{Fig/IntersectsgpL0.pdf}\end{center}
-データはKeTCindyのdataフォルダの中にある。したがって,次のようなスクリプトを書く。読み込むのは一度だけなので, Draw スロットではなくInitialization スロットに置けばよいが,コードの可読性を高めるには Draw スロットでもよい。
+できた図は下図左。これに,次のスクリプトを追加すれば,断面上方の立方体の各辺も点線で描かれる。(下図右)
+\begin{verbatim}
+ Spaceline("1",[E,B,F],["do"]);
+ Spaceline("2",[B,C,M],["do"]);
+ Spaceline("3",[C,D,N],["do"]);
+ Spaceline("4",[D,G],["do"]);
+\end{verbatim}
+\begin{center} \input{Fig/IntersectsgpL1} \input{Fig/IntersectsgpL2} \end{center}
-この多面体データは,頂点リストと面リストからなっているが,頂点リストは座標のリストなので,読み込んで表示するときには,点の名称を v1,v2,・・・ とする。
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-読み込んだあとの使い方を含めて例を示す。
+%------------------- Sfcutparadatacdy -----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{sfcutparadatacdy}{}
+\item[関数] Sfcutparadatacdy(name,面,曲面,options)
+\item[機能] 平面と曲面の交線を求める。
+\item[説明] 面の方程式はx,y,zの方程式,曲面は媒介変数表示で与える。
+\vspace{\baselineskip}
+【例】円錐を平面$y+2z=3$で切った断面を表示する。
+
\begin{layer}{150}{0}
-\putnotese{80}{0}{ \input{Fig/readobj}}
+\putnotese{70}{0}{\input{Fig/sfcut}}
\end{layer}
+\begin{verbatim}
+fd=[
+ "p",
+ "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",
+ "r=[0,2]","t=[0,2*pi]","e"
+];
+Startsurf();
+Sfbdparadata("1",fd);
+Sfcutparadatacdy("1","y+2*z=3",fd);
+ExeccmdC("1");
+\end{verbatim}
+%\begin{center} \input{Fig/sfcut} \end{center}
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+ %------------------Partcrv3d -----------------------------------------------
\vspace{\baselineskip}
-【例】\verb|polydt|を用いて正八面体を描く
+\hypertarget{partcrv3d}{}
+\item[関数] Partcrv3d(name,始点,終点,PD)
+\item[機能] 部分曲線のプロットデータを作成する
+\item[説明] 曲線PDにおいて,始点から終点までのプロットデータを作成する。
+始点と終点は,プロットデータの番号もしくは曲線上にとった点の識別名で示す。
+\vspace{\baselineskip}
+【例】螺旋を描き一部分を太くする。PutonCurve3d() で螺旋上に点C,Dができるので,ドラッグして適当な位置に移動する。
\begin{verbatim}
-
- VertexEdgeFace("1",polydt);
- Nohiddenbyfaces("1","phf3d1");
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
+ Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
+ PutonCurve3d("C","sc3d1");
+ PutonCurve3d("D","sc3d1");
+ Partcrv3d("1",C,D,"sc3d1",["dr,3"]);
+ Letter([C,"n2","C",D,"n2","D"]);
\end{verbatim}
+ ここで,\verb|"sc3d1"| は,螺旋,\verb|"part3d1"| は,部分曲線のプロットデータである。
+
+\begin{center} \input{Fig/partcrv3d1} \end{center}
-主なデータは次の通り。
-
\vspace{\baselineskip}
- \input{Fig/kobayashi}
+【例】稲妻状の螺旋を点線で描き,その一部を実線にする。位置はプロットデータの番号で示す。小数にすると曲線を分割している線分の途中の位置になる。
+\begin{verbatim}
+Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=10","do"]);
+Partcrv3d("1",3.3,8.5,"sc3d1");
+\end{verbatim}
+\begin{center} \input{Fig/partcrv3d2} \end{center}
-この他にn01〜n92まで整面凸多面体がある。
-
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
+%------------------Reflectdata3d-----------------------------------------------
\hypertarget{reflectdata3d}{}
\item[関数] Reflectdata3d(name , PDlist , list , options)
\item[機能] PDの鏡映を作る
-\item[説明] 第3引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映を作る。
+\item[説明] 第3引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映を作る。戻り値は鏡映したプロットデータのリスト。
\vspace{\baselineskip}
【例】点A,B,C,D,Eを空間にとり,三角形ABCの鏡映を作る。
\begin{verbatim}
-Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,0,1],
- "E",[1,0,0]]);
+Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,0,1],"E",[1,0,0]]);
Spaceline("1",[A,B,C,A]);
\end{verbatim}
@@ -6764,7 +7183,8 @@
\hspace{20mm} \input{Fig/reflectdata3d03}
-
+
+ %------------------Reflectpoint3d-----------------------------------------------
\vspace{\baselineskip}
\hypertarget{reflectpoint3d}{}
\item[関数] Reflectpoint3d(座標,リスト)
@@ -6780,12 +7200,12 @@
平面BCDに関する鏡映点 \verb| Reflectpoint3d(A3d,[B3d,C3d,D3d]);|
-
+ %------------------Rotatedata3d -----------------------------------------------
\vspace{\baselineskip}
\hypertarget{rotatedata3d}{}
\item[関数] Rotatedata3d(name,PDリスト,vec,角度,options)
\item[機能] プロットデータを回転
-\item[説明] プロットデータを,原点を始点とするベクトルvec 周りに回転する。複数のプロットデータをまとめて回転することができる。
+\item[説明] プロットデータを,原点を始点とするベクトルvec 周りに回転する。複数のプロットデータをまとめて回転することができる。戻り値は回転したプロットデータのリスト。
options として,中心点(vecの始点),線種を指定することができる。
@@ -6795,7 +7215,7 @@
Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]);
Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]]);
Spaceline("1",[A,B,C,A]);
- Spaceline("2",[C,D]);
+ Spaceline([C,D]);
Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]);
Letter([A,"s","A",B,"w","B",C,"ne","C",D,"ne","D"]);
\end{verbatim}
@@ -6808,6 +7228,7 @@
\input{Fig/rotatedata3d01} \hspace{5mm} \input{Fig/rotatedata3d02}
%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+ %------------------Rotatepoint3d -----------------------------------------------
\vspace{\baselineskip}
\hypertarget{rotatepoint3d}{}
\item[関数] Rotatepoint3d(座標, vec , 角度, [点] )
@@ -6821,7 +7242,8 @@
\verb| Putpoint3d("A",[0,-1,0]);| \\
\verb| Rotatepoint3d(A3d,[0,0,1],pi/2); | // 戻り値は [1,0,0]\\
\verb| Rotatepoint3d(A3d,[0,0,1],pi/2,[1,1,0]); | // 戻り値は [3,0,0]\\
-
+
+ %------------------Scaledata3d -----------------------------------------------
\vspace{\baselineskip}
\hypertarget{scaledata3d}{}
\item[関数] Scaledata3d(name , PDリスト , vec , [中心,options])
@@ -6841,7 +7263,7 @@
\end{verbatim}
\hspace{20mm}\input{Fig/scaledata3d}
-
+%------------------Scalepoint3d-----------------------------------------------
\vspace{\baselineskip}
\hypertarget{scalepoint3d}{}
\item[関数] Scalepoint3d(点,vec,中心)
@@ -6859,481 +7281,414 @@
\end{verbatim}
点Bの位置は(4,-3,5)になる。
+
+%------------------ Translatedata3d -----------------------------------------------
\vspace{\baselineskip}
-\hypertarget{sf3data}{}
-\item[関数] Sf3data(name,リスト,options)
-\item[機能] 陰線処理なしの曲面をワイヤーフレームモデルで描く
-\item[説明] リストは,関数式と定義域,境界指定をそれぞれ文字列にしたもののリスト。
+\hypertarget{translatedata3d}{}
+\item[関数] Translatedata3d(name,PD,平行移動量)
+\item[機能] 空間プロットデータを平行移動
+\item[説明] PDで表される図形を,平行移動する。戻り値は平行移動したプロットデータのリスト。
-optionsは,解像度(各変数に対応する分割数)とメッシュの密度,境界指定。
+\vspace{\baselineskip}
+【例】曲線 sc3d1 をy軸方向に2だけ平行移動する。
-解像度は,"Num=[a,b]" で指定。初期値はa,bとも25
+\verb|Translatedata3d("1",["sc3d1"],[0,2,0]);|
+
+結果として,もとの曲線と平行移動した曲線の2つが描かれる。
-メッシュ密度は,縦横で "Wire=[a,b]" で指定。初期値はa,bとも20
+\vspace{\baselineskip}
+【例】多面体の平行移動\\
+VertexEdgeFace() で描いた多角形はこの関数では平行移動できないので,面データを直接操作して平行移動を行う。
+
+たとえば,小林・鈴木・三谷による多面体データ polyhedrons obj を用いて正八面体を描く場合,次のようにする。$y$軸方向に2だけ平行移動する場合である。
-境界指定は"ewsn"で行う。"ewsn" の意味は次のように考える。
+\begin{verbatim}
+ Setdirectory( Dirhead+"/data/polyhedrons_obj");
+ phd=Readobj("r02.obj",["size=2"]);
+ Setdirectory(Dirwork);
+ dn=length(phd_1);
+ repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]);
+ VertexEdgeFace("1",phd);
+\end{verbatim}
+ \begin{center} \input{Fig/translate01} \end{center}
-変数が u,v のとき,u,v平面において,$a \leq u \leq b,c \leq v \leq d$ の矩形を考え,
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-その東西南北(ewsn)の境界を示す。
+%------------------Translatepoint3d( -----------------------------------------------
+\hypertarget{translatepoint3d}{}
+\item[関数] Translatepoint3d(座標,平行移動量)
+\item[機能] 空間点を平行移動
+\item[説明] 点を平行移動する。
- \begin{center} \input{Fig/ewsn} \end{center}
-
\vspace{\baselineskip}
-関数式のパターンはつぎの3通り。
-
+【例】点A(1,0,0) を(-1,1,1)だけ平行移動した点をBとする。点Aの空間座標は A3d で表される。
+\begin{verbatim}
+ Putpoint3d(["A",[1,0,0]]);
+ pt=Translatepoint3d(A3d,[-1,1,1]);
+ Putpoint3d(["B",pt]);
+\end{verbatim}
\vspace{\baselineskip}
-(1) $z=f(x,y)$
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
- 【例】:$z=x^2-y^2$を定義域$x=[-2,2],y=[-2,2]$ で描画する。
-
- \verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"])|;
-
- \begin{center} \input{Fig/saddle1} \end{center}
- 【例】:同じく,解像度をx,yとも10,メッシュの数を縦横とも10にする。
-
- 解像度,メッシュ密度とも下げるので粗い描画となる。
-
-\verb|Sf3data("1",["z=x^2-y^2","x=[-2,2]","y=[-2,2]"],|
-
-\verb|["Num=[10,10]","Wire=[10,10]"]);|
-
-\vspace{\baselineskip}
-(2) $z=f(x,y),x=g(R,T),y=h(R,T)$
- x,y の媒介変数 r,t は大文字にする。
-
-\vspace{\baselineskip}
-【例】:次図左
-
-\verb|fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]"];|
+ \end{description}
+\newpage
+% その他 ==================================
+\subsection{その他}
- \verb|Sf3data("1",fd);|
-
-【例】:次図右\\
- \verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",|
+\begin{description}
-\verb|"r=[0,3]","t=[0,2*pi]"];|
-
-\verb|Sf3data("1",fd);|
- \begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center}
+%------------------- Perpplane-----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{perpplane}{}
+\item[関数] Perpplane(点名,点,ベクトル,option)
+\item[機能] 点を通り線分に垂直な平面上に基準点を2つとる
+\item[説明] 引数の点名は,作成する2点で "A-B" の形
-(3) $x=f(u,v),y=g(u,v),z=h(u,v),$
-
- この場合,(2)と区別するために,"p" を先頭につけておく。
+第2引数は通る点の名称または座標
- \vspace{\baselineskip}
- 【例】球面
-
- \verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",|
-
-\verb|"u=[0,pi]","v=[0,2*pi]"];|
-\verb|Sf3data("1",fd);|
-
-\begin{center} \input{Fig/sf3ddata4} \end{center}
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-
-\hypertarget{sfbdparadata}{}
-\item[関数] Sfbdparadata(name,式,options)
-\item[機能] 空間曲面の陰線処理
-\item[説明] 曲面について陰線処理を行う。
- 曲面の式はSf3data()の場合と同じ。ただし,(2) と(3)のパターンでは式の最後に境界の指定 ewns を明示する必要がある。(3)では境界の指定を" "(中は半角スペース)とする。省略すると不要な境界線が表示されることがある。境界指定については,Sf3data()の項を参照のこと。
+第3引数は法線ベクトル
-optionsは,"Wait=n","r","m",線種。Wait の初期値は30。
-
- "r","m"に関しては,オプションなしまたは,”” のとき
-
- i) データファイルがなければ,新しく作る
+optionは "put" で,2つの幾何点を作図する。optionがない場合は幾何点は作らず,無名の点のみを表示する。put以外の文字列を書いたときは無効な命令とし,何も作成されない。
- ii) データファイルが既にあればそれを読み込む
+記述例を示すと
-"m" のとき,強制的にデータファイルを作り直す。
+ \verb|Perpplane("A-B","P",[1,1,1],"put");|
+
+点Pを通り,法線ベクトル(1,1,1)に垂直な平面上に点A,Bをとる。
-"r" のとき,すでにあるデータファイルを読み込む。
+ \verb|Perpplane("A-B","P",P3d-O3d);|
+
+ 点Pを通り,線分OPに垂直な平面上に点A,Bをとる。
+ これらにおいて,PAとPBは垂直で,PA=PB=1 となる。
+
+\vspace{\baselineskip}
+【例】ベクトル $\vec{p}=(1,1,1)$ に垂直で点$(1,1,1)$を通る平面ABCDを描く。
-この処理は時間がかかるため,この関数を実行した状態で画面上のスライダを動かそうとすると反応が悪くなる。そこで,Isangle() を用いて,スライダの点を選択しているときはワイヤフレームモデルを描画するようにするとよい。
+ 点A,B,C,Dは作図ツールで適当に取っておく。正確な位置はスクリプトで決める。
-また,この関数はデータを作るだけなので,表示するには ExeccmdC() を用いる。
+\begin{layer}{150}{0}
+\putnotese{80}{20}{ \input{Fig/perpplane}}
+\end{layer}
-C言語の環境がない場合は,ExeccmdC() が使えないので,SfbdparadataR(name,式,optons1,optons2) を使う。options2には陰線の表示方法について "nodisp" または線種 を指定する。 初期設定は"nodisp" 。options2のみ指定するときは,options1に [""] (空文字)を書いておく。
-
-\vspace{\baselineskip}
-【例】サドル面
-
-陰線を消去して表示(下図左)
\begin{verbatim}
- fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
- if(Isangle(),
- Sf3data("1",fd);
- ,
- Startsurf();
- Sfbdparadata("1",fd);
- ExeccmdC("1",[],["nodisp"]);
- );
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
+ Putpoint3d(["O",[0,0,0]]);
+ Putpoint3d(["P",[1,1,1]]);
+ Perpplane("E-F","P",P3d-O3d,"put");
+ vec1=2*(E3d-P3d);
+ vec2=2*(F3d-P3d);
+ Putpoint3d(["A",P3d+vec1+vec2]);
+ Putpoint3d(["B",P3d+vec1-vec2]);
+ Putpoint3d(["C",P3d-vec1-vec2]);
+ Putpoint3d(["D",P3d-vec1+vec2]);
+ Spaceline("1",[A,B,C,D,A]);
+ Arrowdata([O,P],["dr,2"]);
+ Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]);
+ Skeletonparadata("1");
\end{verbatim}
-全体を実線で太めにして,陰線を点線で表示(下図右): \verb|ExeccmdC()| を変更する。
-\begin{verbatim}
- ExeccmdC("1",["dr,2"],["do"]);
-\end{verbatim}
- \begin{center} \input{Fig/sfbdpara01} \input{Fig/sfbdpara02}\end{center}
-【例】放物面 : 式を変更する。
-\begin{verbatim}
- fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
-\end{verbatim}
- 陰線を消去(下図左):\verb|ExeccmdC("1",[],["nodisp"]);|
-
- 陰線を破線で表示(下図右):\verb|ExeccmdC("1",[],["da"]);|
- \begin{center} \input{Fig/sfbdpara03} \input{Fig/sfbdpara04} \end{center}
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+ %-----------------Perppt( -----------------------------------------------
+\hypertarget{perppt}{}
+\item[関数] Perppt(点名,点,点リスト,option)
+\item[機能] 平面に下ろした垂線の足を求める
+\item[説明] 第2引数の点から,第3引数の点リストで決まる平面に下した垂線の足を,第1引数の名前の点とする。
-なお,表示については,\hyperlink{execcmdc}{ExeccmdC()} を参照のこと。
+オプションは次の通り。 初期設定は "draw"
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+draw:点を打つ。幾何点は作らない
-\hypertarget{skeletonparadata}{}
-\item[関数] Skeletonparadata(name,PDリスト,PDリスト,option)
-\item[機能] 陰線処理(スケルトン処理)をおこなう
-\item[説明] 描画されている線と軸について陰線処理をおこなう。
+put :幾何点を作る
-第2引数の線(プロットデータ)が,第3引数の線(プロットデータ)によって隠される部分を消去する。第2,第3引数を省略した場合は,すべての線について,互いの陰線処理をおこなう。optionで消去する部分の長さを指定できる。\\
-他のオプション\\
- \verb|"No=点リスト"| 点リストの点が選ばれているときは実行しない\\
- \verb|"File=y/m/n (n)"| データファイルを作るか\\
- \verb|"Check=点リスト"| 点リストの点が変更されていたら,ファイルを作り直す
+none:計算だけ行い,点は作図しない。
+\vspace{\baselineskip}
+【例】原点から点ABCを通る平面に下した垂線の足Hの座標を求める。
+ \verb|Perppt("H","O","A-B-C","none");| 表示はされない。
+
+ \verb|Perppt("H","O","A-B-C");| Hの位置に緑色の点が表示される。
+
+ \verb|Perppt("H","O","A-B-C","put");| 幾何点Hが作図される。
+
+ いずれの場合も,Hの座標は変数H3d に代入される
+
\vspace{\baselineskip}
-【例】螺旋と線分,座標軸の陰線処理
-
-次のように螺旋と線分,座標軸を描いておく。
+作図例
\begin{verbatim}
- Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");
- Putpoint3d(["A",[0,-2,-2]]);
- Putpoint3d(["B",[-1,1,3]]);
- Spaceline([A,B]);
- Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
+ Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
+ Putpoint3d("O",[0,0,0]);
+ Putpoint3d("A",[3,0,0]);
+ Putpoint3d("B",[0,3,0]);
+ Putpoint3d("C",[0,0,3]);
+ Perppt("H","O","A-B-C","put");
+ Spaceline("1",[A,B,C,A]);
+ Spaceline("2",[O,H]);
+ Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]);
\end{verbatim}
-座標軸のプロットデータは ax3d,線分は AB3d,螺旋は sc3d1 である。これに対し,
-\hspace{10mm} \verb|Skeletonparadata("1");|
-
- 描画されている線と軸について陰線処理をおこなう。(図左)
-
-\hspace{10mm} \verb|Skeletonparadata("1",[2]);|
-
- 重なった部分の空きを2にする。(図中央)
-
-\hspace{10mm} \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);|
-
-螺旋によって隠れる部分だけ消去する。(図右)
-
-\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02}
- \input{Fig/skeletonparadata03} \end{center}
-
-このほか,
-
-\hspace{10mm} \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"],[2]);|
-
-\hspace{10mm} \verb|Skeletonparadata("1",["AB3d"],["ax3d","sc3d1"]);|
-
-も可能である。
-
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
\vspace{\baselineskip}
+\begin{center} \input{Fig/perppt} \end{center}
+ %------------------Projcoordpara -----------------------------------------------
+\hypertarget{projcoordpara}{}
+\item[関数] Projcoordpara(座標)
+\item[機能] 投影座標を求める
+\item[説明] 空間座標を平面に投影した座標を求める。
-\hypertarget{spacecurve}{}
-\item[関数] Spacecurve(name,式,定義域,options)
-\item[機能] 空間曲線を描く
-\item[説明] 媒介変数で表された曲線を描く。optionは解像度 Num
+戻り値の第1,第2要素はCinderellaの描画面のx,y座標。第3要素はxy平面に垂直なzの座標で.投影面からの(符号付)距離を表す。
\vspace{\baselineskip}
-【例】螺旋を描く
+【例】\verb|Projcoordpara([3,1,2]);|
-\verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|
-
-\vspace{\baselineskip}
- \begin{center} \input{Fig/rasen} \end{center}
+ 戻り値は [-0.65,1.7,3.27] のようになる。(視点によって値は異なる)
-\hypertarget{spaceline}{}
-\item[関数] Spaceline(name,list)
-\item[機能] 折れ線を描く
-\item[説明] 点の名称または座標のリストを与えて折れ線を描く。平面での Listplot() にあたる。
-options は線種(dr,da,do)
-
+ %------------------Readobj-----------------------------------------------
\vspace{\baselineskip}
-【例】いくつか示す。
+\hypertarget{readobj}{}
+\item[関数] Readobj(ファイル名)
+\item[機能] objファイルを読み込む。
+\item[説明] 小林・鈴木・三谷による整面凸多面体のデータは\\
+\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
+からダウンロードできる。\verb|polyhedrons_obj|を,例えば,ユーザホームのketcindy作業フォルダに入れておく。
+\begin{verbatim}
+ Setdirectory(gethome()+"/ketcindy/polyhedrons_obj");
+ polydt=Readobj("r02.obj");
+ Setdirectory(Dirwork);
+\end{verbatim}
+これで,r02.obj データが,変数 polydt に代入される。
-・Spaceline("1",[[2,5,1],[4,2,3]]); 指定された2点を結んだ線分を描く。
+オプションは "size=n" で,n倍したデータにする。負の数にすると上下が反転される。
-・Spaceline("2",[A,B,C,A]); 作図されている2点A,B,Cを結んだ三角形を描く。
+データはKeTCindyのdataフォルダの中にある。したがって,次のようなスクリプトを書く。読み込むのは一度だけなので, Draw スロットではなくInitialization スロットに置けばよいが,コードの可読性を高めるには Draw スロットでもよい。
+この多面体データは,頂点リストと面リストからなっているが,頂点リストは座標のリストなので,読み込んで表示するときには,点の名称を v1,v2,・・・ とする。
-・節点を表示する場合は,Pointdata3d() で描画する。
+読み込んだあとの使い方を含めて例を示す。
\begin{layer}{150}{0}
-\putnotese{80}{10}{ \input{Fig/oresenex01}}
+\putnotese{80}{0}{ \input{Fig/readobj}}
\end{layer}
-\begin{verbatim}
- pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]];
- Spaceline("1",pt);
- Pointdata3d("1",pt,["Size=3"]);
-\end{verbatim}
-点の名前が必要であれば
-\verb|pname=apply(1..6,"P"+text(#));|
-
-のようにして,名前リストを作ることができる。
-
\vspace{\baselineskip}
-\hypertarget{translatedata3d}{}
-\item[関数] Translatedata3d(name,PD,平行移動量)
-\item[機能] 空間プロットデータを平行移動
-\item[説明] PDで表される図形を,平行移動する。
+【例】\verb|polydt|を用いて正八面体を描く
-\vspace{\baselineskip}
-【例】曲線 sc3d1 をy軸方向に2だけ平行移動する。
-\verb|Translatedata3d("1",["sc3d1"],[0,2,0]);|
-
-結果として,もとの曲線と平行移動した曲線の2つが描かれる。
+\begin{verbatim}
-\vspace{\baselineskip}
-【例】多面体の平行移動\\
-VertexEdgeFace() で描いた多角形はこの関数では平行移動できないので,面データを直接操作して平行移動を行う。
-
-たとえば,小林・鈴木・三谷による多面体データ polyhedrons obj を用いて正八面体を描く場合,次のようにする。$y$軸方向に2だけ平行移動する場合である。
-
-\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- phd=Readobj("r02.obj",["size=2"]);
- Setdirectory(Dirwork);
- dn=length(phd_1);
- repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]);
- VertexEdgeFace("1",phd);
+ VertexEdgeFace("1",polydt);
+ Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
- \begin{center} \input{Fig/translate01} \end{center}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+主なデータは次の通り。
-\hypertarget{translatepoint3d}{}
-\item[関数] Translatepoint3d(座標,平行移動量)
-\item[機能] 空間点を平行移動
-\item[説明] 点を平行移動する。
-
\vspace{\baselineskip}
-【例】点A(1,0,0) を(-1,1,1)だけ平行移動した点をBとする。点Aの空間座標は A3d で表される。
-\begin{verbatim}
- Putpoint3d(["A",[1,0,0]]);
- pt=Translatepoint3d(A3d,[-1,1,1]);
- Putpoint3d(["B",pt]);
-\end{verbatim}
-\vspace{\baselineskip}
-\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+ \input{Fig/kobayashi}
-\hypertarget{vertexedgeface}{}
-\item[関数] VertexEdgeFace(name,面データ,options)
-\item[機能] 多面体の面データを用いて多面体を描く
-\item[説明] 面データは,頂点リストと,面リストからなる。面リストは,各面を構成する頂点を,外側から見て反時計回り(左回り)に並べたリストである。
+この他にn01〜n92まで整面凸多面体がある。
-たとえば,四面体ABCDの面データは,[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] となる。
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
-4点A,B,C,Dをとっておき,このリストを引数に与えると,四面体の辺が描かれる。
-
-生成されるプロットデータは,
-
-phv3d:頂点のリスト
-
-phe3d:辺のリスト
-
-phf3d:面リスト
-
-なお,それぞれ末尾にnameが付加される。
-
+%-------------------Xyzcoord -----------------------------------------------
\vspace{\baselineskip}
-【例】:正四面体を描く
-\begin{verbatim}
- Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
- Putpoint3d("B",2*[1,-1/sqrt(3),0]);
- Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
- Putpoint3d("D",2*[0,0,sqrt(3)]);
- phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
- VertexEdgeFace("1",phd);
-\end{verbatim}
- \begin{center} \input{Fig/vertex01} \end{center}
+\hypertarget{xyzcoord}{}
+\item[関数] Xyzcoord(P.x,P.y,Pz.y)
+\item[機能] 主副画面で決まる点の座標
+\item[説明] Cinderellaの描画面上の点が表す空間座標を求める
-%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
-\hypertarget{wireparadata}{}
-\item[関数] Wireparadata(name,PD,式,整数,整数,optons)
-\item[機能] 曲面のワイヤフレームを陰線処理してプロットデータを作る。
-\item[説明] PDは,第3引数の式で描いたワイヤフレームモデルのプロットデータ名。第4,第5引数は分割線の数。
-
-options には "r","m","Wait=n" が指定できる。Wait の初期値は30。
-
- "r","m"に関しては,オプションなしまたは,”” のとき
+ 点Pについて,主画面の点Pに対応するのが副画面のPzである。点Pの2次元座標はP.x,P.yで,Pzのy座標はPz.yで表される。これを引数として与えると,点Pの空間座標が返される。
- i) データファイルがなければ,新しく作る
-
- ii) データファイルが既にあればそれを読み込む
-
- "m" のとき,強制的にデータファイルを作り直す。
+\vspace{\baselineskip}
+【例】点Aをドラッグして動かしたとき,Aの座標を求める。
+\verb|println(Xyzcoord(A.x,A.y,Az.y));|
- "r" のとき,すでにあるデータファイルを読み込む。
-
-曲面の陰線処理を行うので,Sfbdparadata() とペアで使う。
+により,コンソールに座標が表示される。
-この処理は時間がかかるため,この関数を実行した状態で画面上のスライダを動かそうとすると反応が悪くなる。そこで,Isangle() を用いて,スライダの点を選択しているときはワイヤフレームモデルを描画するようにするとよい。
+%------------------- Isangle -----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{isangle}{}
+\item[関数] Isangle()
+\item[機能] 角度スライダ(視点スライダ)の選択判断
+\item[説明] 角度スライダを選択しているときは true ,そうでないときは false を返す。
-また,この関数はデータを作るだけなので,表示するには \hyperlink{execcmdc}{ExeccmdC()} を用いる。
+曲面の描画・陰線処理には時間がかかるため,角度スライダを動かすと反応が悪くなる。そこで,角度スライダを選択しているときは曲面の描画をしないようにすることで反応がよくなる。
-C言語の環境がない場合は,ExeccmdC() が使えないので,WireparadataR(name,PD,式,整数,整数,optons1,optons2) を使う。options2には陰線の表示方法について "nodisp" または線種 を指定する。 初期設定は"nodisp" 。options2のみ指定するときは,options1に [""] (空文字)を書いておく。
-
-
-\vspace{\baselineskip}
-【例】式のタイプ別に例を示す。
-
\vspace{\baselineskip}
-サドル面
+【例】放物面の描画
-\begin{layer}{150}{0}
-\putnotese{85}{5}{ \input{Fig/wirepara1}}
-\end{layer}
+次のようにすると,スライダの点を選んでいる間はワイヤフレームモデルが描かれ,画面上の他の部分をクリックして選択状態が解除されると陰線処理された放物面が描かれる。
\begin{verbatim}
- fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
+ fd=[
+ "z=4-(x^2+y^2)",
+ "x=R*cos(T)","y=R*sin(T)",
+ "R=[0,2]","T=[0,2*pi]","e"
+ ];
if(Isangle(),
- Sf3data("1",fd);
- ,
- Startsurf();
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,4,5);
- ExeccmdC("1");
- );
+ Sf3data("1",fd);
+ ,
+ Startsurf();
+ Sfbdparadata("1",fd);
+ Crvsfparadata("1","ax3d","sfbd3d1",fd);
+ ExeccmdC("1");
+ );
\end{verbatim}
-回転放物面:次を変更
+%------------------- Dist3d -----------------------------------------------
+\hypertarget{dist3d}{}
+\item[関数] Dist3d(a1,a2)
+\item[機能] 空間の2点間の距離を返す
+\item[説明] 引数a1,a2 は作図点の名称,空間点の名称のいずれでもよい。
-\begin{layer}{150}{0}
-\putnotese{85}{10}{ \input{Fig/wirepara2}}
-\end{layer}
+次の3通りの記法は同じ結果を返す。混在も可
\begin{verbatim}
- fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"];
- Wireparadata("1","sfbd3d1",fd,5,7);
+ Dist3d("A","B");
+ Dist3d(A,B);
+ Dist3d(A3d,B3d);
\end{verbatim}
-\vspace{25mm}
-球面
+%------------------- Embed -----------------------------------------------
+\vspace{\baselineskip}
+\hypertarget{embed}{}
+\item[関数] Embed(name,PDリスト,式,変数リスト)
+\item[機能] 2D図形の空間内平面へ埋め込む
+\item[説明] 第2引数は2Dの図形のプロットデータのリスト,式と変数は平面を記述する式と変数。平面は原点$vo$と2つの基本ベクトル $\overrightarrow{vx},\overrightarrow{vy}$を用いて,$vo+x \cdot \overrightarrow{vx}+y \cdot \overrightarrow{vy}$ の形で表すことができる。変数(基本ベクトルの係数)は$x,y$ でなく,$s,t$ でもよい。式,変数リストともに文字列にする。また,基本ベクトルは直交していなくてもよいし,長さが異なってもよいが,縦横同じスケールの直交座標系にするのがわかりやすいだろう。
-このタイプでは,媒介変数形式の識別のため,先頭に "p" をつけておく。
-
-\begin{layer}{150}{0}
-\putnotese{80}{0}{ \input{Fig/wirepara3}}
-\end{layer}
+\vspace{\baselineskip}
+【例】正三角形と外接円を空間内の平面に埋め込む
\begin{verbatim}
- fd=["p","x=2*sin(u)*cos(v)",
- "y=2*sin(u)*sin(v)",
- "z=2*cos(u)","u=[0,pi]",
- "v=[0,2*pi]","s"];
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,12,12);
+ Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]);
+ Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]);
+ Defvar("vo=[3,3,3]");
+ Defvar("vx=[0,1,0]");
+ Defvar("vy=[0,0,1]");
+ Putpoint3d(["A",[3,3,3]]);
+ Circledata("1",[[0,0],[2,0]],["nodisp"]);
+ Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
+ Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");
+ Ptsize(3);
+ Drawpoint(A);
\end{verbatim}
+ \begin{center} \input{Fig/embed01} \end{center}
-\vspace{8mm}
-%\begin{center} \input{Fig/wirepara1} \input{Fig/wirepara2} \input{Fig/wirepara3} \end{center}
+ここで,Embed()で引き渡す vo,vx,vy については,Rでの変数定義が必要なので(\ketcindy では行わない)Defvar() によって定義をしている。
-\vspace{\baselineskip}
-【例】球面で座標軸を陰線処理し,面の陰線は非表示で表す。
+原点,基本ベクトルを,点を作図して次のようにすることもできる。この場合は Defvar() は不要。
-\begin{layer}{150}{0}
-\putnotese{70}{5}{ \input{Fig/wirepara4}}
-\end{layer}
+\begin{verbatim}
+ Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);
+ Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");
+\end{verbatim}
+\begin{center}
+\includegraphics[bb=0 0 477.02 383.02 , width=6cm]{Fig/embed03.pdf}
+\end{center}
+この場合,点B,Cの座標がそのまま基本ベクトルとなっているが,原点Aに対して描画平面上にはB,Cがないので図がわかりにくい。図をわかりやすくするならば次のようにする。
\begin{verbatim}
- fd=["p","x=2*sin(u)*cos(v)",
- "y=2*sin(u)*sin(v)",
- "z=2*cos(u)",
- "u=[0,pi]","v=[0,2*pi]","s"];
- if(Isangle(),
- Sf3data("1",fd);
- ,
- Startsurf();
- Sfbdparadata("1",fd);
- Wireparadata("1","sfbd3d1",fd,12,12);
- Crvsfparadata("1","ax3d","sfbd3d1",fd);
- ret=ExeccmdC("1");
- forall(1..length(ret),
- if(indexof(ret_#,"wireh")>0,
- Changestyle3d([ret_#],["nodisp"]);
- );
- );
- );
+ Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);
+ Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]");
\end{verbatim}
-【例】トーラスを描く
-式を次のように変え,軸は非表示にして,\verb|ExeccmdC("1",[],["nodisp"])| にする。
-
+ また,平面を記述するのに,平面の原点と法線ベクトルを用いて Perpplane() を用いると,基本ベクトルが生成されるので、これを利用することができる。次のスクリプトでは,Skeletonparadata() を用いて陰線処理もしている。
\begin{verbatim}
- fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",
- "u=[0,2*pi]","v=[0,2*pi]","s"];
+ Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");
+ Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);
+ Perpplane("E-F","P",P3d-O3d,"put");
+ vec1=3*(E3d-P3d);
+ vec2=3*(F3d-P3d);
+ Putpoint3d(["A",P3d+vec1+vec2]);
+ Putpoint3d(["B",P3d+vec1-vec2]);
+ Putpoint3d(["C",P3d-vec1-vec2]);
+ Putpoint3d(["D",P3d-vec1+vec2]);
+ Spaceline("1",[A,B,C,D,A]);
+ Circledata("1",[[0,0],[2,0]],["nodisp"]);
+ Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
+ Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]");
+ Ptsize(3);
+ Drawpoint(P);
+ Skeletonparadata("1");
\end{verbatim}
-\vspace{\baselineskip}
- \begin{center} \input{Fig/wirepara5} \end{center}
+ \begin{center} \input{Fig/embed02} \end{center}
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
+%------------------- Parapt -----------------------------------------------
\vspace{\baselineskip}
-\hypertarget{xyzax3data}{}
-\item[関数] Xyzax3data(name,xの範囲,yの範囲,zの範囲,options)
-\item[機能] 座標軸を描く
-\item[説明] 描画面に座標軸を描き,プロットデータ ax3d を作成する。nameは空文字列でよい。option は次の2つ。
+\hypertarget{parapt}{}
+\item[関数] Parapt(座標)
+\item[機能] 点の投影面での座標
+\item[説明] 引数の空間座標に対応するCinderellaの描画面の座標を返す。
-矢じり:"an":nは数字で矢じりの大きさ。nはなくてもよい。
+\vspace{\baselineskip}
+【例】\verb|Parapt([2,1,5]);| により,点(2,1,5) が表示されている描画面の座標,たとえば [-0.52,3.27] が返される。
+%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+\vspace{\baselineskip}
+%------------------- Invparapt -----------------------------------------------
+\hypertarget{invparapt}{}
+\item[関数] Invparapt(座標,PD)
+\item[機能] 描画面上の座標に対応する曲線上の点の座標を返す
+\item[説明] Cinderellaの描画面上の座標を与えて,それに対応する曲線上の3次元座標を返す。
-原点O:"Onesw":neswは微小位置。数字も付けられる。neswをつけない場合の初期値はsw。
+空間内の曲線を作図すると,曲線の空間内のプロットデータとともに,描画面上に描くためのプロットデータも作られる。これを利用すると,描画面上の位置から曲線上の座標を求めることができる。
-【例】 初期設定の座標軸\\
-\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|
-
- 矢じりをつける
-
- \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");|
-
- 矢じりを大きくする
-
- \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);|
-
-原点のOを表示する。
+\vspace{\baselineskip}
+【例】螺旋と線分を描いたとき,描画面上での交点(空間内の交点ではない)に対応する螺旋上の点の座標を求め部分曲線を描く。
- \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|
+\begin{verbatim}
+ Spaceline("1",[[-1,-1,-1],[1,2,3]]);
+ Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]);
+ tmp=Intersectcrvs("sl2d1","sc2d1");
+ p1=Invparapt(tmp_1,"sc3d1");
+ p2=Invparapt(tmp_2,"sc3d1");
+ Partcrv3d("1",p1,p2,"sc3d1");
+\end{verbatim}
+ \begin{center}\scalebox{0.8}{ \input{Fig/invparapt}} \end{center}
- 原点のOの位置を調整して右上に表示する。やじりもつける。
-
- \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);|
-
+ここで,sl2d1,sc2d1 は線分と螺旋の描画面上での(平面の)プロットデータである。Intersectcrvs() で平面上の交点の座標(複数あるのでリストが返る)を求め,Invparapt() で対応する螺旋上の点の座標を求めて部分曲線を描いている。実際に交わる点での部分曲線ではないことに注意。
-【注意】Putaxes3d() で点を取ると原点に点Oが作成される。この点名Oと表示が重複するのが煩わしい場合は,作図後にこのoptionをつけてから出力するとよい。
+\vspace{\baselineskip}
+\hypertarget{expr3d}{}
+\item[関数] Expr3d([位置, 方向, 文字列],option)
+\item[機能] 文字列を表示する
+\item[説明] Expr() と同じ書式。「位置(座標)」だけ,空間座標にする。
\vspace{\baselineskip}
-\hypertarget{xyzcoord}{}
-\item[関数] Xyzcoord(P.x,P.y,Pz.y)
-\item[機能] 主副画面で決まる点の座標
-\item[説明] Cinderellaの描画面上の点が表す空間座標を求める
+\hypertarget{letter3d}{}
+\item[関数] Letter3d([位置, 方向, 文字列],option)
+\item[機能] 文字列を表示する
+\item[説明] Letter() と同じ書式。「位置(座標)」だけ,空間座標にする。
- 点Pについて,主画面の点Pに対応するのが副画面のPzである。点Pの2次元座標はP.x,P.yで,Pzのy座標はPz.yで表される。これを引数として与えると,点Pの空間座標が返される。
-
\vspace{\baselineskip}
-【例】点Aをドラッグして動かしたとき,Aの座標を求める。
-\verb|println(Xyzcoord(A.x,A.y,Az.y));|
-
-により,コンソールに座標が表示される。
+【例】三角錐ABCDを描いて,BCの中点に点Mを取ってA,Dと結ぶ。
+\begin{layer}{150}{0}
+\putnotese{90}{10}{ \input{Fig/letter3d}}
+\end{layer}
+\begin{verbatim}
+Putpoint3d("A",2*[0,0,2*sqrt(6)/3]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[-1,-1/sqrt(3),0]);
+Putpoint3d("M",(B3d+C3d)/2);
+phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
+VertexEdgeFace("1",phd);
+Spaceline("1",[A,M,D]);
+Nohiddenbyfaces("1","phf3d1");
+Letter3d([A3d,"ne","A",B3d,"w","B",C3d,"se","C",D3d,"e","D"]);
+Letter3d(M3d,"sw","M",["Color=blue"]);
+\end{verbatim}
+\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
+
\end{description}
+
\newpage
-
% 付録 ==================================
\section{付録}
@@ -7424,6 +7779,7 @@
\hyperlink{fontsize}{Fontsize(記号)} \>フォントサイズを設定する\\
\hyperlink{ketinit}{Ketinit(options)} \>\ketcindy を初期化する\\
\hyperlink{ptsize}{Ptsize(数)} \>表示する点の大きさを設定する\\
+\hyperlink{setarrow}{Setarrow(size,angle,pos,cut,style} \>矢線の形状を設定する\\
\hyperlink{setax}{Setax(list)} \>座標軸の書式を設定する\\
\hyperlink{setcolor}{Setcolor(color,options)} \>Windispgでの描画色を設定する\\
\hyperlink{setfiles}{Setfiles(filename)} \>出力するファイル名を設定する\\
@@ -7439,6 +7795,7 @@
【描画】\\
\hyperlink{addgraph}{AddGraph(name ,プロットデータ)} \>ユーザー定義のプロットデータを描画する\\
\hyperlink{anglemark}{Anglemark(点list, options)} \>角の印を入れる\\
+\hyperlink{setarrow}{Setarrow(options)} \>矢線をスタイルを設定する\\
\hyperlink{arrowdata}{Arrowdata(name.[始点,終点],options)} \>2点間を結ぶ矢線を描く\\
\hyperlink{arrowhead}{Arrowhead(点,方向,options)} \>点に矢じりだけを描く\\
\hyperlink{bezier}{Bezier(name, list,list,options )} \>単独のベジェ曲線を描く\\
@@ -7456,7 +7813,7 @@
\hyperlink{drwpt}{Drwpt([点,options])} \>点を表示する\\
\hyperlink{ellipseplot}{Ellipseplot(name,list,str,options)} \>楕円を描く\\
\hyperlink{enclosing}{Enclosing(name , [位置,方向,数式])} \>複数の曲線から閉曲線を描く\\
-\hyperlink{expr}{Expr(文字列)} \>\TeX 数式を書く\\
+\hyperlink{expr}{Expr([座標,位置,文字列],options)} \>\TeX 数式を書く\\
\hyperlink{exprrot}{Exprrot(位置,向き,文字列)} \>傾いた\TeX 数式を書く\\
\hyperlink{fourierseries}{Fourierseries(name,係数,周期,項数)} \>フーリエ級数を描く\\
\hyperlink{framedata}{Framedata(name , list)} \>矩形を描く\\
@@ -7466,8 +7823,8 @@
\hyperlink{implicitplot}{Implicitplot(name,str,,str,str,options)} \>陰関数のグラフを描く\\
\hyperlink{invert}{Invert(PD)} \>プロットデータの点を逆順にする(reverseと同じ)\\
\hyperlink{joincrvs}{Joincrvs(name, PDlist, options)} \>2つのプロットデータをつなげたデータを作る\\
-\hyperlink{letter}{Letter(「座標,位置,文字列]のlist」)} \>文字列を表示する\\
-\hyperlink{letterrot}{Letterrot(「座標,方向,移動量,文字列])} \>文字列を回転して表示する\\
+\hyperlink{letter}{Letter([座標,位置,文字列],options)} \>文字列を表示する\\
+\hyperlink{letterrot}{Letterrot(座標,方向,移動量,文字列)} \>文字列を回転して表示する\\
\hyperlink{lineplot}{Lineplot(name,2点のlist,options)} \>2点を結ぶ直線を描く\\
\hyperlink{listplot}{Listplot(name,点のlist,options)} \>点を線分で結ぶ\\
\hyperlink{mkbeziercrv}{Mkbeziercrv(name,list,options)} \>作図した点を使ってベジェ曲線を描く\\
@@ -7516,6 +7873,7 @@
\hyperlink{tlistplot}{Tlistplot(セルラベル1,セルラベル2)} \>セルに斜線を引く\\
\vspace{\baselineskip}
【値の取得と入出力】\\
+\hyperlink{asin}{Asin(real),Acos(real) } \>逆三角関数の値を返す\\
\hyperlink{crossprod}{Crossprod(list,list)} \>ベクトルの外積を計算する\\
\hyperlink{derivative}{Derivative(関数式,変数,値)} \>関数の微分係数を求める\\
\hyperlink{dotprod}{Dotprod(list,list)} \>ベクトルの内積を計算する\\
@@ -7536,6 +7894,7 @@
\hyperlink{ptcrv}{Ptcrv(n,PD)} \>曲線PD のn 番目の節点を取得する\\
\hyperlink{ptstart}{Ptstart(PD)} \>プロットデータの始点・終点を取得する\\
\hyperlink{readoutdata}{ReadOutData(ファイル名)} \>外部データをPDとして読み込む\\
+\hyperlink{sqr}{Sqr(real)} \>平方根を返す\\
\hyperlink{viewtex}{Viewtex()} \>\TeX のソースファイルを書き出す。引数なし\\
\hyperlink{workprocess}{Workprocess()} \>作図の経過を取得する\\
\hyperlink{writeoutdata}{WriteOutData()} \>PDデータを書き出す\\
@@ -7629,9 +7988,11 @@
\hyperlink{drawpoint3d}{Drawpoint3d(座標)} \>空間点を描く\\
\hyperlink{embed}{Embed(name,PD,式)} \>埋め込みデータ作成\\
\hyperlink{execcmdc}{ExeccmdC(name,options1,options2)} \>C言語で命令実行\\
+\hyperlink{expr3d}{Expr3D([座標,位置,文字列],options)} \>文字列を表示する\\
\hyperlink{intersectcrvsf}{Intersectcrvsf(name,PD,式)} \>曲線と曲面の交点を求める\\
\hyperlink{intersectsgpL}{IntersectsgpL(点名,線分,面,描画方法)} \>空間の直線と平面の交点\\
\hyperlink{invparapt}{Invparapt(座標,PD)} \>描画面座標に対応する曲線上の座標\\
+\hyperlink{letter3d}{Letter3D([座標,位置,文字列],options)} \>文字列を表示する\\
\hyperlink{mkbezierptcrv3d}{Mkbezierptcrv3d(点list)} \>制御点を自動的にとる空間ベジェ曲線\\
\hyperlink{nohiddenbyfaces}{Nohiddenbyfaces(name,PD,PD,opt1,opt2)} \>多面体と空間曲線を陰線処理\\
\hyperlink{parapt}{Parapt(座標)} \>点の投影面での座標\\
@@ -7653,6 +8014,7 @@
\hyperlink{scalepoint3d}{Scalepoint3d(点, vec, 中心)} \>点の位置を拡大/縮小\\
\hyperlink{sf3data}{Sf3data(name, list,options)} \>陰線処理なしの空間曲面を描く\\
\hyperlink{sfbdparadata}{Sfbdparadata(name, 式,options)} \>曲面を陰線処理して描く\\
+\hyperlink{sfcutparadatacdy}{Sfcutparadatacdy(name,面,曲面,options)} \>平面と曲面の交線を求める。\\
\hyperlink{skeletonparadata}{Skeletonparadata(name,PD,PD,options)} \>スケルトン処理のデータ作成\\
\hyperlink{spacecurve}{Spacecurve(name, 式, 定義域,options)} \>空間曲線のデータ作成\\
\hyperlink{spaceline}{Spaceline(name,list)} \>空間の折線データ作成\\
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,109 @@
+\documentclass{article}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\renewcommand{\labelitemi}{$\cdot$}
+\renewcommand{\labelitemii}{$\cdot$}
+
+\begin{document}
+
+\begin{center}
+How to install KeTCindy(Mac)
+\end{center}
+
+\hfill modified\ :\ \today
+
+\begin{enumerate}[\bf\large 1.]
+
+\item Install Cinderella, R and Maxima.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \end{itemize}
+
+\item Install TeX if any TeX has not been installed.
+ \begin{enumerate}[(1)]
+ \item TeXLive is recommended.
+ \begin{itemize}
+ \item Files necessary for KeTCindy are already implemented (2018 or later).
+ \end{itemize}
+ \item In case of other TeX, see {\bf 3.}(2).
+ \end{enumerate}
+
+
+\item Install KeTCdindy
+ \begin{enumerate}[(1)]
+ \item Download ketcindy from CTAN(\url{https://ctan.org})\\
+ \hspace*{10mm}Search ketcindy \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[Rem)]The latest version can be download from Repository:\\
+ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\
+ \hspace*{10mm}Clone or Download \verb|>| Download ZIP
+ \end{itemize}
+ \item Open ketcindy(-master)/forLinux.
+ \begin{itemize}
+ \item[Rem)]If you use TeX other than TeXLIve/KeTTeX,
+ \begin{itemize}
+ \item Open setketcindy.command with a text editor.
+ \item Edit paths in it.
+ \end{itemize}
+ \end{itemize}
+ \item Open Terminal and execute setketcindy.sh with sh command
+ \begin{itemize}
+ \item Control-click and select Terminal if necessary.
+ \item Contents of scripts will be copied into TeX.
+ \item ketcindystyle files will be copied and mktexlsr will be executed.
+ \item In Cinderella/PlugIns\\
+ \hspace*{5mm}KetcindyPluign.jar will be copied.\\
+ \hspace*{5mm}ketcindy.ini will be generated .
+ \end{itemize}
+ \item Open Terminal and execute setwork.sh with sh command.
+ \begin{itemize}
+ \item[Rem)]Control-click and select Terminal if necessary.
+ \end{itemize}
+ \begin{itemize}
+ \item Work directory "ketcindy" will be generated in User's home.
+ \item TeX(typeset) will be usually latex,xelatex or pdflatex.
+ \item Contents of “work” will be copied into "ketcindy"
+ \item \verb|.ketcindy.conf| will be also generated in User's home.\\
+ \hspace*{10mm}You can change the setting of PasthT, Mackc, etc.
+ \item Template of "ketcindy.conf" will be also copied to work directory.
+ \item Configuration files are read in order of
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ketcindy.conf in User's home
+ \item ketcindy.conf in the work folder.
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+
+\item Test run of KeTCindy
+ \begin{enumerate}[(1)]
+ \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
+ \item Press "Figure" button at the top left, then the final PDF output is displayed.
+ \begin{itemize}
+ \item[Rem)]To close the window of Terminal when the process exits :
+ \begin{itemize}
+ \item Start \verb|Terminal|.\\
+ \hspace*{10mm}Preferences \verb|>| Shell \verb|>| "Colse if the shell exited clearly"
+ \end{itemize}
+ \end{itemize}
+
+\item Set Texworks if necessary.
+ \begin{itemize}
+ \item Downloadable from \url{https://github.com/TeXworks/texworks/releases/}.
+ \end{itemize}
+
+\item Install \verb|gcc| for drawings of surface.
+
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,107 @@
+\documentclass{ujarticle}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[dvipdfmx,colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\西暦
+
+\renewcommand{\labelitemi}{・}
+\renewcommand{\labelitemii}{・}
+
+\begin{document}
+
+\begin{center}
+KETCindyのインストール (Linux)
+\end{center}
+
+\hfill 修正日:\today
+
+\begin{enumerate}[\bf\large 1.]
+\item Cinderella, R, Maxima をインストールする.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \end{itemize}
+
+\item TeXをインストールしていない場合はインストールする.
+ \begin{enumerate}[(1)]
+ \item TeXLiveを推奨
+ \begin{itemize}
+ \item 2018以降ではketcindyが既に入っている.
+ \end{itemize}
+ \item 他のTeXの場合は,{\bf 3.}(2)を参照する.
+ \end{enumerate}
+
+\item KeTCindyのインストール
+ \begin{enumerate}[(1)]
+ \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\
+ \hspace*{10mm}ketcindyで検索 \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[注)]最新版は,Repositoryのサイト\\
+ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\
+ から以下のようにダウンロードできる.\\
+ \hspace*{10mm}Clone or download \verb|>| Download ZIP
+ \item[注)]この場合は,ketcindy-masterになる.
+ \end{itemize}
+ \item ketcindy(-master)/forLinuxを開く.
+ \begin{itemize}
+ \item[注)]他のTeXを使っている場合
+ \begin{itemize}
+ \item setketcindy.shをテキストエディタで開く.
+ \item パスを修正する.
+ \end{itemize}
+ \end{itemize}
+ \item ターミナルのshコマンドでsetketcindy.shを実行.
+ \begin{itemize}
+ \item scriptsの中身がTeXにコピーされる
+ \item ketcindyのstyleファイルがTeXにコピーされmktexlsrが実行される.
+ \item CinderellaのPluginsにKetcindyPlugin.jarをコピー,ketcindy.iniが作成される.
+ \end{itemize}
+ \item ターミナルのshコマンドでsetwork.shを実行.
+ \begin{itemize}
+ \item 作業ディレクトリketcindyがユーザホームに作成される.
+ \item タイプセットの方法(TeXの種類)\\
+ \hspace*{10mm}通常は,platex (p)またはuplatex(u)を選ぶ.
+ \item ketcindyフォルダにworkフォルダの中身がコピーされる.
+ \item \verb|.ketcindy.conf|(不可視ファイルだが編集可能)がユーザホームに作成される.\\
+ \hspace*{10mm}注)TeXを切り替えるときなどはこのファイルを修正する.
+ \item マニュアルもコピーされる.
+ \item 作業ディレクトリにketincy.confの雛形がコピーされる.
+ \item KeTCindyを立ち上げたとき,設定ファイルは次の順に読み込まれる.
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ユーザホームの\verb|.ketcindy.conf|
+ \item 作業ディレクトリketcindyの ketcindy.conf
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+ \item KeTCindyのテストラン
+ \begin{enumerate}[(1)]
+ \item 作業ディレクトリketcindyを開く.
+ \item ketcindyの中のtemplate1basic.cdyを選び,「情報を見る」を開く.
+ \begin{itemize}
+ \item アプリケーションが所定のCinderella2になっていることを確かめる.
+ \item「情報」を閉じて,template1basic.cdyをダブルクリックする.
+ \item 画面に白い枠が出れば,ライブラリの読み込みは成功.
+ \end{itemize}
+ \item スクリーンの左上部にあるFigureボタンを押して,PDFが表示されれば成功.
+ \end{enumerate}
+
+\item TeXworksを設定する.
+ \begin{itemize}
+ \item \url{https://github.com/TeXworks/texworks/releases/} からダウンロードできる.
+ \end{itemize}
+
+\item gccのインストール
+ \begin{itemize}
+ \item 曲面描画のためには, gccが必要である.
+ \end{itemize}
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,126 @@
+\documentclass{article}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\renewcommand{\labelitemi}{$\cdot$}
+\renewcommand{\labelitemii}{$\cdot$}
+
+\begin{document}
+
+\begin{center}
+How to install KeTCindy(Mac)
+\end{center}
+
+\hfill modified\ :\ \today
+
+\begin{enumerate}[\bf\large 1.]
+
+\item Install Cinderella, R and Maxima.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \end{itemize}
+\hspace*{5mm}Rem) Check they start correctly.
+
+\item Install TeX if any TeX has not been installed.
+ \begin{enumerate}[(1)]
+ \item TeXLive is recommended.
+ \begin{itemize}
+ \item Files necessary for KeTCindy are already implemented (2018 or later).
+ \end{itemize}
+ \item kettex is a light-weight TeXLive.
+ \begin{itemize}
+ \item Download kettex.zip from\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0}
+ \item Double-click it and move kettex to \verb|/Applications|.
+ \end{itemize}
+ \item In case of other TeX, see {\bf 3.}(2).
+ \end{enumerate}
+
+
+\item Install KeTCdindy
+ \begin{enumerate}[(1)]
+ \item Download ketcindy from CTAN(\url{https://ctan.org})\\
+ \hspace*{10mm}Search ketcindy \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[Rem)]The latest version can be download from Repository:\\
+ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\
+ \hspace*{10mm}Clone or Download \verb|>| Download ZIP
+ \end{itemize}
+ \item Open ketcindy(-master)/forMac.
+ \begin{itemize}
+ \item[Rem)]If you use TeX other than TeXLIve/KeTTeX,
+ \begin{itemize}
+ \item Open setketcindy.command with a text editor.
+ \item Edit paths in it.
+ \end{itemize}
+ \end{itemize}
+ \item Double-click setketcindy.command.
+ \begin{itemize}
+ \item Password of an administrator is required.
+ \item Control-click and select Terminal if necessary.
+ \item Contents of scripts will be copied into TeX.
+ \item ketcindystyle files will be copied and mktexlsr will be executed.
+ \item In Cinderella/PlugIns\\
+ \hspace*{5mm}KetcindyPluign.jar will be copied.\\
+ \hspace*{5mm}ketcindy.ini will be generated .
+ \end{itemize}
+ \item Double-click setwork.command.
+ \begin{itemize}
+ \item[Rem)]Control-click and select Terminal if necessary.
+ \end{itemize}
+ \begin{itemize}
+ \item Work directory "ketcindy" will be generated in User's home.
+ \item TeX(typeset) will be usually latex,xelatex or pdflatex.
+ \item Contents of “work” will be copied into "ketcindy"
+ \item \verb|.ketcindy.conf| will be also generated in User's home.\\
+ \hspace*{10mm}You can change the setting of PasthT, Mackc, etc.
+ \item Template of "ketcindy.conf" will be also copied to work directory.
+ \item Configuration files are read in order of
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ketcindy.conf in User's home
+ \item ketcindy.conf in the work folder.
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+
+\item Test run of KeTCindy
+ \begin{enumerate}[(1)]
+ \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
+ \item Press "Figure" button at the top left, then the final PDF output is displayed.
+ \begin{itemize}
+ \item[Rem)]To close the window of Terminal when the process exits :
+ \begin{itemize}
+ \item Start \verb|Terminal|.\\
+ \hspace*{10mm}Preferences \verb|>| Shell \verb|>| "Colse if the shell exited clearly"
+ \end{itemize}
+ \end{itemize}
+
+\item Set Texworks if necessary. For example, in case of KeTTeX,
+ \begin{itemize}
+ \item Downloadable from \url{https://github.com/TeXworks/texworks/releases/}.
+ \item Launch TeXworks,\\
+ \hspace*{10mm}and choose Edit \verb|>| Preference \verb|>| Typeset.
+ \item Push upper + and add\\
+ \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin|
+ \item Select Xelatex or pdflatex.
+ \end{itemize}
+
+\item Install Xcode if you use gcc for drawings of surface.
+ \begin{itemize}
+ \item[Rem)]f you want to use only gcc, execute on Terminal:\\
+ \hspace*{10mm}\verb|sudo xcode-select —install|
+ \end{itemize}
+
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacE.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,149 @@
+\documentclass{ujarticle}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[dvipdfmx,colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\西暦
+
+\renewcommand{\labelitemi}{・}
+\renewcommand{\labelitemii}{・}
+
+\begin{document}
+
+\begin{center}
+KETCindyのインストール (Mac)
+\end{center}
+
+\hfill 修正日:\today
+
+\begin{enumerate}[\bf\large 1.]
+\item Cinderella, R, Maxima をインストールする.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \end{itemize}
+ 注) ダブルクリックして,起動するかを確認する.
+
+\item TeXをインストールしていない場合はインストールする.
+ \begin{enumerate}[(1)]
+ \item TeXLiveを推奨
+ \begin{itemize}
+ \item 2018以降ではketcindyが既に入っている.
+ \end{itemize}
+ \item KeTTeXはTeXLiveの軽量版
+ \begin{itemize}
+ \item kettex.dmgを以下からダウンロードできる.\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0}
+ \item ダブルクリックしてできるkettexを\verb|/Applications|に入れる.
+ \end{itemize}
+ \item 他のTeXの場合は,{\bf 3.}(2)を参照する.
+ \end{enumerate}
+
+\item KeTCindyのインストール
+ \begin{enumerate}[(1)]
+ \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\
+ \hspace*{10mm}ketcindyで検索 \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[注)]最新版は,Repositoryのサイト\\
+ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\
+ から以下のようにダウンロードできる.\\
+ \hspace*{10mm}Clone or download \verb|>| Download ZIP
+ \item[注)]この場合は,ketcindy-masterになる.
+ \end{itemize}
+ \item ketcindy(-master)/forMacを開く.
+ \begin{itemize}
+ \item[注)]他のTeXを使っている場合
+ \begin{itemize}
+ \item setketcindy.commandをテキストエディタで開く.
+ \item パスを修正する.
+ \end{itemize}
+ \end{itemize}
+ \item setketcindy.commandをダブルクリック
+ \begin{itemize}
+ \item[注)]管理者権限が必要となる.
+ \item[注)]開かないときはControl+クリックでターミナルを選ぶ.
+ \end{itemize}
+ \begin{itemize}
+ \item scriptsの中身がTeXにコピーされる
+ \item ketcindyのstyleファイルがTeXにコピーされmktexlsrが実行される.
+ \item CinderellaのPluginsにKetcindyPlugin.jarをコピー,ketcindy.iniが作成される.
+ \end{itemize}
+ \item setwork.commandをダブルクリック
+ \begin{itemize}
+ \item[注)]開かないときはControl+クリックでターミナルを選ぶ.
+ \end{itemize}
+ \begin{itemize}
+ \item 作業ディレクトリketcindyがユーザホームに作成される.
+ \item タイプセットの方法(TeXの種類)\\
+ \hspace*{10mm}通常は,platex (p)またはuplatex(u)を選ぶ.
+ \item ketcindyフォルダにworkフォルダの中身がコピーされる.
+ \item \verb|.ketcindy.conf|(不可視ファイルだが編集可能)がユーザホームに作成される.\\
+ \hspace*{10mm}注)TeXを切り替えるときなどはこのファイルを修正する.
+ \item マニュアルもコピーされる.
+ \item 作業ディレクトリにketincy.confの雛形がコピーされる.
+ \item KeTCindyを立ち上げたとき,設定ファイルは次の順に読み込まれる.
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ユーザホームの\verb|.ketcindy.conf|
+ \item 作業ディレクトリketcindyの ketcindy.conf
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+ \item KeTCindyのテストラン
+ \begin{enumerate}[(1)]
+ \item 作業ディレクトリketcindyを開く.
+ \item ketcindyの中のtemplate1basic.cdyを選び,「情報を見る」を開く.
+ \begin{itemize}
+ \item アプリケーションが所定のCinderella2になっていることを確かめる.
+ \item「情報」を閉じて,template1basic.cdyをダブルクリックする.
+ \item 画面に白い枠が出れば,ライブラリの読み込みは成功.
+ \end{itemize}
+ \item スクリーンの左上部にあるFigureボタンを押して,PDFが表示されれば成功.
+ \begin{itemize}
+ \item[注)]PDFの表示後,ターミナル画面を閉じるようにするには
+ \begin{itemize}
+ \item アプリケーション \verb|/| ユーティリティ \verb|/| ターミナルを開く
+ \item トップメニューから\\
+ \hspace*{5mm}ターミナル>環境設定 \verb|>|(プロファイル)\verb|>| シェル\\
+ \hspace*{10mm}「シェルが正常に終了した場合閉じる」を選択
+ \end{itemize}
+ \end{itemize}
+ \end{enumerate}
+
+\item TeXworksの設定(kettexの場合)
+ \begin{itemize}
+ \item \url{https://github.com/TeXworks/texworks/releases/} からダウンロードできる.
+ \item TeXworksを立ち上げる
+ \item TeXworks \verb|>| 環境設定 \verb|>| タイプセット
+ \item 上の欄(パス)に以下を追加\\
+ \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin|\\
+ \hspace*{10mm}注) 上の行を上の欄の先頭になるように移動する.
+ \item 下の欄の横にある + をクリック
+ \begin{itemize}
+ \item 名前:uplatex(ptex2pdf)またはplatex(ptex2pdf)
+ \item プログラム : ptex2pdf
+ \item 引数:\\
+ \hspace*{10mm} \verb|-u|(uplatexの場合のみ)\\
+ \hspace*{10mm} \verb|-l|\\
+ \hspace*{10mm} \verb|-ot|\\
+ \hspace*{10mm} \verb|$synctexoption|\\
+ \hspace*{10mm} \verb|$fullname|
+ \item[]OKボタンを押し,デフォルトを変更してOKボタンを押す.
+ \end{itemize}
+ \end{itemize}
+\item gccのインストール
+ \begin{itemize}
+ \item 曲面描画のためには, gccが必要である.
+ \item Xcodeがインストールされていなければ,インストールする.\\
+ \hspace*{5mm}注) ターミナルで次を実行すれば,gccだけがインストールされる.\\
+ \hspace*{20mm}\verb|sudo xcode-select —install|
+ \end{itemize}
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,130 @@
+\documentclass{article}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\renewcommand{\labelitemi}{$\cdot$}
+\renewcommand{\labelitemii}{$\cdot$}
+
+\begin{document}
+
+\begin{center}
+How to install KeTCindy(Windows)
+\end{center}
+
+\hfill modified\ :\ \today
+
+\begin{enumerate}[\bf\large 1.]
+
+\item Install Cinderella, R and Maxima.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \item \url{https://www.sumatrapdfreader.org/download-free-pdf-viewer.html} (Sumatra)
+ \end{itemize}
+\hspace*{5mm}Rem) Check they start correctly.
+
+\item Install TeX if any TeX has not been installed.
+ \begin{enumerate}[(1)]
+ \item TeXLive is recommended.
+ \begin{itemize}
+ \item Files necessary for KeTCindy are already implemented (2018 or later).
+ \end{itemize}
+ \item kettex is a light-weight TeXLive.
+ \begin{itemize}
+ \item Download kettex.zip from\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0}
+ \item Double-click it and move kettex to \verb|/Applications|.
+ \end{itemize}
+ \item In case of other TeX, see {\bf 3.}(2).
+ \end{enumerate}
+
+
+\item Install KeTCdindy
+ \begin{enumerate}[(1)]
+ \item Download ketcindy from CTAN(\url{https://ctan.org})\\
+ \hspace*{10mm}Search ketcindy \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[Rem)]The latest version can be download from Repository:\\
+ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\
+ \hspace*{10mm}Clone or Download \verb|>| Download ZIP
+ \end{itemize}
+ \item Open ketcindy(-master)/forWindows.
+ \begin{itemize}
+ \item[Rem)]If you use TeX other than TeXLIve/KeTTeX,
+ \begin{itemize}
+ \item Open setketcindy.bat with a text editor.
+ \item Edit paths in it.
+ \end{itemize}
+ \end{itemize}
+ \item Right click the following batch file setketcindy.bat and select "Run as adiministrator".\\
+ \hspace*{10mm}\Ltab{15mm}{KeTTeX} setketcindy.bat\\
+ \hspace*{10mm}\Ltab{15mm}{TeXLive} setketcindytexlive.bat\\
+ \hspace*{10mm}\Ltab{15mm}{Others} edited setketcindy.bat
+ \begin{itemize}
+ \item Contents of scripts will be copied into TeX.
+ \item ketcindystyle files will be copied and mktexlsr will be executed.
+ \item In Cinderella/PlugIns\\
+ \hspace*{5mm}KetcindyPluign.jar will be copied.\\
+ \hspace*{5mm}ketcindy.ini will be generated .
+ \end{itemize}
+ \item Double-click setwork.bat.
+ \begin{itemize}
+ \item[Rem)]Control-click and select Terminal if necessary.
+ \end{itemize}
+ \begin{itemize}
+ \item Work directory "ketcindy" will be generated in User's home.
+ \item TeX(typeset) will be usually latex,xelatex or pdflatex.
+ \item Contents of “work” will be copied into "ketcindy"
+ \item \verb|.ketcindy.conf| will be also generated in User's home.\\
+ \hspace*{10mm}You can change the setting of PasthT, Mackc, etc.
+ \item Template of "ketcindy.conf" will be also copied to work directory.
+ \item Configuration files are read in order of
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ketcindy.conf in User's home
+ \item ketcindy.conf in the work folder.
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+
+\item Test run of KeTCindy
+ \begin{enumerate}[(1)]
+ \item Double-click "template1basic.cdy" in "ketcindy/ketfiles".\\
+ \hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate}
+ \item Press "Figure" button at the top left, then the final PDF output is displayed.
+ \begin{itemize}
+ \item[Rem)]To close the window of Terminal when the process exits :
+ \begin{itemize}
+ \item Start \verb|Terminal|.\\
+ \hspace*{10mm}Preferences > Shell \verb|>| "Colse if the shell exited clearly"
+ \end{itemize}
+ \end{itemize}
+
+\item Set Texworks if necessary. For example, in case of KeTTeX,
+ \begin{itemize}
+ \item Downloadable from \url{https://github.com/TeXworks/texworks/releases/}.
+ \item Launch TeXworks,\\
+ \hspace*{10mm}and choose Edit \verb|>| Preference \verb|>| Typeset.
+ \item Push upper + and add\\
+ \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin|
+ \item Select Xelatex or pdflatex.
+ \end{itemize}
+
+\item Install gcc for surface drawing.
+ \begin{itemize}
+ \item Go to minGW(\url{http://www.mingw.org}).
+ \item Download\\
+ \hspace*{10mm}download \verb|>| Install \verb|>| mingw-get-setup.exe
+ \item Only \verb|mingw32-base, mingw32-gcc-g++| are needed.
+ \end{itemize}
+
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,148 @@
+\documentclass{ujarticle}
+\usepackage{ketpic,ketlayer}
+\usepackage{amsmath,amssymb}
+\usepackage{graphicx}
+\usepackage{xcolor}
+\usepackage{bm,enumerate}
+\usepackage[dvipdfmx,colorlinks=true,urlcolor=blue]{hyperref}
+
+\setmargin{20}{20}{20}{20}
+
+\西暦
+
+\renewcommand{\labelitemi}{・}
+\renewcommand{\labelitemii}{・}
+
+\begin{document}
+
+\begin{center}
+KETCindyのインストール (Windows)
+\end{center}
+
+\hfill 修正日:\today
+
+\begin{enumerate}[\bf\large 1.]
+\item Cinderella, R, Maxima をインストールする.
+ \begin{itemize}
+ \item \url{https://beta.cinderella.de} (Cinderella)
+ \item \url{https://cran.r-project.org} (R)
+ \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)
+ \item \url{https://www.sumatrapdfreader.org/download-free-pdf-viewer.html} (Sumatra)\\ \hspace*{10mm}注)SumatraはWindowsだけである.
+ \end{itemize}
+ 注) ダブルクリックして,起動するかを確認する.
+
+\item TeXをインストールしていない場合はインストールする.
+ \begin{enumerate}[(1)]
+ \item TeXLiveを推奨
+ \begin{itemize}
+ \item 2018以降ではketcindyが既に入っている.
+ \end{itemize}
+ \item KeTTeXはTeXLiveの軽量版
+ \begin{itemize}
+ \item kettex.dmgを以下からダウンロードできる.\\
+ \hspace*{10mm}\url{https://www.dropbox.com/s/fthw4btjqqs33tc/kettex.exe?dl=0}
+ \item ダブルクリックしてできるkettexを\verb|C:\|に入れる.
+ \end{itemize}
+ \item 他のTeXの場合は,{\bf 3.}(2)を参照する.
+ \end{enumerate}
+
+\item KeTCindyのインストール
+ \begin{enumerate}[(1)]
+ \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\
+ \hspace*{10mm}ketcindyで検索 \verb|>| Package ketcindy \verb|>| download
+ \begin{itemize}
+ \item[注)]最新版は,Repositoryのサイト\\
+ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\
+ から以下のようにダウンロードできる.\\
+ \hspace*{10mm}Clone or download \verb|>| Download ZIP
+ \item[注)]この場合は,ketcindy-masterになる.
+ \end{itemize}
+ \item ketcindy(-master)/forWindowsを開く.
+ \begin{itemize}
+ \item[注)]他のTeX(TeXLive,W32tex以外)を使っている場合
+ \begin{itemize}
+ \item setketcindy.bat をテキストエディタで開く.
+ \item パスを修正する.
+ \end{itemize}
+ \end{itemize}
+ \item 次のバッチファイルを右クリック「管理者として実行」を選ぶ.\\
+ \hspace*{3zw}\Ltab{5zw}{KeTTeX} setketcindy.bat\\
+ \hspace*{3zw}\Ltab{5zw}{TeXLive} setketcindytexlive.bat\\
+ \hspace*{3zw}\Ltab{5zw}{W32TeX} setketcindyw32J.bat\\
+ \hspace*{3zw}\Ltab{5zw}{他のTeX} setketcindy.bat(要修正)
+ \begin{itemize}
+ \item scriptsの中身がTeXにコピーされる
+ \item ketcindyのstyleファイルがTeXにコピーされmktexlsrが実行される.
+ \item CinderellaのPluginsにKetcindyPlugin.jarをコピー,ketcindy.iniが作成される.
+ \end{itemize}
+ \item setwork.batをダブルクリック
+ \begin{itemize}
+ \item 作業ディレクトリketcindyがユーザホームに作成される.
+ \item タイプセットの方法(TeXの種類)\\
+ \hspace*{10mm}通常は,platex (p)またはuplatex(u)を選ぶ.
+ \item ketcindyフォルダにworkフォルダの中身がコピーされる.
+ \item \verb|.ketcindy.conf|(不可視ファイルだが編集可能)がユーザホームに作成される.\\
+ \hspace*{10mm}注)TeXを切り替えるときなどはこのファイルを修正する.
+ \item マニュアルもコピーされる.
+ \item 作業ディレクトリにketincy.confの雛形がコピーされる.
+ \item KeTCindyを立ち上げたとき,設定ファイルは次の順に読み込まれる.
+ \begin{enumerate}[1)]
+ \item ketoutset.txt
+ \item ユーザホームの\verb|.ketcindy.conf|
+ \item 作業ディレクトリketcindyの ketcindy.conf
+ \end{enumerate}
+ \end{itemize}
+ \end{enumerate}
+ \item KeTCindyのテストラン
+ \begin{enumerate}[(1)]
+ \item 作業ディレクトリketcindyを開く.
+ \item ketcindyの中のtemplate1basic.cdyを選び,「情報を見る」を開く.
+ \begin{itemize}
+ \item アプリケーションが所定のCinderella2になっていることを確かめる.
+ \item「情報」を閉じて,template1basic.cdyをダブルクリックする.
+ \item 画面に白い枠が出れば,ライブラリの読み込みは成功.
+ \end{itemize}
+ \item スクリーンの左上部にあるFigureボタンを押して,PDFが表示されれば成功.
+ \begin{itemize}
+ \item[注)]PDFの表示後,ターミナル画面を閉じるようにするには
+ \begin{itemize}
+ \item アプリケーション \verb|/| ユーティリティ \verb|/| ターミナルを開く
+ \item トップメニューから\\
+ \hspace*{5mm}ターミナル>環境設定 \verb|>|(プロファイル)\verb|>| シェル\\
+ \hspace*{10mm}「シェルが正常に終了した場合閉じる」を選択
+ \end{itemize}
+ \end{itemize}
+ \end{enumerate}
+
+\item TeXworksの設定(kettexの場合)
+ \begin{itemize}
+ \item \url{https://github.com/TeXworks/texworks/releases/} からダウンロードできる.
+ \item TeXworksを立ち上げる
+ \item TeXworks \verb|>| 環境設定 \verb|>| タイプセット
+ \item 上の欄(パス)に以下を追加\\
+ \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin|\\
+ \hspace*{10mm}注) 上の行を上の欄の先頭になるように移動する.
+ \item 下の欄の横にある + をクリック
+ \begin{itemize}
+ \item 名前:uplatex(ptex2pdf)またはplatex(ptex2pdf)
+ \item プログラム : ptex2pdf
+ \item 引数:\\
+ \hspace*{10mm} \verb|-u|(uplatexの場合のみ)\\
+ \hspace*{10mm} \verb|-l|\\
+ \hspace*{10mm} \verb|-ot|\\
+ \hspace*{10mm} \verb|$synctexoption|\\
+ \hspace*{10mm} \verb|$fullname|
+ \item[]OKボタンを押し,デフォルトを変更してOKボタンを押す.
+ \end{itemize}
+ \end{itemize}
+\item gccのインストール
+ \begin{itemize}
+ \item 曲面描画のためには, gccが必要である.
+ \item minGWのホームページ\url{http://www.mingw.org}から\\
+ \hspace*{10mm}download \verb|>| Install \verb|>| mingw-get-setup.exe\\
+ をダウンロードして実行\\
+ \hspace*{10mm}注) パッケージは,mingw32-base, mingw32-gcc-g++だけでよい.
+ \end{itemize}
+\end{enumerate}
+
+\end{document}
\ No newline at end of file
Property changes on: trunk/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,6 +1,6 @@
PK
- imyM META-INF/\xFE\xCA PK
- hmyM\xFF\xA9"i} \x91 META-INF/MANIFEST.MFM\x8C1
\xC20F\xF7@\xFEÍIh\xBBծ\x8A\x82\xE2~\xA4'Mi\x92r\xC9\xD2ﹹ\xBE\xF7\xBE\xEF\x86)|\xA8T\xF3&.!\xA7\x9Cm\xB5\xEA\xD3\xE9W\xF4\x810\x91g{\xD2j`\xC2J\xA3\xB9l\xD2\xCB\xC0\xBA\xBD;\x9A\xEB\xEB ͝\xD1/C\xE653V9\xD8I\xBF`)\xE6\x81u\xEA\xC0\x874n;#\x83\xCF1\xE6TL\xF1Zi\xF5PK
+ \xECX\x82M META-INF/\xFE\xCA PK
+ \xEBX\x82M\xFF\xA9"i} \x91 META-INF/MANIFEST.MFM\x8C1
\xC20F\xF7@\xFEÍIh\xBBծ\x8A\x82\xE2~\xA4'Mi\x92r\xC9\xD2ﹹ\xBE\xF7\xBE\xEF\x86)|\xA8T\xF3&.!\xA7\x9Cm\xB5\xEA\xD3\xE9W\xF4\x810\x91g{\xD2j`\xC2J\xA3\xB9l\xD2\xCB\xC0\xBA\xBD;\x9A\xEB\xEB ͝\xD1/C\xE653V9\xD8I\xBF`)\xE6\x81u\xEA\xC0\x874n;#\x83\xCF1\xE6TL\xF1Zi\xF5PK
K\x88$G META-INF/services/PK
\xEB\x86$GTS\xB87 8 META-INF/services/de.cinderella.api.cs.CindyScriptPlugin\xF3N-q\xCE\xCCK\xA9
\xC8)M\xCF\xCC\xE3 PK
\xDA)\x871 org/PK
@@ -21,64 +21,72 @@
\xDA)\x871 ' org/apache/commons/math/stat/inference/PK
\xDA)\x871 ( org/apache/commons/math/stat/regression/PK
\xDA)\x871
org/apache/commons/math/util/PK
- hmyMS\xEE\xE2\x80 K/ KetCindyPlugin.class\xADY|\x94\xE5\xFD\xFF\xFD\xDE\xEF\x9B\xCB\xE0 \x90\x84uE\x90\x90 A\xC3\xD0, \x92\x81I
GrI\xCE\\xEE\xC2݅a몊\xADZm\xADUA\xC5]:\xA8R\xAD!ŶZ\xF7h]mmkk\xAD\xB5vXk\x97U\x94\xFF\xF7\xF7\xBC\xEF͜\xC5\xF6\xF3\xEFy\x9F\xF7\xBF=\xDF<\xF9\xD1\xFD\x87\x89\xA8J3\t'\xCF7\xB8\xCA\xE0\x9F\xE0\xE2y\xA1\x8B\xF1bN\x92\xA1\xDAy\x8AA\xEA?\xCD\xE0%2,\x95a\x99\xC1\xCB
->\xD9\xE0S
\xAE\x91\x85Z\x83\xEB\xE4Yop\x83\xC1+
^\xA9\xF3*\xF8Fy\x9Ej\xF0jy6\xE9ܬs\x8B\x8B\xA6s\xABA\xEF\xBC\xC6\xE0\xD3
n3\xB8\xDD\xE0Y^+\xC3:\x83\xD7\xEB\xBC\xC1E%\xDCi\xF0F\x9D7\xE9\xBC\xD9E|\xBA\x8B\xCA\xF9
\xCE4\xF8,A\xE93x\x8B<\xBB
\xDF\xE0
\x83{
-\xEE38`\xF0\xD9\xF7
4x\xC0\xE0\x90\xC1a\x83
-\xDEjp\xC4\xE0\xA8\xC11\x83\x87
\xDEf\xF0v\x83w\xBC\xD3\xE0sƧ
-\xFE\x8C<\xCF5\xF8<\x83\xCF7\xF8\x83/4\xF8\xB3_d\xF0\xC5_"\xEC2\xF8R9\xF49\xDC\xE7\x85\xD4\xCB\\xF4W\xBE\\x86+
\xA6\xD8\xE6\x8C3\xF8
_i\xF0U\xD1\xE0/\xB9\xE8\xBE\xDA\xE0/|\x8D\xC1_1\xF8ZY\xB8\xCE\xE0\xEB
-\xDEm\xF0
\x83o\x90\x85]t\x93\x88\xEA&Ex\xAF\xC17\xCB\xEF\xB78O1\xE1\x92b\xF8V\xBE\xCD\xE0\xDB
-\xBECn\xDEi\xF0W
-\xDE'\xD4|M\x86\xAF\xE7`\xF8\x86̾i\xF0~\x9D\xBF\xE5\xA2]\xBCW\xDE\xEF2\xF8n\x83\xC8\xF4\xDB2\xDCc\xF0\xBDG8\xBA\xCF\xE0a\x83\xEA<⢫y\xBE
MW\xE0߯\xF3!]'D\xCDvq? Ã\xD6\xF9!\xB9\xFA=\x81ߩ\xF3\xF7]t
\xFF\xC0\xE0\x87]\xFC\xFFP\xE7Gu~\x8Cɹ4
-Ė3ي\xE7\xAEc\xB2ׅ\xBB\xFDLc\x9B!\xCB\xD0\xC0\xA4÷%\x88OS\xB8\xCB\\xE7\x8B\xE4\xDDZ\xB4\xC7\xFAQ\xA6qM\xAB\xFD\xB1\xBA@\xA8{\xE7\x9A\xE0Po \xB4\x84)\xAF\xDF;۷ͷ\xCD\x89\xC2!\xA6\x89\xC5s\x9Bd\xA12\xE8
\xF5V\xB6\xC7"\x81P/\xCE\xB6
-\x85b\x81\xFF\xBA at 4 \x905\xA1P8\xE6\x8B\xE1\xC0\xCEl\xEA\xF6Wv\xAC?\xE2}\x95\xBE\xC1 at eW\xB4R!j\xEF\x8Ac \xE0\xD8\xE6
\x81\xBD\xD7k\xF1
-`\x96\x83Y\xCDP\xAC/
1\xE7k\xA3\xFEHc=\xD3\xF1ţ \xC8JG\x85\xDD,yѝј`0
\xF4Gb;\x99\[\x87|ݑ \xE8\x87\xF6\xE2\xFA\xB9@\xC3;\xF0\xC3\xD3\xC5fĢleć\xE3,
-|\xDBc\x95u\xE1`8\xB2D]\xE8 fl\xE9\xB8c17\xD2 u\x87\xBA\xFD=C\xC1 S~6V6T \xBFF\xE82\xF3\x8E\xAE>_\xBCh\x9B\xEA \xA2=\xE6\xEB\xEAo\xF6
-*\xD5\xE9\xF4(a݁\x88Ia_x\xC0\xA25dJ1\xDDA\x87\xB7G\x95i \xB8\xC6\xD4D|]\xE1(\x98\xD4\xD1` 4\x84\x99C\x9D\xC5Jk\xFB\x99-5\xCD
-8\xDB\xA6\xEC\xBEH/\xAE8C\xFD=j{s\xAA\xFF\xB7\x95\xACj\xB3\xFAb} V\xB1d\xEB \xCDWc\x95H#jl\xE1\xA1\xDC\xC2T\x94r}M$\xDC\xE5\x8FFk\x87A\xD8\xC0\xE8\x83\xE6
-\xD45\xFA\xF6]
-;\xBA\xFC\x83\x96\x89\x9E\xFA?\xB2\x94\x95\x87ȫ\xCAz.\x80&{`r\xE6\xC1@\xB8rE \xE8_",{1\x8A2l\xFDQai
\xF8-H\x9C\xAB
\xEA\xE9\x81Av\xB7\xF9}&CZl a`
-aS\xE8t~
\xD0\xD1A\xDFPp\xCC+ġ\xFD;\xB61\xAD\xFE\xFF\xD3b
-w\x83\x88h\x8FP\x82\xC1\xD65\x80\xF7 \x9B\xB2:Xo`\x9B\xC0\xEF\xF0aeGUf\xD4h\xDDr\xB6\xBFK\x9C\x9Ea\xA0\xF9)
}\x91\xF0v\xB1k썋\xF5\xF9WL\xB3\xBF\xA6Y\x81\x81\xCALx\xF5\xBE\x98\xF87m\xA7\x83LJ\x9B^D_W\xE2Lx` *\xAD\xC4ѾJص\xDF\xA9\x84\x83&
ѻ\xE9-}+^\xD1\xFE.\xFF\x8E at 45\xD8{
u\xB1\xBF\xA8P9I|o\xCE'\x92\xA4\xB8\x97\xA3\xC7t<C\xA0\x99\xA6\xEC\x8E \x99\xBCV)^\xFC\xC9`e\xACK\xA0\x98\xA1\xA6\xD9T\xC2N\xF2\xB6\xA4Y\xF8\xEAV\xCBO
olMؾXb\xC4\xF5_\xBFߌ"M\xF4\x90\xBB)\x93\yD\x83\xFEP\xAF\xF0\x935l!\\xD9M\xA1:\xD4a$\x9FM\xA3\x8C\xBE+ѹQɄ\xBBwB(>\x89\x86z\xD4\xB3\xF5\xC3\xC7sEG\xBE\x98_2\x8AI\xBF?a\xFAC\xB1@\xB0& \xF0\xDC8\x87+=\xDD
-R\xAA)\xA5r\x98\xD3?\xF5o\xEF
t\xF5\x99\xD8`\x98i\xE2
-\xC5\xDA\xD52;#\x96\xD8lp_\xA83\x93\xA9]\xCCI\xE7't~R秠\x8C\xF6\xF0P\xA4˿BIhBz\xEA\xAC\xE0n\xFA*\xED\xE1\xAB\xCD
ꭚ7\xF1\xFC\xF9U'B4\xF1\xD3^\xF38hG\x9Fߛ\\x8D\x84\xC5E\xBC
\xA0I\xE7\xA7\xDD\xFC
ݧ\xF3\xB3n~\x8E\xE4\xE6\xCB\xF0\xBC
/\xF0\x8Bn~\x89_v\xF3O\xF8\xA7 v9\xB2Bi1GM\xCDl`\xCE-\x9D\x86\xA3j\xE6\xE6\x9F\xD1]x\xB5\x92\x83\x9B_\xA1G\xC03\x92h\xE5\x831\x8DV\x8E\xF4v)M\xCEԺm\xE1\x863\xDD\xFCs\xFE&\x9B\xDD\xFCK\\xF0q\xA1\xF2\xC89\xF1\xAB+\x95\xC0\xADoF\x9AYP5\xAF\xE5\xB0!^\x8A\xDFr7\xFF\x8A\xED\xE6k\xF95H\xDD\xDB\xEB\xF9#0 \x98\x9A;\xD5\xC0\xCCo\x98\x88iR\xF6 \x8Ar`\xB4\xC7ȭ\xD7e\xF8\xAD\x9B\xDFʹ\xC4Ϳ\xE3ɘ\x9C\xEC\xE67Պ\xD7Ϳg7\xC4\xD3\xD6\xEC\x85
\xD474ɣ\xA2~\x9D}Edžl5\xAF\xF3ʁz\x8Cζ\xE6\xFA\xC66Lr\xDAW\xAD\xED\xA8o]\xDF"\x8B\xEDM
+ \xECX\x82M\xD7?NQ\xD2 \xFD/ KetCindyPlugin.class\xADY|\x94\xE5\xFD\xFF\xFD\xDE\xEF\x9B\xCB\xC2A a
(2!(b4"I\xC0$\x8C \x82GrI\xCE\\xEE\xE2݅\x80{\xDB*\xD5m\xF7*j\xB1R\xB5!\xC5պ[[w
\xB5v۽
\xB5(\xFF\xEF\xEFy\xDF\xB9\x9C\xC5\xF6\xF3\xEFy\x9F\xF7\xBF=\xDF<\xFB\xE9\x83\x89\xA8B뢻y\x81\xC1\xC7|\x9C\xC1
]|</r\xF1 \)\xC3bNt\x9El\x90\xFA\xCFE3x\x89
Ke8\xC9\xE0\x93
+\xAE2\xB8\xDA\xE0Y\xA85\xB8N\x9E\xF5/3x\xB9\xC1
+:\x9F\xE2\xA2|\xBFB\x9E\x8D7ɳY\xE7\x95:\xAFr\xD1t>ՠO
n1\xB8\xD5\xE06\x83W\xBCF\x96\xD7ʰ\xCE\xE0v\x9D\xA8\x887\xBCQ\xE7\xD3t\xDE\xE4\xA22\xDE\xEC\xA2R>]\x9F\xC1[e\x87\xC1\x9D\xF2\xF4\xDC%\xCFn\x83{
|\x86\xC1\xBD
+\xEE38dp\xD8\xE0~\x83\xCF48bp\xD4\xE0\x98\xC1o5x\xD0\xE0mo7\xF8,\x83\xCF6\xF8
\x81q\xAE\xC1\xE7\xC9\xF3|\x83/0\xF8B\x83/2\xF8b\x83/1\xF8R\x83/3\xF8r!\xE0
Q]!\x82\xBBRH\xDD\xE1\xA2\xF8K2\\xE50\xC56'\xD7\xE0\xAB
+\xFE\xB2\xC1_1\xF8\xAB\xCDEw\xF15_k\xF0\xD7
+\xFE\x86\xC1;ea\x97\xC1\xBB
+\xBE\xCE\xE0\xEB
+\xBEAnt\xD1m"\xAA\x9B\\xE1\x9B
+\xBEE\x9Ex\xBF\xD5y\xB2 \x97\x9C'O\xB0÷\xF1\xED\xDFa\xF07\xE5\xE6
\x83\xEF4\xF8.\xA1\xE6n\xBEe\xF0\xDE,<o\xEB|\xAF\xCE\xFB\t9o6\xF8;.\xBA\x8C\xEF3\xF8~\x9Dp\xD1\xBEY\x8E|\xD!
7\xE0!\x83\xF7\xCBtX\x86\xEF\xFC\xA0\xC1\x84χ
~\xD8\xE0\x83:?⢝\xBC@\x86f\x83\xAC\x8F\xE9\xFC\xB8\x8BnR縸\x8C\x9F\x90\xE1\xFB\xFF@\xE7'\xE5\xEAS\x83\xE0{\xDA\xE0g\\xFC,?\xA7\xF3\xF3:\xFF\x90\xC9yb \x88-e\xB2\xCE]\xC3d\xAF w\xFA\x99\xC66B\xFE恾-\xFEH\x9BoK+\x9E\xC6p\x87/\xB8\xC6 Ȼ\xB5h\x8F\xF5\xA2L\xB9\x8D+\xFC\xB1\x9A@\xA8s\xFB\xAA\xE0 at w \xB4\x98)\xA7\xD7;÷շ\xD5\x89\xC2!\xA6 \x85se\xA1<\xE8
u\x97\xB7\xC6"\x81P7\xCE\xB4
\x84b\x81>\xFF\x9A at 4 \x90U\xA1P8\xE6\x8B\xE1\xC0\xCEj\xEC\xF4\x97w \xAC?\xE2}\xE5\xBE\xFE at yG\xB4\!j\xED\x88\xFAc \xE0\xD8\xEA
\x80\xBD\xDBk\xF6\xF5a\x96\x85Y\xD5@\xAC'
1竣\xFEHC-\xD31\x85\xA3 \xC8HG\x85\xDD
9\xD1\xEDј\xBF\xAF?\xEE\xF7Gbۙ\g\xF8:#\xD0텵s\x81\x86\xB7ᇧ3\x8A͈Eٲ\x88\xC7\xC7[\xF8c\xE55\xE1`8\xB2X]\xE8 \xA6m\xE9\xB8c17\xD2 u:\xFD]\xC1 S^&V\xD6T \xBF\xE82\xF3\x8E\x8E
_\xBChj \xA25\xE6\xEB\xE8m\xF2\xF5+\xD5\xE9\xF4#P\xC2:\x93p\x9FEkȔb :A\x87\xA3\xCA4 \
cj\xA2}\xBE\x8EpL\xEA\x81h0\xC0̡\xCEbee\xEB\xE6檦:\x9C\xEDSv_\xA4W\x9C\xA1\xDE.\xB5\xBD1\xD5\xFF\xDBJF\xB5\xD9\xFB}\xB1
\xABX\xB2u\x85櫱B\xA45\xB6\xF0@
\x84\xF5oa\x9A\x9Cr}U$\xDC\xE1\x8FF\xABA\xD8\xC0\xE8\xFD\xE6
+\xD45\xFA\xF6]u\xDB:\xFC\xFD\x96\x89\x9E\xF2?\xB2\x94\x91\x87ȫ\xC2z.\x80&\xBB`r\xE6\xC1@\xB8\xBC>\xF4/\x96\x82\xDD\xFBE\xB6ި\xB0\xB4\xFC\xE6'\xCEUtu\xC1 ;[\xFC>\x93!-֗00\x85\xB01
t:\xC3r\xD1~\xDF at p+\xCC+ġ\xFD۶2\xAD\xF8\xFF\xD3b
+w\x82\x88h\x97P\x82\xC1\xD6ч\xF7\xF12:Xw`\xAB\xBF\xCF\xEF\xEB\xF3ae[Ez\xD4X\xB9\xE5
\x878=\xC3@\xF3R6\xDAz"\xE1A\xB1k\xEC\xE5\xC6z\xFC\xCB \xA6\xC9_դ\xC0 at e&\xBCZ_\xCC\xFC6\x88\xD3A&ō\xE1H7\xA2\x8A\xAF\xA3q&\xDC\xD7\x95\x96\xE3hO9\xEC\xDAC\x84A\x86\xE8\xDD\xF4\x96
\x88/\x81ho\x87[ \x83\xEC] \x86\xBA\xD8_\xD4߯\x9C$\xBE7\xE7sIR\xDC\xCB\xD1e:\x9E!\xD0LSvG\x80L^+\x94?/\xFA|\xB02\xFAF\xA7\xE2=/a%
++f,F\xF1\x83V\xBD\xCF\xD7\xEB7F\x93=\xE44\xD9˖G4\xE8u
i#"\x8Fݔ\x8FC
F
\xD90\xCA~;b\x9D\xA7"\xC0\x98\xF0b\xC2N\xF0\xE7\x93\xC0\xA6G\xFD\xB0@?\xDC5[\xC4\xED\x8B\xF9%9\x98\xF4\xFBV<
ˡM\x81\xE7\xC69\\xE9\xEB\xEAT\x90R\xAD"\x95ì\xDE\xFE\xA8\xB0'\xD0\xD1cb\x83\x8D\x8DG\xA8 ֪\x96q\xD8Q\xBEb\xE1\x89\xD0\x943\xF3\xA2],C\xE7t\xFE\xB1\xCE?\x81
\xB4\x86"
\xFEz%\xA1\xF1#\xB3`\x99 wӷh/_a\xA6Coż\xF9\x8B\xE6ϯ8\xA2\x89\x9F\xF6\x9AǑ
\xDBz\xFC\xDE\xE4j$,\xD6\xEEmM:\xBF\xE8\xE6\x97\xE8A\x9D_v\xF3+\xFC\xAA\x9B_\x93\xE1u~\xCAo\xB8\xF9M~\xCB\xCDo\xF3\xCF@\xEC \xD2]\x99\xD2b\x96\x9A\x9A\x81ݜ[:
+G\xD5\xCC\xCD\xEF\xD0\xFDx\xB5⼛Nπg\xC4w(\xD0
+\xEDc\xACt\xE7\xEDP
+\x9A\x94\xAEu+p£f\xB9\xF9]\xFE&\xDD\xFCK\x9C\xFFYQ\xF2H9\xF1\xAF!ʁ[߈\x8C\xB1\xA0b^KaC|"~K\xDD\xFCk\xFE\x8D\x9Bw\xF2o!uo\xB7?\xE4\x8F\xC0 `j\xEET0\xBFc"\xA6\x89\x99\xE3!2{\xEAysQn\xBD'\xC3\xEF\xDD\xFC\xA1\x9C\x8B\xDC\xFCG.\xC0\xE4$7\xFFI\xADx\xDD\xFCg
\xF1\xB44ya\xB5u\x8D\xF2(\xAB]#F_ֶ\xAE
+[Mk\xBCr\xA0\xA3\xB3\xA5\xA9\xB6\xA1\x93\xAC\xD6\xE5\xAB\xDBjW\xAEm\x96\xC5\xD6ƺ\xBAU2\xA9i\xAC\xAB\x92]{Mc\xAB<\xEA\xDBdYo\xABkl\xAEk\xC3\xCCX\xDDZ\xD7Ҵ\xB26>5ѩiUmm\x96 at Xnn\xEB\xE6\xA4\xBB5-+\x9B۪\xAA\xB1\xE8X\xD1\xD0(lUm\xA0\xFB/\xFCW0P\xED\xE6\xBF\xF1\xDFqsU\xC0Ҫ\x85\xB4\xA5Nr\xB6"\xAF\xAD\xAAE\xB0\xDB\xCAZ\x97
W\xD5U\xE0Jo\xAAZ\xD7\xD0TU\x86\xE55en\xFE\x87\xD8sN\xC2,ċ\xBDb\x80\xFFt\xF3\xFB\xFC\x81\x9B?\x94\xE1M\xFE\xC8\xCD\xFF\xE2\xA0\x9E68\xB0\xAD?m\xD9z; ɉ\xEA0@&\xD6\xCAb\xA96\xD6\x8E\xF4\xB9\xE9ez\xF4\x96\xE2\xF0//\xB8 a\x94!(\x80\xADh\xCC\x89\xB9\xE959`Ǎ\x90$x\xB4\xAB}A\xAF?$\x81\xE05\xC3v%(\xB3\x8Dϐ+\xDC\xFC\xB1\xB0\x92
+'NK\xADT\xAB\xF3\xBF\xDD|\x88?\x81\xEE6\x82N)@Q\xBBe\x95\xC7\xE7nz]\xF0\xEB\xA1\xDEPx$d\x97\x83)\xC9\xBEP\xA7\x9B?\xA5W\xDC|XR\xA7\xACG{\xDC\xD3CnM3*\xC8p\xE2\x869)\xD50S\xF6\xC1\xF7\xEA\xB6\xFA\xD2E0P
+\xCC\xD8\xCB\xEB\xCB\xE3
\x8D\x8C\xE4n\xCD.\x94\xDE\xDCS\xCE1\xD6\xEB
J0\xDB\xEE5\x92[shN7\xEDW&
+Ep\x89\x98\xC7?\xC1\x83W\xC2\xEE@̬볽(ý\xF1
\x9632\xE8"+\x97n\xF5EJUm\xBA\xA4\xADn]S}mCk\x9B\x9B\xE7Ѓ#$\x9DB\x97\x8EH\xA5
w\xD1\xEA\x90\xE0\xF0\xC6\xC2^Q\xA07 \x8Cz͈\xEC튄\xFB\xBCV\xFDU\xE9M\x84l\xEF\x9C\xD9\xD19#\x82\x86Y \xB85\x97\x96-bq3\xCDy|\x96\xB7\xCB9vz\xB1
a%\xE6\xED@\xAF\xF4\xCE\xEEԵ1\xB0P-\x9C\x8D\x8C\xD8\xE8\x8E\xD4q\xC4\xE6\x8C,\xA7\x98ƍ
+v\xA9:J\xD5\xE6\xF4\xE4ɆP\xCC\x89
\xF4CW a\x8D
\x8E\xAA\xE10\xB3\xE1\xAADۑ3\xB2Y0\xCB\xF6j\xD5)\xA0To0+\xFBѿ\xA1z\xBF8Jv,\\x83~\xA0*\xA2Z{\xE1\\xE9
+t\xA5ĕ]\x92\xD0k2V\xA1z{L\x92\xB9ܩV\x80Ã\xFEH\x8D/
+\x84.\xE5\x93ѵ\xA9
+\x9C\xBE\xFE~僥\x9F\xAB\xD7J\xDDF,l.!pf(
+\xA5\x8C\xD4-c*\xCFx\xE4?\xF5y\x85\xB6F\\xE3
+G\xD6-\xB26>\xB9f\xD5ֲj\x88{I\xB7,
+
g\x9B"Z
+I\xC4E\xF1\xF7}
\xFE*I\xA0Yс-\xD1\xAB
-kdR\xD7\xD4P#\xBB\xF6\xBA\xA6vy\xAC\xE8\x90e\xBD\xA3\xA1\xA9\xA5\xA13cm{C[sk}|j\xA2SӚ\xFA\xFA
\x81\xB0\xCA\xDC\xD6\xCDI)v\xEB\xDAZ[:jj\xB1\xE8X\xDD\xD8$l5
\xA0\xFB-\xFE\xA8u\xF3\xF9O\xB8\xB9\xA6`iM\x9BB\xDA\xD6 \x89^\x91\xD7Q\xD3&\xD8m\xED\xAB\x84\xAB\xDAp\xA57\xD7lhl\xAE\xA9\xC0\xF2\xEA\xBA
-7\xFFY\xEC9/a\xE2\xC5^1\xC0\xB7\xDD\xFC~\xC7\xCD\x95\xE1%~\xD7\xCD\xE3w\xA0\x9E8\xB0c0m\xD9\xFA\xBB ɉ\x922@\xFA\xD6*b\xA96\xD6\x8E
\xB8\xE99\xFA\xE8-\xC7\xE1\xD7/\xB8 \xCBT (\x80\xADh\xCC\x89\xB9\xE9y9`Ǎ\x90d#x\xB4\xAB}A\xAF?$\x81\xAC\xE15c}\xB5\xD7M\xD1p\xCD, \xC6\xCDVrC\xE1\xC4i)\xB0\xEAu\xFE\x87\x9B\xFF\xC9\xFF\x82\xEE6\x83N\xA9ZQ\xF0\xE5T\xC6\xE7nzA\xF0\xEBC\xA1\xFEPx;HpV\x82\xA9h\x9F\x9B\xDF#\xF8\xE3\xBF\xF9}7@\xDD|D
G\xAB\xAC\x8C\xA3O\xBBn\xFEP\xC0\xDE.De\xC9c\xBD\xBE\xA0D\x9E\x9D^3\xE5\xB8\xF9#>\xEA\xA6{\x94\xFDAj\&\xBA|${%F\xC5\xCC\xCA=B\xDB\xCFRy\xE9)\xA2|\x9B/R\xAE\xAA\xCFe
-\x9AW\xD47\xB6w\xB8y6ݗ&\x96$]!\xACh\xACiHSkC\x82\xC3
{E\xDAހ\x84I\xAF>\xBD=\x91\xF0\x80ת\xB0\xAA\xBD\x89\xF8\xEA\x9D3;:'\xCD\xC3\xCD\\xEF\xD6l\x9A
A.K\xC8Mx\xA1\xE6`*\x99\x99j\xA6\xB7\xC7\xEB\xF6n\xC4\xFA\x84͘\xB7
\xB1\xB8\xDA;\xBB[ל05M\xD7\xE9\xA1
±\xFA\x8D\xF8\xC1\xBC\xF4b\x8Ai\xFC\xA8\xA8\x95\xAA\xBF$\xD1Lӓ'C1$24=&\x99
\xE5T\xBBa\xA6\xB55\x89\xA6#/\xBDU0\x8B\xF6Z\xD5'\xA0Po4\xEB\xFA6\xB1
-Cu
~\xB1\xF8\xDCX\xB8\xDD at MD5"\xF6\xE2\xB9\xD2\xE8J\xC1\xAD=\x92\x99\xEB\xB2\xD6
-\xA1vgL\xB2\xB2ܩU\x80\x9A\xC2\xDB\xFD\x91:_]ʹ\xA2\xEB\x92ޝ\xBE\xC1A\xE5L埨\xD3J\x96\xDCF,l.!g)
\xA5\x88ԥ@\xF3 \xF4ʬG\xFESI\x9F_\x9Ce{\xC9\xC7\xD4#\xC05\xBE8\xBD \x91\xB5 \xC95\xABb\x92UC\Ozei\x87`8;D\x98\xD1ZH".\xA2\x880\xE8\xEB\xF2\xD7H&̉m\x89&Xml\xCC*t\xA7\x9Dc0\x9AA\x9FU\xFC\xAAR\xB1+\xD0\xF9\xC5\xD9\x8C\xEF\x8A\xA0%\x8DIm\x83\xB3\x87;a.\xE8\x8Bƚ\xC3݁\x9E\x80Ȅ\xE2SS\xA8\xC6 D\xF1\gv\x9Ec3\xA6zǎ\xB8\x80\xAB
\xA3h6\xC3\xE2Z\xC4\xF92`Ʃd!\xCD4\xAF\xF8\xDC\xFF\xAA\xF4v\xC6\xE3\xD4Tz
-)Q\xCCQ\xBCq\xA3$e\xB7\xA9]\xBCa\xAC\xB4\xFF[\xA2\xE1\xE0P̿F\x95ю\x81~\xB3\xB4\x91\xBAq\x85Yc\x8E\x875gV\x99\xFAv_ \xB6B`\xE4F\x9A\xD7N\x8E[\xD0\xE8\xB2Oҏ \xE9\xA4,ƴ)\x8B\xFE\xB2)\xAC\xA08+te\x8B\xE9\xF1\xA2W\xAA\x91I\xE9z\xB7֗Ч\xE8\xBAS}\x82\x9A\x85b5$Ư\xE1\xADO\xD47\xE4(9H\xFCmL4\xFA\xBA|\xB0R\x8Bc\xE8\xDD\xE6\xFA&\xED'\xA9\x84\xBEEw\xE1\x94\.\xB7.\xDB<ځ\x8C!
\xAB\xE3S\xAEڬ\xABw㗋\x95\xF8};
-8,\xB9\xC8"$ ˖ +?
,\xA6{\xB3\\xB5g^-\xCCz\xF5;t\x9F\xC5\xC1Ixӄ\xBB\xD2rd^\x9E\xAE.O2X\x97e6L\x90U&7#x|\x97\xEE\xB7\xE0.&;\xF0\xD9\xE7\xCC\xE9\xBF;\xECq)`\xED \xB0v:D\x8C\xFB
\x87\xE9!
\xEC*
\x93kK\x87ɉ\x9F~\xE3\xACK'RN8Mq
-\x9A\x89 4\xE9{\xF4\xFD\xD1h~@9\xF40=b\xA1\xB9
O\xA1~v\xC90\xE56ٖM-=|\x96N=a\x84\xDC\xC34\xE6\xB0\xE3r\xD8\xF7_\xAC\xF1\xBE\xA3o\xDA\xF6+\xD1
-\xDE"`m8\xA8\xA6SISh
M\xC3\xFC8Z\xA0h\xF1\xE2\x9CNS\xE9\x87\xF4\xA8\xA2j6=I\x8AD\xBD\xF48=J\x9ETFg\xFB\x90t\x9D\x9E\xE2\xFC\xF7\xB1\x95A\xE8\xC3x<\x9D0\xC0y\x96杞\xBC,\xFA[\x9C\xA2|gv|\x8Fg\xB2\x80\x9Bܲc\x83{\x8Fg\xB3\x80\x97\ݱ\xC1=
\xAD\xA0x\xB5\xC0\x9D\x81\xA7
.\xF2\x8C\xB8a\xF2\xAC.y\x94\xF2J<\x86i\xE2nQH\x8A*<01\x97
j\x84 \x9CJԜ@\x97\xE7\xFC\xB1\xBC\x88\xDB ԕ:\xCD\xC8D\xFE
>L\xE4\xF9\x8B\xBC
\xF7;\x80|-\x90o\xF8o\x91?\x8F\x83/
\xF9\xA4\x8FE~:\xEE\x9F\xE4g\xF9\x96\xFF\xF9
8\xF8b\xF9r
\xF9\xB8$r%\xF2\xFD }\xBA\x945\xF7\xE1V \x95N/)T\xC0_\xC4\xD6ˉ\xF8\x93
]\x933\xED#\x94\xBA~\x92
-\xD6ˀ\xF5S\xFA\xB6\x8B\xD7\xE1\xA2\xFC\xFD\xE7\xF9CT\xD0y\x90
-=E\xC34\xF1a\x8Ag*\x862\x99\xC8\xCA0M\xAB\xB6g=R\x9Ez\xC4q\x88\xA6w\xDA
\xA4\xC9[\xED,t\x8Esb\xDEi\xF3|\xAA\xBD\xD3\xEE\x99\xD9\xDE\xE9HQ"7\x8F3o\xB6w:=\xB3\xDA;\xF5\xF8\xFEl,\xDA\xE3{F|\xF9xYvX\xCB\xC34g}\xA1s\x98\x8A\xAB\xE3\xD7Ԗg\xAE\xB9\x9F\x8Dbb)C\xB4\x82\xB6\xC1ȶ#
\xEF@\x98ܩ\xC4\xD5fJ\x80^Q\xE2\x92\xD9\xCFU\xB0\x96\xD9/0\xD3\xD4엘\xD9 \xE3nz3; ]A\xBF\xC2\xCCx\xE7ӯ\xE95`yi\xE77\xF4:\xD4\xF8[\x9D\x99ve\x8A\xFF\xA7J\x95o\x98\xE2wl\xC5%7TH\\xCB!*\xE9Df-\xAD\xB6\xDB:l
\x9D\x9E2᰼\xF3Ut\xDAR\xE5A\x9AWm\xC34\xBF\xB3:\xE7QM/\xCC\xF1T
-\xD3\xEDv\xCA\xC3\xF4\x99\xDEA9\xF6\x85\x8E}\xFCPa\xCE0\x9DX\x9D\x83\xF5"\xCF\xC2aZ\xA4\xA6\x8B\x93\xA7O2OOŴZ\xA6\xB7\xD0xL\x97\x98S\xA7c\xA1oK\xCD3N\xA7z[\x96\xBC\xBC\xDC\xDA\xD0\xD5\xC6\xC9ɍS\xAC
-Cm\xD4$7j\xCD
-}\x9C \xAB.\xB9S\xDF1\x815$wV\xC4wLh+\x93;
-\xF1\x9D
\xB5\xB3\xCA|\xF5`\xDAh2\xA0\x8Fs\xA9\x9DS\x93wV\xC7\xEF䪝&\xF3u\x815]\xE8\xCCw\xEE!\xD787\x84G\xD3
s\xF2\x9D\xF6\xEE|Ys\xB5^\xA8{Z\x86\xA9u\xAE\xBA\xD5\xD55I\xA0\xA7Ł\x8EQ;mɝ\xF6\xF8N\x9E\xDA\xE9H\xEE\xAC5w\xA6a\xBAΤV_'|\xECBG\xBEc\xEFGSD\xCF\xE2\xD0 \xDB\xCEw\x8C\xD0F1\xF4\x85\xE2
-9\x96\xB5\xABc#\xB4I\xBCf\xB3\x84N\xAFv\xBA\x86錉t\xE657\xD15Ϲ\xE6F\xB0V\xB5\xD0\xE1\xF1
(\xF1lL7\xD3\xE4RO\x979S\xE6\xE96\xB1\xBB\xC6-\xC5!\xFF\x81|\xC7
z|\x84zvӶA'{
K<\xBD欬\xC4\xD3g\xCEf\x96릣\xE2\x8E\xEE9.]\xA2|t]2z\xBB
ۣ\x82AQ\x8Ag\xEF\xA3\xD6\xEA\xDFM\x8BJ=ASP\xE5JP\xE2\xA0K\xE2\x8B)\x8B\xF9\xA3\xCB%N\xE4zB\xE21\x9F\xA7\xD3J\xCCσ\xFB\x9D\x8F\x98\xAA\xBE
Qf|e\xC5ETE\x97 s\xEF\x82g_J\x9D\xA8l˩\xFE~!]I\xD7\xD1U\xB4\x87\xAEAa\xFC\xB8\xF0u(\xB4\xAEGqt\x82퍈 {\xE9
\xBA\x99\xFEN\xB7\xB2\x8Bn\xE3<\xBA\x83gѝ\L\xFBx9}\x8Dk\xE9\xDCL\xDF\xE4
-\xB4\x9F7\xD3\xDD
\xA1\xBC\x8D\xEE\xE1
\xE9^\xBE\x8C\xBE\xC3W\xD1}|-\x8D\xF0\xED\xF4]\xFEݏ\xDA\xFA{\xFC}\x9F\x9F\xA2\x87\xF95z\x84ߠ\xC7\xF8z\OOh\xF9\xF4\x8CVD\xCFj3\xE89\xAD\x86\x9E\xD7VЋZ\xBD\xA4\x9DM/k!\xFA\x89\xB6\x95~\xA6]E\xAFh_\xA6\x9Fk\xD7\xD2/\xB5\xE8U\xEDV\xFA\x956B\xBF\xD6
\xA2״W\xE9u\xDBDz\xD3VD\xBF\xB7!
͢\xB7l'џl-\xF4\x8E\xED,\xFA\xBB\xAD\x87\xFE\xA1"\xE39fp\xB2\x89\xCC~gFF\xCC\xDET\x91\xD1m;]\xC5>M\xB2\xB5\xD3\xEF\xE9-D\xBDB\xDB\xFA\xCA5M\xB55\xD31s\x92\xD7\xD6H\xC2
-\x9D\xAAl\x8B\xE8\xCF\xF46bn\xB5\xADRs9Z\xE7\xD3_ 90\xDBT\xCDUٶ\x8D\xE6
\x852r\x90o\xE3\xFFOש\x84YMˉ\x8E\x90Sǜ\x821\xF9\xFE\xD9\xCC\x85\xF9\xB6EjZXz\x84\x8Au\xFA\xABs\x9A\xF3Zy⬉\xE3?>2Kb|7\x91\xC1\x8BT@
-\xB1\x9B\xE52\xC7~\x90y\xF1]\\xFCt\xAEB:\xDA\xC1%т\xD4\h7
\xA0\xF6X
-\xF3\xEB/o\xAFv\xDA%e!\x8D\xD9\xC5<\x9D\xC9Vj\x84'\xC8\xC60\xD3q\xACQ)ۨ\x8A\xEDJ)\xABL\xF0\xAA\xA3 5\xFB\x87\x95\xAE\xD0?\xADt\xB5\x80\xFE\xA5\xD2\xD5:^\xA9ǎ\xC45\x8EޣnΊ\x88\x9D Q\\x97\xC9\xD1\xDF\xC0\xD1\xFB`\xD4\xC5\xF9V1sb\xDCa\xC3\xF0\xD3
\xA6\xADV\xF0Y
-\xF7\x8D\xC6wc\xA6;\xC5Ӱ\-\x80{ER\x8B-\xB8G!\xE7R\xBBi:'[\xC6"\xD4\xFFG\xE8C\xAB\xBC;u\xDCˠ\xEE}P\xF7\xA83\xB9m\xB0$a\xB9>\xBF\xAD\xD3\xE6|@ﴍm\xEB\xB4O\xA4\xEDm\x9D49m\xBAZU+X\xDF__]2B\x9Fn*MV
-y\xD2\xC1\xB0\x87\xF0Z\xCC\xCD\xD0\x88\xFC\xA8\xB2\x87Ť1\xB3\xC8#*\x89\xED\xD7+
-PA\xAAX9%.\x89\xB1\xAA\xF6\x9B\xE2\xF9\x8C%
-\xD0F힛\xD8=\xEF?\xECz\xCEO\x929],\x80
\xC9\xC9E\x90\xDET\x9A\xC5\xD3h)ϠZ\xF6\xD2F
\x91\x9D\x83lӧM\xCB
H\xB2\xE3\x85\xE4^K\xB1\xA7)\xB2'[\xA8KF\x91\x9C\xB6\x93Fn\xD6
\x93T[
-\xA9% \xB5\xCA.'/W\xD0 <\x8F\xAAy>\xB5\xF0 )\xE5\xEAi\xAA\xEA\xA28\xF1E\x85\x85و\xB7'\xFA\xCD\ʥT2.0\xC9@Մ*\xF5\xC2\xDD\xE4.\xB5ۆ\xE9\xB3\xEB\xD3J~\xD3êi
-/\xA1\x99\xBC\x94\xE6"@\x97rMJ\xFF[n4\x85<\xEC@`\xE3dP\x8A \x94I\x9D
\xD491\xD5
-\xF6{\xE8\xA2\xE9\x84We^u\xE2\xAAΆu\xF5"\xEB3 at ic\x80d\xDE&w\xCDe\x8A\xBB,\x9D
\xB7@έ4\x87׀\xAD\xF6D
-\x90K\x98q\x8E
-^\xCAU\xCCiI\xE6\xE6faN
-v\xB3\xC0ܸx\xA5*\x82\xBE\xB8\xB9,ӑ6\xE2\xD6&\xCAC\xAAK\x920N!&\xE9u,\xA9\xE6\xE1\xCE+*ne u\xE1z.\x84B
- f\\xDD\xE1)k>\x86dZ\x90\xED/܃\xBA\xEC\x80\xD4\xCC\xE5(\x99\xA5{)W\xD5\xF3<\x84]\x87*\x9D\x9D\x8F\xD2
\x8A4:\xD2KL\xF1\bBi\xDEw\xF4rl\xC3>2ܥ`N\xBEo\x94\xD1Vd\x8Er4Z\xF24e\xBEa\x96x
ٸ\xC1ڏ\xFC\xD4C\xE5\xDCG\x8B8 \x97\xEC\xA7fR\x80C\x95\xC3\xE1Aچ\xDC\xEF=\x8E\xA3\xD5J6Z\x84;cP5ة\x96\xCAx,\xB2\xA4}\xF8,
\xF18\xEDt\x84\xC7+1\xEEHhr\x87\xA5I
-!r
\xB44YA\x8E\xA9\\xA5ɒi\xA2NȗG\xE8x\xAC
\x85m\x89\x8CJ\xD0\xEB.{\xA6\xE8s!\xFA q\xD1\xD3>\xCB"[?\x81E~.T\x8F\xF8y+(\xA4\xAE]\x96\xEC\xD0R\xADv'\xAC\xF6
X\xED\xA7i \x9F\x9Bb2\xAD ^[\x93M\xAB\xADDŐf\xB5K\xB2X\xEDp1\x89'[t\xBC\xFA\x92D\xB4&\xD5j/oF\x8Fe\x86\x89\x93lR\xFC\x97
\xBE\x8D\xE6\x96\xE5;\xD1P]\xD1Rn\xB3K\xE9o/\xB4{\xBE\x80\xD27\xE5\xE4;\xECg-t\\xEC\xE4}G_.;\x9C\xEF\xE8ޯ%\x9D\xAFȉ/\xD6K`\xF5\x9F\xA3\xF1\xFCy*@a7\x93/\x87Q\\x81
\xFE\xC4e\xB4
-\x85^
_\x9D\xC8\xE6%\x93\x8F\xA9|]E\x93\xB8@\xB5\x97S`d?T\xA5(Vl\x8BϬ\x84(L\x9F\xA9\xE5BD\x8D\xC6\xD3\xC9<E["\x8AZ\xB2\xC5U\xDDT\xBC\x8E\xDC@\xA8 \xE8(ʀ䚩xs݁\xE6-\xE5,\x8D\xFAxƓ\xC0δ\xB8\xEBs\x9D%\xC4\xDEt!\xA2E\xB5\xA4ؒ\x90ⲏ\x91\xE2
\x9A\x96֯_i}EP\x94dP\xE8\xC0\x8D\xABx\xCAd\xC8\xE0=\x90\xEDM\x88\xC9{QA\xDC
\x87\xBB\xC1\xECV\xA4\xEC\xDBh=\xDEO\xE7;\xA8\x9B\xF7%d[
-\x99\x9A\xB2]
\x98\xB2\x9DJ5 \xD9\xF6&d{FB\xB6\x9D\x96l=\xB4m\xC2AK\xB6\xABD\xB6S\xD3d+b)V\x8F\x92n|']\xBE\xE2o\xC0\x9A!\xE1i`jF\xC2\xD9\xDE\x81\xF25\xEA\x9Cc9[\*\xDA\xC1|\xCDt0\xBD\xCCLv\xA9\xFE\xF6\xC5,>\xF8\xA5\xF4\xB5\x92Ե\x84\xD0gʗ\xBE
~y72\xC9\x9A\x87\x8Ed\xDFC\xCB\xF9^jcT
-\xFC\x80t\x89Iq\xC2O\xCFId\x97\x8DVv\x99\x8B\xFC\xFE\x8A\x8AqO\xAA\x8C\xAF}Hm"*\x99\x90)\x8E\x877\x91H\x97X5ʘCt5\xFD\xB2\x94\x9A\xD7$\x8D\xFA\x8C\xC6\x93\xC1\x8F$j \x83
\xFC)\x9EI\x99\x9F\xBE 5\x87\x8FK@\xDE`}F\xCB\xF3|e\x84\xAEU5\xEC\xF5bq\xE6.\x9C\xA8\x8AS\x83ӓ(a\x9EB\xCEz \xF3\x99*
\xFF\x8E\xA0\xE2Jԫ+\xF4Q\xD54P\xAA\xBFt[
t\xBD\xBADt\x83\xF4V\x9F\xBA[\xF5\xA9h\xD0\x88C\xEDY\xC6-S\xF7\xD0\xE9\x98\xDE ~\xF3
\xA2]\x9D\x9E\xED\xD2M\xD2F\x8C\xD0ރt\xF3C,_\xDC\xE4\xC3\xD0-*\xB5ݚ\xCCn-\x85\x8EG\xA9\xC8\xCA`\x9Ej\xA7\xBC\xEA\xB5\xD0\xF9\xD0>\xC9{ w\x9B\xC3\xD7i\x9F:B\xB7ǡ\x96K\xAA[\xE8\x99\xFD4\xA0\x9E\xA6,\xD6Q>X\xF8
-M\xE4\xD7\xD9ޠi\xFC&
\xFD-x\xE1\xDB0\x90w\xA8\x82ߥ:\xFE\xAD@\x9B\xBA\x81\x8F\xD2\x9A\x8D\xBA4\xF5\xE3\xC1s\xBB\xA6\xD39\x9AA\xE7jc\xE8J-\x8F\xAE\xC6s\xB7f\xFE\xDDg9\xE43\xE1\xE3y\x8E\xFA\xBCv\xDAfI\x80\xCFU\x86U\x80\xDAH:\xA6it
\x8AJ\xF9\x8B\xC0
\xFA
J˃\x96a-!\xE7Q\xAA#\x87\xF8
\x97\xA96E'\xFCp\x8E釉5\xE9
1\x8D
\xA1\\x8CMQ\xED\x90 w\xA1Fe\xAE\xE3y\xFFPK
- hmyM\xF5\xA2ߞ\xB8 META-INF/INDEX.LIST\x8D\x921\xC20
E\xF7\x9C\x82
\xD0\xC0\xCA\xCA,L\xEC&1\xAD!q*;E\xED\xEDiłPS"%~\xDFַ\x9D#ȁ=\xF6\xEB
\x8AR\xE2\xDDj[m\x8C9a\xDE\xFB\xE1
\xBA\x9A\xB8\xBA\x83\x98$\xF5t,\xB4\xE0\xFC\xB8Z\x97bL\xAC3!!7\xA5\xB8\x860(\xA7G\xB0/rO\x9A\x85\xAE]
\x8DE\x81\xDF\xF6g\xB1 \xFB\x8BX[t\xA1\xCC3\xE4Eh=\xAAj3=\xE7\x866/\xB41E\xE4\xFF
O]<\xFEWk#Ȱ\x9C@|CAv?\
ւ\xAAK\xF7\xBE\x94
\xA0j\xCC
PK
+\x85\xEE\xF4\xA3w
F\xD3\xE8\xB3\xCA_U,v\xC3:\xAF03\x80q
4\xA51 \xBEM\x81`0`vq\xA7 :}\xD1XS\xB83\xD0_xJ* \xD5\x80\xC8 \x9Ek\xCC\xDEsl?`\xC6T\xF7\xD8p\xB5#\x94\xCDf4]\x8Dx!\xDF\xCCX\x94,\xA5\x99\xE6\xA2\x9F\xFB_\xDF\xCEx,\x83\xB1.%R9
+ׯ\x81d\xA1\xF0\xF6\xA1"o+ \xB6D\xC3\xC1\x81\x98\x95*\xA4\x8B
+3Vz\x99u\xEF\xE8\xEB5\xCB'\xA9M\xEB\xCD:v
L?\xBD\x92\xD5}\x81X\xBD \xCC\xC2.>)nn\xA3KKIq>$\xBD2Xކ
\xCAΤ\xDD\xFC\xCC\xEC(\xC3
\\xBA%\xB1L
i$\xD6\xFAb\x9AIw\xD1\xDD\xEA#\xD6\xD1\xC8V\xA8S1ރ\xB7r\x92\x94I\xE4(\xDAO\xFC
L4\xFA\xB6|\xF2R\x8Bc\xE8^\x8Cn\xF3 \xED#\xD9g\xBA\x8F\xEE\xC7)\xB9\j]\xB6y\xB4}iWǥ\\xB5YW\xC0/+\xDF\xC5o(
+8,\xC9\xC9"$ ˖+/,\xA6\xE1
W\xED\xE9W
2^\xFD
=hqp\xDE4\xE1\xAEx\x98
闧\xAB\xCB\xCD\xD6e\x99
\xA0\x87\xB0\x9F\xC6\xCD\xC3x
\xA4G,\xB8\x8B\xC8|D\xF69sz\xEFM{T
+X{\xAC\x9D
\xA5\xC7F\x83}
\x8F'\xE8\xFB\xD8\xE58&\xD7&\x91?\xFDt
\xC6\xE9\x97O\xA0\xACp:\x9A\xC24h&\xD0\xE8\xC9\xD1h\x9E\xA2,z\x9A\x9E\xB1\xD0\\x81\xA7P?\xBBh\x88\xB2mK\xA6\xBC\x95
+\x8A\xA7
;L\xEE!s\xD0q39\xEC{/\xD1x\xCF\xE1\xDF\xDA\xF6*\xD1
+\xDE\xC9\xC0,\xDApPL\xA7\x9C\xA6\xD0<\x9A\x86\xF9Q\xB4@\xD1\xE2\xC59\x9D\xA6ҳ\xF4\x9C\xA2j6=I\x8AD\xBD\xF4C\xFA(yA\x9D\xED\xD2u\xFA1\xE7}\x8C\xAD4B\x9F\xC6\xE3' \x9Cgi\xDE\xE9\xC9ɠ\xBFE)\xCAwf\xB6\xC1\x9F\xE0\xF1bpc3\x80[rdp/\xE2\xF1Rp\xB9\xC0\xD5
\xDCK\xD0
+
+d
\xDC&\xD2\xD4\xE1ɞq 7D\x9EEORN\x91g\xFCM\xD8%
+IQ\x85\x86"\xE6\x92E
+0\x81S(\x9F\x9A\xE8\xB2\xE0\x9C\xAF*\xC1\x8B\xB8
+\xE2C\x94\xAFӌt\xE4/\xE3\xE0kGD\x9E\xF7\x99\xC8[q\xBF
+\xC8W\xF9\xBA\xFF\xF9k8\xF8\xFA\x91O\xFCL\xE4\xA7\xE1\xFE& \xDF
\xE4[\xFE[\xE4\xAF\xE3\xE0OȗZ\xC8s\x93ȕ\xC8\xF7&\xF4\xE9R\xD6܃[\x81T:\xBD\xA1P\xA5\xFF)\xB6\xDELğd蚔n\xA1\xA1\xEB\xADL\xB0\xDE\xAC\xB7\xE9g\xD8,^\x83\x8B\xF2\xA4P~\xFB~*\xF0L
\xA2)\x88S<S1\x94\xC8DV\x86hZ\xA5=\xE3\x91\xD2\xD4#\x8E4\xBD\xDD\xF60\xCD\xD8O\xDEJg\x813y\xBB\xCD3\xB3\xB5\xDD\xEE\x99\xD5\xDA\xEEHQ$7\x8F2o\xB6\xB6;=G\xB7\xB6\xEB\xF1\xFD\xD9X.\xB0\xC7\xF7\x8C\xF8\xF21\xB2찖\x87h\xCE\xDA\xE7VƯ\xA9-\xCF\s?)3\xC4\xC4R\xA8\x9E\xB6\xC2\xC8i\x88\xB6!\xFAnW\xE2j1%@\xEF(q\xC9\xEC\xE7*X\xCB\xEC]\xCC45\xFBf6\x87\x89\x99
\x90vЯ0s \xDE\xF9\xF4k\xFA
+\xB0<\x8C\xB4\xF3[\xFA
\xD4\xF8\x9E\x8AΌ3i\xE2[\xA9\xF2\xF7\xA6\xF8
\xE7\xE0\x92\xAA\x8A\xA5\xAE\xF9 \xB5#\xB3W\xDAm
\xB6\x85NO\x89pX\xDA~\x80\xCA\xDA
\xEC\xFB\xA9|?ͫ4
+\x8C!\x9A\xDF^\x99\xF5\xA4\xE6)\xC8\xF2T
\xD1\xED6\xCA\xC1\xF4X\x99\xDENY\xF6\x85\x8E=\xFClA\xD6
W\x99\x85\xF5ɞ\x85Ct\xBC\x9A.J\x9E>\xC1<=\xD3J\x99\xDEL\xE30]lN\x9D\x8E\x85\xBC\x9Dh\x9Eq:\xD5ے\xE4\xE5\xA5ֆ\xAE6NJn\x9Clmj\xA3*\xB9Qmn\xE8\xB9&\xAC\x9A\xE4Nm|\xC7V\x97ܩ\x8F\xEF\x98Ж%w\xEA\xE2;Yjg\xB9\xF9*\xF2h0\xD0s]j\xE7\x94\xE4\x9D\xF1;\xD9j\xA7\xD1|]`M:\xF3\x9C\xBBɕ\xEB\x86\xF0hzAV\x9E\xD3ޙ#k\xAA\xD4
tO\xF3\xAD܍\xABnuuU\xE8\xA9q\xA0c\xD4NKr\xA75\xBE\x93\xA3v\xDA̝\x82\xE4T\xAD6M\xC3t\x8DI\xB8\xF0\xB06\xCE\xC3\x8E<Ǎ\x9F\xE6\x8A\xCA\xD7\xC5}\xA1
f\x9E\xE7\xA6\xF5b\xF3
\xC51\xB2,\xC3Wdži\x838\xD0F\xFF0\x9DV\xE9*p
+Ѧ \xB4\xF9\x9Ah\x8C\x9Ag]s=\xB8\xACX\xE8\xF0\xF8\xF6y\xB6\xA6\x9BhR\xB1\xA7Ü\x8D)\xF1t\x9A\xD8]\xB9'\xE2\x90_\x9Ec7==L]\xBBhk\x91\xA0\x93\xBD\x85E\x9EnsVR\xE4\xE91g\xB3Ju\xD3\xE7q\x9F\xF7\x9C\xEF.R.
\xBD]\x82\xEDQqar\x8A\x93\xC3Ի\x8B\x8E/\xF6MA\xE5\x97:L(A@\x89\x83.\x8A/\xF6\xA5,\xE6\x8D^,\x95\x90\x91\xED 틇\x9EN\xCB0?\x9Ex>\xC2\xFF( /D\xC5q*\x8C\x8B\xA9\x82.E\xBF
N~9\xB5\xA3\xC89\x9D\xAE\xA4^\xB8\xF5\x85t}\x83\xAE\xA6\xDDt
+\xDDA\xD7ҝx;H;Q\x8E]\x87Dt=\xE2\xF8\x8D\xF4W\xBA\x89\xFEI\xB7\xB0\x8Bn\xE5
\xBA\x9D\x8F\xA6;\xB8\x90\xF6\xF0R\xBA\x93\xAB\xE9nn\xA2o\xF1:\xDA\xCB\xE9^\x8E\xD0>\xDEJ\xF7\xF1\x85t?_A\xF0\xD5\xF4]\xFE:
+\xF3m\xF4=\xBE\x87
D\x99\xFD(?E\x8F\xF1s\xF4\xBFK\xDF\xE7_\xD3S\x9A\x93\x9E\xD1Pi^\xFA\x916\x9B^Њ\xE8\xC7Z#\xBD\xA4\x9DJ\xAFh\x9B\xE9Um\x80^Ӷ\xD3\xEB\xDA9\xDE\xD4n\xA4\xB7\xB4[\xE8g\xDA7\xE9
m/\xFD\{\x82\xDE՞\xA5_h\xEFѯl3\xE8w\xB6\xD9\xF4\x9E\xAD\x9C~o\xAB\xA5?\xD9\xDA\xE9o\xB6^z\xDFv&}\xA0\x82\xE4Yf\x9C\xB2r\x8A\xCC\xFE`I\xCC\xFE\xA8\x82\xA4\xDB֣ \x8D&\xDA6џ\xE8\xCF\x80\xB6
+\xF4Tn\x9Aj[y<\x87x絵\xD1\xDFpC\xA7
+[5\xFD\x9D\xFE\x81\xF0[i\xABTu]\x96\xB6\x99\xF3 \xB3\xF7\xC9\xCC6L\xB3U\xE2m\xA19\x87\xA1\x8C,\xA4\xDE\xF8\xFF\xD3u*bV\xD3R\xA2C\xE4\xC5\xD41'L\x9E\x866\xF3_A\x9Em\xC6d\x99x
\x8AQ\xA1N8\xA79\xFFMˎ;z¸\xCFҒ#?L$\xF3\xC9* \x9B\xD8%}sJ\xBA=\x94~\xF1C\\xFC\x88\xFEeFwtOvpI\xB4 5-\xDAM(\x82=\xC3\xFC\xC5\xFAK[+
v\xC9^\xC8hv1Og\xB2\xAB\x9A\xE1\xA3\xB1e\x8D\x8Eb\xB3\x9D*ء\x94\xB2\xDC\xAF\x9A
R\xB3\x8F\xAD̵\x80\xFEme\xAE\xA0R2\xD7:F\xA9ǎ
\x96K\x9FЧ\x80[\x81\xB3"bgB7\xA4s\xF48:\xCCd\x89\xE2|\xAB\xAE9.\xEE\xB0a\xF8\xE90\xF5љV\xF0Y\xF7\x8D\xC6wc\xA6;\xC43\xB2\͇{ER\xEB.Φv\xD3d
C\xD3\xE1&\xF1f2Mafͪ\xBB \xEFv
\xF7Ҩ;LY\xF2\xFD\xD6\xEA\xE9\xB6\xE4B%|~k\xBB\xCD\xF9\x90\xDEn\xDB\xD2n\x9F@\x83-\xED\xF4;-\xBAZU+X\xDF
__Q4Lg7'\x8B\x86
ifx<-\xE0 \xB4\x88\xF3}\xD1\xD2\xD9\xCE\xD5)h\xEC\x84\xF9\xA1nc#Q\xBF\xEFT\xA0\x98T\xB1rJ\cU8\xC5s\x8E%
+\xD0F힛\xD8=\xEF?\xECz\xCEO\x929],\x80Q\xE1\xF0Ho
\x8D`v"{\xA9\x9Ag\xD2z\x9E\xADd\xE7 \xDB\xF4i\xD3\xD2D\x92\x85\xECxMy\xA3\xA5\xD8Sٓ,\xD4E\xA3H
\xB13\x82܌;&\xA9\xB6R\x8BAj \x94]F^.\xA7cy>Ur5\xF3q)\x95멪 \xA38\xF1\x93
+2\x9F\x95h=\xFFju\xB8=\x8A\xC4yR?\xA5s\x81I
*\xAAF\x94\xAD\xEE"w\xB1\xDD6D\xAD\x95
@\xD1>\xEA\xCA\xC5\xFF\xE9JJ\xE3\xB0nE\xBC<\x9DH3y "\xB6\x97\xF3\xC94\x9Fk`9\xF5t/\xA36^N\xB8\x81\xB6\xF0
+\xEA\xE4f\xEA\xE2S\x9D\xEDL\xF2 ;\xFCL\xB5%f\xD2$\xF9\x9F@\xF6C4\x91\xEEc\xE9<晓tqdA
\xD9 \x9Cj\xC5+\xFB}tɾ\x91\x8Bצ_\xCD\xC6U7\ϼz\xB1\xF5 \xA28M \x80d\xFD\xA6T\x9AJ\x94T2tQ|\xBB\x89\xE6\xF0f\x9A\xCB[\x8C\xA4\xC5f\xF0r\x89R^\xCAV,k\xC9\xCEj.\xF8K\xA7\xD0-&
u
+\x80 \xB8\xDCx\x95,
+\xBA\xB4\xA9$\xDDs\xB8u\xE5po
+ \xB9
+1I\x9Fe\xC9:w\xDEQ\x812
+\xE9X\\xCF\xE5q&R^ӕ
\xE2\OI\xD3$ӌ\xF2\xE2\xC2\xDDh\xDFK\xF6\x995\xFBe\xF8]\xDE^\xBA\x9F\xBE\xE0\xF9\xE2~\xBABjw\xBBy\xD4\xEE\x8E'i\x86\xAA$\xDE\xD9x\xAE4A5\xED9\xFC\x96
[\xB7\x87
\x81\xF9%p(XJ\xE5v \xDFE\xD5\xD3|\x85\xE4fF\xBE\xE4(RD
Yq\x80Jy;-㳩\x85ϡ\x9FGQT[\xF9|\xE4
\xE8l\xBE(\x91>\x8E\xA2UJ6\xD4@%*\xDBi%G\xB56\x83dG
\xAF\xA4wnB\x81\xE7Z
+\xB4\xD1Y\x88\x8EY
+,&\xC7'T\xAA\xD2q\xD1!*@R>D\xC7\xE0\xF50\xB0\xD8i\x9B1w\xD8\xD3ŝ
q\xE7\xC5\xC5M{,+\\xF99\xAC\xF0\xAAd\xE4Q=\xE9\xD5V\xE4I]\xFBr\xB2#L\xB5\xD4/\xC2R\xAF\x80\xA5^I\x8B\xF9K)f\xB22\xC1\xE8J\x9EhYj9Oi\xA9\x8B3Xj
\xB8\xC8\xE7\xCBh\x8EQ_\xAE\x88V\xA5Z\xEAW\x9A\xD0ә!\xE5\x9B4%o\xA5\xB9%yN4p_m.\xB5٥Հ}x\xBE\x86Vce\xE59\xEC\xA7/t\\xE2\xE4=\x87_-9\x98\xE7\xE8ܫ%
\xAE
ȉ\xAF\xD6ka\xE9;i
\xEF\xA2|\xDEM\xB3\xF8:\xD8\xC0\xF5(n@"\xD8M\xCB\xF9&D\xD8[:/B,~^4\xC9C\xDA\xD9)\xB0\xA9gU}\x8A\xDB\xE2'\xCB
+\xD3O\xAAy
+Og\xE3\xE8$\xA4\xA9\xE8D\xD5d?\x8C\xAB\xBA\xA9u
\xC9GJ\xA4\xE5cR\xD6Lś\xEB4\x8B)gi\xD4\xC7:\xCE;3\xE2\xEE\x8E0j
+\xB1{\xA4\xD1[RlNHq\xC9gHq7M\xF1}\xE0뫅\xFA`\xA1$\xFBx\x817\xAE\xDD\xE7)ٗ&ۻ@\xCCݐ\xED=\x88\xCE\xDFF\x99r/\xFCk\xD8w\xDDx?\x8D@Tߟ\x90m1dj\xCAvt`\xCAv*U%d\x90\xED\xA6\x84l\xDB-\xD9zh5R\xF7C\x96l\x97\x8Bl\xA7\x8E\x90\xAD\x88Q\xA4X9J\xBA\xF1\x9D\x91\xF2\xD64 \xCF S3\xCE&\xC9S\xBE~\x9Du$g\x8Bk at E8\x98\xAF\x99\xA6\x97\x98\x891\xD5߾\x9E\xC1\xBF1r\xAD(u-!\xF4Y\xF2%\x86\xC2/A\xF6x\x94\xE6\xF1ct<?NK\xF9 \xB2\xA7\x91:\x9FW\x82.2)N\xF8\xE9Y\x89\x8C\xB2\xDE\xCA(sQD\xBC\xA3\xC2\xDA
\xAA\xAC\xD0>\xA1\x91
+\x8DO\xC7L\x88cV"y.\xB6
+\xA11h'\xDD%\xF5\xEC\xEEdrQ\x9F\xED\xF8%2\xF8\xE5D\xC1b\x90\x83\x8FBs\x97\xFE\xA9
+P\xB3P\x82\xC5!\xAF\xB3>\xDB\xE5x\xAE\xA6\xEBU\xA1|\xA3X\x9C\xF9\x87'J\xEF\xD4\xE0\xF4j\x8A7\x91\xA7\xDEB\x92|;\x81J\xC7
+#\xB2$\x8A\xE2z}T\xC9\x94\xEAO\xED\x96\xED\x94K8p\x9D4!V3|\x93j\x86э\xA0\xD7\x87\xBAy 7O\xDDM\xA7az\x8B\xF8\xCDS\x94\x80v\xB4{n\xB5?L\xB7I\xAF2L\xB7\xEF\xA7;
a\xF9\xC2g&5\xF9\xF5MIf\xF1\xAA\xF9\xCDHf\x93e\x8A\x84\xE5\xA9tʫ\xA1^
\x9C\x8F\xEC\x914p{
\xB8v\xFB\xD4a\xBA3\xB5T2[=\xFC\xA1d\xF6R\x9Fz\x9A\xB2XCy`\xE1\xEF4\x81\xFF\x81\xC8\xF6>M\xE3a\xE8\xFF\x82~Js\xA1\x892M\xA3M\xA7z-\x9B\xD6ici\x936\x9E:\xB4<\xEA\xC53\x82\xE7\xA06\x89\xCE\xD2\xF2\xE9\m]\xA5M\xA7\xAF\xE2\xB9K\x9B\xA9\xE4\xB9\xF2\x83\x99p!\xCFU\x9F\xF3\x8E\xE5"d?\xA9\xEC\xAFC\x95*\x86\x95\x8FzH\xDA#\xA6it
\xAAV\xF9
\xC4
:\x87K\x95\xBF\xA0\xAC\xC5y\x98j\xC8!>\xC7e\xAAEU
?\x9Cc\xFAabMZTL#\x87(\xE3G\xA4iST\xCF\xE5\xC8
<Qs\xBE\xD8W\xFCPK
+ \xEBX\x82M\xF5\xA2ߞ\xB8 META-INF/INDEX.LIST\x8D\x921\xC20
E\xF7\x9C\x82
\xD0\xC0\xCA\xCA,L\xEC&1\xAD!q*;E\xED\xEDiłPS"%~\xDFַ\x9D#ȁ=\xF6\xEB
\x8AR\xE2\xDDj[m\x8C9a\xDE\xFB\xE1
\xBA\x9A\xB8\xBA\x83\x98$\xF5t,\xB4\xE0\xFC\xB8Z\x97bL\xAC3!!7\xA5\xB8\x860(\xA7G\xB0/rO\x9A\x85\xAE]
\x8DE\x81\xDF\xF6g\xB1 \xFB\x8BX[t\xA1\xCC3\xE4Eh=\xAAj3=\xE7\x866/\xB41E\xE4\xFF
O]<\xFEWk#Ȱ\x9C@|CAv?\
ւ\xAAK\xF7\xBE\x94
\xA0j\xCC
PK
\x95^=0\xB4\xB4\xE2\x86m ^, META-INF/LICENSE.txt\xDDZ[s\xDB\xC6~\xF7\xAF\xD8r\xA6Si\xA6\x9D4i牱䆭CiD\xB9n&\x93\x87%\xB0 \xB7\xB0\xC8. \x8A\xFD\xF5=\x97\xBD\x81\xA4dw\xFAVM\xA65I\xECٳ\xE7\xF2\x9D\xEF\x9C\xC5
\xF1\xB9\xBFE/˝\xEFu\xA9:\xA7^<\xF3\xE4?\x94u\xDAt\xE2\xEB\xF9\xEBB\xFCMv\xA3\xB4\xF1\xF5\xEB\xD7\xDF<\xB9h7
\xFD\x9BW\xAF\xF6\xFB\xFD\\xD26sc\xB7\xAF\xDEʽz\x81
\xEF\xAF\xEF~Z\x8B\xC5\xEAJ\xBC\xBDY]-\xEF\x977\xAB\xB5xws'>\xAC\xAF
qw}{ws\xF5\xE1-~]\xD0SW\xCB\xF5\xFD\xDD\xF2\x87\xF8
\xF8j.\xAET\xAD;=\x80rn\xFE\xC2k3\xF3'\x9A \xB7\x93M#Z%;1\xC0Ie['dW\x89\xD2t\xAF\xB5\xB1bt\xAAV\xF5\xD6Tc\x89_^>[i7X\xBD\xF1{!\x9D\xA8pKU\x89\xCDA\xACU\xC9B\xBE\xF9\xF8N\x98>hxΔc\xAB\xBA\xE1X/cO+M\xB0z\xBB\x84\xD9w\xCA
P \xEA\xE1 \xE48\xEC\x8C\xD5\xFF\xA6\xFD\xBC\x9Cs+\x86\x9D
l\xBA\xB5v[z\xC8\xDB!S at me#\xAEI\xF4\x89c\x87$핐%I Z\x80\xE0Y/\xC6\xC0^A\xAD
o
@@ -1141,8 +1149,8 @@
\xED\xA2\xFF\xDAx~xفޒ\xE90\xB7\xF2v2?\xF0\xFB{p'\xEEE3l\xE8\xB6[\x85\xB5\xF8\xA8?\xAF\xC8\xCD\xF9r\xCB5P\xF2;0\xCA8\xA6
VQv\x96\xC0x\x88\xFA\xFF$\xFC
\xE1\x84͢\xB4\x9D\xF0\xEE\x96\xE1
\xBA\N\xBD\xD9\G\xDB\xE0(o\xF5Dx\xCB\xE4/I?\xE1i<\xC3\xFB?\x82\xC3\xFC\xB2\xE2\xBC9\x8B\x8Ec\x92{,D\xCAc|\xD2yBp
\xCC?\x84ȋ\xEF\x91"\x9A\xFF\xB1\x9B\xF7\xA7 Nn}\xE3a^\xA0<\xC8_$`\x94\xBFO9tai\x8CхS\x9FF\x96;\xAA\xE5n\x9E#k\xC7\x83\xE7I\x88pL\xE5\xBFEth
{"\xF8\xAA\x89MxǦ<\xC4_-@\xC8\xD90
\xB1\xF7P\xC0\x89
`]\x9D\xB0\xCB;\xC0N2(ƒ
`X:\x80%#\xF8 \xA9\xAF\xE3]oᥛ\xBCtӹ1F\xC1\xE7\xCD1\xB4Q
\x8Fw|
j\x8F\xD3ny\xB4#\xBE^\x93\xA649;M?#\x9C\xBF\x84\xF1
^\xBA;ҁ-\xFFG\xCF4\xF3?\xEE=\xB3*$l
i\x81\xED$'\xBD\xF36\xEC\xB4$5\xD9L\xEA&\xCAX;e\xAF\xE8\xF0h3\x94p\xE7\xC2 \xFB: wB S^8$\xE1
\xC78lj>df\x87~F\xEF=$9\xF4}\x81
\x99j\xB3_\xE2P~\xE8<\xC0S\xB1\x81دPb\xC1V\xF6~\xD3\xE2a\xFEs>dy\x84
|\xCC}B{\x9F\xB2\xF2>c\xC4\xEEz\x9E乛g\xE2_f\x82b\xD2n3\xCEx\x85\xC5\xC4?$L\xDEIɜ\xE6j\x8C+\xF9\xBD\xE4Y\xB9\xFC/PK
- imyM \xEDA META-INF/\xFE\xCA PK
- hmyM\xFF\xA9"i} \x91 \xA4\x81+ META-INF/MANIFEST.MFPK
+ \xECX\x82M \xEDA META-INF/\xFE\xCA PK
+ \xEBX\x82M\xFF\xA9"i} \x91 \xA4\x81+ META-INF/MANIFEST.MFPK
K\x88$G \xEDA\xDA META-INF/services/PK
\xEB\x86$GTS\xB87 8 \xA4\x81
META-INF/services/de.cinderella.api.cs.CindyScriptPluginPK
@@ -1164,138 +1172,137 @@
\xDA)\x871 ' \xEDA org/apache/commons/math/stat/inference/PK
\xDA)\x871 ( \xEDAK org/apache/commons/math/stat/regression/PK
\xDA)\x871
\xEDA\x91 org/apache/commons/math/util/PK
- hmyMS\xEE\xE2\x80 K/ \xA4\x81\xCC KetCindyPlugin.classPK
- hmyM\xF5\xA2ߞ\xB8 \xA4\x81~
META-INF/INDEX.LISTPK
- \x95^=0\xB4\xB4\xE2\x86m ^, \xA4\x81g
META-INF/LICENSE.txtPK
- \xDA)\x871 \xA4\xFD~\xB8 e 2 \xA4\x81. org/apache/commons/math/ConvergenceException.classPK
- \xDA)\x871㒪=\x93 9 \xA4\x810 org/apache/commons/math/FunctionEvaluationException.classPK
- \xDA)\x871\xDE\xF7\xCDպ o 8 \xA4\x81\xF82 org/apache/commons/math/MathConfigurationException.classPK
- \xDA)\x871\x8F5n \xDD + \xA4\x815 org/apache/commons/math/MathException.classPK
- \xDA)\x871\xC3\xE4PH \x99 6 \xA4\x81c: org/apache/commons/math/analysis/BisectionSolver.classPK
+ \xECX\x82M\xD7?NQ\xD2 \xFD/ \xA4\x81\xCC KetCindyPlugin.classPK
+ \xEBX\x82M\xF5\xA2ߞ\xB8 \xA4\x81\xD0
META-INF/INDEX.LISTPK
+ \x95^=0\xB4\xB4\xE2\x86m ^, \xA4\x81\xB9
META-INF/LICENSE.txtPK
+ \xDA)\x871 \xA4\xFD~\xB8 e 2 \xA4\x81X. org/apache/commons/math/ConvergenceException.classPK
+ \xDA)\x871㒪=\x93 9 \xA4\x81`0 org/apache/commons/math/FunctionEvaluationException.classPK
+ \xDA)\x871\xDE\xF7\xCDպ o 8 \xA4\x81J3 org/apache/commons/math/MathConfigurationException.classPK
+ \xDA)\x871\x8F5n \xDD + \xA4\x81Z5 org/apache/commons/math/MathException.classPK
+ \xDA)\x871\xC3\xE4PH \x99 6 \xA4\x81\xB5: org/apache/commons/math/analysis/BisectionSolver.classPK
\xDA)\x8710.i\xEE P
- 2 \xA4\x81\xC0> org/apache/commons/math/analysis/BrentSolver.classPK
- \xDA)\x871\xEE='\xB1 L K \xA4\x81\xFED org/apache/commons/math/analysis/DifferentiableUnivariateRealFunction.classPK
- \xDA)\x871\x82\xBA`\xB3' t 3 \xA4\x81F org/apache/commons/math/analysis/NewtonSolver.classPK
- \xDA)\x871GB\xAAU 9 \xA4\x81\x90J org/apache/commons/math/analysis/PolynomialFunction.classPK
+ 2 \xA4\x81? org/apache/commons/math/analysis/BrentSolver.classPK
+ \xDA)\x871\xEE='\xB1 L K \xA4\x81PE org/apache/commons/math/analysis/DifferentiableUnivariateRealFunction.classPK
+ \xDA)\x871\x82\xBA`\xB3' t 3 \xA4\x81jF org/apache/commons/math/analysis/NewtonSolver.classPK
+ \xDA)\x871GB\xAAU 9 \xA4\x81\xE2J org/apache/commons/math/analysis/PolynomialFunction.classPK
\xDA)\x871Xo\xFBn \xE2
- ? \xA4\x81<O org/apache/commons/math/analysis/PolynomialSplineFunction.classPK
- \xDA)\x871\xCD?\x80~# g 3 \xA4\x81U org/apache/commons/math/analysis/SecantSolver.classPK
- \xDA)\x871\xE6\x8F23\x9F \xE6 9 \xA4\x81{Z org/apache/commons/math/analysis/SplineInterpolator.classPK
- \xDA)\x871\xFF\xBF{\xB5 = \xA4\x81q_ org/apache/commons/math/analysis/UnivariateRealFunction.classPK
- \xDA)\x871%\xFD\xC9\xC5 @ A \xA4\x81\x81` org/apache/commons/math/analysis/UnivariateRealInterpolator.classPK
- \xDA)\x871)3\xB5\xA6x 1 ; \xA4\x81\xA5a org/apache/commons/math/analysis/UnivariateRealSolver.classPK
- \xDA)\x871\xAF\xC0ƁQ \xD5 B \xA4\x81vc org/apache/commons/math/analysis/UnivariateRealSolverFactory.classPK
- \xDA)\x871ܯ\xC0\x86 \x85 F \xA4\x81'g org/apache/commons/math/analysis/UnivariateRealSolverFactoryImpl.classPK
- \xDA)\x871Ew]\xD8 \xB3 ? \xA4\x81\x8Fi org/apache/commons/math/analysis/UnivariateRealSolverImpl.classPK
- \xDA)\x871\xF6\x93\xEAQ @ \xA4\x81\xC4q org/apache/commons/math/analysis/UnivariateRealSolverUtils.classPK
+ ? \xA4\x81\x8EO org/apache/commons/math/analysis/PolynomialSplineFunction.classPK
+ \xDA)\x871\xCD?\x80~# g 3 \xA4\x81YU org/apache/commons/math/analysis/SecantSolver.classPK
+ \xDA)\x871\xE6\x8F23\x9F \xE6 9 \xA4\x81\xCDZ org/apache/commons/math/analysis/SplineInterpolator.classPK
+ \xDA)\x871\xFF\xBF{\xB5 = \xA4\x81\xC3_ org/apache/commons/math/analysis/UnivariateRealFunction.classPK
+ \xDA)\x871%\xFD\xC9\xC5 @ A \xA4\x81\xD3` org/apache/commons/math/analysis/UnivariateRealInterpolator.classPK
+ \xDA)\x871)3\xB5\xA6x 1 ; \xA4\x81\xF7a org/apache/commons/math/analysis/UnivariateRealSolver.classPK
+ \xDA)\x871\xAF\xC0ƁQ \xD5 B \xA4\x81\xC8c org/apache/commons/math/analysis/UnivariateRealSolverFactory.classPK
+ \xDA)\x871ܯ\xC0\x86 \x85 F \xA4\x81yg org/apache/commons/math/analysis/UnivariateRealSolverFactoryImpl.classPK
+ \xDA)\x871Ew]\xD8 \xB3 ? \xA4\x81\xE1i org/apache/commons/math/analysis/UnivariateRealSolverImpl.classPK
+ \xDA)\x871\xF6\x93\xEAQ @ \xA4\x81r org/apache/commons/math/analysis/UnivariateRealSolverUtils.classPK
\xDA)\x871o\xFF\xBD\xA7z \xFC
- - \xA4\x81sx org/apache/commons/math/complex/Complex.classPK
- \xDA)\x871:D\x99\xDDa \xE2 3 \xA4\x818~ org/apache/commons/math/complex/ComplexFormat.classPK
- \xDA)\x871?\xDF\xFBR h
2 \xA4\x81\xEA\x8C org/apache/commons/math/complex/ComplexUtils.classPK
- \xDA)\x871S\xC0\xFF[ \xD7 K \xA4\x81\x8C\x92 org/apache/commons/math/distribution/AbstractContinuousDistribution$1.classPK
- \xDA)\x871\x83dʟ! e I \xA4\x81P\x95 org/apache/commons/math/distribution/AbstractContinuousDistribution.classPK
- \xDA)\x8716LLb4 \xA4 ? \xA4\x81ؙ org/apache/commons/math/distribution/AbstractDistribution.classPK
- \xDA)\x871\xF8/Q F \xA4\x81i\x9C org/apache/commons/math/distribution/AbstractIntegerDistribution.classPK
- \xDA)\x871W\x96_\xE8\xE5 t ? \xA4\x81۠ org/apache/commons/math/distribution/BinomialDistribution.classPK
- \xDA)\x871ZP\x96\xC9 X C \xA4\x81
\xA2 org/apache/commons/math/distribution/BinomialDistributionImpl.classPK
- \xDA)\x8716F\xFCp\xB9 . A \xA4\x81G\xA7 org/apache/commons/math/distribution/ChiSquaredDistribution.classPK
- \xDA)\x871UK*7 \xA4 E \xA4\x81_\xA8 org/apache/commons/math/distribution/ChiSquaredDistributionImpl.classPK
- \xDA)\x871j,I;\xCE K A \xA4\x81\xF9\xAC org/apache/commons/math/distribution/ContinuousDistribution.classPK
- \xDA)\x871>L\xBD\xA1 \xF4 ? \xA4\x81&\xAE org/apache/commons/math/distribution/DiscreteDistribution.classPK
+ - \xA4\x81\xC5x org/apache/commons/math/complex/Complex.classPK
+ \xDA)\x871:D\x99\xDDa \xE2 3 \xA4\x81\x8A~ org/apache/commons/math/complex/ComplexFormat.classPK
+ \xDA)\x871?\xDF\xFBR h
2 \xA4\x81<\x8D org/apache/commons/math/complex/ComplexUtils.classPK
+ \xDA)\x871S\xC0\xFF[ \xD7 K \xA4\x81ޒ org/apache/commons/math/distribution/AbstractContinuousDistribution$1.classPK
+ \xDA)\x871\x83dʟ! e I \xA4\x81\xA2\x95 org/apache/commons/math/distribution/AbstractContinuousDistribution.classPK
+ \xDA)\x8716LLb4 \xA4 ? \xA4\x81*\x9A org/apache/commons/math/distribution/AbstractDistribution.classPK
+ \xDA)\x871\xF8/Q F \xA4\x81\xBB\x9C org/apache/commons/math/distribution/AbstractIntegerDistribution.classPK
+ \xDA)\x871W\x96_\xE8\xE5 t ? \xA4\x81-\xA1 org/apache/commons/math/distribution/BinomialDistribution.classPK
+ \xDA)\x871ZP\x96\xC9 X C \xA4\x81o\xA2 org/apache/commons/math/distribution/BinomialDistributionImpl.classPK
+ \xDA)\x8716F\xFCp\xB9 . A \xA4\x81\x99\xA7 org/apache/commons/math/distribution/ChiSquaredDistribution.classPK
+ \xDA)\x871UK*7 \xA4 E \xA4\x81\xB1\xA8 org/apache/commons/math/distribution/ChiSquaredDistributionImpl.classPK
+ \xDA)\x871j,I;\xCE K A \xA4\x81K\xAD org/apache/commons/math/distribution/ContinuousDistribution.classPK
+ \xDA)\x871>L\xBD\xA1 \xF4 ? \xA4\x81x\xAE org/apache/commons/math/distribution/DiscreteDistribution.classPK
\xDA)\x871\x94!
-Ժ 7 \xA4\x81$\xAF org/apache/commons/math/distribution/Distribution.classPK
+Ժ 7 \xA4\x81v\xAF org/apache/commons/math/distribution/Distribution.classPK
\xDA)\x8717B\xF2\xCB
- > \xA4\x813\xB0 org/apache/commons/math/distribution/DistributionFactory.classPK
- \xDA)\x871dV\xC6&\xAD \xCB
B \xA4\x81Z\xB4 org/apache/commons/math/distribution/DistributionFactoryImpl.classPK
- \xDA)\x871\xF8\x97'\xB6 B \xA4\x81g\xB8 org/apache/commons/math/distribution/ExponentialDistribution.classPK
- \xDA)\x871\xEC\xFB\xF2\xD0 : F \xA4\x81}\xB9 org/apache/commons/math/distribution/ExponentialDistributionImpl.classPK
- \xDA)\x871\x8D0G&\xD5 \x80 8 \xA4\x81\xB1\xBD org/apache/commons/math/distribution/FDistribution.classPK
- \xDA)\x871\xD3xh\xA7A \x8C < \xA4\x81ܾ org/apache/commons/math/distribution/FDistributionImpl.classPK
- \xDA)\x871\xBC\xE0*\xC6 2 < \xA4\x81w\xC3 org/apache/commons/math/distribution/GammaDistribution.classPK
- \xDA)\x871\x9B\xD4\xCD\xF0$ I @ \xA4\x81\x97\xC4 org/apache/commons/math/distribution/GammaDistributionImpl.classPK
- \xDA)\x871\x82.\xDC\xEB \x9D E \xA4\x81\xC9 org/apache/commons/math/distribution/HypergeometricDistribution.classPK
+ > \xA4\x81\x85\xB0 org/apache/commons/math/distribution/DistributionFactory.classPK
+ \xDA)\x871dV\xC6&\xAD \xCB
B \xA4\x81\xAC\xB4 org/apache/commons/math/distribution/DistributionFactoryImpl.classPK
+ \xDA)\x871\xF8\x97'\xB6 B \xA4\x81\xB9\xB8 org/apache/commons/math/distribution/ExponentialDistribution.classPK
+ \xDA)\x871\xEC\xFB\xF2\xD0 : F \xA4\x81Ϲ org/apache/commons/math/distribution/ExponentialDistributionImpl.classPK
+ \xDA)\x871\x8D0G&\xD5 \x80 8 \xA4\x81\xBE org/apache/commons/math/distribution/FDistribution.classPK
+ \xDA)\x871\xD3xh\xA7A \x8C < \xA4\x81.\xBF org/apache/commons/math/distribution/FDistributionImpl.classPK
+ \xDA)\x871\xBC\xE0*\xC6 2 < \xA4\x81\xC9\xC3 org/apache/commons/math/distribution/GammaDistribution.classPK
+ \xDA)\x871\x9B\xD4\xCD\xF0$ I @ \xA4\x81\xE9\xC4 org/apache/commons/math/distribution/GammaDistributionImpl.classPK
+ \xDA)\x871\x82.\xDC\xEB \x9D E \xA4\x81k\xC9 org/apache/commons/math/distribution/HypergeometricDistribution.classPK
\xDA)\x871{X"J\ S
- I \xA4\x81g\xCA org/apache/commons/math/distribution/HypergeometricDistributionImpl.classPK
- \xDA)\x871\xB9\x98u\xF2 \xAE > \xA4\x81*\xD1 org/apache/commons/math/distribution/IntegerDistribution.classPK
- \xDA)\x871\xB6\xD9*\xD0 L = \xA4\x81x\xD2 org/apache/commons/math/distribution/NormalDistribution.classPK
- \xDA)\x871\xC1\xC60\xFB\x81 \xFD A \xA4\x81\xA3\xD3 org/apache/commons/math/distribution/NormalDistributionImpl.classPK
- \xDA)\x871ׄ\xCB\xEA } > \xA4\x81\x83\xD8 org/apache/commons/math/distribution/PoissonDistribution.classPK
+ I \xA4\x81\xB9\xCA org/apache/commons/math/distribution/HypergeometricDistributionImpl.classPK
+ \xDA)\x871\xB9\x98u\xF2 \xAE > \xA4\x81|\xD1 org/apache/commons/math/distribution/IntegerDistribution.classPK
+ \xDA)\x871\xB6\xD9*\xD0 L = \xA4\x81\xCA\xD2 org/apache/commons/math/distribution/NormalDistribution.classPK
+ \xDA)\x871\xC1\xC60\xFB\x81 \xFD A \xA4\x81\xF5\xD3 org/apache/commons/math/distribution/NormalDistributionImpl.classPK
+ \xDA)\x871ׄ\xCB\xEA } > \xA4\x81\xD5\xD8 org/apache/commons/math/distribution/PoissonDistribution.classPK
\xDA)\x871
-\xC0\xBAf \xEB B \xA4\x81\xC9\xD9 org/apache/commons/math/distribution/PoissonDistributionImpl.classPK
+\xC0\xBAf \xEB B \xA4\x81\xDA org/apache/commons/math/distribution/PoissonDistributionImpl.classPK
\xDA)\x871h
-0\xEF\xB3
8 \xA4\x81\x8F\xDE org/apache/commons/math/distribution/TDistribution.classPK
- \xDA)\x871G\xA1=6\xC6 - < \xA4\x81\x98\xDF org/apache/commons/math/distribution/TDistributionImpl.classPK
- \xDA)\x871<\x91\xFB\x89 \xCB . \xA4\x81\xB8\xE3 org/apache/commons/math/linear/BigMatrix.classPK
- \xDA)\x871\xDE]_p\xAE
m? 2 \xA4\x81\x8D\xE6 org/apache/commons/math/linear/BigMatrixImpl.classPK
- \xDA)\x871\xEE\xF2\xC2] 8 ; \xA4\x81\x8B org/apache/commons/math/linear/InvalidMatrixException.classPK
- \xDA)\x871\xE6\xE4{pZ 2 9 \xA4\x81A org/apache/commons/math/linear/MatrixIndexException.classPK
+0\xEF\xB3
8 \xA4\x81\xE1\xDE org/apache/commons/math/distribution/TDistribution.classPK
+ \xDA)\x871G\xA1=6\xC6 - < \xA4\x81\xEA\xDF org/apache/commons/math/distribution/TDistributionImpl.classPK
+ \xDA)\x871<\x91\xFB\x89 \xCB . \xA4\x81
+\xE4 org/apache/commons/math/linear/BigMatrix.classPK
+ \xDA)\x871\xDE]_p\xAE
m? 2 \xA4\x81\xDF\xE6 org/apache/commons/math/linear/BigMatrixImpl.classPK
+ \xDA)\x871\xEE\xF2\xC2] 8 ; \xA4\x81\xDD org/apache/commons/math/linear/InvalidMatrixException.classPK
+ \xDA)\x871\xE6\xE4{pZ 2 9 \xA4\x81\x93 org/apache/commons/math/linear/MatrixIndexException.classPK
\xDA)\x871j\xFF\xC1\x91\x92 \x8F
- 0 \xA4\x81\xF2 org/apache/commons/math/linear/MatrixUtils.classPK
- \xDA)\x871C\xBAK* n / \xA4\x81\xD2
- org/apache/commons/math/linear/RealMatrix.classPK
- \xDA)\x871\x9A\xFD\xC1\xDA \xE61 3 \xA4\x81I
+ 0 \xA4\x81D org/apache/commons/math/linear/MatrixUtils.classPK
+ \xDA)\x871C\xBAK* n / \xA4\x81$
org/apache/commons/math/linear/RealMatrix.classPK
+ \xDA)\x871\x9A\xFD\xC1\xDA \xE61 3 \xA4\x81\x9B
org/apache/commons/math/linear/RealMatrixImpl.classPK
- \xDA)\x8716\xDE6o T : \xA4\x81t& org/apache/commons/math/random/EmpiricalDistribution.classPK
- \xDA)\x871`m^\xF6\xB3 @ \xA4\x81;( org/apache/commons/math/random/EmpiricalDistributionImpl$1.classPK
- \xDA)\x871]4/x \xC1 O \xA4\x81L) org/apache/commons/math/random/EmpiricalDistributionImpl$ArrayDataAdapter.classPK
- \xDA)\x871\xB0?P\x85\xDA \x8B J \xA4\x811- org/apache/commons/math/random/EmpiricalDistributionImpl$DataAdapter.classPK
- \xDA)\x871<p0 Q \xA4\x81s/ org/apache/commons/math/random/EmpiricalDistributionImpl$DataAdapterFactory.classPK
- \xDA)\x871\\xD7f\xB41 ? P \xA4\x81\xE72 org/apache/commons/math/random/EmpiricalDistributionImpl$StreamDataAdapter.classPK
+ \xDA)\x8716\xDE6o T : \xA4\x81\xC6& org/apache/commons/math/random/EmpiricalDistribution.classPK
+ \xDA)\x871`m^\xF6\xB3 @ \xA4\x81\x8D( org/apache/commons/math/random/EmpiricalDistributionImpl$1.classPK
+ \xDA)\x871]4/x \xC1 O \xA4\x81\x9E) org/apache/commons/math/random/EmpiricalDistributionImpl$ArrayDataAdapter.classPK
+ \xDA)\x871\xB0?P\x85\xDA \x8B J \xA4\x81\x83- org/apache/commons/math/random/EmpiricalDistributionImpl$DataAdapter.classPK
+ \xDA)\x871<p0 Q \xA4\x81\xC5/ org/apache/commons/math/random/EmpiricalDistributionImpl$DataAdapterFactory.classPK
+ \xDA)\x871\\xD7f\xB41 ? P \xA4\x8193 org/apache/commons/math/random/EmpiricalDistributionImpl$StreamDataAdapter.classPK
\xDA)\x871IPї\xB4
- > \xA4\x81\x867 org/apache/commons/math/random/EmpiricalDistributionImpl.classPK
- \xDA)\x871\x8B\xE5i\x93I / \xA4\x81\x96B org/apache/commons/math/random/RandomData.classPK
+ > \xA4\x81\xD87 org/apache/commons/math/random/EmpiricalDistributionImpl.classPK
+ \xDA)\x871\x8B\xE5i\x93I / \xA4\x81\xE8B org/apache/commons/math/random/RandomData.classPK
\xDA)\x871O\xFB\x9DC\x9F
- < 3 \xA4\x81,D org/apache/commons/math/random/RandomDataImpl.classPK
- \xDA)\x871\xA9\x85\xE6v. \xB6 0 \xA4\x81
R org/apache/commons/math/random/ValueServer.classPK
- \xDA)\x871IZL\xF6 k , \xA4\x81\x98[ org/apache/commons/math/special/Beta$1.classPK
- \xDA)\x8714\x98V
\x82 * \xA4\x81\xF8] org/apache/commons/math/special/Beta.classPK
- \xDA)\x871= \xE5\xFF\xAA u ) \xA4\x81^b org/apache/commons/math/special/Erf.classPK
- \xDA)\x871$\x91\xE0\x9E \x98 - \xA4\x81Od org/apache/commons/math/special/Gamma$1.classPK
+ < 3 \xA4\x81~D org/apache/commons/math/random/RandomDataImpl.classPK
+ \xDA)\x871\xA9\x85\xE6v. \xB6 0 \xA4\x81nR org/apache/commons/math/random/ValueServer.classPK
+ \xDA)\x871IZL\xF6 k , \xA4\x81\xEA[ org/apache/commons/math/special/Beta$1.classPK
+ \xDA)\x8714\x98V
\x82 * \xA4\x81J^ org/apache/commons/math/special/Beta.classPK
+ \xDA)\x871= \xE5\xFF\xAA u ) \xA4\x81\xB0b org/apache/commons/math/special/Erf.classPK
+ \xDA)\x871$\x91\xE0\x9E \x98 - \xA4\x81\xA1d org/apache/commons/math/special/Gamma$1.classPK
\xDA)\x871\x8B\xFC\x98\x9Dv x
- + \xA4\x818f org/apache/commons/math/special/Gamma.classPK
- \xDA)\x871\xC6\xE4\xB2\xA3 \xE2 . \xA4\x81\xF7l org/apache/commons/math/stat/Frequency$1.classPK
- \xDA)\x871\x89\xE8!\xCF \xC0 > \xA4\x81\xE6m org/apache/commons/math/stat/Frequency$NaturalComparator.classPK
- \xDA)\x871\xE7_\x80\xB0 U , \xA4\x81p org/apache/commons/math/stat/Frequency.classPK
- \xDA)\x871\x9A\xDF\xE4\xD6 , \xA4\x81
z org/apache/commons/math/stat/StatUtils.classPK
- \xDA)\x871V\xC5h\xC6) \xB4 S \xA4\x81+\x81 org/apache/commons/math/stat/descriptive/AbstractStorelessUnivariateStatistic.classPK
- \xDA)\x871\x90Q<\xA5 } J \xA4\x81Ņ org/apache/commons/math/stat/descriptive/AbstractUnivariateStatistic.classPK
- \xDA)\x871\xFB\xA4\x85b% D \xA4\x81҈ org/apache/commons/math/stat/descriptive/DescriptiveStatistics.classPK
- \xDA)\x871\xAE\x9D;\xA9\xA2 b H \xA4\x81Y\x91 org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.classPK
- \xDA)\x871\xD7Q\xAAv\xD9 3 A \xA4\x81a\x96 org/apache/commons/math/stat/descriptive/StatisticalSummary.classPK
- \xDA)\x871\xAE\xBAXb\xE8 \xDF G \xA4\x81\x99\x97 org/apache/commons/math/stat/descriptive/StatisticalSummaryValues.classPK
- \xDA)\x871W1\xC1\xF3 \x87 K \xA4\x81\xE6\x9B org/apache/commons/math/stat/descriptive/StorelessUnivariateStatistic.classPK
- \xDA)\x871'E\x81j\xCB \xBE
@ \xA4\x81B\x9D org/apache/commons/math/stat/descriptive/SummaryStatistics.classPK
- \xDA)\x871M\xB8-9
h D \xA4\x81k\xA3 org/apache/commons/math/stat/descriptive/SummaryStatisticsImpl.classPK
- \xDA)\x871\xD48\xC2¢ \xCD B \xA4\x81ت org/apache/commons/math/stat/descriptive/UnivariateStatistic.classPK
- \xDA)\x871\xC2\xCBA\xFA~ \ A \xA4\x81ګ org/apache/commons/math/stat/descriptive/moment/FirstMoment.classPK
- \xDA)\x871\xEAW"\xEB\xC0 \xFE B \xA4\x81\xB7\xAE org/apache/commons/math/stat/descriptive/moment/FourthMoment.classPK
- \xDA)\x871"#yH\xC6 C \xA4\x81ױ org/apache/commons/math/stat/descriptive/moment/GeometricMean.classPK
- \xDA)\x871\x84\xFDGv\xCB ^
> \xA4\x81\xFE\xB4 org/apache/commons/math/stat/descriptive/moment/Kurtosis.classPK
- \xDA)\x871sw\xA2O@ \xBA : \xA4\x81%\xBB org/apache/commons/math/stat/descriptive/moment/Mean.classPK
- \xDA)\x871ЃÑ* \xB0 B \xA4\x81\xBD\xBE org/apache/commons/math/stat/descriptive/moment/SecondMoment.classPK
- \xDA)\x871 \xAB\x8DXS \xF8 > \xA4\x81G\xC1 org/apache/commons/math/stat/descriptive/moment/Skewness.classPK
- \xDA)\x871\xAE5- n G \xA4\x81\xF6\xC6 org/apache/commons/math/stat/descriptive/moment/StandardDeviation.classPK
- \xDA)\x871\xEA^\xFB(\x9B \x9C A \xA4\x81k\xCB org/apache/commons/math/stat/descriptive/moment/ThirdMoment.classPK
- \xDA)\x871,3\xD8\xDAS \xFE
> \xA4\x81e\xCE org/apache/commons/math/stat/descriptive/moment/Variance.classPK
- \xDA)\x871otNv\xF7 # 7 \xA4\x81\xD5 org/apache/commons/math/stat/descriptive/rank/Max.classPK
- \xDA)\x871E\xBC\xE9)= \xEA : \xA4\x81`\xD8 org/apache/commons/math/stat/descriptive/rank/Median.classPK
- \xDA)\x871\x9F\x84 S ? 7 \xA4\x81\xF5\xD9 org/apache/commons/math/stat/descriptive/rank/Min.classPK
- \xDA)\x871\xB4"5\xB1 \xAA > \xA4\x81Z\xDD org/apache/commons/math/stat/descriptive/rank/Percentile.classPK
- \xDA)\x871Ι\x84\xB7\xF4 > \xA4\x81\xCA\xE2 org/apache/commons/math/stat/descriptive/summary/Product.classPK
- \xDA)\x871\x8DE\xF0\xEA : \xA4\x81\xE6 org/apache/commons/math/stat/descriptive/summary/Sum.classPK
- \xDA)\x871\xED\xBD\xBB L @ \xA4\x81\\xE9 org/apache/commons/math/stat/descriptive/summary/SumOfLogs.classPK
- \xDA)\x871\xEC\xAFn\xFC 5 C \xA4\x81\xD5\xEC org/apache/commons/math/stat/descriptive/summary/SumOfSquares.classPK
+ + \xA4\x81\x8Af org/apache/commons/math/special/Gamma.classPK
+ \xDA)\x871\xC6\xE4\xB2\xA3 \xE2 . \xA4\x81Im org/apache/commons/math/stat/Frequency$1.classPK
+ \xDA)\x871\x89\xE8!\xCF \xC0 > \xA4\x818n org/apache/commons/math/stat/Frequency$NaturalComparator.classPK
+ \xDA)\x871\xE7_\x80\xB0 U , \xA4\x81cp org/apache/commons/math/stat/Frequency.classPK
+ \xDA)\x871\x9A\xDF\xE4\xD6 , \xA4\x81]z org/apache/commons/math/stat/StatUtils.classPK
+ \xDA)\x871V\xC5h\xC6) \xB4 S \xA4\x81}\x81 org/apache/commons/math/stat/descriptive/AbstractStorelessUnivariateStatistic.classPK
+ \xDA)\x871\x90Q<\xA5 } J \xA4\x81\x86 org/apache/commons/math/stat/descriptive/AbstractUnivariateStatistic.classPK
+ \xDA)\x871\xFB\xA4\x85b% D \xA4\x81$\x89 org/apache/commons/math/stat/descriptive/DescriptiveStatistics.classPK
+ \xDA)\x871\xAE\x9D;\xA9\xA2 b H \xA4\x81\xAB\x91 org/apache/commons/math/stat/descriptive/DescriptiveStatisticsImpl.classPK
+ \xDA)\x871\xD7Q\xAAv\xD9 3 A \xA4\x81\xB3\x96 org/apache/commons/math/stat/descriptive/StatisticalSummary.classPK
+ \xDA)\x871\xAE\xBAXb\xE8 \xDF G \xA4\x81\xEB\x97 org/apache/commons/math/stat/descriptive/StatisticalSummaryValues.classPK
+ \xDA)\x871W1\xC1\xF3 \x87 K \xA4\x818\x9C org/apache/commons/math/stat/descriptive/StorelessUnivariateStatistic.classPK
+ \xDA)\x871'E\x81j\xCB \xBE
@ \xA4\x81\x94\x9D org/apache/commons/math/stat/descriptive/SummaryStatistics.classPK
+ \xDA)\x871M\xB8-9
h D \xA4\x81\xBD\xA3 org/apache/commons/math/stat/descriptive/SummaryStatisticsImpl.classPK
+ \xDA)\x871\xD48\xC2¢ \xCD B \xA4\x81*\xAB org/apache/commons/math/stat/descriptive/UnivariateStatistic.classPK
+ \xDA)\x871\xC2\xCBA\xFA~ \ A \xA4\x81,\xAC org/apache/commons/math/stat/descriptive/moment/FirstMoment.classPK
+ \xDA)\x871\xEAW"\xEB\xC0 \xFE B \xA4\x81 \xAF org/apache/commons/math/stat/descriptive/moment/FourthMoment.classPK
+ \xDA)\x871"#yH\xC6 C \xA4\x81)\xB2 org/apache/commons/math/stat/descriptive/moment/GeometricMean.classPK
+ \xDA)\x871\x84\xFDGv\xCB ^
> \xA4\x81P\xB5 org/apache/commons/math/stat/descriptive/moment/Kurtosis.classPK
+ \xDA)\x871sw\xA2O@ \xBA : \xA4\x81w\xBB org/apache/commons/math/stat/descriptive/moment/Mean.classPK
+ \xDA)\x871ЃÑ* \xB0 B \xA4\x81\xBF org/apache/commons/math/stat/descriptive/moment/SecondMoment.classPK
+ \xDA)\x871 \xAB\x8DXS \xF8 > \xA4\x81\x99\xC1 org/apache/commons/math/stat/descriptive/moment/Skewness.classPK
+ \xDA)\x871\xAE5- n G \xA4\x81H\xC7 org/apache/commons/math/stat/descriptive/moment/StandardDeviation.classPK
+ \xDA)\x871\xEA^\xFB(\x9B \x9C A \xA4\x81\xBD\xCB org/apache/commons/math/stat/descriptive/moment/ThirdMoment.classPK
+ \xDA)\x871,3\xD8\xDAS \xFE
> \xA4\x81\xB7\xCE org/apache/commons/math/stat/descriptive/moment/Variance.classPK
+ \xDA)\x871otNv\xF7 # 7 \xA4\x81f\xD5 org/apache/commons/math/stat/descriptive/rank/Max.classPK
+ \xDA)\x871E\xBC\xE9)= \xEA : \xA4\x81\xB2\xD8 org/apache/commons/math/stat/descriptive/rank/Median.classPK
+ \xDA)\x871\x9F\x84 S ? 7 \xA4\x81G\xDA org/apache/commons/math/stat/descriptive/rank/Min.classPK
+ \xDA)\x871\xB4"5\xB1 \xAA > \xA4\x81\xAC\xDD org/apache/commons/math/stat/descriptive/rank/Percentile.classPK
+ \xDA)\x871Ι\x84\xB7\xF4 > \xA4\x81
\xE3 org/apache/commons/math/stat/descriptive/summary/Product.classPK
+ \xDA)\x871\x8DE\xF0\xEA : \xA4\x81l\xE6 org/apache/commons/math/stat/descriptive/summary/Sum.classPK
+ \xDA)\x871\xED\xBD\xBB L @ \xA4\x81\xAE\xE9 org/apache/commons/math/stat/descriptive/summary/SumOfLogs.classPK
+ \xDA)\x871\xEC\xAFn\xFC 5 C \xA4\x81'\xED org/apache/commons/math/stat/descriptive/summary/SumOfSquares.classPK
\xDA)\x871@!R
-\xF6 \xAA : \xA4\x812\xF0 org/apache/commons/math/stat/inference/ChiSquareTest.classPK
- \xDA)\x871\xBBw\x8C
> : > \xA4\x81\x80\xF1 org/apache/commons/math/stat/inference/ChiSquareTestImpl.classPK
- \xDA)\x871\xC0\x89\xE5hj b 2 \xA4\x81\xFA org/apache/commons/math/stat/inference/TTest.classPK
- \xDA)\x871\xA6}\xEC\xB8 \xD5 6 \xA4\x81\xD4\xFB org/apache/commons/math/stat/inference/TTestImpl.classPK
- \xDA)\x871\xEDW
0\xA1 Z > \xA4\x81\xE0 org/apache/commons/math/stat/regression/SimpleRegression.classPK
- \xDA)\x871\xAD\x801 1 y 4 \xA4\x81\xDD
- org/apache/commons/math/util/ContinuedFraction.classPK
- \xDA)\x871v\xD3
\xC8 * 5 \xA4\x81` org/apache/commons/math/util/DefaultTransformer.classPK
- \xDA)\x871\xF0\xD5u6\xE3 N . \xA4\x81{ org/apache/commons/math/util/DoubleArray.classPK
- \xDA)\x871o\xB0@\xBC\xE5 , \xA4\x81\xAA org/apache/commons/math/util/MathUtils.classPK
- \xDA)\x871\xFD\xD9:v\xAF \xFE 4 \xA4\x81\xD9
org/apache/commons/math/util/NumberTransformer.classPK
- \xDA)\x8711\xA0\xB6\x97
" 7 \xA4\x81\xDA
org/apache/commons/math/util/ResizableDoubleArray.classPK
- \xDA)\x8719\xD7\
> \xF8 1 \xA4\x811+ org/apache/commons/math/util/TransformerMap.classPK \x8D \x8D \7 \xBE/
\ No newline at end of file
+\xF6 \xAA : \xA4\x81\x84\xF0 org/apache/commons/math/stat/inference/ChiSquareTest.classPK
+ \xDA)\x871\xBBw\x8C
> : > \xA4\x81\xD2\xF1 org/apache/commons/math/stat/inference/ChiSquareTestImpl.classPK
+ \xDA)\x871\xC0\x89\xE5hj b 2 \xA4\x81l\xFA org/apache/commons/math/stat/inference/TTest.classPK
+ \xDA)\x871\xA6}\xEC\xB8 \xD5 6 \xA4\x81&\xFC org/apache/commons/math/stat/inference/TTestImpl.classPK
+ \xDA)\x871\xEDW
0\xA1 Z > \xA4\x812 org/apache/commons/math/stat/regression/SimpleRegression.classPK
+ \xDA)\x871\xAD\x801 1 y 4 \xA4\x81/ org/apache/commons/math/util/ContinuedFraction.classPK
+ \xDA)\x871v\xD3
\xC8 * 5 \xA4\x81\xB2 org/apache/commons/math/util/DefaultTransformer.classPK
+ \xDA)\x871\xF0\xD5u6\xE3 N . \xA4\x81\xCD org/apache/commons/math/util/DoubleArray.classPK
+ \xDA)\x871o\xB0@\xBC\xE5 , \xA4\x81\xFC org/apache/commons/math/util/MathUtils.classPK
+ \xDA)\x871\xFD\xD9:v\xAF \xFE 4 \xA4\x81+
org/apache/commons/math/util/NumberTransformer.classPK
+ \xDA)\x8711\xA0\xB6\x97
" 7 \xA4\x81, org/apache/commons/math/util/ResizableDoubleArray.classPK
+ \xDA)\x8719\xD7\
> \xF8 1 \xA4\x81\x83+ org/apache/commons/math/util/TransformerMap.classPK \x8D \x8D \7 0
\ No newline at end of file
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,3 +1,7 @@
+// 20181218
+// Letter3d,Expr3d added
+// 20181212
+// Vertexedgeface debugged ( Vname changed for multi 3d )
// 20181108
// Mkpointlist debugged (theta=90)
// 20181107
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs 2018-12-25 21:49:04 UTC (rev 49502)
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d(20181108) loaded");
+println("ketcindylib3d(20181218) loaded");
//help:start();
@@ -2104,7 +2104,7 @@
////%Fixpoint3d start////
Fixpoint3d(ptlist):=(
-// help:Fixpoint3d(["O",[0,0,0],"X",[1,0,0]]);
+// help:Fixpoint3d(["O",[0,0,0],"X",[1,0,0]]);
regional(name,pt3,pt2,tmp,tmp1,tmp2);
forall(1..(length(ptlist)/2),
name=ptlist_(2*#-1);
@@ -2123,6 +2123,54 @@
);
////%Fixpoint3d end////
+////%Letter3d start////
+Letter3d(dtlist):=Letter3d(dtlist,[]); //181218from
+Letter3d(pt3d,dir,name):=Letter3d([pt3d,dir,name],[]);
+Letter3d(pt3d,dir,name,options):=Letter3d([pt3d,dir,name],options);
+Letter3d(dtlist,options):=(
+//help:Letter3d(point3d,,direction,name);
+//help:Letter3d([point3d,,direction,name],options]);
+ regional(dt,nall,jj);
+ dt=dtlist;
+ if(mod(length(dt),3)!=0,
+ println(" Improper data");
+ ,
+ nall=length(dt)/3;
+ forall(1..nall,
+ jj=#*3-2;
+ tmp=dt_jj;
+ if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ dt_jj=Parapt(tmp);
+ );
+ Letter(dt,options);
+ );
+); //181218to
+////%Letter3d end////
+
+////%Expr3d start////
+Expr3d(dtlist):=Expr3d(dtlist,[]); //181218from
+Expr3d(pt3d,dir,name):=Expr3d([pt3d,dir,name],[]); //181218from
+Expr3d(pt3d,dir,name,options):=Expr3d([pt3d,dir,name],options);
+Expr3d(dtlist,options):=(
+//help:Expr3d(point3d,,direction,name);
+//help:Expr3d([point3d,,direction,name],options]);
+ regional(dt,nall,jj);
+ dt=dtlist;
+ if(mod(length(dt),3)!=0,
+ println(" Improper data");
+ ,
+ nall=length(dt)/3;
+ forall(1..nall,
+ jj=#*3-2;
+ tmp=dt_jj;
+ if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ dt_jj=Parapt(tmp);
+ );
+ Expr(dt,options);
+ );
+); //181218to
+////%Expr3d end////
+
////%Perppt start////
Perppt(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"draw");
Perppt(name,ptstr,pLstr,option):=Putperp(name,ptstr,pLstr,option);
@@ -2870,7 +2918,7 @@
tmp=parse(text(vtx)+"3d");
vname=text(vtx);
,
- vname="V"+text(#); //181107
+ vname="V"+nm+text(#); //181212
if(vtxflg==1, //180905
if(fixflg==1,
Putpoint3d([vname,vtx],"fix");
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,3 +1,22 @@
+// 20181217
+// Drwxy debugged
+// 20181216
+// Ketinit changed (AXSTYLE changed)
+// 20181215
+// Ketinit changed (AXSTYLE added)
+// Setarrow debugged
+// 20181214
+// Acos, Asin, Atan, Sqr added
+// Setarrow added
+// Arrowhead changed (options)
+// 20181212
+// Colorrgb2cmyk debugged
+// Colorcode changed ( some have been deleted)
+// Colorname2rgb added
+// Divoptions changed (color name)
+// Ketinit changed (Fillstore added)
+/ 20181209
+// Fillstore changed ( The color of ketcindy buttons fixed)
// 20181125
// Fillstore,Fillblack,Fillrestore added
// 2018111
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs 2018-12-25 21:49:04 UTC (rev 49502)
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.3(20181201)");
+println("KeTCindy V.3.2.3(20181216)");
println(ketjavaversion());
println("ketcindylibbasic1(20181125) loaded");
@@ -66,7 +66,7 @@
TenSizeInit=0.02;
TenSize=TenSizeInit;
YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle="tf";
+ YaCut=0; YasenStyle="dr,1"; Yajiristyle="tf";
KETPICCOUNT=1;
KCOLOR=[0,0,0];
GLIST=[];
@@ -82,6 +82,8 @@
COM2ndlist=[];
COM2ndlistb=[]; //180612
ADDAXES="1";
+ AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216
+ AXCOUNT=1; //181215
LFmark=unicode("000a");
CRmark=unicode("000d");//16.12.13
Dq=unicode("0022");
@@ -91,6 +93,7 @@
OutComList=[];
OutFileLIst=[]; // 15.10.22
FigPdfList=[]; // 16.04.08
+ Fillstore(); //181212
ADDPACK=[]; // 16.05.16
GPACK="tpic"; //180817
ErrFlag=0;
@@ -167,11 +170,6 @@
letterc,mboxc,mboxc,mboxc,62,2,letterc];
SlideMargin=[0,0]; //180908
ThinDense=0.1;//17.01.08
- if(indexof(PathS,"-5.")>0,//17.12.03from
- LibnameS=Dirlib+pathsep()+"ketpicsciL5";
- ,
- LibnameS=Dirlib+pathsep()+"ketpicscifiles6";
- );
if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0,
LibnameS=replace(LibnameS,"ketpic","ketpic2e");
);//17.12.03until
@@ -180,10 +178,34 @@
////%Fillstore start////
Fillstore():=(
- regional(tmp,tmp1,out);
+ regional(tmp,tmp1,out,dtL,txtL,clrL,txt,clr,nn,jj);
+ dtL=[ //181209from
+ ["Figure",[1,0.29,0.29]],["Parent",[1,1,0]],
+ ["ParaF",[0,1,1]],["Flip",[0,0,1]],["Anime",[0.51,0.95,1]],
+ ["Title",[0,1,0]],["Slide",[0.47,0,0.72]],["Digest",[1,0.74,0.47]],
+ ["KeTJS",[0,1,1]],["KeTJSoff",[0,1,1]],
+ ["Objview",[0,1,0]]
+ ];
+ txtL=apply(dtL,#_1);
+ clrL=apply(dtL,#_2);
tmp1=allelements();
tmp1=select(tmp1,indexof(#.name,"Text")>0);
- out=apply(tmp1,[#.name,#.fillcolor]);
+ out=[];
+ forall(1..(length(tmp1)),nn,
+ tmp=tmp1_nn;
+ txt=tmp.text;
+ tmp=select(1..(length(txtL)),txtL_#==txt);
+ if(length(tmp)>0,
+ jj=tmp_1;
+ clr=clrL_jj;
+ tmp=tmp1_nn;
+ tmp.fillcolor=clr;
+ ,
+ tmp=tmp1_nn;
+ clr=tmp.fillcolor;
+ );
+ out=append(out,[tmp.name,clr,tmp.text]);
+ ); //181209to
out;
);
////%Fillstore end////
@@ -192,9 +214,7 @@
Fillblack():=Fillblack("Running");
Fillblack(str):=(
regional(tmp,tmp1,store);
- tmp1=allelements();
- tmp1=select(tmp1,indexof(#.name,"Text")>0);
- store=apply(tmp1,[#.name,#.fillcolor,#.text]);
+ store=Fillstore(); //181209
tmp=select(tmp1,#.name=="Text0");
if(length(tmp)==0,
forall(store,
@@ -474,6 +494,34 @@
);
////%Sep1000 end////
+////%Acos start////
+Acos(x):=(
+//help:Acos(1.000001);
+ re(arccos(x));
+);
+////%Acos end////
+
+////%Asin start////
+Asin(x):=(
+//help:Asin(1.000001);
+ re(arcsin(x));
+);
+////%Asin end////
+
+////%Atan start////
+Atan(x):=(
+//help:Atan(1);
+ re(arctan(x));
+);
+////%Atan end////
+
+////%Sqr start////
+Sqr(x):=(
+//help:Sqr(-0.00001);
+ if(x<0,0,sqrt(x));
+);
+////%Sqr end////
+
////%Factorial start////
Factorial(n):=(
//help:Factorial(5);
@@ -1225,14 +1273,7 @@
tmp1=colorCmyk2Rgb(tmp1);
);
,
- if(tmp2=="red",tmp1=[1,0,0];color=tmp1);
- if(tmp2=="green",tmp1=[0,1,0];color=tmp1);
- if(tmp2=="blue",tmp1=[0,0,1];color=tmp1);
- if(tmp2=="black",tmp1=[0,0,0];color=tmp1);
- if(tmp2=="white",tmp1=[1,1,1];color=tmp1);
- if(tmp2=="cyan",tmp1=[0,1,1];color=tmp1);
- if(tmp2=="magenta",tmp1=[1,0,1];color=tmp1);
- if(tmp2=="yellow",tmp1=[1,1,0];color=tmp1);
+ tmp1=Colorname2rgb(tmp2); color=tmp1; //181212
);
tmp="color->"+text(tmp1);
opcindy=opcindy+","+tmp;
@@ -3042,8 +3083,12 @@
regional(clrnew,tmp,black);
tmp=apply(clr,1-#);
black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
+ if(black!=1, //181112from
+ tmp=apply(clr,(1-#-black)/(1-black));
+ clrnew=append(tmp,black);
+ ,
+ clrnew=[0,0,0,1];
+ ); //181112to
clrnew;
);
////%ColorRgb2Cmyk end////
@@ -3178,7 +3223,7 @@
);
////%Colorhslrgb end////
-////%hue2rgb start////
+////%Colorhue2rgb start////
hue2rgb(vv1,vv2,vh):=(
regional(out);
if ( vh < 0.0 ,vh =vh+1);
@@ -3198,7 +3243,7 @@
);
out;
);
-////%hue2rgb end////
+////%Colorhue2rgb end////
////%Colorrgbhwb start////
Colorrgbhwb(sL):=(
@@ -3239,160 +3284,74 @@
);
////%Colorhwbrgb end////
-////%Colorhslhsv start////
-Colorhslhsv(sL):=(
- regional(dl1,dl2,dl3,dL);
- dl1=sL_1;
- if(sL_3 == 0,
- // no need to do calc on black
- // also avoids divide by 0 error
- dL= [0, 0, 0];
- ,
- sL_3 = sL_3 * 2;
- if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3));
- dl3 = (sL_3 + sL_2) / 2;
- dl2 = (2 * sL_2) / (sL_3 + sL_2);
- dL = [dl1, dl2, dl3];
- );
- dL;
-);
-////%Colorhslhsv end////
-
////%Colorcode start////
-Colorcode(src,dest,sL):=(
+Colorcode(src,dest,sL):=( // 181212 some colorchange deleted
//help:Colorcode("rgb","cmyk",[1,0.5,0]);
regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
regional(dl1,dl2,dl3);
+ if(src=="rgb" & dest=="cmyk",dL=Colorrgb2cmyk(sL));
+ if(src=="cmyk" & dest=="rgb",dL=Colorcmyk2rgb(sL));
if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL));
+ if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
+ if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL));
- if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL));
if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL));
- if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL));
if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL));
- if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL));
- if(src=="hsv" & dest=="hsl",
- dl1 = sL_1;
- dl3 = (2 - sL_2) * sL_3;
- dl2 = sL_2 * sL_3;
- if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3));
- dl3 =d l3/ 2;
- dL = [dl1, dl2 , dl3 ];
- );
-
- if(src=="rgb" & dest=="cmyk",
- tmp=apply(sL,1-#);
- black=min(tmp);
- tmp=apply(sL,(1-#-black)/(1-black));
- dL=append(tmp,black);
- );
- if(src=="cmyk" & dest=="rgb",
- black=sL_4;
- tmp=apply(sL,1-min(1,#*(1-black)+black));
- dL=tmp_(1..3);
- );
- if(src=="hsv" & dest=="cmyk",
- tmp=Colorcode("hsv","rgb",sL);
- dL=Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsv",
- tmp=Colorcode("cmyk","rgb",sL);
- dL=Colorcode("rgb","hsv",tmp);
- );
-
- if(src=="hsv" & dest=="hwb",
- tmp = Colorcode("hsv","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsv",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsv",tmp);
- );
- if(src=="hsl" & dest=="hwb",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hwb" & dest=="hsl",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="hsl" & dest=="cmyk",
- tmp = Colorcode("hsl","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="hwb" & dest=="cmyk",
- tmp = Colorcode("hwb","rgb",sL);
- dL = Colorcode("rgb","cmyk",tmp);
- );
- if(src=="cmyk" & dest=="hsl",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hsl",tmp);
- );
- if(src=="cmyk" & dest=="hwb",
- tmp = Colorcode("cmyk","rgb",sL);
- dL = Colorcode("rgb","hwb",tmp);
- );
- if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL));
- if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL));
-
- if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL));
- if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL));
-
- if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL));
- if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL));
-
- if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL));
- if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL));
-
dL;
);
////%Colorcode end////
-////%Colorinfile start////
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
+////%Colorname2rgb start////
+Colorname2rgb(name):=( //181212
+//help:Colorname2rgb("sepia");
+ regional(dL,nameL,codeL,tmp);
+ dL=[
+ ["greenyellow",[0.15,0,0.69,0]],["yellow",[0,0,1,0]],
+ ["goldenrod",[0,0.1,0.84,0]],["dandelion",[0,0.29,0.84,0]],
+ ["apricot",[0,0.32,0.52,0]],["peach",[0,0.5,0.7,0]],
+ ["melon",[0,0.46,0.5,0]],["yelloworange",[0,0.42,1,0]],
+ ["orange",[0,0.61,0.87,0]],["burntorange",[0,0.51,1,0]],
+ ["bittersweet",[0,0.75,1,0.24]],["redorange",[0,0.77,0.87,0]],
+ ["mahogany",[0,0.85,0.87,0.35]],["maroon",[0,0.87,0.68,0.32]],
+ ["brickred",[0,0.89,0.94,0.28]],["red",[0,1,1,0]],
+ ["orangered",[0,1,0.5,0]],["rubinered",[0,1,0.13,0]],
+ ["wildstrawberry",[0,0.96,0.39,0]],["salmon",[0,0.53,0.38,0]],
+ ["carnationpink",[0,0.63,0,0]],["magenta",[0,1,0,0]],
+ ["violetred",[0,0.81,0,0]],["rhodamine",[0,0.82,0,0]],
+ ["mulberry",[0.34,0.9,0,0.02]],["redviolet",[0.07,0.9,0,0.34]],
+ ["fuchsia",[0.47,0.91,0,0.08]],["lavender",[0,0.48,0,0]],
+ ["thistle",[0.12,0.59,0,0]],["orchid",[0.32,0.64,0,0]],
+ ["darkorchid",[0.4,0.8,0.2,0]],["purple",[0.45,0.86,0,0]],
+ ["plum",[0.5,1,0,0]],["violet",[0.79,0.88,0,0]],
+ ["royalpurple",[0.75,0.9,0,0]],["blueviolet",[0.86,0.91,0,0.04]],
+ ["periwinkle",[0.57,0.55,0,0]], ["cadetblue",[0.62,0.57,0.23,0]],
+ ["cornflowerblue",[0.65,0.13,0,0]],["midnightblue",[0.98,0.13,0,0.43]],
+ ["navyblue",[0.94,0.54,0,0]],["royalblue",[1,0.5,0,0]],
+ ["blue",[1,1,0,0]],["cerulean",[0.94,0.11,0,0]],
+ ["cyan",[1,0,0,0]],["processblue",[0.96,0,0,0]],
+ ["skyblue",[0.62,0,0.12,0]],["turquoise",[0.85,0,0.2,0]],
+ ["tealblue",[0.86,0,0.34,0.02]],["aquamarine",[0.82,0,0.3,0]],
+ ["bluegreen",[0.85,0,0.33,0]],["emerald",[1,0,0.5,0]],
+ ["junglegreen",[0.99,0,0.52,0]],["seagreen",[0.69,0,0.5,0]],
+ ["green",[1,0,1,0]],["forestgreen",[0.91,0,0.88,0.12]],
+ ["pinegreen",[0.92,0,0.59,0.25]],["limegreen",[0.5,0,1,0]],
+ ["yellowgreen",[0.44,0,0.74,0]],["springgreen",[0.26,0,0.76,0]],
+ ["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]],
+ ["black",[0,0,0,1]],["white",[0,0,0,0]]
+ ];
+ tmp=select(dL,#_1==name);
+ if(length(tmp)>0,
+ tmp=tmp_1;
+ code=tmp_2;
+ code=Colorcmyk2rgb(code);
,
- head="[cmyk]{";
+ println(" "+name+" not found");
+ code=[0,0,0];
);
- tmp=apply(clrf,text(#));
- cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- if(length(clrt_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- tmp=apply(clrt,text(#));
- chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}");
- tmp1=load(filename);
- tmp=tokenize(tmp1,"{\unitlength");
- head=tokenize(tmp_1,"%%%");
- head=head_(2..(length(head)));
- head=apply(head,"%%%"+#);
- tmp2=tmp_2;
- forall(1..5,
- tmp2=replace(tmp2,cstrL_#,chstrL_#);
- );
- body=tokenize(tmp2,"%");
- body_1="{\unitlength"+body_1;
- body=apply(body,#+"%");
- body=body_(1..(length(body)-1));
- tmp=replace(filename,".tex","new.tex");
- SCEOUT=openfile(tmp);
- forall(head,
- println(SCEOUT,#);
- );
- forall(1..(length(body)),
- tmp=body_#;
- if(#<length(body),
- println(SCEOUT,tmp);
- ,
- print(SCEOUT,tmp)
- );
- );
- closefile(SCEOUT);
);
-////%Colorinfile end////
+////%Colorname2rgb end////
////%GetLinestyle start////
GetLinestyle(str,name):=(
@@ -5279,6 +5238,37 @@
);
////%Putintersect end////
+////%Setarrow start////
+Setarrow():=Setarrow([]);
+Setarrow(arglist):=(
+//help:Setarrow([-1,-1,-1,1,0.3]);
+//help:Setarrow([size(1),angle(18),position(1),cut(0),segstyle("dr,1")]);
+ regional(tmp);
+ tmp=select(arglist,isreal(#));
+ if(length(tmp)==0,
+ println([YaSize,YaAngle,YaPosition,YaCut,YasenStyle]);
+ );
+ if(length(tmp)>=1,
+ if((tmp_1>0),YaSize=tmp_1);
+ );
+ if(length(tmp)>=2,
+ if((tmp_2>0)&(tmp_2<90),YaAngle=tmp_2);
+ );
+ if(length(tmp)>=3,
+ if((tmp_3>=0)&(tmp_3<=1),YaPosition=tmp_3);
+ );
+ if(length(tmp)>=4,
+ if((tmp_4>=0)&(tmp_4<1),YaCut=tmp_4);
+ );
+ tmp=select(arglist,isstring(#));
+ if(length(tmp)>0,
+ YasenStyle=tmp_1;
+ );
+ [YaSize,YaAngle,YaPosition,YaCut,YasenStyle];
+);
+////%Setarrow start////
+
+
////%Arrowheaddata start////
Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
Arrowheaddata(point,direction,options):=(
@@ -5387,7 +5377,8 @@
);
Arrowhead(nm,point,direction,optionsorg):=(//181018from
//help:Arrowhead("1",B,B-A);
-//help:Arrowhead(options=[size(1),angle(18),position(1),cut(0),"Coor=P(L)"]);
+//help:Arrowhead(options=[size(1),angle(18),position(1),cut(0),"Coord=P(L)"]);
+//help:Arrowhead(the default is -1 for numeric option);
//help:Arrowhead(A,"gr1");
regional(name,Ltype,Noflg,reL,opstr,opcindy,color,eqL,coord,
options,cut,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
@@ -5410,13 +5401,17 @@
options=remove(options,[#]);
);
); //181018to
- cut=0; //181110from
- if(length(reL)>3,
- cut=reL_4;
- tmp=reL_(1..3);
- options=remove(options,reL);
- options=concat(options,tmp);
- ); //181110from
+ tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
+ forall(1..(length(reL)),
+ if(reL_#<0, reL_#=tmp1_#);
+ );
+ forall((length(reL)+1)..4,
+ reL=append(reL,tmp1_#);
+ );
+ cut=reL_4;
+ tmp=reL_(1..3);
+ options=select(options,!isreal(#));
+ options=concat(options,tmp); //181214to
if(ispoint(direction),Houkou=direction.xy); //181018
if(isstring(direction),Houkou=parse(direction),Houkou=direction);
if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
@@ -5487,10 +5482,14 @@
//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);
name="ar"+nm;
options=optionsorg;
+ tmp=select(options,isstring(#)); //181214from
+ tmp1=select(tmp,contains(["dr","da","do","id"],substring(#,0,2)));
+ if(length(tmp1)==0,options=append(options,YasenStyle)); //181214to
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -5500,19 +5499,17 @@
color=tmp_(length(tmp)-2);
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- angle=18;
- segpos=1;
- cut=0; //181110from
+ tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
forall(1..(length(reL)),
- tmp=reL_#;
- if(#==1,size=tmp);
- if(#==2,angle=tmp);
- if(#==3,
- segpos=tmp;
- );
- if(#==4,cut=tmp);
- ); //181110to
+ if(reL_#<0, reL_#=tmp1_#);
+ );
+ forall((length(reL)+1)..4,
+ reL=append(reL,tmp1_#);
+ );
+ size=reL_1;
+ angle=reL_2;
+ segpos=reL_3;
+ cut=reL_4;
lineflg=0;
if(contains(strL,"l")%contains(strL,"L"),
lineflg=1;
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,3 +1,17 @@
+// 20181224
+// WritetoRS changed (Closefile("0"))
+// 20181219
+// BBdata debugged (macosx => ismacosx )
+// 20181218
+// Letter, Expr changed (pt,dir,str,options added )
+// 20181216
+// Drwxy changed ( linestyle,colorax,colorla )
+// 20181215
+// Setax, Drwxy, Windispg changed ( Axstyle )
+// 20181214
+// WritetoRS changed ( Definition of Acos,Asin,Atan,Sqr,Factorial,Norm added )
+// 20181213
+// Usegraphics, WritetoRS changed ( tikz added)
// 20181125
// Mkslides, Mksldesummary chanded (Fillblack added )
// Presentation changed ( load => readfile2str )
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs 2018-12-25 21:49:04 UTC (rev 49502)
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindybasic2(20181125) loaded");
+println("ketcindybasic2(20181224) loaded");
//help:start();
@@ -499,16 +499,6 @@
);
////%MakeRarg end////
-////%Setax start////
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=MakeRarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-////%Setax end////
-
////%Htickmark start////
Htickmark(arglist):=(
//help:Htickmark([1,"1",2,"sw","2"]);
@@ -589,22 +579,109 @@
);
////%Htick end////
+////%Setax start////
+Setax(arglist):=(
+//help:Setax(["l","x","e","y","n","O","sw",]);
+//help:Setax([7,"nw"]);
+//help:Setax([8,linestyle,colorax,colorlabel]);
+ regional(st,nn,tmp); //181215from
+ 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);
+ nn=nn+1;
+ ); //181215from
+// tmp=MakeRarg(arglist);
+// Com1st("Setax("+tmp+")");
+);
+////%Setax end////
+
////%Drwxy start////
-Drwxy():=Drwxy([]); //180820from
-Drwxy(options):=(
+Drwxy():=Drwxy([]);
+Drwxy(optionsorg):=(
//help:Drwxy();
//help:Drwxy(options=["Origin=[0,0]","Xrng=","Yrng=","Ax=l,x,e,..."]);
- regional(tmp);
- tmp="";
- forall(options,
- if(length(tmp)>0,
- tmp=tmp+","+Dqq(#);
- ,
- tmp=Dqq(#);
+ regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size,
+ linesty,colorax,colorla,tmp,tmp1,tmp2);
+ options=optionsorg;
+ tmp=Divoptions(options);
+ color=tmp_(length(tmp)-2);
+ eqL=tmp_5;
+ org=[0,0];
+ xrng=[XMIN,XMAX];
+ yrng=[YMIN,YMAX];
+ ax=AXSTYLE;
+ linesty=ax_8;
+ if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
+ if(length(colorax)>0,
+ colorax="Color="+colorax;
+ );
+ if(isstring(ax_10),colorla=ax_10,colorla=text(ax_10));
+ if(length(colorla)>0, //181217from
+ colorla="Color="+colorla;
+ ,
+ if(length(colorax)>0,
+ colorla=colorax;
);
+ ); //181217to
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="O",
+ org=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="X",
+ xrng=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="Y",
+ yrng=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="A",
+ tmp2=tokenize(tmp_2,",");
+ st=1; nn=1;
+ if(isreal(tmp2_1),
+ st=2;
+ nn=tmp2_1;
+ );
+ forall(st..(length(tmp2)),
+ tmp=tmp2_#;
+ if(length(tmp)>0,ax_nn=tmp);
+ nn=nn+1;
+ );
+ options=remove(options,[#]);
+ );
);
- Com2nd("Drwxy("+tmp+")"); //180820to
- Addax(0); // 16.01.21
+ options=append(options,linesty); //181216
+ if(substring(ax_1,0,1)=="a",
+ strL=select(options,isstring(#)); //181216
+ tmp=select(strL,contains(["dr","da","do","id"],substring(#,0,2)));
+ if(length(tmp)==0,options=append(options,YasenStyle));
+ tmp=substring(ax_1,1,length(ax_1)); //181216(2lines)
+ if(length(tmp)>0,size=parse(tmp),size=YaSize);
+ tmp1=concat(options,[size,YaAngle,YaPosition,YaCut,colorax]);//181216
+ tmp=[[xrng_1,org_2],[xrng_2,org_2]];
+ Arrowdata("axx"+text(AXCOUNT),tmp,tmp1);
+ tmp=[[org_1,yrng_1],[org_1,yrng_2]];
+ Arrowdata("axy"+text(AXCOUNT),tmp,tmp1);
+ ,
+ tmp=[[xrng_1,org_2],[xrng_2,org_2]];
+ tmp1=append(options,colorax);//181216
+ Listplot("axx"+text(AXCOUNT),tmp,tmp1);
+ tmp=[[org_1,yrng_1],[org_1,yrng_2]];
+ 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]);
+ // Addax(0); // 16.01.21
);
////%Drwxy end////
@@ -651,7 +728,7 @@
////%Addax start////
Addax(param):=(
//help:Addax(0);
- ADDAXES=textformat(param,5);
+ ADDAXES=text(param);
);
////%Addax end////
@@ -676,6 +753,7 @@
////%Letter start////
Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
Letter(list):=Letter(list,[]);
+Letter(Pt,Dr,St,options):=Letter([Pt,Dr,St],options);//181218
Letter(list,options):=(
//help:Letter([C,"c","Graph of $f(x)$"]);
//help:Letter([C,"c","xy"],["size->30"]);
@@ -812,6 +890,7 @@
////%Exprrot start////
Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str,[]);
+Expr(pt,dir,str,options):=Expr([pt,dir,str],options);//181218
Exprrot(pt,dir,Arg1,Arg2):=(
if(islist(Arg2),
Exprrot(pt,dir,"t0n0",Arg1,Arg2);
@@ -2649,6 +2728,10 @@
////%Windispg start////
Windispg():=(
regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,opcindy);
+ if(ADDAXES=="1", //181215from
+ Drwxy();
+// ADDAXES="0";
+ ); //181215to
gsave();
layer(KETPIClayer);
forall(GCLIST,Nj,
@@ -2786,12 +2869,18 @@
println(SCEOUTPUT,"setwd('"+tmp1+"')");
);//180409to
tmp=replace(Libname,"\","/"); //17.09.24from
- println(SCEOUTPUT,"source('"+tmp+".r')");//temporary
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0)
- %(GPACK=="pict2e"), // 180817
+ println(SCEOUTPUT,"source('"+tmp+".r')"); //181213
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
+ if(GPACK=="tpic",GPACK="pict2e");
+ );
+ if(GPACK=="pict2e", // 180817
tmp=replace(tmp+"_rep2e","\","/");
println(SCEOUTPUT,"source('"+tmp+".r')");
);
+ if(GPACK=="tikz", //181213from
+ tmp=replace(tmp+"_reptikz","\","/");
+ println(SCEOUTPUT,"source('"+tmp+".r')");
+ ); //181213to
println(SCEOUTPUT,"Ketinit()");
println(SCEOUTPUT,"cat(ThisVersion,'\n')");
println(SCEOUTPUT,"Fnametex='"+Fnametex+"'");
@@ -2798,6 +2887,12 @@
println(SCEOUTPUT,"FnameR='"+FnameR+"'");
println(SCEOUTPUT,"Fnameout='"+Fnameout+"'");
println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan");
+ println(SCEOUTPUT,"Acos<- function(x){acos(max(-1,min(1,x)))}");
+ println(SCEOUTPUT,"Asin<- function(x){asin(max(-1,min(1,x)))}");
+ println(SCEOUTPUT,"Atan=atan");
+ println(SCEOUTPUT,"Sqr<- function(x){if(x>=0){sqrt(x)}else{0}}");
+ println(SCEOUTPUT,"Factorial=factorial");
+ println(SCEOUTPUT,"Norm<- function(x){norm(matrix(x,nrow=1),"+Dqq("2")+")}");
println(SCEOUTPUT,"");
forall(COM0thlist,
if(indexof(#,"Texcom")==0, //17.09.22
@@ -2906,7 +3001,8 @@
if(length(GrL)>0,
println(SCEOUTPUT," Drwline(GrL)");
);
- println(SCEOUTPUT,"Closefile('"+ADDAXES+"')");
+ // println(SCEOUTPUT,"Closefile('"+ADDAXES+"')"); //181224(2line)
+ println(SCEOUTPUT,"Closefile("+Dqq("0")+")");
println(SCEOUTPUT,"");
println(SCEOUTPUT,"}");
if(shchoice=="sh",
@@ -3498,9 +3594,13 @@
////%Usegraphics start////
Usegraphics(gpack):=( //180817
-//help:Usegrapchics("pict2e");
+//help:Usegraphics("pict2e");
if(!contains(ADDPACK,gpack),
- Addpackage([gpack]);
+ if(gpack =="tikz", //181213from
+ Addpackage(["pgf","tikz"]);
+ ,
+ Addpackage([gpack]);
+ ); //181213to
);
GPACK=gpack;
);
@@ -3521,36 +3621,27 @@
);//17.08.13until
); // 16.06.09until
println(SCEOUTPUT,tmp);
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0)
- %(GPACK=="pict2e"), //16.11.23,12.16,180817
- if(indexof(PathT,"pdflatex")>0,
- println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");//16.11.24
- ,
- println(SCEOUTPUT,"\usepackage{pict2e}");//16.12.16
- if(indexof(PathT,"lualatex")>0, //180817
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), //181213from
+ if(GPACK=="tpic", GPACK="pict2e");
+ );
+ if(GPACK=="tpic",
+ tmp=replace(Dirhead,"\","/");
+ println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
+ );
+ if(GPACK=="pict2e",
+ println(SCEOUTPUT,"\usepackage{pict2e}");
+ println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
+ if(indexof(PathT,"lualatex")>0,
+ println(SCEOUTPUT,"\usepackage{luatexja}");
);
- tmp=replace(Dirhead,"\","/"); //17.10.30from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}");
+ );
+ if(GPACK=="tikz",
+ println(SCEOUTPUT,"\usepackage[pgf,tikz}");//16.11.24
+ println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
+ if(indexof(PathT,"lualatex")>0,
+ println(SCEOUTPUT,"\usepackage{luatexja}");
);
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- );//17.10.30until
+ );//181213to
println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
println(SCEOUTPUT,"\usepackage{graphicx}");
println(SCEOUTPUT,"\usepackage{color}");
@@ -5448,7 +5539,7 @@
if(iswindows(),
kcfile="kc.bat";
,
- if(macosx(),
+ if(ismacosx(), //181219
kcfile="kc.command";
,
kcfile="kc.sh";
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,3 +1,5 @@
+// 20181224
+// Setpara debugged ( ADDAXES=="1")
// 20181128
// Mkviewobj changed (Fillblack added)
// 20181125
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs 2018-12-25 21:49:04 UTC (rev 49502)
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindymv(20181125) loaded");
+println("ketcindymv(20181224) loaded");
//help:start();
@@ -56,6 +56,10 @@
ParaOp=append(ParaOp,"m");//180604
);
ParaOpAnim=optionsanim;
+ if(ADDAXES=="1", //181224rom
+ Drwxy();
+// ADDAXES="0";
+ ); //181224to
GLISTback=GLIST;
GCLISTback=GCLIST;
GOUTLISTback=GOUTLIST;
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt 2018-12-25 21:49:04 UTC (rev 49502)
@@ -1,4 +1,16 @@
-// 201811230
+// 20181218
+// Help (Sfbdparadata ,,,, )
+// 20181217
+// Sfbdparadata debugged (replace fname+nm to fnameall )
+/// 20181209
+// MkprecommandR debugged (arc.. added )
+// Mkviewobj changed ( option "Zax=" added)
+// 20181103
+// Mkviewobj changed ( change coord in case of "preview")
+// Setobj changed ( option "preview" added )
+// 20181102
+// kcV3 changed ( "preview" for Mac )
+// 20181123
// Mkviewobj debugged ( Out=n )
// CalcbyR changed ( for cat )
// 201811225
Modified: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs 2018-12-25 05:48:22 UTC (rev 49501)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs 2018-12-25 21:49:04 UTC (rev 49502)
@@ -14,10 +14,11 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout(20181130 loaded");
+println("ketcindylibout(20181218 loaded");
//help:start();
+////%WritetoS start////
WritetoS(fname,cmdL):=(
// help:WritetoS("outdata",cmdL);
regional(tmp,tmp1,tmp2,filename);
@@ -47,6 +48,7 @@
);
closefile(SCEOUTPUT);
);
+////%WritetoS end////
////%kcS start////
kcS(path,fname):=kcS(path,fname,[]);
@@ -134,6 +136,7 @@
);
////%kcS end////
+////%SetpathS start////
SetpathS():=(
regional(tmp,tmp1);
if(!isstring(PathS), // 15.12.11
@@ -151,7 +154,9 @@
);
PathS;
);
+////%SetpathS end////
+////%ErrhandleS start////
ErrhandleS(fname):=( // 2016.02.28
regional(str); //17.04.14
if(indexof(PathS,"-6.")==0,
@@ -167,7 +172,9 @@
str=[]; //17.04.14
);
);
+////%ErrhandleS end////
+////%Testfunstr start////
Testfunstr(funstr,varx,vary):=(
regional(var,val,fun,tmp,tmp1,tmp2);
fun=replace(funstr,".x","(1)"); // 16.05.19
@@ -186,7 +193,9 @@
tmp1=replace(tmp1,var,"("+val+")");
tmp1;
);
+////%Testfunstr end////
+////%CalcbyS start////
CalcbyS(name,cmd):=CalcbyS(name,SetpathS(),cmd,[]);
CalcbyS(name,Arg1,Arg2):=(
if(isstring(Arg1),
@@ -429,7 +438,9 @@
// wait(WaitUnit);
);
);
+////%CalcbyS end////
+////%Scifun start////
Scifun(name,fun,argL):=Scifun(name,fun,argL,[]);//16.10.22
Scifun(name,fun,argL,optionorg):=(
//help:Scifun("1","date()",[]);
@@ -486,7 +497,9 @@
);
parse(nm);
);
+////%Scifun end////
+////%WritetoR start////
WritetoR(fname,cmdL):=WritetoR(fname,cmdL,[]);
WritetoR(fname,cmdL,options):=(
// help:WritetoR("outdata",cmdL);
@@ -536,7 +549,9 @@
// );
// );
);
+////%WritetoR end////
+////%kcR start////
kcR(path,fname):=kcR(path,fname,[]);
kcR(path,fname,optionorg):=(
//help:kcR(PathR,"boxdata");
@@ -626,7 +641,9 @@
setdirectory(Dirwork);
);
);
+////%kcR end////
+////%Dataframe start////
Dataframe(nmL,dL):=Dataframe(nmL,dL,[]);
Dataframe(nmL,dL,options):=(
//help:Dataframe(["name","no1","no2"],dtL);
@@ -655,7 +672,9 @@
out=replace(out,"[","c(");
out=replace(out,"]",")");
);
+////%Dataframe end////
+////%MkprecommandR start////
MkprecommandR():=MkprecommandR(6,"PVOFG"); //180508(9lines)
MkprecommandR(Arg):=(
regional(out,tmp1);
@@ -677,6 +696,7 @@
MkprecommandR(prec,chstr):=(
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]),
@@ -739,6 +759,7 @@
);
cmdL;
);
+////%MkprecommandR end////
////%CalcbyR start////
CalcbyR(name,cmd):=CalcbyR(name,PathR,cmd,[]);
@@ -1079,6 +1100,7 @@
);
////%CalcbyR end////
+////%Rfun start////
Rfun(name,fun,argL):=Rfun(name,fun,argL,[]);//16.10.22
Rfun(name,fun,argL,optionorg):=(
//help:Rfun("1","rnorm",[10]);
@@ -1120,6 +1142,7 @@
);
parse(nm);
);
+////%Rfun end////
////%Readcsv start////
Readcsv(file):=Readcsv(Dirwork,file,[]);
@@ -1279,6 +1302,7 @@
);
////%Readcsv end////
+////%Writecsv start////
Writecsv(nmL,data,file):=Writecsv(nmL,data,file,[]);
Writecsv(nmL,dataorg,file,optionorg):=(
//help:Writecsv([],data,"ex.csv");
@@ -1334,6 +1358,7 @@
);
closefile(SCEOUTPUT);
);
+////%Writecsv end////
////%HatchdataR start////
HatchdataR(nm,iostr,pltlist):=HatchdataR(nm,iostr,pltlist,[]);
@@ -3429,7 +3454,7 @@
if(iswindows(),
SCEOUTPUT = openfile("kc.bat");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+PathV3+Dq+" "+tmp1+filename;
+ tmp=Dqq(PathV3)+" "+Dqq(tmp1+filename);
println(SCEOUTPUT,tmp);
println(SCEOUTPUT,"exit");
closefile(SCEOUTPUT);
@@ -3442,7 +3467,12 @@
); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- tmp=Dq+PathV3+Dq+" "+tmp1+filename;
+ if(PathV3=="preview", //181202from
+ tmp="open -a "+Dqq("preview");
+ ,
+ tmp=Dqq(PathV3);
+ );
+ tmp=tmp+" "+Dqq(tmp1+filename); //181202to
println(SCEOUTPUT,tmp);
println(SCEOUTPUT,"exit 0");
closefile(SCEOUTPUT);
@@ -3557,7 +3587,45 @@
);
////%Changeobjscale end////
+////%Setobj start////
+//Objname(str):=Objname(str,["m","v"]); //180906from
+//Objname(str,options):=Setobj(str,options);
+Setobj():=Setobj(Fhead,["m","v"]); //180901
+Setobj(Arg1):=(
+ if(isstring(Arg1),
+ Setobj(Arg1,["m","v"]); //17.01.12
+ ,
+ Setobj(Fhead,Arg1); //180902
+ );
+);
+Setobj(str,optionsorg):=( //180906to
+//help:Setobj();
+//help:Setobj(["v"]);
+//help:Setobj(options=["m","v","preview","Zax=y(/n)"]);
+ regional(options,tmp,strL);
+ options=select(optionsorg,length(#)>0); //17.12.23from
+ tmp=Divoptions(options); //181203from
+ strL=tmp_7;
+ forall(strL,
+ if(Toupper(substring(#,0,1))=="P",
+ PathV3="preview";
+ options=remove(options,[#]);
+ );
+ ); //181203to
+ if(length(str)>0,
+ OCNAME=str;
+ );
+ if(length(options)>0,
+ OCOPTION=options;
+ ,
+ OCOPTION=["m","v"];
+ ); //17.12.23until
+ println("generate OBJCMD. name="+OCNAME+", option="+OCOPTION);
+);
+////%Setobj end////
+
////%Mkviewobj start////
+Mkviewobj():=Mkviewobj(OCNAME,OBJCMD,OCOPTION); //181209
Mkviewobj(fname,cmdL):=Mkviewobj(Dirwork,fname,cmdL,[]);
Mkviewobj(Arg1,Arg2,Arg3):=(
if(!isstring(OCNAME), //17.04.13from
@@ -3572,13 +3640,11 @@
);
);
Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
-//help:Mkviewobj(fname,cmdlist);
-//help:Mkviewobj(fname,[]);
-//help:Mkviewobj(path,fname,cmdlist);
-//help:Mkviewobj(options=["M/R","V","Unit=in","Wait=(10)"]);
+//help:Mkviewobj();
regional(path,cmdL,eqL,strL,flg,fname,options,make,view,cmdlist,
- vtx,face,unit,tmp,tmp1,tmp2,store);
+ vtx,face,unit,tmp,tmp1,tmp2,store,dt,nn,zax);
store=Fillblack(); //181128
+println([3647,store]);
path=replace(pathorg,"\","/");
if(substring(path,length(path)-1,length(path))!="/",path=path+"/");
fname=fnameorg;
@@ -3591,38 +3657,28 @@
make=-1;
view=0;
unit="";
+ zax="Y";
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="M",
- tmp2=Toupper(substring(tmp2,0,1));
- if(tmp2=="N" % tmp2=="F",
- make=0;
- );
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="U", // 16.06.30from
+ unit=tmp2;
options=remove(options,[#]);
- );
- if(tmp1=="V",
- tmp2=Toupper(substring(tmp2,0,1));
- if(tmp2=="N" % tmp2=="F",
- view=0;
- );
+ ); // 16.06.30to
+ if(tmp1=="Z", // 16.06.30from
+ zax=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
- );
- if(tmp1=="U", // 16.06.30from
- unit=tmp2;
- options=remove(options,[#]);
- ); // 16.06.30until
+ ); // 16.06.30to
);
forall(strL,
tmp=Toupper(substring(#,0,1));
if(tmp=="M",
make=1;
- options=remove(options,[#]);
+// options=remove(options,[#]); //181203
);
if(tmp=="R",
make=0;
- options=remove(options,[#]);
+// options=remove(options,[#]); //181203
);
if(tmp=="V",
view=1;
@@ -3687,49 +3743,31 @@
Changeobjscale(fname,["Unit="+unit]);//16.10.04
); // 16.06.30until
if(view==1,
- flg=0; // 16.03.14 from
- if(isstring(ViewFile),
- if(ViewFile==fname,flg=1);
+ if((PathV3=="preview")%(zax=="Y"), //181209
+ dt=Readlines(fname);
+ forall(1..(length(dt)),nn,
+ tmp1=dt_nn;
+ if(substring(tmp1,0,2)=="v ",
+ tmp=replace(tmp1," "," ");
+ tmp=tokenize(tmp," ");
+ tmp=Sprintf(tmp_(2..4),4);
+ tmp2="v "+tmp_2+" "+tmp_3+" "+tmp_1;
+ dt_nn=tmp2;
+ );
+ );
+ fname=replace(fname,".","prv.");
+ SCEOUTPUT = openfile(fname);
+ forall(dt,
+ println(SCEOUTPUT,#);
+ );
+ closefile(SCEOUTPUT);
);
- if(flg==0,
- kcV3(path,fname);
- ViewFile=fname;
- ); // 16.03.14 until
+ kcV3(path,fname);
);
Fillrestore(store); //181128
);
////%Mkviewobj end////
-////%Setobj start////
-//Objname(str):=Objname(str,["m","v"]); //180906from
-//Objname(str,options):=Setobj(str,options);
-Setobj():=Setobj(Fhead,["m","v"]); //180901
-Setobj(Arg1):=(
- if(isstring(Arg1),
- Setobj(Arg1,["m","v"]); //17.01.12
- ,
- Setobj(Fhead,Arg1); //180902
- );
-);
-Setobj(str,optionsorg):=( //180906to
-//help:Setobj(["m","v"]);
-//help:Setobj("sample");
-//help:Setobj("sample",options);
-//help:Setobj(options=["m","v"]);
- regional(options);
- if(length(str)>0,
- OCNAME=str;
- );
- options=select(optionsorg,length(#)>0); //17.12.23from
- if(length(options)>0,
- OCOPTION=options;
- ,
- OCOPTION=["m","v"];
- ); //17.12.23until
- println("generate OBJCMD. name="+OCNAME+", option="+OCOPTION);
-);
-////%Setobj end////
-
////%Mkobjcmd start////
Mkobjcmd(nm,fd):=Mkobjcmd(nm,fd,[40,40,"+"]);
Mkobjcmd(nm,fd,options):=(
@@ -5735,7 +5773,7 @@
SfbdparadataC(nm,fd,options):=
SfbdparadataC(nm,fd,options,["do"]);
SfbdparadataC(nm,fdorg,optionorg,optionshorg):=(
-//help:Sfbdparadata("1",Fd);
+//help:Sfbdparadata("1",Fd,nohiddenoptions,hiddenoptions);
regional(funnm,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,cmdflg);
if(ChNumber==0,ChNumber=Ch);
@@ -5811,7 +5849,7 @@
];
if(cmdflg==1, //180531from
println(" ExeccmdC will generate "+ name3+","+name3h);
- tmp=replace(cmdL_5,"fname"+funnm,"fnameall");cmdL_5=tmp;
+ tmp=replace(cmdL_5,"fname"+nm,"fnameall");cmdL_5=tmp; //181217
tmp=select(CommandListC,indexof(#,"output3")>0); //180601from
if(length(tmp)>0,
tmp=replace(cmdL_6,Dqq("w"),Dqq("a"));cmdL_6=tmp;
@@ -5867,8 +5905,7 @@
CrvsfparadataC(nm,fk,sfbd,fd,options):=
CrvsfparadataC(nm,fk,sfbd,fd,options,["do"]);
CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionshorg):=(
-//help:Crvsfparadata("1","ax3d","sfbd3d1",Fd);
-//help:Crvsfparadata(options=["Use=y(/n)"];
+//help:Crvsfparadata("1","ax3d","sfbd3d1",Fd,,nohiddenoptions,hiddenoptions);
regional(funnm,sfbd,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,useflg,cmdlfg,ii,jj,eps);
eps=10^(-5);
@@ -6042,7 +6079,7 @@
Crv3onsfparadataC(nm,crv3d,sfbd,fd,options):=
Crv3onsfparadataC(nm,crv3d,sfbd,fd,options,["do"]);
Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionshorg):=(
-//help:Crv3onsfparadata("1","sc3","sfbd3d1",fd);
+//help:Crv3onsfparadata("1","sc3","sfbd3d1",fd,,nohiddenoptions,hiddenoptions);
regional(funnm,sfbd,fd,options,optionsh,name3,name3h,name2,name2h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
tmp1=replace(crv3d,"3d","2d");
@@ -6197,7 +6234,7 @@
Crv2onsfparadataC(nm,crv2d,sfbd,fd,options):=
Crv2onsfparadataC(nm,crv2d,sfbd,fd,options,["do"]);
Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh):=(
-//help:Crv2onsfparadata("1","gp1","sfbd3d1",fd);
+//help:Crv2onsfparadata("1","gp1","sfbd3d1",fd,nohiddenoptions,hiddenoptions);
regional(fd,uname,vname,str,tmpfun,ii,jj,crv3d,tmp,tmp1,tmp2);
Changestyle3d(crv2d,["nodisp"]);
crv3d=crv2d+"3d";
@@ -6230,7 +6267,7 @@
WireparadataC(nm,sfbd,fd,wr1,wr2,options):=
WireparadataC(nm,sfbd,fd,wr1,wr2,options,["do"]);
WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionshorg):=(
-//help:Wireparadata("1","sfbd3d1",fd,5,5);
+//help:Wireparadata("1","sfbd3d1",fd,5,5,nohiddenoptions,hiddenoptions);
regional(funnm,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,udata,vdata,cmdflg);
eps=10^(-5);
@@ -6544,7 +6581,7 @@
SfcutparadataC(nm,cutfunL,sfbd,fd,options):=
SfcutparadataC(nm,cutfunL,sfbd,fd,options,["nodisp"]);
SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionshorg):=(
-//help:Sfcutparadata("1","2*x+3*y+z=1","sfbd3d",fd);
+//help:Sfcutparadata("1","2*x+3*y+z=1","sfbd3d",fd,nohiddenoptions,hiddenoptions);
regional(funnm,cutfunL,fd,options,optionsh,name2,name3,name2h,name3h,
waiting,eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
eps=10^(-5);
Added: trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r
===================================================================
--- trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r (rev 0)
+++ trunk/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r 2018-12-25 21:49:04 UTC (rev 49502)
@@ -0,0 +1,562 @@
+# Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
+#
+#This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>
+
+
+#########################################
+
+ThisVersion<- "2ev5_2_4(180930)"
+
+# 20180930
+# Drwpt debugged ( the last newline added)
+# 20180929
+# Shade changed (Kyoukai => Joincrvs)
+# 2017.10.28
+# Drwpt debugged ( Flattenlist )
+# 2017.10.07
+# Dottedline,Drwline,Drwpt,Makehasen,Beginpicture,Setpen,Shade
+
+#############################################
+
+Dottedline<- function(...)
+{
+ varargin <- list(...)
+ Nall <- length(varargin)
+ Nagasa <- 0.1
+ Ookisa <- PenThick*2 #17.10.07
+ I <- Nall
+ Tmp <- varargin[[I]]
+ while (mode(Tmp)=="numeric" && length(Tmp)==1 ) {
+ I <- I-1
+ Tmp <- varargin[[I]]
+ }
+ if (I==Nall-1) {
+ Nagasa<-Nagasa*varargin[[Nall]]
+ Nall <- Nall-1
+ }
+ if (I==Nall-2) {
+ Nagasa <- Nagasa*varargin[[Nall-1]]
+ Ookisa <- round(Ookisa*varargin[[Nall]])
+ Nall <- Nall-2
+ }
+ Nagasa <- 1000/2.54/MilliIn*Nagasa
+ Ra=Ookisa/MilliIn
+ for (N in 1:Nall) {
+ Pdata <- varargin[[N]]
+ if (mode(Pdata)=="numeric") {
+ Pdata <- list(Pdata)
+ }
+ for (II in 1:length(Pdata)) {
+ Clist <- MakeCurves(Op(II,Pdata))
+ DinM <- Dataindex(Clist)
+ Mojisu=0
+ for (n in Looprange(1,Nrow(DinM))) {
+ Tmp <- DinM[n,]
+ Data <- Clist[Tmp[1]:Tmp[2],]
+ Len <- 0
+ Lenlist <- c(0)
+ for (I in Looprange(2,Nrow(Data))) {
+ Len <- Len+Norm(Data[I,]-Data[I-1,])
+ Lenlist <- c(Lenlist,Len)
+ }
+ Lenall <- Lenlist[length(Lenlist)]
+ if (Lenall==0) {
+ next
+ }
+ Naga <- Nagasa
+ Nten <- round(Lenall/Naga)+1
+ if (Nten > 1) {
+ Seg <- Lenall/(Nten-1)
+ }
+ else {
+ Seg <- Lenall
+ }
+ Eps <- 10^(-6)*Seg
+ PPd<-c()
+ Hajime <- 1
+ for (I in Looprange(0,Nten-1)) {
+ Len <- Seg*I
+ if (I>0) {
+ J <- Hajime
+ while( Len>=Lenlist[J]+Eps) {
+ J <- J+1
+ }
+ Hajime <- J-1
+ }
+ T <- (Len-Lenlist[Hajime])/
+ (Lenlist[Hajime+1]-Lenlist[Hajime])
+ P <- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
+ PPd<-Appendrow(PPd,P)
+ if (I==Nten-1) {
+ if (Norm(P-Data[1,])<Eps) {
+ next
+ }
+ }
+ }
+ for (I in Looprange(1,Nrow(PPd))){
+ P<- Op(I,PPd)
+ if (Nrow(PPd)==1){
+ V<- c(1,0)
+ }
+ else if (I==1){
+ Tmp<- Op(I+1,PPd)-P
+ V<- 1/Norm(Tmp)*Tmp
+ }
+ else if (I==Nrow(PPd)){
+ Tmp<- P-Op(I-1,PPd)
+ V<- 1/Norm(Tmp)*Tmp
+ }
+ else{
+ Tmp1<- Op(I+1,PPd)-P
+ Tmp2<- P-Op(I-1,PPd)
+ Tmp3<-1/Norm(Tmp1)*Tmp1+1/Norm(Tmp2)*Tmp2
+ V<- 1/Norm(Tmp3)*Tmp3
+ }
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu=Mojisu+nchar(Str)
+ if(Mojisu>80){
+ cat("\n",file=Wfile,append=TRUE)
+ Mojisu=0
+ }
+ }
+ }
+ }
+ if(Mojisu>0){
+ cat("\n",file=Wfile,append=TRUE)
+ }
+ }
+ Tmp<-PenThick/PenThickInit
+ Setpen(Tmp)
+}
+
+
+###########################################
+
+Drwline<-function(...)
+{
+ varargin<-list(...)
+ Nall<-length(varargin)
+ Thick<-0
+ Tmp<-varargin[[Nall]]
+ if (mode(Tmp)=="numeric" && length(Tmp)==1){
+ Setpen(Tmp)
+ Nall<-Nall-1
+ }
+ for (N in 1:Nall){
+ Pdata<-varargin[[N]]
+ if (length(Pdata)==0) next
+ if (mode(Pdata)!="list") Pdata<-list(Pdata)
+ while(Mixtype(Pdata)==3){
+ Tmp1<- list()
+ for(II in Looprange(1,length(Pdata))){
+ Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
+ }
+ Pdata<- Tmp1
+ }
+ for (II in Looprange(1,length(Pdata))){
+ Clist<-MakeCurves(Pdata[[II]])
+ DinM<-Dataindex(Clist)
+ for (n in Looprange(1,Nrow(DinM))){
+ Tmp<-DinM[n,]
+ Data<-Clist[Tmp[1]:Tmp[2],]
+ Mojisu<-0
+ for (I in Looprange(1,Nrow(Data))){
+ Tmp<-Data[I,]
+ X=sprintf('%5.5f',Tmp[1])
+ Y=sprintf('%5.5f',Tmp[2])
+ Pt=paste('(',X,',',Y,')',sep="")
+ if(I==1){
+ Str=paste('\\polyline',Pt,sep="")
+ }else{
+ Str=Pt
+ }
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu<-Mojisu+nchar(Str)
+ if (Mojisu>80){
+ cat("%\n",file=Wfile,append=TRUE)
+ Mojisu<-0
+ }
+ }
+ if (Mojisu!=0){
+ cat("%\n",file=Wfile,append=TRUE)
+ }
+ cat("%\n",file=Wfile,append=TRUE)
+ }
+ }
+ }
+ if (Thick>0){
+ Tmp<-PenThick/PenThickInit
+ Setpen(Tmp)
+ }
+}
+
+###########################################
+
+Drwpt<-function(...)
+{
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ All=Nargs
+ if (TenSize>TenSizeInit){
+ N<- round(6*sqrt(TenSize/TenSizeInit))
+ }
+ else{
+ N<-4
+ }
+ Tmp<- varargin[[All]]
+ Iro=c(0,0,0,1)
+ Iroflg=0
+ if(is.character(Tmp)){
+ Iro=Ratiocmyk(Tmp)
+ Iroflg=1
+ All=All-1
+ }
+ Tmp<- varargin[[All]]
+ if (mode(Tmp)=="numeric"){
+ if (length(Tmp)>1){
+ Kosa<- 1; All<- Nargs
+ }
+ else{
+ Kosa<- Tmp; All<- All-1
+ }
+ }
+ else if (mode(Tmp)=="list"){
+ Kosa<- 1; All<- Nargs
+ }
+ Ra=TenSize*1000/2.54/MilliIn
+ if(Iroflg>0){
+ Str='{\\color[cmyk]{'
+ for(J in 1:4){
+ Str=paste(Str,as.character(Kosa*Iro[J]),sep="")
+ if(J<4){
+ Str=paste(Str,',',sep="")
+ }
+ }
+ Str=paste(Str,'}%',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ }
+
+# CL<-c()
+# for (J in 0:N){
+# Tmp<- TenSize*0.5*1000/2.54/MilliIn
+# Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
+# CL<- append(CL,Tmp)
+# }
+# CL<- matrix(CL,nrow=2)
+# CL<- t(CL)
+ Mojisu=0
+ for (II in Looprange(1,All)){
+ MS<- varargin[[II]]
+ MS=Flattenlist(MS) #17.10.28
+ if (mode(MS)=="numeric"){
+ MS<- list(MS)
+ }
+ for (I in Looprange(1,length(MS))){
+ P<- MS[[I]]
+ if (InWindow(P)!="i") next
+ P<- Doscaling(P)
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu=Mojisu+nchar(Str)
+ if(Mojisu>80){
+ cat("\n",file=Wfile,append=TRUE)
+ Mojisu=0
+ }
+ }
+ }
+ Str="%"
+ if(Iroflg>0){
+ Str='}%'
+ }
+ if(Mojisu>0){
+ Str=paste('\n',Str,'\n',sep="")
+ }else{
+ Fmt=paste(Str,'\n',sep="")
+ }
+ cat(Str,file=Wfile,append=TRUE)
+ cat("\n",file=Wfile,append=TRUE) #180930
+}
+
+
+######################################
+
+Makehasen<- function(Figdata,Sen,Gap,Ptn)
+{
+ Eps<- 10.0^(-6)
+ Clist<- MakeCurves(Figdata)
+ DinM<- Dataindex(Clist)
+ for (N in Looprange(1,Nrow(DinM))){
+ Tmp<- DinM[N,]
+ Data<- Clist[Tmp[1]:Tmp[2],]
+ Dtall<- Nrow(Data)
+ Len<- 0
+ Lenlist<- c(0)
+ for (I in Looprange(2,Dtall)){
+ Len<- Len+Norm(Data[I,]-Data[I-1,])
+ Lenlist<- c(Lenlist,Len)
+ }
+ Lenall<- Lenlist[Dtall]
+ if (Lenall==0){
+ next
+ }
+ Kari<- (Sen+Gap)*0.1
+ Naga<- Sen*0.1
+ Tobi<- Gap*0.1
+ if (Norm(Data[1,]-Data[Dtall,])<Eps){
+ Nsen<- max(ceiling(Lenall/Kari),3)
+ SegUnit<- Lenall/Nsen
+ Naga<- SegUnit*Sen/(Sen+Gap)
+ Tobi<- SegUnit*Gap/(Sen+Gap)
+ SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
+ }
+ else{
+ if (Ptn==0){
+ Nsen<- max(ceiling((Lenall+Tobi)/Kari),3)
+ SegUnit<- Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap)
+ Naga<- SegUnit*Sen/(Sen+Gap)
+ Tobi<- SegUnit*Gap/(Sen+Gap)
+ SegList<- c(seq(0,(Nsen-1)*SegUnit,by=SegUnit))
+ }
+ else{
+ Nsen<- max(ceiling((Lenall+Naga)/Kari),3)
+ SegUnit<- Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap)
+ Naga<- SegUnit*Sen/(Sen+Gap)
+ Tobi<- SegUnit*Gap/(Sen+Gap)
+ SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
+ }
+ }
+ Hajime<- 1; Owari<- 1
+ Mojisu<- 0
+ for (I in Looprange(1,length(SegList))){
+ Len<- SegList[I]
+ J<- Owari
+ while (Len>=Lenlist[J]-Eps){
+ if (J==Dtall){
+ break
+ }
+ J<- J+1
+ }
+ Hajime<- J-1
+ J<- Hajime
+ while (Len+Naga>Lenlist[J]-Eps){
+ if (J==Dtall){
+ break
+ }
+ J<- J+1
+ }
+ Owari<- J-1
+ T<- (Len-Lenlist[Hajime])
+ T<- T/(Lenlist[Hajime+1]-Lenlist[Hajime])
+ P<- Data[Hajime,]+T*(Data[Hajime+1,]-Data[Hajime,])
+ X0=sprintf('%5.5f',P[1])
+ Y0=sprintf('%5.5f',P[2])
+ Pt0=paste('(',X0,',',Y0,')',sep="")
+ Str=paste('\\polyline',Pt0,sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu<- Mojisu+nchar(Str)
+ for (J in Looprange(Hajime+1,Owari)){
+ P=Data[J,]
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ Pt=paste('(',X,',',Y,')',sep="")
+ Str=Pt
+ cat(Str,file=Wfile,append=TRUE)
+ Pt0=Pt
+ Mojisu=Mojisu+nchar(Str)
+ }
+ T<- (Len+Naga-Lenlist[Owari])
+ T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
+ P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ Pt=paste('(',X,',',Y,')',sep="")
+ Str=Pt
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu<- Mojisu+nchar(Str)
+ if (Mojisu>80){
+ cat("%\n",file=Wfile,append=TRUE)
+ Mojisu<- 0
+ }
+ }
+ }
+ cat("%\n%\n",file=Wfile,append=TRUE);
+}
+
+#########################################
+
+Beginpicture<-function(ul)
+{ ## Scaling is implemented
+ Tmp<- Doscaling(c(XMIN,YMIN))
+ Xm<- Tmp[1]
+ Ym<- Tmp[2]
+ Tmp<- Doscaling(c(XMAX,YMAX))
+ XM<- Tmp[1]
+ YM<- Tmp[2]
+ Dx<- XM-Xm
+ Dy<- YM-Ym
+ Sym<-".0123456789 +-*/"
+ SL<-Sym
+ OL<-"+-*/"
+ if (ul!=""){
+ ULEN<<-ul;
+ }
+ Is<-1;
+ VL<-"";
+ Ucode<-ULEN
+ for (I in Looprange(1,nchar(Ucode))){
+ C<-substring(Ucode,I,I);
+ if (length(grep(C,SL,fixed=TRUE))>0){
+ if (length(grep(C,OL,fixed=TRUE))>0){
+ Tmp<-substring(Ucode,Is,I-1);
+ Str<-paste(VL,Tmp,C,sep="")
+ VL<-Str
+ Is<-I+1;
+ }
+ }
+ else{
+ Unit<-substring(Ucode,I,I+1);
+ Str<-substring(Ucode,Is,I-1);
+ VL<-paste(VL,Str,sep="")
+ break;
+ }
+ }
+ Valu<-eval(parse(text=VL));
+ Str<-as.character(Valu);
+ ULEN<<- paste(Str,Unit,sep="");
+ if (Unit=="cm") MilliIn<<-1000/2.54*Valu
+ if (Unit=="mm") MilliIn<<-1000/2.54*Valu/10
+ if (Unit=="in") MilliIn<<-1000*Valu
+ if (Unit=="pt") MilliIn<<-1000/72.27*Valu
+ if (Unit=="pc") MilliIn<<-1000/6.022*Valu
+ if (Unit=="bp") MilliIn<<-1000/72*Valu
+ if (Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
+ if (Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
+ if (Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
+ MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
+ Str<-paste("{\\unitlength=",ULEN,"%\n",sep="");
+ cat(Str,file=Wfile,append=TRUE);
+ cat("\\begin{picture}%\n",file=Wfile,append=TRUE);
+ Str<-"(";
+ Tmp<-as.character(round(Dx,digits=6));
+ Str<-paste(Str,Tmp,",",sep="");
+ Tmp<-as.character(round(Dy,digits=6));
+ Str<-paste(Str,Tmp,")(",sep="");
+ Tmp<-as.character(round(Xm,digits=6));
+ Str<-paste(Str,Tmp,",",sep="");
+ Tmp<-as.character(round(Ym,digits=6));
+ Str<-paste(Str,Tmp,")%\n",sep="");
+ cat(Str,file=Wfile,append=TRUE);
+ Str=paste('\\linethickness{',as.character(PenThickInit/1000),'in}%',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ cat("%\n",file=Wfile,append=TRUE)
+}
+
+#########################################
+
+Setpen<-function(Width)
+{
+ PenThick<<-round(PenThickInit*Width)
+ Str=paste('\\linethickness{',as.character(PenThick/1000),'in}%',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ cat("%\n",file=Wfile,append=TRUE)
+}
+
+#########################################
+
+Shade<- function(...)
+{ ## Scaling is implemented
+ varargin<- list(...)
+ Nargs<- length(varargin)
+ Iroflg=0
+ if(Nargs>1){
+ Iro=varargin[[Nargs]]
+ if(is.character(Iro)){
+ Iroflg=1
+ if(length(grep("{",Iro,fixed=TRUE))>0){
+ Str=paste("{\\color",Iro,sep="")
+ }
+ else{
+ Str=paste("{\\color{",Iro,"}",sep="")
+ }
+ }
+ else{
+ if(length(Iro)==1){
+ Kosa=Iro
+ }
+ else{
+ Iroflg=1
+ if(length(Iro)==4){
+ Str="{\\color[cmyk]{"
+ }
+ else{
+ if(length(Iro)==3){
+ Str="{\\color[rgb]{"
+ }
+ }
+ for(J in 1:length(Iro)){
+ Str=paste(Str,as.character(Iro[J]),sep="")
+ if(J<length(Iro)){
+ Str=paste(Str,",")
+ }
+ }
+ Str=paste(Str,"}")
+ }
+ }
+ if(Iroflg==1){
+ Str=paste(Str,"%\n",sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ }
+ }
+ Mojisu=0
+ Tmp=varargin[[1]]
+# Data=Kyoukai(Tmp)
+ Data= Joincrvs(Tmp) #180929from
+ Data=list(Data) #180929to
+ for (I in Looprange(1, length(Data))){
+ PL<- Op(I,Data)
+ PL=Appendrow(PL,Op(1,PL)) #180929
+ Mojisu<- 0
+ for (J in 1:Nrow(PL)){
+ P<- Doscaling(Op(J,PL))
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ Pt=paste('(',X,',',Y,')',sep="")
+ if(J==1){
+ Str=paste('\\polygon*',Pt,sep="")
+ }else{
+ Str=Pt
+ }
+ cat(Str,file=Wfile,append=TRUE)
+ Mojisu<- Mojisu+nchar(Str)
+ if (Mojisu>80){
+ cat("%\n",file=Wfile,append=TRUE)
+ Mojisu<- 0
+ }
+ }
+ }
+ if(Iroflg==1){
+ Str='}%'
+ if(Mojisu>0){
+ Str=paste('\n',Str,'\n',sep="")
+ }else{
+ Str=paste(Str,'\n')
+ }
+ cat(Str,file=Wfile,append=TRUE)
+ }
+}
Modified: trunk/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy
===================================================================
(Binary files differ)
More information about the tex-live-commits
mailing list