summaryrefslogtreecommitdiff
path: root/texmf-dist/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2018-02-12 14:52:54 +0900
committerNorbert Preining <norbert@preining.info>2018-02-12 14:52:54 +0900
commit8c3c49fd56de185396400a0e8a636ac03d8239ab (patch)
treeadf96aee3f0bfbdc9df3a9e2dd86332a9dfee9cd /texmf-dist/doc
parent5a993b26c76714f0810fdc7e3ae7bdc5eb1afd10 (diff)
update ketcindy
Diffstat (limited to 'texmf-dist/doc')
-rw-r--r--texmf-dist/doc/support/ketcindy/ScriptInitialization.txt22
-rw-r--r--texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt268
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptfigure.txt (renamed from texmf-dist/doc/support/ketcindy/ScriptDraw.txt)35
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptkelib.txt4
-rw-r--r--texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt8
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdybin5442 -> 5314 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdybin5430 -> 5303 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdybin5369 -> 5255 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdybin4838 -> 4731 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdybin5632 -> 5526 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdybin4991 -> 4886 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdybin5672 -> 5567 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdybin5677 -> 5574 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdybin4324 -> 4219 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdybin4296 -> 4195 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdybin4431 -> 4449 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdybin4436 -> 4445 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdybin4223 -> 4223 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdybin4553 -> 4455 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdybin4520 -> 4422 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdybin4826 -> 4728 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdybin4246 -> 4224 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdybin5188 -> 5152 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdybin4558 -> 4481 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdybin4014 -> 3907 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdybin4123 -> 4008 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdybin5808 -> 5729 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdybin3973 -> 3870 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdybin4101 -> 3966 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdybin3961 -> 3825 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdybin5345 -> 5223 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdybin4106 -> 3999 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdybin4080 -> 3975 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdybin4161 -> 4054 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdybin3975 -> 3871 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdybin4156 -> 4052 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdybin6521 -> 6397 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdybin6101 -> 5993 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdybin7645 -> 7538 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdybin83728 -> 83622 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404mtfuji.cdybin6331 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdybin72452 -> 72346 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406heart.cdybin82099 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdybin9510 -> 9403 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdybin5943 -> 5865 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdybin8227 -> 8166 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdybin5236 -> 5169 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdybin6070 -> 6005 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdybin6124 -> 6060 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdybin6956 -> 6889 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdybin6173 -> 6109 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdybin6648 -> 6589 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdybin8322 -> 8260 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdybin6781 -> 6718 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdybin11172 -> 11115 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdybin8514 -> 8451 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/CindyScriptset.txt17
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdybin4324 -> 5147 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdybin4820 -> 5702 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdybin4223 -> 4943 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdybin4474 -> 5156 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdybin4702 -> 5390 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdybin4853 -> 5501 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdybin4862 -> 5485 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0608cycloid3.cdybin4759 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/CindyScriptset.txt24
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0601cycloid.cdybin0 -> 4455 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0602diffeq.cdybin0 -> 4985 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0603envelope.cdybin0 -> 4355 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0604diffeq2.cdybin0 -> 4606 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0605cycloid2.cdybin0 -> 4832 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0606epitrochoid.cdybin0 -> 4983 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0607hypotrochoid.cdybin0 -> 4991 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0608cycloid3.cdybin0 -> 4889 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.aux6
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.log584
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.pdfbin63985 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.tex18
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/.RDatabin1370324 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/cindyscreen.pdfbin28774 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/figsin.tex70
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex11
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slideE.tex11
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt147
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt149
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/kc.sh8
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdybin5465 -> 5455 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt46
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdybin5487 -> 5460 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt44
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdybin5594 -> 5687 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.txt40
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdybin5475 -> 5460 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt40
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdybin5542 -> 5631 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt64
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdybin5565 -> 5532 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt66
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.cdybin5667 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.cdybin5685 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdybin0 -> 4857 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt (renamed from texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.txt)108
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdybin0 -> 5791 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.txt (renamed from texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.txt)20
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdybin0 -> 5701 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt (renamed from texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.txt)20
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.cdybin4829 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdybin5741 -> 5854 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt38
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdybin5741 -> 5794 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt38
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdybin4012 -> 3924 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdybin5307 -> 5237 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdybin4189 -> 4118 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdybin4269 -> 4201 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdybin3859 -> 3786 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdybin3984 -> 3912 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdybin3975 -> 3900 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdybin3967 -> 3893 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0901parabolic.cdybin0 -> 5250 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0902cone.cdybin0 -> 5279 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0903saddle.cdybin0 -> 5211 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0904sphere.cdybin0 -> 5237 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0905wireframe.cdybin0 -> 5264 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0906intersectcrvsf.cdybin0 -> 5325 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0907multisurfaces.cdybin0 -> 5313 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0908conecut.cdybin0 -> 7551 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0909totaldiff.cdybin0 -> 6128 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901parabolic.cdybin5332 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdybin5358 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdybin5288 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904sphere.cdybin5321 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905wireframe.cdybin5345 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906intersectcrvsf.cdybin5401 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907multisurfaces.cdybin5403 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908conecut.cdybin7632 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909totaldiff.cdybin6211 -> 0 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdybin3823 -> 3813 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdybin4093 -> 4019 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdybin3924 -> 3847 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdybin3962 -> 3884 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdybin4146 -> 4067 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdybin3900 -> 3826 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdybin3984 -> 3908 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdybin4200 -> 4122 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdybin4284 -> 4208 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdybin4154 -> 4078 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdybin4888 -> 4600 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdybin5240 -> 4925 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdybin5025 -> 4489 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdybin3921 -> 3846 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdybin5157 -> 5087 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdybin5121 -> 4804 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdybin3960 -> 3883 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdybin4493 -> 4418 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdybin4042 -> 3973 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdybin3858 -> 3785 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdybin3932 -> 3858 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdybin3923 -> 3847 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdybin3941 -> 3869 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdybin3955 -> 3881 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdybin3987 -> 3913 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdybin3934 -> 3862 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdybin3923 -> 3850 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdybin4067 -> 3993 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdybin3984 -> 3022 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdybin4246 -> 4172 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdybin4174 -> 4069 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdybin3911 -> 3805 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdybin3175 -> 3069 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdybin3241 -> 3134 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1301basic.cdybin0 -> 5377 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1303objparts.cdybin0 -> 5558 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1304symbol.cdybin0 -> 5412 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1305hyperpara.cdybin0 -> 5449 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1306poly.cdybin0 -> 6991 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1307poly2.cdybin0 -> 8262 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1308discont.cdybin0 -> 5827 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1309discont2.cdybin0 -> 5990 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1310totaldiff.cdybin0 -> 4645 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1311plate.cdybin0 -> 6716 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1312plane.cdybin0 -> 7368 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1313changescale.cdybin0 -> 8226 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1314knot.cdy (renamed from texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1314knot.cdy)bin28435 -> 28351 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdybin5498 -> 5346 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdybin5688 -> 5561 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdybin5497 -> 5381 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdybin5592 -> 5415 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdybin7077 -> 6958 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdybin8332 -> 8229 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdybin5909 -> 5799 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdybin6077 -> 5955 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdybin4709 -> 4613 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdybin6804 -> 6684 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdybin7447 -> 7332 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdybin8310 -> 8193 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/errormessageR.txt0
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/kc.sh4
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/resultR.txt1
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdybin4066 -> 3934 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdybin4518 -> 4409 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdybin7623 -> 7508 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdybin5691 -> 5596 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdybin5671 -> 5574 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdybin5828 -> 5734 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdybin5790 -> 5695 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdybin5768 -> 5672 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdybin4642 -> 4683 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basicketcindy.html6491
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdybin5956 -> 6006 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2ketcindy.html6502
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdybin4499 -> 4674 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamowketcindy.html6494
-rw-r--r--texmf-dist/doc/support/ketcindy/ketsample/samplesJS/kc.sh0
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java8
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.pngbin0 -> 156863 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.pngbin0 -> 143812 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.pngbin0 -> 124126 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex68
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex123
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex42
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex74
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex139
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex79
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex82
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.pngbin0 -> 102967 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex110
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex105
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex58
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex335
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex78
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex129
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex69
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex58
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.pngbin0 -> 218251 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex118
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex272
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex55
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex64
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex85
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex85
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex326
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex312
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex326
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex72
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex91
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex42
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex51
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex81
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex76
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex68
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex53
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex20
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex202
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex179
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex265
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex320
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex253
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex83
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdfbin0 -> 1821529 bytes
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex3
-rw-r--r--texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdfbin0 -> 47109 bytes
263 files changed, 5917 insertions, 20658 deletions
diff --git a/texmf-dist/doc/support/ketcindy/ScriptInitialization.txt b/texmf-dist/doc/support/ketcindy/ScriptInitialization.txt
deleted file mode 100644
index 8aaaf3d1..00000000
--- a/texmf-dist/doc/support/ketcindy/ScriptInitialization.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-ketfilesdir=loaddirectory;
-use("KetCindyPlugin");
-ketcindydir=ketfilesdir + "..";
-if(isexists(gethome(),"ketcindyhead.txt"),
- setdirectory(gethome());
- import("ketcindyhead.txt");
-,
- if(isexists(plugindirectory,"dirhead.txt"),
- setdirectory(plugindirectory);
- import("dirhead.txt");
- ,
- Dirhead=getdirhead();
- );
-);
-setdirectory(ketcindydir);
-import("setketcindy.txt");
-setdirectory(ketcindydir);
-import("ketoutset.txt");
-
-setdirectory(Dirwork);
-
-Helplist(["+","+3d","+mv"],"helpJ");
diff --git a/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt b/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt
index b06655d5..cbb97c47 100644
--- a/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt
+++ b/texmf-dist/doc/support/ketcindy/ScriptKeytyped.txt
@@ -1,134 +1,134 @@
-if(key()=="?" % keydownlist()==[32],
- if(!isreal(NumTyped),NumTyped=0);
- if(NumTyped==0,
- DispStr=
- "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
- );
- if(NumTyped==1,
- DispStr=
- "Shift+ Title(T) Para(P) AniF(A) Slide(S) Digest(D)";
- );
- if(NumTyped==2,
- DispStr="Shift+ Meshlab(M) KeTCindyJS(J)";
- );
- if(NumTyped==3,
- DispStr=
- "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
- );
- drawtext(mouse().xy,DispStr,size->24);
- NumTyped=mod(NumTyped+1,4);
-,
- NumTyped=0;
-);
-if(key()=="1",//Mkfigure
- Viewtex();
- kc();
-);
-if(key()=="2",//Mkparent
- Viewparent();
-);
-if(key()=="3",//Flipbook(Parapara)
- Flipbook();
-);
-if(key()=="4",//Texmovie
- Texmovie();
- kc();
-);
-if(key()=="5",//Surface
- Cheader();
- Cmain();
- kcC();
- if(ChNum>0,
- Ch=[ChNum];
- ,
- Ch=[1];
- );
- ChNum=0;
-);
-if(key()=="T",//Title
- Maketitle();
-);
-if(key()=="P",//ParaF
- Parafolder();
-);
-if(key()=="A",//Animatefile
- Animatefile();
-);
-if(key()=="S",//Slide
- Mkslides();
-);
-if(key()=="D",//Digest(Summary)
- Mkslidesummary();
-);
-if(key()=="M",//Meshlab
- Mkviewobj(OCNAME,OBJCMD,OCOPTION);
-);
-if(key()=="J",//KeTCindyJS
- Mkketcindyjs();
-);
-
-if(key()=="0",
- Dispchoice();
-);
-if(key()=="9",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=append(Ch,ChNum);
- ChNum=Ch_(length(Ch)-1);
- Ch=remove(Ch,[ChNum]);
- Ch=sort(Ch);
- );
- );
- Dispchoice();
-);
-if(key()=="+",
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="-",
- ChNum=ChNum-1;
- Dispchoice();
-);
-if(key()=="<",
- if(length(select(Ch,#==ChNum))==0,
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- ChNum=ChNum+1;
- );
- Dispchoice();
-);
-if(key()=="^",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=ChNum+1;
- Dispchoice();
-);
-if(key()=="~",
- if(length(Ch)==0,
- Ch=[ChNum];
- ,
- if(!contains(Ch,ChNum),
- Ch=Ch_(1..(length(Ch)-1));
- Ch=append(Ch,ChNum);
- Ch=sort(Ch);
- );
- );
- ChNum=max(ChNum-1,1);
- Dispchoice();
-);
-if(key()==">",
- if(length(Ch)>0,
- ChNum=Ch_(length(Ch));
- Ch=Remove(Ch,[ChNum]);
- );
- Dispchoice();
-);
+if(key()=="?" % keydownlist()==[32],
+ if(!isreal(NumTyped),NumTyped=0);
+ if(NumTyped==0,
+ DispStr=
+ "Figure(1) Parent(2) Parapara(3) Movie(4) Surf(5)";
+ );
+ if(NumTyped==1,
+ DispStr=
+ "Shift+ Title(T) Para(P) AniF(A) Slide(S) Digest(D)";
+ );
+ if(NumTyped==2,
+ DispStr="Shift+ Meshlab(M) KeTCindyJS(J)";
+ );
+ if(NumTyped==3,
+ DispStr=
+ "Ch : disp(0) chg(9) N(+,-) add(<) rmv(>)";
+ );
+ drawtext(mouse().xy,DispStr,size->24);
+ NumTyped=mod(NumTyped+1,4);
+,
+ NumTyped=0;
+);
+if(key()=="1",//Mkfigure
+ Viewtex();
+ kc();
+);
+if(key()=="2",//Mkparent
+ Viewparent();
+);
+if(key()=="3",//Flipbook(Parapara)
+ Flipbook();
+);
+if(key()=="4",//Texmovie
+ Texmovie();
+ kc();
+);
+if(key()=="5",//Surface
+ Cheader();
+ Cmain();
+ kcC();
+ if(ChNum>0,
+ Ch=[ChNum];
+ ,
+ Ch=[1];
+ );
+ ChNum=0;
+);
+if(key()=="T",//Title
+ Maketitle();
+);
+if(key()=="P",//ParaF
+ Parafolder();
+);
+if(key()=="A",//Animatefile
+ Animatefile();
+);
+if(key()=="S",//Slide
+ Mkslides();
+);
+if(key()=="D",//Digest(Summary)
+ Mkslidesummary();
+);
+if(key()=="M",//Meshlab
+ Mkviewobj(OCNAME,OBJCMD,OCOPTION);
+);
+if(key()=="J",//KeTCindyJS
+ Mkketcindyjs();
+);
+
+if(key()=="0",
+ Dispchoice();
+);
+if(key()=="9",
+ if(length(Ch)==0,
+ Ch=[ChNum];
+ ,
+ if(!contains(Ch,ChNum),
+ Ch=append(Ch,ChNum);
+ ChNum=Ch_(length(Ch)-1);
+ Ch=remove(Ch,[ChNum]);
+ Ch=sort(Ch);
+ );
+ );
+ Dispchoice();
+);
+if(key()=="+",
+ ChNum=ChNum+1;
+ Dispchoice();
+);
+if(key()=="-",
+ ChNum=ChNum-1;
+ Dispchoice();
+);
+if(key()=="<",
+ if(length(select(Ch,#==ChNum))==0,
+ Ch=append(Ch,ChNum);
+ Ch=sort(Ch);
+ ChNum=ChNum+1;
+ );
+ Dispchoice();
+);
+if(key()=="^",
+ if(length(Ch)==0,
+ Ch=[ChNum];
+ ,
+ if(!contains(Ch,ChNum),
+ Ch=Ch_(1..(length(Ch)-1));
+ Ch=append(Ch,ChNum);
+ Ch=sort(Ch);
+ );
+ );
+ ChNum=ChNum+1;
+ Dispchoice();
+);
+if(key()=="~",
+ if(length(Ch)==0,
+ Ch=[ChNum];
+ ,
+ if(!contains(Ch,ChNum),
+ Ch=Ch_(1..(length(Ch)-1));
+ Ch=append(Ch,ChNum);
+ Ch=sort(Ch);
+ );
+ );
+ ChNum=max(ChNum-1,1);
+ Dispchoice();
+);
+if(key()==">",
+ if(length(Ch)>0,
+ ChNum=Ch_(length(Ch));
+ Ch=Remove(Ch,[ChNum]);
+ );
+ Dispchoice();
+);
diff --git a/texmf-dist/doc/support/ketcindy/ScriptDraw.txt b/texmf-dist/doc/support/ketcindy/Scriptfigure.txt
index 7e2f2120..9a330d46 100644
--- a/texmf-dist/doc/support/ketcindy/ScriptDraw.txt
+++ b/texmf-dist/doc/support/ketcindy/Scriptfigure.txt
@@ -1,19 +1,16 @@
-Fhead="new1basic";
-Texparent="";
-Slidename="";
-
-Ketinit();
-
-Putpoint("A",[-4,0],A.xy);
-Putpoint("B",[4,0],B.xy);
-Putpoint("C",[1,4],C.xy);
- // points can be put with Cindy button.
-
-Listplot([A,B,C,A]);
-Plotdata("1","sin(x)","x",["da"]);
-Paramplot("1","3*[cos(3*t),sin(2*t)]","t=[0,4*pi]",["Num=200","do"]);
-
-Windispg();
-
-//Help("Plotdata");
-//Help("Option");
+Ketinit();
+Texparent="";
+
+Putpoint("A",[-4,0],A.xy);
+Putpoint("B",[4,0],B.xy);
+Putpoint("C",[1,4],C.xy);
+ // points can be put with Cindy button.
+
+Listplot([A,B,C,A]);
+Plotdata("1","sin(x)","x",["da"]);
+Paramplot("1","3*[cos(3*t),sin(2*t)]","t=[0,4*pi]",["Num=200","do"]);
+
+Windispg();
+
+//Help("Plotdata");
+//Help("Option");
diff --git a/texmf-dist/doc/support/ketcindy/Scriptkelib.txt b/texmf-dist/doc/support/ketcindy/Scriptkelib.txt
new file mode 100644
index 00000000..bd9197ba
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/Scriptkelib.txt
@@ -0,0 +1,4 @@
+use("KetCindyPlugin");
+Dircdy=loaddirectory;
+setdirectory(plugindirectory);
+import("dirhead.txt");
diff --git a/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt b/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt
new file mode 100644
index 00000000..a703b64c
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/Scriptketlibsci.txt
@@ -0,0 +1,8 @@
+use("KetCindyPlugin");
+Dircdy=loaddirectory;
+setdirectory(plugindirectory);
+import("dirheadsci.txt");
+//PathS=replace(PathS,"6.0.0","5.5.2");
+
+//Ketinit();
+//Ketinit3d();
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy
index cd626e73..23b2ec4a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figure.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy
index ee44f56d..0ce178ec 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0101figurepdf.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy
index bd359287..7c5f4f7c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0102figure2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy
index 8bb62ade..adb3f452 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0103polygon.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy
index a7d2a3ed..13c7b8a4 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0104shade.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy
index 56349f10..d928672b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0105vector.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy
index fc9064e4..1723fe89 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowdotfill.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy
index 57a8d62e..459feeac 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0106bowhatch.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy
index 4ac2609c..cd2cb8e4 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0107hyperbolahatch.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy
index 520d7188..6c5668e5 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0108cycloid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy
index a7197bd5..22995717 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0109epitrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy
index 333fdc48..ce4cc21d 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s01figure/s0110hypotrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy
index e917e8fe..375e477f 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0201basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy
index d860c23f..fb5f231c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0202graph1.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy
index 85305550..577cd958 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0203graph2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy
index f53f0f62..274c9663 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0204graph3.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy
index 456dcb61..f07f094a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0205coniccurve.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy
index 100a2fe7..3aabbc48 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0206defexp.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy
index 02d98dde..4f3f48b0 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0207envelope.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy
index 464300b2..866e0cac 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0208intersecthatch.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy
index 82596fd1..5ef84953 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0209diffeq.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy
index 5e6a5d9a..df228044 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0210diffeq2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy
index b0cbdadb..dba596a3 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0211plotdataS.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy
index 662dd917..3ad386c7 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0212implicit.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy
index b9eb8a11..a59d5b99 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s02graph/s0213implicithatch.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy
index f58ac055..edbd6159 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0301table.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy
index acb4b25b..fb5f02d6 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy
index 176014a0..87cfe10f 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0302table2line.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy
index d08a9011..1a127585 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0303papersquared.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy
index b2ec78d6..f46a2a29 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0304graphforincanddec.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy
index 1da8d515..c664dbb9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s03table/s0305incanddec.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy
index 60f1c678..9b74b35e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0401bezierbasic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy
index d4b57c7f..0a637398 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0402bezier2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy
index cf1cf323..4a295326 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0403bezierspline.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy
index 78164f18..cde6c433 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404heart.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404mtfuji.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404mtfuji.cdy
deleted file mode 100644
index 9720fe79..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0404mtfuji.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy
index 2ca3572c..06bb52f8 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0405dogwalk.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406heart.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406heart.cdy
deleted file mode 100644
index 0f6a51f0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406heart.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy
index f7a08f55..2b20596a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s04bezier/s0406mtfuji.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy
index 974712f6..3850f7e0 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy
index 2a4150d2..d930b0e3 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0501plane.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy
index 6095bc89..57cf4313 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0502spacecurve.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy
index 57023a22..7be0735c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0503perp.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy
index 853ad6a3..20a97e8e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0504embed.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy
index 6833edb7..ae22c810 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0505bezier3d.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy
index 3c7ba160..ef336e0a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0506embedhatch.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy
index a3a48f3b..beee239a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0507polyhedron.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy
index 532c7754..66164a2d 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s0508concatobj.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy
index a2fdbc99..a9722248 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05091tetra.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy
index 2040453d..0f9663ee 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05092cubiccut.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy
index 20a0e3d5..d2cb0ed5 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s05spacefigure/s05093cubiccut2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/CindyScriptset.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/CindyScriptset.txt
deleted file mode 100644
index 3d0e239a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/CindyScriptset.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-use("KetCindyPlugin");
-if(isexists(plugindirectory,"dirhead.txt"),
- setdirectory(plugindirectory);
- import("dirhead.txt");
-,
- Dirhead=getdirhead();
-);
-Shellfile="";
-setdirectory(Dirhead);
-import("setketcindy.txt");
-import("ketoutset.txt");
-
-setdirectory(Dirwork);
-
-Helplist(["+","+3d","+mv"],"helpJ");
-
-Shellfile="mv"; \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy
index 50896c81..13ee3cd0 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0601cycloid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy
index c07f11d3..0bb3cb64 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0602diffeq.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy
index 6c57146d..e762e8db 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0603envelope.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy
index f46a4bf9..64374352 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0604diffeq2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy
index bcd417d7..9e1d541c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0605cycloid2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy
index 1f4de6f1..df32beb3 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0606epitrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy
index 5739299d..b49ee406 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0607hypotrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0608cycloid3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0608cycloid3.cdy
deleted file mode 100644
index f1d8418a..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s0608cycloid3.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/CindyScriptset.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/CindyScriptset.txt
new file mode 100644
index 00000000..7bbd6f0f
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/CindyScriptset.txt
@@ -0,0 +1,24 @@
+use("KetCindyPlugin");
+Sciver="5.5.2";
+if(iswindows(),
+ Pathhead="C:\kettex\texlive";
+ Dirhead=Pathhead+"\texmf-dist\scripts\ketcindy";
+ PathThead=Pathhead+"\bin\win32\";
+ Homehead="C:\Users";
+ Dirfile=Homehead+"\"+getname()+"\ketcindy";
+);
+if(ismacosx(),
+ Pathhead="/Applications/kettex/texlive";
+ Dirhead=Pathhead+"/texmf-dist/scripts/ketcindy";
+ PathThead=Pathhead+"/bin/x86_64-darwin/";
+ Homehead="/Users";
+ Dirfile=gethome()+"/ketcindy";
+);
+setdirectory(Dirfile);
+import("setketcindysci.txt");
+import("ketoutsetsci.txt");
+Mackc="open";
+setdirectory(Dirwork);
+Helplist(["+","+3d","+mv"],"helpJ");
+
+Pathpdf=PathAd;
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0601cycloid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0601cycloid.cdy
new file mode 100644
index 00000000..ba340f66
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0601cycloid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0602diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0602diffeq.cdy
new file mode 100644
index 00000000..e2298ba3
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0602diffeq.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0603envelope.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0603envelope.cdy
new file mode 100644
index 00000000..d790c529
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0603envelope.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0604diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0604diffeq2.cdy
new file mode 100644
index 00000000..85ee5df7
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0604diffeq2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0605cycloid2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0605cycloid2.cdy
new file mode 100644
index 00000000..984566e9
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0605cycloid2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0606epitrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0606epitrochoid.cdy
new file mode 100644
index 00000000..c1d8f2a7
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0606epitrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0607hypotrochoid.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0607hypotrochoid.cdy
new file mode 100644
index 00000000..5f3e5438
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0607hypotrochoid.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0608cycloid3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0608cycloid3.cdy
new file mode 100644
index 00000000..1cb5266a
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s06animation/s06animation(Scilab)/s0608cycloid3.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.aux b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.aux
deleted file mode 100644
index 3659348e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.aux
+++ /dev/null
@@ -1,6 +0,0 @@
-\relax
-\providecommand\pbs@newkey[2]{}\providecommand\pbs@seq@push@cx[2]{}\providecommand\pbs@at@end@dvi@check{}
-\pbs@at@end@dvi@check
-\providecommand\@anim@newkey[2]{}
-\providecommand\mix@newkey[2]{}
-\pbs@newkey{pbs@last@page}{1}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.log b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.log
deleted file mode 100644
index ba2c1c51..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.log
+++ /dev/null
@@ -1,584 +0,0 @@
-This is e-upTeX, Version 3.14159265-p3.7-u1.21-160201-2.6 (utf8.uptex) (TeX Live 2016) (preloaded format=uplatex 2017.8.18) 14 OCT 2017 18:56
-entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
-**animatesinemove.tex
-(./animatesinemove.tex
-pLaTeX2e <2016/11/29u01> (based on LaTeX2e <2017/01/01> patch level 3)
-Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
-(/Applications/kettex/texlive/texmf-dist/tex/uplatex/base/ujarticle.cls
-Document Class: ujarticle 2016/11/22 v1.7b-u00 Standard upLaTeX class
-\c@@paper=\count82
-(/Applications/kettex/texlive/texmf-dist/tex/uplatex/base/ujsize10.clo
-File: ujsize10.clo 2016/11/22 v1.7b-u00 Standard upLaTeX file (size option)
-LaTeX Font Info: Font shape `JT2/mc/m/n' will be
-(Font) scaled to size 9.6222pt on input line 28.
-LaTeX Font Info: Font shape `JY2/mc/m/n' will be
-(Font) scaled to size 9.6222pt on input line 28.
-)
-\c@part=\count83
-\c@section=\count84
-\c@subsection=\count85
-\c@subsubsection=\count86
-\c@paragraph=\count87
-\c@subparagraph=\count88
-\c@figure=\count89
-\c@table=\count90
-\abovecaptionskip=\skip41
-\belowcaptionskip=\skip42
-\symmincho=\mathgroup4
-LaTeX Font Info: Overwriting symbol font `mincho' in version `bold'
-(Font) JY2/mc/m/n --> JY2/gt/m/n on input line 580.
-\toclineskip=\dimen118
-\@lnumwidth=\dimen119
-\bibindent=\dimen120
-\heisei=\count91
-)
-(/Users/takatoosetsuo/ketcindy/ketpicstyle/ketpic.sty
-\c@ketpicctra=\count92
-\c@ketpicctrb=\count93
-\c@ketpicctrc=\count94
-\c@ketpicctrd=\count95
-\c@ketpicctre=\count96
-\c@ketpicctrf=\count97
-\c@ketpicctrg=\count98
-\c@ketpicctrh=\count99
-\c@ketpicctri=\count100
-\c@ketpicctrj=\count101
-\Width=\skip43
-\Height=\skip44
-\Depth=\skip45
-)
-(/Users/takatoosetsuo/ketcindy/ketpicstyle/ketlayer.sty
-\layercurrentunit=\skip46
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
-Package: amsmath 2016/11/05 v2.16a AMS math features
-\@mathmargin=\skip47
-
-For additional information on amsmath, use the `?' option.
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
-Package: amstext 2000/06/29 v2.01 AMS text
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
-File: amsgen.sty 1999/11/30 v2.0 generic functions
-\@emptytoks=\toks15
-\ex@=\dimen121
-))
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
-Package: amsbsy 1999/11/29 v1.2d Bold Symbols
-\pmbraise@=\dimen122
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
-Package: amsopn 2016/03/08 v2.02 operator names
-)
-\inf@bad=\count102
-LaTeX Info: Redefining \frac on input line 213.
-\uproot@=\count103
-\leftroot@=\count104
-LaTeX Info: Redefining \overline on input line 375.
-\classnum@=\count105
-\DOTSCASE@=\count106
-LaTeX Info: Redefining \ldots on input line 472.
-LaTeX Info: Redefining \dots on input line 475.
-LaTeX Info: Redefining \cdots on input line 596.
-\Mathstrutbox@=\box41
-\strutbox@=\box42
-\big@size=\dimen123
-LaTeX Font Info: Redeclaring font encoding OML on input line 712.
-LaTeX Font Info: Redeclaring font encoding OMS on input line 713.
-\macc@depth=\count107
-\c@MaxMatrixCols=\count108
-\dotsspace@=\muskip10
-\c@parentequation=\count109
-\dspbrk@lvl=\count110
-\tag@help=\toks16
-\row@=\count111
-\column@=\count112
-\maxfields@=\count113
-\andhelp@=\toks17
-\eqnshift@=\dimen124
-\alignsep@=\dimen125
-\tagshift@=\dimen126
-\tagwidth@=\dimen127
-\totwidth@=\dimen128
-\lineht@=\dimen129
-\@envbody=\toks18
-\multlinegap=\skip48
-\multlinetaggap=\skip49
-\mathdisplay@stack=\toks19
-LaTeX Info: Redefining \[ on input line 2817.
-LaTeX Info: Redefining \] on input line 2818.
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
-Package: amssymb 2013/01/14 v3.01 AMS font symbols
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
-Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
-\symAMSa=\mathgroup5
-\symAMSb=\mathgroup6
-LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
-(Font) U/euf/m/n --> U/euf/b/n on input line 106.
-))
-(/Applications/kettex/texlive/texmf-dist/tex/latex/tools/bm.sty
-Package: bm 2017/01/16 v1.2c Bold Symbol Support (DPC/FMi)
-\symboldoperators=\mathgroup7
-\symboldletters=\mathgroup8
-\symboldsymbols=\mathgroup9
-\symboldmincho=\mathgroup10
-LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 141.
-LaTeX Info: Redefining \bm on input line 207.
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/tools/enumerate.sty
-Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC)
-\@enLab=\toks20
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
-Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics/keyval.sty
-Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
-\KV@toks@=\toks21
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics/graphics.sty
-Package: graphics 2016/10/09 v1.0u Standard LaTeX Graphics (DPC,SPQR)
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics/trig.sty
-Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
-File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
-)
-Package graphics Info: Driver file: dvipdfmx.def on input line 99.
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
-File: dvipdfmx.def 2016/07/11 v4.12 LaTeX color/graphics driver for dvipdfmx (L
-3/ChoF)
-))
-\Gin@req@height=\dimen130
-\Gin@req@width=\dimen131
-) (/Applications/kettex/texlive/texmf-dist/tex/latex/animate/animate.sty
-Package: animate 2017/03/23 PDF animations from files and inline graphics
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/base/ifthen.sty
-Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
-)
-(/Applications/kettex/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
-Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
-)
-(/Applications/kettex/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
-Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/oberdiek/ifdraft.sty
-Package: ifdraft 2016/05/16 v1.4 Detect class options draft and final (HO)
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/tools/calc.sty
-Package: calc 2014/10/28 v4.3 Infix arithmetic (KKT,FJ)
-\calc@Acount=\count114
-\calc@Bcount=\count115
-\calc@Adimen=\dimen132
-\calc@Bdimen=\dimen133
-\calc@Askip=\skip50
-\calc@Bskip=\skip51
-LaTeX Info: Redefining \setlength on input line 80.
-LaTeX Info: Redefining \addtolength on input line 81.
-\calc@Ccount=\count116
-\calc@Cskip=\skip52
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/media9/pdfbase.sty
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
-Package: expl3 2017/04/01 L3 programming layer (loader)
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex
-Package: expl3 2017/04/01 L3 programming layer (code)
-\c_max_int=\count117
-\l_tmpa_int=\count118
-\l_tmpb_int=\count119
-\g_tmpa_int=\count120
-\g_tmpb_int=\count121
-\g__prg_map_int=\count122
-\c_log_iow=\count123
-\l_iow_line_count_int=\count124
-\l__iow_line_target_int=\count125
-\l__iow_one_indent_int=\count126
-\l__iow_indent_int=\count127
-\c_zero_dim=\dimen134
-\c_max_dim=\dimen135
-\l_tmpa_dim=\dimen136
-\l_tmpb_dim=\dimen137
-\g_tmpa_dim=\dimen138
-\g_tmpb_dim=\dimen139
-\c_zero_skip=\skip53
-\c_max_skip=\skip54
-\l_tmpa_skip=\skip55
-\l_tmpb_skip=\skip56
-\g_tmpa_skip=\skip57
-\g_tmpb_skip=\skip58
-\c_zero_muskip=\muskip11
-\c_max_muskip=\muskip12
-\l_tmpa_muskip=\muskip13
-\l_tmpb_muskip=\muskip14
-\g_tmpa_muskip=\muskip15
-\g_tmpb_muskip=\muskip16
-\l_keys_choice_int=\count128
-\c__fp_leading_shift_int=\count129
-\c__fp_middle_shift_int=\count130
-\c__fp_trailing_shift_int=\count131
-\c__fp_big_leading_shift_int=\count132
-\c__fp_big_middle_shift_int=\count133
-\c__fp_big_trailing_shift_int=\count134
-\c__fp_Bigg_leading_shift_int=\count135
-\c__fp_Bigg_middle_shift_int=\count136
-\c__fp_Bigg_trailing_shift_int=\count137
-\l__sort_length_int=\count138
-\l__sort_min_int=\count139
-\l__sort_top_int=\count140
-\l__sort_max_int=\count141
-\l__sort_true_max_int=\count142
-\l__sort_block_int=\count143
-\l__sort_begin_int=\count144
-\l__sort_end_int=\count145
-\l__sort_A_int=\count146
-\l__sort_B_int=\count147
-\l__sort_C_int=\count148
-\c_empty_box=\box43
-\l_tmpa_box=\box44
-\l_tmpb_box=\box45
-\g_tmpa_box=\box46
-\g_tmpb_box=\box47
-\l__coffin_internal_box=\box48
-\l__coffin_internal_dim=\dimen140
-\l__coffin_offset_x_dim=\dimen141
-\l__coffin_offset_y_dim=\dimen142
-\l__coffin_x_dim=\dimen143
-\l__coffin_y_dim=\dimen144
-\l__coffin_x_prime_dim=\dimen145
-\l__coffin_y_prime_dim=\dimen146
-\c_empty_coffin=\box49
-\l__coffin_aligned_coffin=\box50
-\l__coffin_aligned_internal_coffin=\box51
-\l_tmpa_coffin=\box52
-\l_tmpb_coffin=\box53
-\l__coffin_display_coffin=\box54
-\l__coffin_display_coord_coffin=\box55
-\l__coffin_display_pole_coffin=\box56
-\l__coffin_display_offset_dim=\dimen147
-\l__coffin_display_x_dim=\dimen148
-\l__coffin_display_y_dim=\dimen149
-\l__box_top_dim=\dimen150
-\l__box_bottom_dim=\dimen151
-\l__box_left_dim=\dimen152
-\l__box_right_dim=\dimen153
-\l__box_top_new_dim=\dimen154
-\l__box_bottom_new_dim=\dimen155
-\l__box_left_new_dim=\dimen156
-\l__box_right_new_dim=\dimen157
-\l__box_internal_box=\box57
-\l__coffin_bounding_shift_dim=\dimen158
-\l__coffin_left_corner_dim=\dimen159
-\l__coffin_right_corner_dim=\dimen160
-\l__coffin_bottom_corner_dim=\dimen161
-\l__coffin_top_corner_dim=\dimen162
-\l__coffin_scaled_total_height_dim=\dimen163
-\l__coffin_scaled_width_dim=\dimen164
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
-File: l3dvidpfmx.def 2017/03/18 v L3 Experimental driver: dvipdfmx
-\l__driver_tmp_box=\box58
-))
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e
-.sty
-Package: l3keys2e 2017/04/01 LaTeX2e option processing using LaTeX3 keys
-)
-Package: pdfbase 2017/03/23 v0.15 driver independent access to low-level PDF fe
-atures
-\g_pbs_page_int=\count149
-\g_pbs_obj_int=\count150
-\g_pbs_oc_int=\count151
-) (/Applications/kettex/texlive/texmf-dist/tex/latex/ocgx2/ocgbase.sty
-Package: ocgbase 2017/03/30 v0.10 support package for ocgx2.sty
-)
-\@anim@box=\box59
-\@anim@measbox=\box60
-\@anim@tmpdima=\dimen165
-\@anim@tmpdimb=\dimen166
-\@anim@num=\count152
-\@anim@curframe=\count153
-\@anim@curframe@zb=\count154
-\@anim@resizeflags=\count155
-\@anim@skipfram=\count156
-\@anim@mulframecnt=\count157
-\@anim@@tmlnfile=\read1
-\@anim@tmpcnt=\count158
-\c@@anim@ltxcnt=\count159
-\@anim@curlayer=\count160
-\@anim@lineno=\count161
-\@anim@curfield=\count162
-\@anim@@resizeflags=\count163
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
-Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
-File: color.cfg 2016/01/02 v1.6 sample color configuration
-)
-Package xcolor Info: Driver file: dvips.def on input line 225.
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/graphics-def/dvips.def
-File: dvips.def 2016/07/10 v3.1a Driver-dependent file (DPC,SPQR)
-)
-Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
-Package xcolor Info: Model `RGB' extended on input line 1364.
-Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
-Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
-Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
-Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
-Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
-Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/media9/media9.sty
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3experimental/l3str/l3regex
-.sty
-Package: l3regex 2017/04/01 L3 Experimental regular expressions
-
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3experimental/l3str/l3tl-bu
-ild.sty
-Package: l3tl-build 2017/04/01 L3 Experimental token list construction
-\l__tl_build_start_index_int=\count164
-\l__tl_build_index_int=\count165
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3experimental/l3str/l3tl-an
-alysis.sty
-Package: l3tl-analysis 2017/04/01 L3 Experimental token list analysis
-\l__tl_analysis_normal_int=\count166
-\l__tl_analysis_index_int=\count167
-\l__tl_analysis_nesting_int=\count168
-\l__tl_analysis_type_int=\count169
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3experimental/l3str/l3str-c
-onvert.sty
-Package: l3str-convert 2017/04/01 L3 Experimental string encoding conversions
-\l__str_internal_int=\count170
-)
-\l__regex_internal_a_int=\count171
-\l__regex_internal_b_int=\count172
-\l__regex_internal_c_int=\count173
-\l__regex_balance_int=\count174
-\l__regex_group_level_int=\count175
-\l__regex_mode_int=\count176
-\c__regex_cs_in_class_mode_int=\count177
-\c__regex_cs_mode_int=\count178
-\l__regex_catcodes_int=\count179
-\l__regex_default_catcodes_int=\count180
-\c__regex_catcode_L_int=\count181
-\c__regex_catcode_O_int=\count182
-\c__regex_catcode_A_int=\count183
-\c__regex_all_catcodes_int=\count184
-\l__regex_show_lines_int=\count185
-\l__regex_min_state_int=\count186
-\l__regex_max_state_int=\count187
-\l__regex_left_state_int=\count188
-\l__regex_right_state_int=\count189
-\l__regex_capturing_group_int=\count190
-\l__regex_min_pos_int=\count191
-\l__regex_max_pos_int=\count192
-\l__regex_current_pos_int=\count193
-\l__regex_start_pos_int=\count194
-\l__regex_success_pos_int=\count195
-\l__regex_current_char_int=\count196
-\l__regex_current_catcode_int=\count197
-\l__regex_last_char_int=\count198
-\l__regex_case_changed_char_int=\count199
-\l__regex_current_state_int=\count266
-\l__regex_step_int=\count267
-\l__regex_min_active_int=\count268
-\l__regex_max_active_int=\count269
-\l__regex_replacement_csnames_int=\count270
-\l__regex_match_count_int=\count271
-\l__regex_submatch_int=\count272
-\l__regex_zeroth_submatch_int=\count273
-)
-(/Applications/kettex/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-Package: xparse 2017/04/01 L3 Experimental document command parser
-\l__xparse_current_arg_int=\count274
-\g__xparse_grabber_int=\count275
-\l__xparse_m_args_int=\count276
-\l__xparse_mandatory_args_int=\count277
-\l__xparse_v_nesting_int=\count278
-) (/Applications/kettex/texlive/texmf-dist/tex/generic/oberdiek/atbegshi.sty
-Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
-
-(/Applications/kettex/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
-Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
-)
-(/Applications/kettex/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
-Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
-))
-Package: media9 2017/03/23 v0.78 acrobat-9/X compatible media
-\g_mix_pkgresizeflag_int=\count279
-\l_mix_poster_box=\box61
-\g_mix_wd_dim=\dimen167
-\g_mix_ht_dim=\dimen168
-\g_mix_dp_dim=\dimen169
-\g_mix_rmcnt_int=\count280
-\l_mix_viewcnt_int=\count281
-\g@mix@page@int=\count282
-\g_mix_resizeflag_int=\count283
-\l_mix_lineno_int=\count284
-.................................................
-. LaTeX info: "xparse/define-command"
-.
-. Defining command \addmediapath with sig. 'm' on line 808.
-.................................................
-\l_mix_pbtn_box=\box62
-\mix@btn@dim=\dimen170
-.................................................
-. LaTeX info: "xparse/define-command"
-.
-. Defining command \includemedia with sig. 'O{}mm' on line 1216.
-.................................................
-\g_mix_mbtncnt_int=\count285
-.................................................
-. LaTeX info: "xparse/define-command"
-.
-. Defining command \mediabutton with sig. 'O{}m' on line 2418.
-.................................................
-)
-(/Applications/kettex/texlive/texmf-local/tex/latex/ketpicstyle/ketmedia.sty)
-(./animatesinemove.aux)
-\openout1 = `animatesinemove.aux'.
-
-LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for JY2/mc/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-LaTeX Font Info: Checking defaults for JT2/mc/m/n on input line 13.
-LaTeX Font Info: ... okay on input line 13.
-\AtBeginShipoutBox=\box63
- (./fig/animsinemove.tex
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p001.tex
-LaTeX Font Info: Font shape `JT2/mc/m/n' will be
-(Font) scaled to size 13.85594pt on input line 8.
-LaTeX Font Info: Font shape `JY2/mc/m/n' will be
-(Font) scaled to size 13.85594pt on input line 8.
-LaTeX Font Info: Font shape `JT2/mc/bx/n' in size <14.4> not available
-(Font) Font shape `JT2/gt/m/n' tried instead on input line 8.
-LaTeX Font Info: Font shape `JT2/gt/m/n' will be
-(Font) scaled to size 13.85594pt on input line 8.
-LaTeX Font Info: Font shape `JY2/mc/bx/n' in size <14.4> not available
-(Font) Font shape `JY2/gt/m/n' tried instead on input line 8.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 13.85594pt on input line 8.
-LaTeX Font Info: Font shape `JT2/mc/bx/n' in size <9> not available
-(Font) Font shape `JT2/gt/m/n' tried instead on input line 9.
-LaTeX Font Info: Font shape `JT2/gt/m/n' will be
-(Font) scaled to size 8.65997pt on input line 9.
-LaTeX Font Info: Font shape `JY2/mc/bx/n' in size <9> not available
-(Font) Font shape `JY2/gt/m/n' tried instead on input line 9.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 8.65997pt on input line 9.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 5.77332pt on input line 78.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 4.8111pt on input line 78.
-LaTeX Font Info: Try loading font information for U+msa on input line 78.
- (/Applications/kettex/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
-File: umsa.fd 2013/01/14 v3.01 AMS symbols A
-)
-LaTeX Font Info: Try loading font information for U+msb on input line 78.
-(/Applications/kettex/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
-File: umsb.fd 2013/01/14 v3.01 AMS symbols B
-)
-LaTeX Font Info: Font shape `JY2/mc/m/n' will be
-(Font) scaled to size 6.73553pt on input line 90.
-LaTeX Font Info: Font shape `JY2/mc/m/n' will be
-(Font) scaled to size 4.8111pt on input line 90.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 9.6222pt on input line 90.
-LaTeX Font Info: Font shape `JY2/gt/m/n' will be
-(Font) scaled to size 6.73553pt on input line 90.
-) <a0,fr0>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p002.tex) <a0,fr1>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p003.tex) <a0,fr2>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p004.tex) <a0,fr3>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p005.tex) <a0,fr4>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p006.tex) <a0,fr5>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p007.tex) <a0,fr6>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p008.tex) <a0,fr7>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p009.tex) <a0,fr8>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p010.tex) <a0,fr9>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p011.tex) <a0,fr10>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p012.tex) <a0,fr11>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p013.tex) <a0,fr12>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p014.tex) <a0,fr13>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p015.tex) <a0,fr14>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p016.tex) <a0,fr15>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p017.tex) <a0,fr16>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p018.tex) <a0,fr17>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p019.tex) <a0,fr18>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p020.tex) <a0,fr19>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p021.tex) <a0,fr20>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p022.tex) <a0,fr21>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p023.tex) <a0,fr22>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p024.tex) <a0,fr23>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p025.tex) <a0,fr24>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p026.tex) <a0,fr25>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p027.tex) <a0,fr26>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p028.tex) <a0,fr27>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p029.tex) <a0,fr28>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p030.tex) <a0,fr29>
-(/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/sinemov
-e/p031.tex) <a0,fr30>) [1
-
-] (./animatesinemove.aux) )
-Here is how much of TeX's memory you used:
- 12651 strings out of 495145
- 244889 string characters out of 6183910
- 496947 words of memory out of 5000000
- 15910 multiletter control sequences out of 15000+600000
- 15144 words of font info for 69 fonts, out of 8000000 for 9000
- 14 hyphenation exceptions out of 8191
- 40i,8n,57p,10417b,382s stack positions out of 5000i,500n,10000p,200000b,80000s
-
-Output written on animatesinemove.dvi (1 page, 135920 bytes).
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.pdf b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.pdf
deleted file mode 100644
index bc6f3d21..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.tex
deleted file mode 100644
index 40a1700b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/animatesinemove.tex
+++ /dev/null
@@ -1,18 +0,0 @@
-\documentclass[landscape]{ujarticle}
-\special{papersize=\the\paperwidth,\the\paperheight}
-\usepackage{/Users/takatoosetsuo/ketcindy/ketpicstyle/ketpic}
-\usepackage{/Users/takatoosetsuo/ketcindy/ketpicstyle/ketlayer}
-\usepackage{amsmath,amssymb}
-\usepackage{bm,enumerate}
-\usepackage[dvipdfmx]{graphicx}
-\usepackage[dvipdfmx]{animate}
-\usepackage{xcolor}
-\usepackage[dvipdfmx]{media9}
-\usepackage{ketmedia}
-
-\begin{document}
-
-\begin{center}
-\input{fig/animsinemove.tex}
-\end{center}
-\end{document}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/.RData b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/.RData
deleted file mode 100644
index ca25dbc3..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/.RData
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/cindyscreen.pdf b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/cindyscreen.pdf
deleted file mode 100644
index 54b9d79e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/cindyscreen.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/figsin.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/figsin.tex
deleted file mode 100644
index 3e5b13a5..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/figsin.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-%%% /Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides/fig/figsin.tex 1cm
-%%%
-{\unitlength=1cm%
-\begin{picture}%
-(5,5)(-2.5,-2.5)%
-\special{pn 8}%
-%
-\Large\bf\boldmath%
-\small%
-\special{pa -984 236}\special{pa -945 266}\special{pa -906 294}\special{pa -866 318}%
-\special{pa -827 340}\special{pa -787 358}\special{pa -748 373}\special{pa -709 383}%
-\special{pa -669 390}\special{pa -630 394}\special{pa -591 393}\special{pa -551 388}%
-\special{pa -512 379}\special{pa -472 367}\special{pa -433 351}\special{pa -394 331}%
-\special{pa -354 308}\special{pa -315 282}\special{pa -276 254}\special{pa -236 222}%
-\special{pa -197 189}\special{pa -157 153}\special{pa -118 116}\special{pa -79 78}%
-\special{pa -39 39}\special{pa 0 -0}\special{pa 39 -39}\special{pa 79 -78}%
-\special{pa 118 -116}\special{pa 157 -153}\special{pa 197 -189}\special{pa 236 -222}%
-\special{pa 276 -254}\special{pa 315 -282}\special{pa 354 -308}\special{pa 394 -331}%
-\special{pa 433 -351}\special{pa 472 -367}\special{pa 512 -379}\special{pa 551 -388}%
-\special{pa 591 -393}\special{pa 630 -394}\special{pa 669 -390}\special{pa 709 -383}%
-\special{pa 748 -373}\special{pa 787 -358}\special{pa 827 -340}\special{pa 866 -318}%
-\special{pa 906 -294}\special{pa 945 -266}\special{pa 984 -236}%
-\special{fp}%
-\special{pa -984 -394}\special{pa -946 -394}\special{fp}\special{pa -907 -394}\special{pa -868 -394}\special{fp}%
-\special{pa -830 -394}\special{pa -791 -394}\special{fp}\special{pa -753 -394}\special{pa -714 -394}\special{fp}%
-\special{pa -675 -394}\special{pa -637 -394}\special{fp}\special{pa -598 -394}\special{pa -560 -394}\special{fp}%
-\special{pa -521 -394}\special{pa -482 -394}\special{fp}\special{pa -444 -394}\special{pa -405 -394}\special{fp}%
-\special{pa -367 -394}\special{pa -328 -394}\special{fp}\special{pa -289 -394}\special{pa -251 -394}\special{fp}%
-\special{pa -212 -394}\special{pa -174 -394}\special{fp}\special{pa -135 -394}\special{pa -96 -394}\special{fp}%
-\special{pa -58 -394}\special{pa -19 -394}\special{fp}\special{pa 19 -394}\special{pa 58 -394}\special{fp}%
-\special{pa 96 -394}\special{pa 135 -394}\special{fp}\special{pa 174 -394}\special{pa 212 -394}\special{fp}%
-\special{pa 251 -394}\special{pa 289 -394}\special{fp}\special{pa 328 -394}\special{pa 367 -394}\special{fp}%
-\special{pa 405 -394}\special{pa 444 -394}\special{fp}\special{pa 482 -394}\special{pa 521 -394}\special{fp}%
-\special{pa 560 -394}\special{pa 598 -394}\special{fp}\special{pa 637 -394}\special{pa 675 -394}\special{fp}%
-\special{pa 714 -394}\special{pa 753 -394}\special{fp}\special{pa 791 -394}\special{pa 830 -394}\special{fp}%
-\special{pa 868 -394}\special{pa 907 -394}\special{fp}\special{pa 946 -394}\special{pa 984 -394}\special{fp}%
-%
-%
-\special{pa -984 394}\special{pa -946 394}\special{fp}\special{pa -907 394}\special{pa -868 394}\special{fp}%
-\special{pa -830 394}\special{pa -791 394}\special{fp}\special{pa -753 394}\special{pa -714 394}\special{fp}%
-\special{pa -675 394}\special{pa -637 394}\special{fp}\special{pa -598 394}\special{pa -560 394}\special{fp}%
-\special{pa -521 394}\special{pa -482 394}\special{fp}\special{pa -444 394}\special{pa -405 394}\special{fp}%
-\special{pa -367 394}\special{pa -328 394}\special{fp}\special{pa -289 394}\special{pa -251 394}\special{fp}%
-\special{pa -212 394}\special{pa -174 394}\special{fp}\special{pa -135 394}\special{pa -96 394}\special{fp}%
-\special{pa -58 394}\special{pa -19 394}\special{fp}\special{pa 19 394}\special{pa 58 394}\special{fp}%
-\special{pa 96 394}\special{pa 135 394}\special{fp}\special{pa 174 394}\special{pa 212 394}\special{fp}%
-\special{pa 251 394}\special{pa 289 394}\special{fp}\special{pa 328 394}\special{pa 367 394}\special{fp}%
-\special{pa 405 394}\special{pa 444 394}\special{fp}\special{pa 482 394}\special{pa 521 394}\special{fp}%
-\special{pa 560 394}\special{pa 598 394}\special{fp}\special{pa 637 394}\special{pa 675 394}\special{fp}%
-\special{pa 714 394}\special{pa 753 394}\special{fp}\special{pa 791 394}\special{pa 830 394}\special{fp}%
-\special{pa 868 394}\special{pa 907 394}\special{fp}\special{pa 946 394}\special{pa 984 394}\special{fp}%
-%
-%
-\special{pa -984 -0}\special{pa 984 -0}%
-\special{fp}%
-\special{pa 0 984}\special{pa 0 -984}%
-\special{fp}%
-\settowidth{\Width}{$x$}\setlength{\Width}{0\Width}%
-\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
-\put(2.5500000,0.0000000){\hspace*{\Width}\raisebox{\Height}{$x$}}%
-%
-\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
-\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{\Depth}%
-\put(0.0000000,2.5500000){\hspace*{\Width}\raisebox{\Height}{$y$}}%
-%
-\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
-\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
-\put(-0.0500000,-0.0500000){\hspace*{\Width}\raisebox{\Height}{O}}%
-%
-\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex
deleted file mode 100644
index 3ff43765..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slide0.tex
+++ /dev/null
@@ -1,11 +0,0 @@
-{\Large\bf
-\color[cmyk]{1,1,0,0}
-
-\begin{layer}{120}{0}
-{\Huge \putnotes{60}{20}{メインタイトル}}
-\putnotes{60}{50}{名前}
-\putnotes{60}{60}{所属}
-\putnotes{60}{70}{情報}
-\end{layer}
-
-}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slideE.tex b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slideE.tex
deleted file mode 100644
index 86267735..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/fig/slideE.tex
+++ /dev/null
@@ -1,11 +0,0 @@
-{\Large\bf
-\color[cmyk]{1,1,0,0}
-
-\begin{layer}{120}{0}
-{\Huge \putnotes{60}{20}{Main Title}}
-\putnotes{60}{50}{Name}
-\putnotes{60}{60}{Affliation}
-\putnotes{60}{70}{Info}
-\end{layer}
-
-}
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt
index d23a9bc5..6bd6ec5c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideE.txt
@@ -1 +1,146 @@
-Presentation with ketslide 2017.09.28 0. Making a file for slides. 1) Copy ketsample/s07slideのs0701basic.cdy to your work directory and rename it. Here, assume the file copied to Userhome/Desktop/work and renamed to sample.cdy. 2) Copy s0701basic.txt and rename it with the same head, too. 3) Double clicsample.cdy, modify Cindyscript/figures as follows. Line 5 : Slidework(gethome()+"/Desktop/work"); Line11: Edit the title. 4) Press Gear mark on the top. 1. Modify sample.txt. 0) The first line should be : title::slide0// 注1)バックグラウンド(例えばkabegamiとする)を入れるとき ・kabegami.texを作成してfigフォルダに入れる. ・sample.txtの指定は タイトル::slide0::kabegami// 注2)タイトル画面が不要の場合は, タイトル(またはtitle)::// 1)すべての行の最後は必ず // をつける. 注)urlの指定で//を用いるとき,||||とすると//に変換される. 2)各ブロックの引数の区切りは :: 3)コマンド ・タイトル::読込ファイル名(::壁紙ファイル)// 最初のタイトルページ 注)スライドに置く文字はslide0.cdyで作成 注)壁紙をつけるときは,もう1つ :: で区切ってファイル名を書く 注)preambleに追加するとき,::区切りで書き加え,最後に//をおく. ・new(::行下げ)::タイトル((::位置)::読み込みファイル)// mainslide 例)new::[10]::最初に::{50}{20}::figure// 注)読み込みファイルのサイズ変更するとき new::[10]::最初に::{50}{20}::figure,0.8// 他も同様 ・same(::行下げ)((::位置)::読込ファイル)// sameslide ・enumerate(::書式)// enumerate環境の始まり ・itemize// itemize環境の始まり ・layer(::範囲)// layer環境の始まり ・item::文// itemを追加 ・putnote::方向と位置::読み込みファイル// layer環境の中に図を入れる 例)putonote::se{30}{10}::figure( , 倍率)//(inputのとき) 例)putonote::se{30}{10}::include[width=5cm]::figure.pdf// (includegraphicsのとき) ・end// enumerate,itemize,layer環境の終わり ・上記以外// そのままTeXに書き出す. 4)空白行を入れたいときは,...// とする. 5)必要な図はすべてfigに入れる. 6)newの後,複数のスライドを同時に作り順に表示するとき, ・newの次の行に %repeat=(newを含むスライドの枚数),para// ・表示したいページは %[2,-]::本文// のように書く. 注)[2,- ]は2ページ以降全部 [-, 2,- ]は2ページまで表示 [1..3,5 ]は1ページから3ページと5ページ ・repeat=...の後に「,para」を追加するとリンクを作成 ・他のページで薄文字にしたいときは %thin[2]::本文 注1)薄文字の濃さのデフォルトは0.1だが,Setslidebodyで変更可能 注2)また,sample.txtに以下を記述すれば,その後が変わる. \setthin{濃さ}// 7)figの中にあるサブフォルダ(例えばsubfig)の図ファイルすべてを順に表示するとき ・newの次の行に %repeat=// %para=subfig:{0}:s{60}{10}:input(:倍率)// => layer{120}{0}, \putnotes{60}{10}{\input...} 注)%repeat=,para=...と続けて書いてもよい. 2. スライドの作成 1)sample.cdyのスクリーンにTitle, Para, Slide のボタンがある. 2)Fheadは,図を作成するときのファイル名 3)Slidenameは,スライドのファイル名 .txt(内容),.tex , .pdf 4)Slideworkで,作業フォルダを指定 注1)作業フォルダの中に自動的にfigというサブフォルダを作る. (新規の場合) 注2)Dirworkはfigに設定されるので,図はfigの中に作られる. 注3)slideボタンを押すと,Dirworkは一時的にworkになる. 5)タイトルの編集 Settitle(name,cmdL,options); options=["Layery=0","Color=blue"] nameは省略可(デフォルトは "slide0") ・maintitleはcmdLの最初に書く(文字サイズ\Huge,他は\large) ・Titleボタンを押すとタイトル画面を作成して表示する. 6)各種設定 Setslidemain([letterc,boxc,boxd,framec,xpos,size]); メイン(章に該当)の設定 注)一部をデフォルト値とする場合は [,,]などとする. 以下同様 Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]); ページの設定 Setslidebody(bodycolor,bodystyle,density); 全体の文字色と薄文字の濃さ(0-1)の設定 bodystyleのデフォルトは "\Large\bf\boldmath" Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]); hyperrefを利用する, 注)Setslidehyper();とすると,hyperref.styを読み込み, かつ,上のデフォルト値が与えられる. 注)数字は,ページ移動ボタン列について,右端の水平位置,垂直サイズ,倍率 7)パラパラ動画の作成 ・mf(s)にパラメータ値sのときの図を記述する. ・パラパラの設定 Setpara(foldername,funcitonstr,range,options); options=["m/r", "Div=25"]; 注)rangeの記述 i) "s=[0,1]" 区間をDivで分割 ii) [0.2, 0.6] リストの要素をsに代入 ・ParaFボタンを押すと,フォルダ及びパラパラの図(複数)が生成される. ・templateslide.txtに,1(7)のように記述する. ・Slideボタンを押す. 8)animateを使うとき (1)ParaFを作った後,Shift+"A"を押すとfigにanim+フォルダ名のファイルができる. (2)Apppackage(["[dvipdfmx]{animate}"]を追加する. (3)読み込み場所に,\inputを使って入れる. (layerは使えない) (4)Setparaのオプション "Frate="(1秒間のフレーム数), "Scale="(スケール倍率), "OpA=[loop]" 9)Slideボタンを押すと,スライド(PDF)が作成される. 10)Sum ボタンを押すと,概要PDF(各ページの最終ページのみ)が作成される. \ No newline at end of file
+Presentation with ketslide 2017.09.28
+
+0. Making a file for slides.
+
+ 1) Copy ketsample/s07slideのs0701basic.cdy to your work directory and rename it.
+ Here, assume the file copied to Userhome/Desktop/work and renamed to sample.cdy.
+ 2) Copy s0701basic.txt and rename it with the same head, too.
+ 3) Double clicsample.cdy, modify Cindyscript/figures as follows.
+ Line 5 : Slidework(gethome()+"/Desktop/work");
+ Line11: Edit the title.
+ 4) Press Gear mark on the top.
+
+1. Modify sample.txt.
+
+ 0) The first line should be :
+ title::slide0//
+ 注1)バックグラウンド(例えばkabegamiとする)を入れるとき
+ ・kabegami.texを作成してfigフォルダに入れる.
+ ・sample.txtの指定は
+ タイトル::slide0::kabegami//
+ 注2)タイトル画面が不要の場合は,
+ タイトル(またはtitle):://
+
+ 1)すべての行の最後は必ず // をつける.
+ 注)urlの指定で//を用いるとき,||||とすると//に変換される.
+ 2)各ブロックの引数の区切りは ::
+ 3)コマンド
+ ・タイトル::読込ファイル名(::壁紙ファイル)//
+ 最初のタイトルページ
+ 注)スライドに置く文字はslide0.cdyで作成
+ 注)壁紙をつけるときは,もう1つ :: で区切ってファイル名を書く
+ 注)preambleに追加するとき,::区切りで書き加え,最後に//をおく.
+ ・new(::行下げ)::タイトル((::位置)::読み込みファイル)//
+ mainslide
+ 例)new::[10]::最初に::{50}{20}::figure//
+ 注)読み込みファイルのサイズ変更するとき
+ new::[10]::最初に::{50}{20}::figure,0.8//
+ 他も同様
+ ・same(::行下げ)((::位置)::読込ファイル)//
+ sameslide
+ ・enumerate(::書式)//
+ enumerate環境の始まり
+ ・itemize//
+ itemize環境の始まり
+ ・layer(::範囲)//
+ layer環境の始まり
+ ・item::文//
+ itemを追加
+ ・putnote::方向と位置::読み込みファイル//
+ layer環境の中に図を入れる
+ 例)putonote::se{30}{10}::figure( , 倍率)//(inputのとき)
+ 例)putonote::se{30}{10}::include[width=5cm]::figure.pdf//
+ (includegraphicsのとき)
+ ・end//
+ enumerate,itemize,layer環境の終わり
+ ・上記以外//
+ そのままTeXに書き出す.
+
+ 4)空白行を入れたいときは,...// とする.
+
+ 5)必要な図はすべてfigに入れる.
+
+ 6)newの後,複数のスライドを同時に作り順に表示するとき,
+ ・newの次の行に
+ %repeat=(newを含むスライドの枚数),para//
+ ・表示したいページは
+ %[2,-]::本文//
+ のように書く.
+ 注)[2,- ]は2ページ以降全部
+ [-, 2,- ]は2ページまで表示
+ [1..3,5 ]は1ページから3ページと5ページ
+ ・repeat=...の後に「,para」を追加するとリンクを作成
+ ・他のページで薄文字にしたいときは %thin[2]::本文
+ 注1)薄文字の濃さのデフォルトは0.1だが,Setslidebodyで変更可能
+ 注2)また,sample.txtに以下を記述すれば,その後が変わる.
+ \setthin{濃さ}//
+
+ 7)figの中にあるサブフォルダ(例えばsubfig)の図ファイルすべてを順に表示するとき
+ ・newの次の行に
+ %repeat=//
+ %para=subfig:{0}:s{60}{10}:input(:倍率)//
+ => layer{120}{0}, \putnotes{60}{10}{\input...}
+ 注)%repeat=,para=...と続けて書いてもよい.
+
+2. スライドの作成
+
+ 1)sample.cdyのスクリーンにTitle, Para, Slide のボタンがある.
+
+ 2)Fheadは,図を作成するときのファイル名
+
+ 3)Slidenameは,スライドのファイル名
+ .txt(内容),.tex , .pdf
+
+ 4)Slideworkで,作業フォルダを指定
+ 注1)作業フォルダの中に自動的にfigというサブフォルダを作る. (新規の場合)
+ 注2)Dirworkはfigに設定されるので,図はfigの中に作られる.
+ 注3)slideボタンを押すと,Dirworkは一時的にworkになる.
+
+ 5)タイトルの編集
+ Settitle(name,cmdL,options);
+ options=["Layery=0","Color=blue"]
+ nameは省略可(デフォルトは "slide0")
+
+ ・maintitleはcmdLの最初に書く(文字サイズ\Huge,他は\large)
+
+ ・Titleボタンを押すとタイトル画面を作成して表示する.
+
+ 6)各種設定
+ Setslidemain([letterc,boxc,boxd,framec,xpos,size]);
+ メイン(章に該当)の設定
+ 注)一部をデフォルト値とする場合は [,,]などとする. 以下同様
+ Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]);
+ ページの設定
+ Setslidebody(bodycolor,bodystyle,density);
+ 全体の文字色と薄文字の濃さ(0-1)の設定
+ bodystyleのデフォルトは "\Large\bf\boldmath"
+ Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]);
+ hyperrefを利用する,
+ 注)Setslidehyper();とすると,hyperref.styを読み込み,
+ かつ,上のデフォルト値が与えられる.
+ 注)数字は,ページ移動ボタン列について,右端の水平位置,垂直サイズ,倍率
+
+ 7)パラパラ動画の作成
+ ・mf(s)にパラメータ値sのときの図を記述する.
+
+ ・パラパラの設定
+ Setpara(foldername,funcitonstr,range,options);
+ options=["m/r", "Div=25"];
+ 注)rangeの記述
+ i) "s=[0,1]" 区間をDivで分割
+ ii) [0.2, 0.6] リストの要素をsに代入
+
+ ・ParaFボタンを押すと,フォルダ及びパラパラの図(複数)が生成される.
+ ・templateslide.txtに,1(7)のように記述する.
+ ・Slideボタンを押す.
+
+ 8)animateを使うとき
+ (1)ParaFを作った後,Shift+"A"を押すとfigにanim+フォルダ名のファイルができる.
+ (2)Apppackage(["[dvipdfmx]{animate}"]を追加する.
+ (3)読み込み場所に,\inputを使って入れる. (layerは使えない)
+ (4)Setparaのオプション
+ "Frate="(1秒間のフレーム数), "Scale="(スケール倍率), "OpA=[loop]"
+
+ 9)Slideボタンを押すと,スライド(PDF)が作成される.
+
+ 10)Sum ボタンを押すと,概要PDF(各ページの最終ページのみ)が作成される.
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt
index 91cac8ee..4a769848 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/howtouseslideJ.txt
@@ -1 +1,148 @@
-ketslideによるプレゼンテーション  2017.09.28 0.スライドファイルの指定  1)ketsample/s07slideのs0701basic.cdyを作業ディレクトリにコピーして名前を変更する.     ここでは,作業ディレクトリ/ファイルを,ユーザホーム/Desktop/workにsample.cdyとする.  2)s0701basic.txtも同様にコピして同名に変更する(sample.txt)  3)sample.cdyをダブルクリックで立ち上げ,Cindyscript/figuresを以下のように修正する.     2行目 Slidename=Fhead;     5行目 Slidework(gethome()+"/Desktop/work");    11行目 タイトルに表示されるテキスト(自由に直してよい)  4)右上の歯車マークを押す. 1.sample.txtをテキストエディタで開き,修正する.  0)1行目(%のない最初の行)の基本形は       タイトル(またはtitle)::slide0//     注1)バックグラウンド(例えばkabegamiとする)を入れるとき         ・kabegami.texを作成してfigフォルダに入れる.         ・sample.txtの指定は            タイトル::slide0::kabegami//     注2)タイトル画面が不要の場合は,         タイトル(またはtitle):://  1)すべての行の最後は必ず // をつける.     注)urlの指定で//を用いるとき,||||とすると//に変換される.  2)各ブロックの引数の区切りは ::  3)コマンド     ・タイトル::読込ファイル名(::壁紙ファイル)//       最初のタイトルページ        注)スライドに置く文字はslide0.cdyで作成        注)壁紙をつけるときは,もう1つ :: で区切ってファイル名を書く        注)preambleに追加するとき,::区切りで書き加え,最後に//をおく.     ・new(::行下げ)::タイトル((::位置)::読み込みファイル)//       mainslide       例)new::[10]::最初に::{50}{20}::figure//       注)読み込みファイルのサイズ変更するとき          new::[10]::最初に::{50}{20}::figure,0.8//         他も同様     ・same(::行下げ)((::位置)::読込ファイル)//       sameslide     ・enumerate(::書式)//       enumerate環境の始まり     ・itemize//       itemize環境の始まり     ・layer(::範囲)//       layer環境の始まり     ・item::文//       itemを追加     ・putnote::方向と位置::読み込みファイル//       layer環境の中に図を入れる       例)putonote::se{30}{10}::figure( , 倍率)//(inputのとき)       例)putonote::se{30}{10}::include[width=5cm]::figure.pdf//            (includegraphicsのとき)     ・end//       enumerate,itemize,layer環境の終わり     ・上記以外//       そのままTeXに書き出す.     ・コマンドをコメントアウトするときは,%%とする.  4)空白行を入れたいときは,...// とする.  5)必要な図はすべてfigに入れる.  6)newの後,複数のスライドを同時に作り順に表示するとき,    ・newの次の行に      %repeat=(newを含むスライドの枚数),para//    ・表示したいページは       %[2,-]::本文//     のように書く.      注)[2,- ]は2ページ以降全部        [-, 2,- ]は2ページまで表示        [1..3,5 ]は1ページから3ページと5ページ    ・repeat=...の後に「,para」を追加するとリンクを作成    ・他のページで薄文字にしたいときは %thin[2]::本文      注1)薄文字の濃さのデフォルトは0.1だが,Setslidebodyで変更可能      注2)また,sample.txtに以下を記述すれば,その後が変わる.          \setthin{濃さ}//  7)figの中にあるサブフォルダ(例えばsubfig)の図ファイルすべてを順に表示するとき    ・newの次の行に      %repeat=//      %para=subfig:{0}:s{60}{10}:input(:倍率)//        => layer{120}{0}, \putnotes{60}{10}{\input...}     注)%repeat=,para=...と続けて書いてもよい. 2.スライドの作成  1)sample.cdyのスクリーンにTitle, Para, Slide のボタンがある.  2)Fheadは,図を作成するときのファイル名  3)Slidenameは,スライドのファイル名      .txt(内容),.tex , .pdf  4)Slideworkで,作業フォルダを指定     注1)作業フォルダの中に自動的にfigというサブフォルダを作る.(新規の場合)     注2)Dirworkはfigに設定されるので,図はfigの中に作られる.     注3)slideボタンを押すと,Dirworkは一時的にworkになる.  5)タイトルの編集     Settitle(name,cmdL,options);       options=["Layery=0","Color=blue"]       nameは省略可(デフォルトは "slide0")    ・maintitleはcmdLの最初に書く(文字サイズ\Huge,他は\large)    ・Titleボタンを押すとタイトル画面を作成して表示する.  6)各種設定     Setslidemain([letterc,boxc,boxd,framec,xpos,size]);       メイン(章に該当)の設定      注)一部をデフォルト値とする場合は [,,]などとする.以下同様     Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]);       ページの設定     Setslidebody(bodycolor,bodystyle,density);       全体の文字色と薄文字の濃さ(0-1)の設定       bodystyleのデフォルトは "\Large\bf\boldmath"     Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]);       hyperrefを利用する,      注)Setslidehyper();とすると,hyperref.styを読み込み,       かつ,上のデフォルト値が与えられる.      注)数字は,ページ移動ボタン列について,右端の水平位置,垂直サイズ,倍率  7)パラパラ動画の作成    ・mf(s)にパラメータ値sのときの図を記述する.    ・パラパラの設定      Setpara(foldername,funcitonstr,range,options);         options=["m/r", "Div=25"];      注)rangeの記述       i) "s=[0,1]" 区間をDivで分割       ii) [0.2, 0.6] リストの要素をsに代入    ・ParaFボタンを押すと,フォルダ及びパラパラの図(複数)が生成される.    ・templateslide.txtに,1(7)のように記述する.    ・Slideボタンを押す.  8)animateを使うとき     (1)ParaFを作った後,Shift+"A"を押すとfigにanim+フォルダ名のファイルができる.     (2)Apppackage(["[dvipdfmx]{animate}"]を追加する.     (3)読み込み場所に,\inputを使って入れる.(layerは使えない)     (4)Setparaのオプション         "Frate="(1秒間のフレーム数), "Scale="(スケール倍率), "OpA=[loop]"  9)Slideボタンを押すと,スライド(PDF)が作成される.  10)Sum ボタンを押すと,概要PDF(各ページの最終ページのみ)が作成される. \ No newline at end of file
+ketslideによるプレゼンテーション  2017.09.28
+
+0.スライドファイルの指定
+
+ 1)ketsample/s07slideのs0701basic.cdyを作業ディレクトリにコピーして名前を変更する.
+    ここでは,作業ディレクトリ/ファイルを,ユーザホーム/Desktop/workにsample.cdyとする.
+ 2)s0701basic.txtも同様にコピして同名に変更する(sample.txt)
+ 3)sample.cdyをダブルクリックで立ち上げ,Cindyscript/figuresを以下のように修正する.
+    2行目 Slidename=Fhead;
+    5行目 Slidework(gethome()+"/Desktop/work");
+   11行目 タイトルに表示されるテキスト(自由に直してよい)
+ 4)右上の歯車マークを押す.
+
+1.sample.txtをテキストエディタで開き,修正する.
+
+ 0)1行目(%のない最初の行)の基本形は
+      タイトル(またはtitle)::slide0//
+    注1)バックグラウンド(例えばkabegamiとする)を入れるとき
+        ・kabegami.texを作成してfigフォルダに入れる.
+        ・sample.txtの指定は
+           タイトル::slide0::kabegami//
+    注2)タイトル画面が不要の場合は,
+        タイトル(またはtitle):://
+
+ 1)すべての行の最後は必ず // をつける.
+    注)urlの指定で//を用いるとき,||||とすると//に変換される.
+ 2)各ブロックの引数の区切りは ::
+ 3)コマンド
+    ・タイトル::読込ファイル名(::壁紙ファイル)//
+      最初のタイトルページ
+       注)スライドに置く文字はslide0.cdyで作成
+       注)壁紙をつけるときは,もう1つ :: で区切ってファイル名を書く
+       注)preambleに追加するとき,::区切りで書き加え,最後に//をおく.
+    ・new(::行下げ)::タイトル((::位置)::読み込みファイル)//
+      mainslide
+      例)new::[10]::最初に::{50}{20}::figure//
+      注)読み込みファイルのサイズ変更するとき
+         new::[10]::最初に::{50}{20}::figure,0.8//
+        他も同様
+    ・same(::行下げ)((::位置)::読込ファイル)//
+      sameslide
+    ・enumerate(::書式)//
+      enumerate環境の始まり
+    ・itemize//
+      itemize環境の始まり
+    ・layer(::範囲)//
+      layer環境の始まり
+    ・item::文//
+      itemを追加
+    ・putnote::方向と位置::読み込みファイル//
+      layer環境の中に図を入れる
+      例)putonote::se{30}{10}::figure( , 倍率)//(inputのとき)
+      例)putonote::se{30}{10}::include[width=5cm]::figure.pdf//
+           (includegraphicsのとき)
+    ・end//
+      enumerate,itemize,layer環境の終わり
+    ・上記以外//
+      そのままTeXに書き出す.
+    ・コマンドをコメントアウトするときは,%%とする.
+
+ 4)空白行を入れたいときは,...// とする.
+
+ 5)必要な図はすべてfigに入れる.
+
+ 6)newの後,複数のスライドを同時に作り順に表示するとき,
+   ・newの次の行に
+     %repeat=(newを含むスライドの枚数),para//
+   ・表示したいページは
+      %[2,-]::本文//
+    のように書く.
+     注)[2,- ]は2ページ以降全部
+       [-, 2,- ]は2ページまで表示
+       [1..3,5 ]は1ページから3ページと5ページ
+   ・repeat=...の後に「,para」を追加するとリンクを作成
+   ・他のページで薄文字にしたいときは %thin[2]::本文
+     注1)薄文字の濃さのデフォルトは0.1だが,Setslidebodyで変更可能
+     注2)また,sample.txtに以下を記述すれば,その後が変わる.
+         \setthin{濃さ}//
+
+ 7)figの中にあるサブフォルダ(例えばsubfig)の図ファイルすべてを順に表示するとき
+   ・newの次の行に
+     %repeat=//
+     %para=subfig:{0}:s{60}{10}:input(:倍率)//
+       => layer{120}{0}, \putnotes{60}{10}{\input...}
+    注)%repeat=,para=...と続けて書いてもよい.
+
+2.スライドの作成
+
+ 1)sample.cdyのスクリーンにTitle, Para, Slide のボタンがある.
+
+ 2)Fheadは,図を作成するときのファイル名
+
+ 3)Slidenameは,スライドのファイル名
+     .txt(内容),.tex , .pdf
+
+ 4)Slideworkで,作業フォルダを指定
+    注1)作業フォルダの中に自動的にfigというサブフォルダを作る.(新規の場合)
+    注2)Dirworkはfigに設定されるので,図はfigの中に作られる.
+    注3)slideボタンを押すと,Dirworkは一時的にworkになる.
+
+ 5)タイトルの編集
+    Settitle(name,cmdL,options);
+      options=["Layery=0","Color=blue"]
+      nameは省略可(デフォルトは "slide0")
+
+   ・maintitleはcmdLの最初に書く(文字サイズ\Huge,他は\large)
+
+   ・Titleボタンを押すとタイトル画面を作成して表示する.
+
+ 6)各種設定
+    Setslidemain([letterc,boxc,boxd,framec,xpos,size]);
+      メイン(章に該当)の設定
+     注)一部をデフォルト値とする場合は [,,]などとする.以下同様
+    Setslidepage([letterc,boxc,boxd,framec,shadowc,shadowd,xpos,size]);
+      ページの設定
+    Setslidebody(bodycolor,bodystyle,density);
+      全体の文字色と薄文字の濃さ(0-1)の設定
+      bodystyleのデフォルトは "\Large\bf\boldmath"
+    Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",90,70,1]);
+      hyperrefを利用する,
+     注)Setslidehyper();とすると,hyperref.styを読み込み,
+      かつ,上のデフォルト値が与えられる.
+     注)数字は,ページ移動ボタン列について,右端の水平位置,垂直サイズ,倍率
+
+ 7)パラパラ動画の作成
+   ・mf(s)にパラメータ値sのときの図を記述する.
+
+   ・パラパラの設定
+     Setpara(foldername,funcitonstr,range,options);
+        options=["m/r", "Div=25"];
+     注)rangeの記述
+      i) "s=[0,1]" 区間をDivで分割
+      ii) [0.2, 0.6] リストの要素をsに代入
+
+   ・ParaFボタンを押すと,フォルダ及びパラパラの図(複数)が生成される.
+   ・templateslide.txtに,1(7)のように記述する.
+   ・Slideボタンを押す.
+
+ 8)animateを使うとき
+    (1)ParaFを作った後,Shift+"A"を押すとfigにanim+フォルダ名のファイルができる.
+    (2)Apppackage(["[dvipdfmx]{animate}"]を追加する.
+    (3)読み込み場所に,\inputを使って入れる.(layerは使えない)
+    (4)Setparaのオプション
+        "Frate="(1秒間のフレーム数), "Scale="(スケール倍率), "OpA=[loop]"
+
+ 9)Slideボタンを押すと,スライド(PDF)が作成される.
+
+ 10)Sum ボタンを押すと,概要PDF(各ページの最終ページのみ)が作成される.
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/kc.sh b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/kc.sh
deleted file mode 100644
index 554aaadd..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/kc.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-cd "/Users/takatoosetsuo/ketcindy/ketfiles/ketsample/samples/s07slides"
-"/Applications/kettex/texlive/bin/x86_64-darwin/uplatex" animatesinemove.tex
-"/Applications/kettex/texlive/bin/x86_64-darwin/uplatex" animatesinemove.tex
-"/Applications/kettex/texlive/bin/x86_64-darwin/dvipdfmx" animatesinemove.dvi
-rm animatesinemove.dvi
-"/Applications/Adobe Acrobat Reader DC.app/Contents/MacOS/AdobeReader" animatesinemove.pdf
-exit 0
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy
index bed86ec1..a4ea6af9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt
index df640e7f..6df4207e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basic.txt
@@ -1,23 +1,23 @@
-タイトル::slide0//
-%%タイトル::slide0::kabegami//
-%%title:://
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::itemize環境の使い方//
-
-itemize//
-item::内容//
-item::結論//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境の使い方//
-
-enumerate::[(1)]//
-item::番号を変えるには,例えば [(1)]//
-item::後は同じ//
-end//
-
+タイトル::slide0//
+%%タイトル::slide0::kabegami//
+%%title:://
+
+%%%%%%%%%%%%%%%%//
+main::メインスライド1//
+
+%%%%%%%%%%%%%%%%//
+new::itemize環境の使い方//
+
+itemize//
+item::内容//
+item::結論//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::enumerate環境の使い方//
+
+enumerate::[(1)]//
+item::番号を変えるには,例えば [(1)]//
+item::後は同じ//
+end//
+
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy
index b1daf2eb..7a8d2b34 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt
index 84be122d..f7f66133 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0701basicE.txt
@@ -1,22 +1,22 @@
-title::slideE//
-%%title::slide0::kabegami//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::How to use itemize//
-
-itemize//
-item::Contents//
-item::Conclusion//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::How to use enumerate//
-
-enumerate::[(1)]//
-item::Change the style of number adding, for example, [(1)]//
-item::Same as usual//
-end//
-
+title::slideE//
+%%title::slide0::kabegami//
+
+%%%%%%%%%%%%%%%%//
+main::Main Slide//
+
+%%%%%%%%%%%%%%%%//
+new::How to use itemize//
+
+itemize//
+item::Contents//
+item::Conclusion//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::How to use enumerate//
+
+enumerate::[(1)]//
+item::Change the style of number adding, for example, [(1)]//
+item::Same as usual//
+end//
+
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy
index d301a633..f7c1132a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.txt
index 6aa45bd2..577cf19f 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graph.txt
@@ -1,20 +1,20 @@
-タイトル::slide0//
-%%タイトル::slide0::kabegami//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::inputとlayer//
-
-layer::{100}{0}//
-putnote::se{10}{15}::figsin,0.8//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::includegrpahicsとlayer//
-
-layer::{100}{0}//
-putnote::s{60}{5}
-::include[bb=0.00 0.00 803.00 285.00,width=100mm]::cindyscreen.pdf//
-end//
+タイトル::slide0//
+%%タイトル::slide0::kabegami//
+
+%%%%%%%%%%%%%%%%//
+main::メインスライド1//
+
+%%%%%%%%%%%%%%%%//
+new::inputとlayer//
+
+layer::{100}{0}//
+putnote::se{10}{15}::figsin,0.8//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::includegrpahicsとlayer//
+
+layer::{100}{0}//
+putnote::s{60}{5}
+::include[bb=0.00 0.00 803.00 285.00,width=100mm]::cindyscreen.pdf//
+end//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy
index caedb908..7ce74d04 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt
index bed21c53..95eeee29 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0702graphE.txt
@@ -1,20 +1,20 @@
-title::slideE//
-%%title::slideE::kabegami//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::input and layer//
-
-layer::{100}{0}//
-putnote::se{10}{15}::figsin,0.8//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::includegrpahics and layer//
-
-layer::{100}{0}//
-putnote::s{60}{5}
-::include[bb=0.00 0.00 803.00 285.00,width=100mm]::cindyscreen.pdf//
-end//
+title::slideE//
+%%title::slideE::kabegami//
+
+%%%%%%%%%%%%%%%%//
+main::Main Slide//
+
+%%%%%%%%%%%%%%%%//
+new::input and layer//
+
+layer::{100}{0}//
+putnote::se{10}{15}::figsin,0.8//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::includegrpahics and layer//
+
+layer::{100}{0}//
+putnote::s{60}{5}
+::include[bb=0.00 0.00 803.00 285.00,width=100mm]::cindyscreen.pdf//
+end//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy
index 1db9fa69..63810d68 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt
index 3cffb02f..ad97f61e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeat.txt
@@ -1,32 +1,32 @@
-%タイトル::slide0::kabegami//
-タイトル::slide0//
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::itemize環境の使い方//
-%repeat=2//
-
-itemize//
-item::内容//
-%[2,-]::item::結論//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境の使い方//
-%repeat=3//
-
-enumerate::[(1)]//
-%thin[2,-]::item::番号を変えるには,例えば [(1)]//
-%thin[3,-]::item::後は同じ//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::グラフとrepeat//
-%repeat=2//
-
-layer::{100}{0}//
-%[1]::putnote::se{10}{15}::figsin,0.8//
-%[2]::putnote::se{30}{40}::figsin,0.8//
-end//
-
+%タイトル::slide0::kabegami//
+タイトル::slide0//
+%%%%%%%%%%%%%%%%//
+main::メインスライド1//
+
+%%%%%%%%%%%%%%%%//
+new::itemize環境の使い方//
+%repeat=2//
+
+itemize//
+item::内容//
+%[2,-]::item::結論//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::enumerate環境の使い方//
+%repeat=3//
+
+enumerate::[(1)]//
+%thin[2,-]::item::番号を変えるには,例えば [(1)]//
+%thin[3,-]::item::後は同じ//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::グラフとrepeat//
+%repeat=2//
+
+layer::{100}{0}//
+%[1]::putnote::se{10}{15}::figsin,0.8//
+%[2]::putnote::se{30}{40}::figsin,0.8//
+end//
+
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy
index 52683dd1..942cc94e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt
index ee4e6680..725cfc64 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0703repeatE.txt
@@ -1,33 +1,33 @@
-%%title::slide0::kabegami//
-title::slideE//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::itemize and repeat//
-%repeat=2//
-
-itemize//
-item::Contents//
-%[2,-]::item::Conclusions//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate and repeat//
-%repeat=3//
-
-enumerate::[(1)]//
-%thin[2,-]::item::Contents//
-%thin[3,-]::item::Conclusions//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::Graph and repeat//
-%repeat=2//
-
-layer::{100}{0}//
-%[1]::putnote::se{10}{15}::figsin,0.8//
-%[2]::putnote::se{30}{40}::figsin,0.8//
-end//
-
+%%title::slide0::kabegami//
+title::slideE//
+
+%%%%%%%%%%%%%%%%//
+main::Main Slide//
+
+%%%%%%%%%%%%%%%%//
+new::itemize and repeat//
+%repeat=2//
+
+itemize//
+item::Contents//
+%[2,-]::item::Conclusions//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::enumerate and repeat//
+%repeat=3//
+
+enumerate::[(1)]//
+%thin[2,-]::item::Contents//
+%thin[3,-]::item::Conclusions//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::Graph and repeat//
+%repeat=2//
+
+layer::{100}{0}//
+%[1]::putnote::se{10}{15}::figsin,0.8//
+%[2]::putnote::se{30}{40}::figsin,0.8//
+end//
+
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.cdy
deleted file mode 100644
index 054cc38f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.cdy
deleted file mode 100644
index 34eb5cb1..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy
new file mode 100644
index 00000000..722a7701
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt
index 201079e1..254508a4 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704thin.txt
@@ -1,54 +1,54 @@
-%%タイトル::slide0::kabegami//
-タイトル::slide0//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::画面上のボタン//
-
-itemize//
-item::\Ltab{20mm}{Figure}静止画(Fhead+".tex")をfigに作成//
-item::\Ltab{20mm}{Title}タイトル(default : slide0)をfigに作成//
-item::\Ltab{20mm}{ParaF}パラパラ動画フォルダを作成\\//
-\Ltab{25mm}{}Setparaで引数を書いておく//
-item::\Ltab{20mm}{Slide}Texparent+".txt"からスライドを作成//
-item::\Ltab{20mm}{Sum}SummaryのPDFを作成//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::enumerate環境の使い方//
-%repeat=3//
-
-%[2,-]::enumerate::[(1)]//
-%[2,-]::item::番号を変えるには,例えば [(1)]//
-%[3,-]::item::表示ページはリストで与える\\//
-%[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6]など//
-%[2,- ]::end//
-
-%%%%%%%%%%%%%%%%//
-new::薄文字の使い方//
-%repeat=4//
-
-itemize//
-%thin[2,-]::item::Setslidebodyの3番目の引数で濃さを変更\\//
-%thin[2,-]::\hspace*{10mm}\verb|Setslidebody(["","",0.2]);|//
-%thin[3,-]::item::デフォルトは$0.1$//
-%thin[4]::item::リストのページ以外が薄文字になる//
-end//
-
-%%%%%%%%%%%%%%%%//
-new::layerの使い方//
-%repeat=5//
-
-\setthin{0}//
-
-itemize//
-%thin[1,-]::item::layerの始まりは\verb+layer+{:}{:}\verb+{120}{0}+//
-%thin[2,-]::item::layerの終わりは\verb|end|//
-%thin[3,-]::item::図は\verb+putnote+{:}{:}\verb+se{80}{5}+{:}{:}\verb+grf+//
-%thin[4,-]::item::図のサイズを変えるときは\\//
-%thin[4,-]::\hspace*{10mm}{:}{:}\verb+grf,0.8+//
-%thin[5]::item::通常の\verb|\putnote|文も使える//
-end//
-
+%%タイトル::slide0::kabegami//
+タイトル::slide0//
+
+%%%%%%%%%%%%%%%%//
+main::メインスライド1//
+
+%%%%%%%%%%%%%%%%//
+new::画面上のボタン//
+
+itemize//
+item::\Ltab{20mm}{Figure}静止画(Fhead+".tex")をfigに作成//
+item::\Ltab{20mm}{Title}タイトル(default : slide0)をfigに作成//
+item::\Ltab{20mm}{ParaF}パラパラ動画フォルダを作成\\//
+\Ltab{25mm}{}Setparaで引数を書いておく//
+item::\Ltab{20mm}{Slide}Texparent+".txt"からスライドを作成//
+item::\Ltab{20mm}{Sum}SummaryのPDFを作成//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::enumerate環境の使い方//
+%repeat=3//
+
+%[2,-]::enumerate::[(1)]//
+%[2,-]::item::番号を変えるには,例えば [(1)]//
+%[3,-]::item::表示ページはリストで与える\\//
+%[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6]など//
+%[2,- ]::end//
+
+%%%%%%%%%%%%%%%%//
+new::薄文字の使い方//
+%repeat=4//
+
+itemize//
+%thin[2,-]::item::Setslidebodyの3番目の引数で濃さを変更\\//
+%thin[2,-]::\hspace*{10mm}\verb|Setslidebody(["","",0.2]);|//
+%thin[3,-]::item::デフォルトは$0.1$//
+%thin[4]::item::リストのページ以外が薄文字になる//
+end//
+
+%%%%%%%%%%%%%%%%//
+new::layerの使い方//
+%repeat=5//
+
+\setthin{0}//
+
+itemize//
+%thin[1,-]::item::layerの始まりは\verb+layer+{:}{:}\verb+{120}{0}+//
+%thin[2,-]::item::layerの終わりは\verb|end|//
+%thin[3,-]::item::図は\verb+putnote+{:}{:}\verb+se{80}{5}+{:}{:}\verb+grf+//
+%thin[4,-]::item::図のサイズを変えるときは\\//
+%thin[4,-]::\hspace*{10mm}{:}{:}\verb+grf,0.8+//
+%thin[5]::item::通常の\verb|\putnote|文も使える//
+end//
+
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy
new file mode 100644
index 00000000..c95af46c
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.txt
index d6b718d4..0ecb2e6a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704para.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705para.txt
@@ -1,10 +1,10 @@
-%%タイトル::slide0::kabegami//
-タイトル::slide0//
-
-%%%%%%%%%%%%%%%%//
-new::parapara//
-%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
-
-%%%%%%%%%%%%%%%%//
-new::parapara2//
-%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+%%タイトル::slide0::kabegami//
+タイトル::slide0//
+
+%%%%%%%%%%%%%%%%//
+new::parapara//
+%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
+
+%%%%%%%%%%%%%%%%//
+%new::parapara2//
+%%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy
new file mode 100644
index 00000000..921f176b
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt
index 36c5666d..78a3017b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0704paraE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705paraE.txt
@@ -1,10 +1,10 @@
-%%title::slideE::kabegami//
-title::slideE//
-
-%%%%%%%%%%%%%%%%//
-new::parapara//
-%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
-
-%%%%%%%%%%%%%%%%//
-new::parapara2//
-%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+%%title::slideE::kabegami//
+title::slideE//
+
+%%%%%%%%%%%%%%%%//
+new::parapara//
+%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
+
+%%%%%%%%%%%%%%%%//
+%new::parapara2//
+%%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.cdy
deleted file mode 100644
index 6eab0b6f..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0705thin.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy
index 6246d3e6..9121ad59 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt
index c083bc48..7e23f324 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animate.txt
@@ -1,19 +1,19 @@
-%%タイトル::slide0::kabegami//
-タイトル::slide0//
-
-%%%%%%%%%%%%%%%%//
-main::メインスライド1//
-
-%%%%%%%%%%%%%%%%//
-new::Animation1//
-
-\begin{center}//
-\input{fig/animsinemove}//
-\end{center}//
-
-%%%%%%%%%%%%%%%%//
-new::Animation2//
-
-\begin{center}//
-\input{fig/animsinemove2}//
-\end{center}// \ No newline at end of file
+%%タイトル::slide0::kabegami//
+タイトル::slide0//
+
+%%%%%%%%%%%%%%%%//
+main::メインスライド1//
+
+%%%%%%%%%%%%%%%%//
+new::Animation1//
+
+\begin{center}//
+\input{fig/animsinemove}//
+\end{center}//
+
+%%%%%%%%%%%%%%%%//
+%new::Animation2//
+
+%\begin{center}//
+%\input{fig/animsinemove2}//
+%\end{center}//
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy
index 8317c0a3..b6b4a741 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt
index bc92bf65..f51f07c4 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s07slides/s0706animateE.txt
@@ -1,19 +1,19 @@
-%%タイトル::slideE::kabegami//
-タイトル::slideE//
-
-%%%%%%%%%%%%%%%%//
-main::Main Slide//
-
-%%%%%%%%%%%%%%%%//
-new::Animation1//
-
-\begin{center}//
-\input{fig/animsinemove}//
-\end{center}//
-
-%%%%%%%%%%%%%%%%//
-new::Animation2//
-
-\begin{center}//
-\input{fig/animsinemove2}//
-\end{center}// \ No newline at end of file
+%%タイトル::slideE::kabegami//
+タイトル::slideE//
+
+%%%%%%%%%%%%%%%%//
+main::Main Slide//
+
+%%%%%%%%%%%%%%%%//
+new::Animation1//
+
+\begin{center}//
+\input{fig/animsinemove}//
+\end{center}//
+
+%%%%%%%%%%%%%%%%//
+%new::Animation2//
+
+%\begin{center}//
+%\input{fig/animsinemove2}//
+%\end{center}// \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy
index d363df1f..5bb212a8 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0801plotR.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy
index 2a01d121..f1a84f15 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0802plotR2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy
index bc167449..d5bb0ff9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0803boxplot.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy
index 11f80855..e67e8645 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0804histplot.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy
index 5368e320..35aec7d3 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0805random.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy
index c3f1fb2e..94755621 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0806dataframe.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy
index 18753c33..a73a3ac9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0807timecount.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy
index e283d956..1d9dfdbe 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s08R/s0808ttest.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0901parabolic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0901parabolic.cdy
new file mode 100644
index 00000000..bda83e0a
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0901parabolic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0902cone.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0902cone.cdy
new file mode 100644
index 00000000..6052150b
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0902cone.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0903saddle.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0903saddle.cdy
new file mode 100644
index 00000000..b29bc733
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0903saddle.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0904sphere.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0904sphere.cdy
new file mode 100644
index 00000000..37267bcb
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0904sphere.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0905wireframe.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0905wireframe.cdy
new file mode 100644
index 00000000..e74d0a5a
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0905wireframe.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0906intersectcrvsf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0906intersectcrvsf.cdy
new file mode 100644
index 00000000..d912d2cb
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0906intersectcrvsf.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0907multisurfaces.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0907multisurfaces.cdy
new file mode 100644
index 00000000..31484243
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0907multisurfaces.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0908conecut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0908conecut.cdy
new file mode 100644
index 00000000..f4428884
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0908conecut.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0909totaldiff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0909totaldiff.cdy
new file mode 100644
index 00000000..9c8e7c27
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface(Scilab)/s0909totaldiff.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901parabolic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901parabolic.cdy
deleted file mode 100644
index 64143679..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0901parabolic.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy
deleted file mode 100644
index aeae0a61..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0902cone.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy
deleted file mode 100644
index ac4113ea..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0903saddle.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904sphere.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904sphere.cdy
deleted file mode 100644
index 82c6eab1..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0904sphere.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905wireframe.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905wireframe.cdy
deleted file mode 100644
index 5ed8f7de..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0905wireframe.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906intersectcrvsf.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906intersectcrvsf.cdy
deleted file mode 100644
index b41a57b9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0906intersectcrvsf.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907multisurfaces.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907multisurfaces.cdy
deleted file mode 100644
index 37800854..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0907multisurfaces.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908conecut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908conecut.cdy
deleted file mode 100644
index e454b06b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0908conecut.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909totaldiff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909totaldiff.cdy
deleted file mode 100644
index 9b10fba9..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s09surface/s0909totaldiff.cdy
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy
index 018fc90f..be193e2c 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1000list.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy
index b168bf54..c0b659d5 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1001basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy
index 94b7ffeb..a332c2a4 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1002equation.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy
index 48c7ff33..5c2e8f1d 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1003trig.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy
index df9c7170..f5bb31c8 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1004calcby.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy
index 3f59b15f..4b581c9a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1005diffint.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy
index 46d2fd3c..956678be 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1006calculus.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy
index 21301d86..44bcaa1d 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1007linalg.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy
index d5305754..8aeb4270 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1008idtable.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy
index c8665137..691ff457 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1009diffeq.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy
index 14796db3..e8cabe3e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy
index 9bce7f06..3967749a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy
index e63e5b4b..60cda41e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1010fourier3.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy
index f123d2f1..622b7e58 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy
index efdcbc04..ceee9ea0 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1011matrixop2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy
index d78c57d8..f6e4420a 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1012fourierpw.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy
index 66e9a6c1..99d01ad9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1013for.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy
index 11d2c057..1a48ee9b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1014incdec2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy
index bdb384ba..564749b1 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s10maxima/s1015primenumber.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy
index a6a4aa68..575037fb 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1100list.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy
index 73dcd3d9..6d5ab14b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1101calculator1.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy
index e1b9f762..996a2935 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1102calculator2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy
index a921fe4d..66e58f97 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1103calcby.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy
index 6127f84f..43727b1f 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1104diff.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy
index 638ddf9c..ed7d7dfa 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fint101.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy
index b51270ec..475b0018 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1105fzero109.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy
index ca843c8a..c360a5cc 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1106fmmx110.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy
index dc852b91..8151daf2 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1110integrate.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy
index 9a9a6f18..9ac5a504 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1111grobner1.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy
index cf400af1..b8db8601 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s11asir/s1112residue.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy
index 96a359ec..42fb8d3f 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy
index d1703c5b..13b0cdb3 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1201integrate2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy
index c16a8219..d79f82f5 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202calcby.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy
index a18eafaa..bbc19ef9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s12fricas/s1202equations.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1301basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1301basic.cdy
new file mode 100644
index 00000000..d5920bfb
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1301basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1303objparts.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1303objparts.cdy
new file mode 100644
index 00000000..8e814c19
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1303objparts.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1304symbol.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1304symbol.cdy
new file mode 100644
index 00000000..2a35c863
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1304symbol.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1305hyperpara.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1305hyperpara.cdy
new file mode 100644
index 00000000..1c083c57
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1305hyperpara.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1306poly.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1306poly.cdy
new file mode 100644
index 00000000..38116f6e
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1306poly.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1307poly2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1307poly2.cdy
new file mode 100644
index 00000000..6d9e518f
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1307poly2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1308discont.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1308discont.cdy
new file mode 100644
index 00000000..06e7b27c
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1308discont.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1309discont2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1309discont2.cdy
new file mode 100644
index 00000000..b70e5ed4
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1309discont2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1310totaldiff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1310totaldiff.cdy
new file mode 100644
index 00000000..ef05f3fb
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1310totaldiff.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1311plate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1311plate.cdy
new file mode 100644
index 00000000..2b8d3b44
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1311plate.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1312plane.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1312plane.cdy
new file mode 100644
index 00000000..4fa2eaff
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1312plane.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1313changescale.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1313changescale.cdy
new file mode 100644
index 00000000..3f2e4da3
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1313changescale.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1314knot.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1314knot.cdy
index c52cd3ed..7822bcaf 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1314knot.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/Meshlab(Scilab)/s1314knot.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy
index 38300c52..2489208e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1301basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy
index a4740a24..2675c4d9 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1303objparts.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy
index 87ef5c1c..8f5d0012 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1304symbol.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy
index 80ce5bd7..2768c455 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1305hyperpara.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy
index 0a37dd8a..e357ce0b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1306poly.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy
index 96e2d15a..0f3f54b2 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1307poly2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy
index 1dac04a2..01f65394 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1308discont.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy
index 6f7ccd19..160b1fba 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1309discont2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy
index 631105fc..7a526d7e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1310totaldiff.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy
index c9693b26..6afb901b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1311plate.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy
index ff5faa44..777d2972 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1312plane.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy
index cdff2f09..91721733 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s13meshlab/s1313changescale.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/errormessageR.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/errormessageR.txt
deleted file mode 100644
index e69de29b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/errormessageR.txt
+++ /dev/null
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/kc.sh b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/kc.sh
index fdc5e838..e69de29b 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/kc.sh
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/kc.sh
@@ -1,4 +0,0 @@
-#!/bin/sh
-cd "/Users/takatoosetsuo/ketcindy/ketsample/samples/s14dataprocessing"
-R --vanilla --slave < s1401csvprocessingsep.r >& errormessageR.txt
-exit 0
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/resultR.txt b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/resultR.txt
deleted file mode 100644
index 1259c849..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/resultR.txt
+++ /dev/null
@@ -1 +0,0 @@
-//// \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy
index 61975c2e..8339f560 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1401csvprocessing.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy
index 155496aa..acdc2d25 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1402copypaste.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy
index e4fd5603..88c81f69 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s14dataprocessing/s1403maketableJ.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy
index aea37f3e..11ca4df6 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1501mant.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy
index 0e93b6b2..0722cc97 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1502torus.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy
index d3dddca7..0b0c75aa 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1503parabola.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy
index 11d413d9..86e422aa 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1504conecut.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy
index 9bb3b856..09cea9cf 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samples/s15C/s1505skeleton.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy
index e78fe2b3..ac2ecd2d 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basic.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basicketcindy.html b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basicketcindy.html
deleted file mode 100644
index 6ae9f06e..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js01basicketcindy.html
+++ /dev/null
@@ -1,6491 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>js01basic.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="http://cindyjs.org/dist/v0.8/CindyJS.css">
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/Cindy.js"></script>
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csdraw" type="text/x-cindyscript">
-Fhead="js01basic"; // write a head name
-Texparent="";
-Ketinit();
-Changework(Dirhead+"/ketsample/samplesJS");
-
-Addax(1);
-
-Listplot([A,B,C,A],["do"]);
-Plotdata("1","sin(x)","x");
-Expr([D,"e","y=\sin x"]);
-Letter([A,"w","A",B,"n","B",C,"e","C"]);
-Windispg();
-//Help("List");
-
-;
-</script>
-<script id="csinit" type="text/x-cindyscript">
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changework(path):=(
-//help:Changework(directory);
- regional(tmp); // 16.04.23from
- Dirwork=path;
- setdirectory(Dirwork); // 16.04.23
- if(ismacosx(),
- if(!iskcexists(Dirwork), // 16.06.07from
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
-// if(!isstring(Dq),Dq=unicode("0022")); // 18.07.30
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- println(SCEOUTPUT,"chmod +x kc.sh");
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+"/kc.sh",Dirlib,Fnametex)); // 16.07.23
- ); // 16.06.07upto
- );
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(Out,|#_1-Tmp2_1|<Dif);
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_2),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-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;
-);
-
-Colorcode(src,dest,sL):=(
-//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=="hsv", dL=Colorrgbhsv(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;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- 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);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Lcrd(ptlist_1);//16.10.10
- tmp2=Lcrd(ptlist_2);//16.10.10
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[tmp1,tmp];
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(plist):=Bowdata(plist,[]);
-Bowdata(plist,options):=(
- regional(nm,tmp);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Bowdata(nm,plist,options);
-);
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- Bops=#;
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- if(length(Bname)>0,
- Bpos="md"+name;
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);
- Bname=Bname+Dq+Bpos+Dq+",";
- if(indexof(Bname,"rot")>0,
- tmp1=pB-pA;
- if(tmp1_1<0, tmp1=-tmp1);
- tmp2=indexof(Bops,",");
- if(tmp2>0,
- tmp=substring(Bops,0,tmp2-1);
- if(indexof(tmp,"u")>0,
- tmp1=-tmp1;
- Bops=replace(tmp,"u","")+substring(Bops,tmp2-1,length(Bops));
- Bops=replace(Bops,"=,","=");
- );
- );
- Bname=Bname+text(tmp1)+",";
- );
- tmp=substring(Bops,indexof(Bops,"="),length(Bops));
- tmp1=indexof(tmp,",");
- if(tmp1==0,
- if(indexof(Bname,"rot")==0,
- Bname=Bname+Dq+"c"+Dq+","+Dq+tmp;
- ,
- Bname=Bname+Dq+tmp;
- );
- ,
- Bname=Bname+Dq+substring(tmp,0,tmp1-1)+Dq+","
- +Dq+substring(tmp,tmp1,length(tmp));
- );
- Bname=Bname+Dq+")";
- parse(Bname);
- );
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name);
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Bowname(str):=Bowname("c",str);
-Bowname(dir,str):=(
- Expr([BOWMIDDLE,dir,str]);
-);
-
-Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
-Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
-Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
-Bownamerot(bwdata,tmov,nmov,str,updown):=(
- regional(bdata,tmp);
- tmp=MeasureDepth(bwdata);
- if(tmp==1,bdata=[bwdata],bdata=bwdata);
- if(length(bdata)>1,
- tmp=Ptend(bdata_2)-Ptstart(bdata_1);
- ,
- tmp=Ptend(bdata_1)-Ptstart(bdata_1);
- );
- if(updown<0,tmp=-tmp);
- Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing(";
- tmp1="list(";
- forall(plist,
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,Lcrd(#));
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- if(Dir=="s" % Dir=="n", Dir=Dir+"c");//16.10.08
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- use: ["katex"],
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [4.0, 3.2, -0.8], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 1.7506361323155215, 0.372929562139521], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [4.0, 3.0, -1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- {name: "B", type: "Free", pos: [-2.1481481481481484, -4.0, -1.3570492400077014], color: [1.0, 0.0, 0.0], size: 2.0},
- {name: "C", type: "Free", pos: [4.0, -3.0, 1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- {name: "D", type: "Free", pos: [4.0, 0.3393939393939394, 0.4441252058207023], color: [1.0, 0.0, 0.0], size: 1.0},
- {name: "Text1", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 1.0, 0.0], fillalpha: 0.27272728085517883, script: "if(length(Shellparent)>0,\n Makeshell(),Makebat();\n);\nWritetoSci(2);", text: "Parent", textsize: 18.0, dock: {corner: "UL", offset: [10.0, -20.0]}},
- {name: "Text3", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 0.29, 0.29], fillalpha: 0.27272728085517883, script: "Viewtex();", text: "Texview", textsize: 18.0, dock: {corner: "UL", offset: [79.0, -20.0]}},
- {name: "Text0", type: "ToggleButton", color: [0.0, 0.0, 0.0], fillcolor: [0.0, 1.0, 1.0], fillalpha: 0.27272728085517883, script: "Mkketcindyjs();", text: "KeTJS", textsize: 18.0, dock: {corner: "UL", offset: [243.0, -20.0]}},
- {name: "Text4'", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 0.498, 0.0], fillalpha: 0.27272728085517883, script: "kc();", text: "Exekc", textsize: 18.0, dock: {corner: "UL", offset: [164.0, -20.0]}}
- ],
- ports: [{
- id: "CSCanvas",
- width: 766,
- height: 453,
- transform: [{visibleRect: [-7.764668168545777, 5.826912667783914, 13.141257374885031, -6.536513273696708]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1894, version: [2, 9, 1894]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html>
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy
index 4f3445d2..1bbe45a7 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2ketcindy.html b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2ketcindy.html
deleted file mode 100644
index 53b5c9a0..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js02diffeq2ketcindy.html
+++ /dev/null
@@ -1,6502 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>js02diffeq2.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="http://cindyjs.org/dist/v0.8/CindyJS.css">
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/Cindy.js"></script>
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csdraw" type="text/x-cindyscript">
-Fhead="s210diffeq2";
-Texparent="";
-
-Ketinit();
-Changework(Dirhead+"/ketsample/samplesJS");
-
-//Deqplot("1","y`=y","x",0,1);
-Deqplot("2","y``=-L.x*y`-G.x*y","t=[0,XMAX]",0,[C.y,0],["Num=200"]);
-//Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,A,["Num=200"]);
-
-Expr([M,"e","\displaystyle\frac{d^2 x}{dt^2}+"+L.x+"\frac{dx}{dt}+"+G.x+"x=0"]);
-
-Windispg();
-
-//Help("De");
-
-;
-</script>
-<script id="csinit" type="text/x-cindyscript">
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changework(path):=(
-//help:Changework(directory);
- regional(tmp); // 16.04.23from
- Dirwork=path;
- setdirectory(Dirwork); // 16.04.23
- if(ismacosx(),
- if(!iskcexists(Dirwork), // 16.06.07from
- SCEOUTPUT = openfile("kc.sh");
- println(SCEOUTPUT,"#!/bin/sh");
-// if(!isstring(Dq),Dq=unicode("0022")); // 18.07.30
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
- println(SCEOUTPUT,"chmod +x kc.sh");
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- println(kc(Dirwork+"/kc.sh",Dirlib,Fnametex)); // 16.07.23
- ); // 16.06.07upto
- );
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(Out,|#_1-Tmp2_1|<Dif);
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_2),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-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;
-);
-
-Colorcode(src,dest,sL):=(
-//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=="hsv", dL=Colorrgbhsv(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;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- 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);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Lcrd(ptlist_1);//16.10.10
- tmp2=Lcrd(ptlist_2);//16.10.10
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[tmp1,tmp];
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(plist):=Bowdata(plist,[]);
-Bowdata(plist,options):=(
- regional(nm,tmp);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Bowdata(nm,plist,options);
-);
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- Bops=#;
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- if(length(Bname)>0,
- Bpos="md"+name;
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);
- Bname=Bname+Dq+Bpos+Dq+",";
- if(indexof(Bname,"rot")>0,
- tmp1=pB-pA;
- if(tmp1_1<0, tmp1=-tmp1);
- tmp2=indexof(Bops,",");
- if(tmp2>0,
- tmp=substring(Bops,0,tmp2-1);
- if(indexof(tmp,"u")>0,
- tmp1=-tmp1;
- Bops=replace(tmp,"u","")+substring(Bops,tmp2-1,length(Bops));
- Bops=replace(Bops,"=,","=");
- );
- );
- Bname=Bname+text(tmp1)+",";
- );
- tmp=substring(Bops,indexof(Bops,"="),length(Bops));
- tmp1=indexof(tmp,",");
- if(tmp1==0,
- if(indexof(Bname,"rot")==0,
- Bname=Bname+Dq+"c"+Dq+","+Dq+tmp;
- ,
- Bname=Bname+Dq+tmp;
- );
- ,
- Bname=Bname+Dq+substring(tmp,0,tmp1-1)+Dq+","
- +Dq+substring(tmp,tmp1,length(tmp));
- );
- Bname=Bname+Dq+")";
- parse(Bname);
- );
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name);
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Bowname(str):=Bowname("c",str);
-Bowname(dir,str):=(
- Expr([BOWMIDDLE,dir,str]);
-);
-
-Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
-Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
-Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
-Bownamerot(bwdata,tmov,nmov,str,updown):=(
- regional(bdata,tmp);
- tmp=MeasureDepth(bwdata);
- if(tmp==1,bdata=[bwdata],bdata=bwdata);
- if(length(bdata)>1,
- tmp=Ptend(bdata_2)-Ptstart(bdata_1);
- ,
- tmp=Ptend(bdata_1)-Ptstart(bdata_1);
- );
- if(updown<0,tmp=-tmp);
- Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing(";
- tmp1="list(";
- forall(plist,
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,Lcrd(#));
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- if(Dir=="s" % Dir=="n", Dir=Dir+"c");//16.10.08
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- use: ["katex"],
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [-2.5744680851063833, -4.0, 0.8525536333742482], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 2.4285714285714284, 0.44032989855593035], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [0.0, -4.0, -0.8], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "B", type: "Free", pos: [-0.02366863905325444, -4.0, 0.9484028584281579], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "a", type: "Segment", color: [0.0, 0.0, 1.0], args: ["A", "B"], labeled: true},
- {name: "C", type: "PointOnSegment", pos: [0.011092747971205843, -4.0, -1.619421523013707], color: [1.0, 0.0, 0.0], args: ["a"], labeled: true},
- {name: "E", type: "Free", pos: [0.0, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "F", type: "Free", pos: [4.0, -2.1818181818181817, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "b", type: "Segment", color: [0.0, 0.0, 1.0], args: ["E", "F"], labeled: true},
- {name: "G", type: "PointOnSegment", pos: [2.8117446133333335, -4.0, 0.6666666666666666], color: [1.0, 0.0, 0.0], args: ["b"], labeled: true},
- {name: "H", type: "Free", pos: [0.0, -4.0, 0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "K", type: "Free", pos: [4.0, -2.5454545454545454, 0.36363636363636365], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "c", type: "Segment", color: [0.0, 0.0, 1.0], args: ["H", "K"], labeled: true},
- {name: "L", type: "PointOnSegment", pos: [0.5714285714285715, -4.0, 0.5714285714285714], color: [1.0, 0.0, 0.0], args: ["c"], labeled: true},
- {name: "M", type: "Free", pos: [-2.0, -4.0, -1.0], color: [1.0, 0.0, 0.0], size: 2.0},
- {name: "Text3", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 0.29, 0.29], fillalpha: 0.27272728085517883, script: "Viewtex();", text: "Texview", textsize: 18.0, dock: {corner: "UL", offset: [76.0, -20.0]}},
- {name: "Text4", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 0.498, 0.0], fillalpha: 0.27272728085517883, script: "kc();", text: "Exekc", textsize: 18.0, dock: {corner: "UL", offset: [157.0, -20.0]}},
- {name: "Text1", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 1.0, 0.0], fillalpha: 0.27272728085517883, script: "if(length(Shellparent)>0,\n Makeshell(),Makebat();\n);\nWritetoSci(2);", text: "Parent", textsize: 18.0, dock: {corner: "UL", offset: [10.0, -20.0]}},
- {name: "Text0", type: "ToggleButton", color: [0.0, 0.0, 0.0], fillcolor: [0.0, 1.0, 1.0], fillalpha: 0.27272728085517883, script: "Mkketcindyjs();", text: "KeTJS", textsize: 18.0, dock: {corner: "UL", offset: [225.0, -20.0]}}
- ],
- ports: [{
- id: "CSCanvas",
- width: 1052,
- height: 584,
- transform: [{visibleRect: [-9.745440419289913, 6.700770173058494, 16.50860137608266, -7.873716907262401]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1894, version: [2, 9, 1894]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html>
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy
index 2e926cd4..1305329e 100644
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy
+++ b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamow.cdy
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamowketcindy.html b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamowketcindy.html
deleted file mode 100644
index 3acb1b2c..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/js03gamowketcindy.html
+++ /dev/null
@@ -1,6494 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
-
- <title>js03gamow.cdy</title>
- <style type="text/css">
- * {
- margin: 0px;
- padding: 0px;
- }
-
- #CSConsole {
- background-color: #FAFAFA;
- border-top: 1px solid #333333;
- bottom: 0px;
- height: 200px;
- overflow-y: scroll;
- position: fixed;
- width: 100%;
- }
- </style>
- <link rel="stylesheet" href="http://cindyjs.org/dist/v0.8/CindyJS.css">
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/Cindy.js"></script>
- <script type="text/javascript" src="http://cindyjs.org/dist/v0.8/KetCindyPlugin.js"></script>
-<script id="csdraw" type="text/x-cindyscript">
-Fhead="js03gamow";
-Ketinit();
-
-Changework(gethome()+"/Desktop");
-
-rotate(points,th):=(
- regional(pa,pb,za,zb,zr,deg);
- pa=points_1; pb=points_2;
- za=pa.x+pa.y*i; zb=pb.x+pb.y*i;
- deg=pi/180*th;
- zr=za+(zb-za)*(cos(deg)+i*sin(deg));
- [re(zr),im(zr)];
-);
-
-p1=rotate([A,C],90);
-p2=rotate([B,C],-90);
-Ds=0.5;
-red="color->[1,0,0]";
-
-Listplot([C,A]);
-Listplot([C,B]);
-Listplot("a",[A,p1]);
-Listplot("b",[B,p2]);
-Listplot("0",[p1,p2],[red]);
-Pointdata("a",p1,[red,"Size=4"]);
-Pointdata("b",p2,[red,"Size=4"]);
-if(norm(C.xy-pc)>Ds,
- ptsL=append(ptsL,[p1,p2]);
- pc=C.xy;
-);
-forall(1..(length(ptsL)),
- Listplot(text(#),ptsL_#,[red,"do"]);
-);
-
-Windispg();
-
-;
-</script>
-<script id="csinit" type="text/x-cindyscript">
-Ketinit():=Ketinit(1);
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2);
- PenThickInit=8;
- ULEN="1cm";
- KETPICLAYER=20;
- MilliIn=1/2.54*1000;
- PenThick=round(MilliIn*0.02);
- PenThickInit=PenThick;
- TenSizeInit=0.02;
- TenSize=TenSizeInit;
- YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
- KETPICCOUNT=1;
- KCOLOR=[0,0,0];
- GLIST=[];
- GCLIST=[];
-// GDATALIST=[];
- GOUTLIST=[];
- POUTLIST=[];
- VLIST=[];
- FUNLIST=[];
- LETTERlist=[];
- COM0thlist=[];
- COM1stlist=[];
- COM2ndlist=[];
- SCIWRLIST=[];
- SCIRELIST=[];
- ADDAXES="1";
- LFmark=unicode("000a");
- Dq=unicode("0022");
- WaitUnit=10;
- CONTINUED=0;
- OutComList=[];
- OutFileLIst=[]; // 15.10.22
- FigPdfList=[]; // 16.04.08
- ADDPACK=[]; // 16.05.16
- ErrFlag=0;
- setdirectory(Dirwork);
- if(isstring(Fhead), // 15.04.06
- Fnametex=Fhead+".tex";
- Fnamesci=Fhead+".sce";
- Fnamescibody=Fhead+"body.sce";
- Fnameout=Fhead+".txt";
- );
- if(!isstring(Mackc),// 16.06.07
- Mackc="sh";
- );
- ArrowlineNumber=1; // 15.01.05
- ArrowheadNumber=1;
- BezierNumber=1; //15.01.03
- SCALEX=1;
- SCALEY=sy;
-// Setscaling(sy);
- XMIN=rangex_1/SCALEX;
- XMAX=rangex_2/SCALEX;
- YMIN=rangey_1/SCALEY;
- YMAX=rangey_2/SCALEY;
- Setwindow("Msg=n"); // 16.05.31
-);
-
-DqDq(str):=unicode("0022")+str+unicode("0022");
-
-Tab2list(dtstr):=Tab2list(dtstr,[]);
-Tab2list(dtstr,options):=(
-//help:Tab2list(datastr);
-//help:Tab2list(options=[0]);
- regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2);
- crm=unicode("000d");
- lfm=unicode("000a");
- htm=unicode("0009");
- rep=0;
- if(length(options)>0,rep=options_1);
- first=lfm; // 16.09.05from
- if(indexof(dtstr,crm)>0,
- first=crm;
- if(indexof(dtstr,crm+lfm)>0,
- first=first+lfm;
- ); // 16.09.05upto
- );
- tmp1=Indexall(dtstr,first);
- tmp1=prepend(0,tmp1);
- tmp1=append(tmp1,length(dtstr));
- dtall=[];
- forall(1..(length(tmp1)-1),
- tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1);
- if(length(tmp)>0,
- dtall=append(dtall,tmp);
- );
- );
- out=[];
- forall(dtall,dt,
- tmp1=tokenize(dt,unicode("0009"));
- tmp2=[];
- forall(tmp1,
- if(isstring(#),tmp=parse(#),tmp=#);
- if(!isreal(tmp),
- if(length(#)>0,tmp=#,tmp=rep);
- );
- tmp2=append(tmp2,tmp);
- );
- out=append(out,tmp2);
- );
- out;
-);
-
-Columnlist(dt,list):=( // 16.09.04
-//help:Columnlist(dt,1..3);
- apply(dt,#_list);
-);
-
-Dispmat(dt):=( // 16.09.16
-//help:Dispmat(dt);
- regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
- htm=unicode("0009");
- crm=unicode("000d");
- lfm=unicode("000a");
- tmp2="";
- forall(dt,row,
- tmp1="";
- forall(row,
- if(isstring(#),
- tmp1=tmp1+#+htm;
- ,
- tmp1=tmp1+text(#)+htm;
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp1=tmp1+lfm;
- tmp2=tmp2+tmp1;
- );
- print(tmp2);
- println();
-);
-
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
- regional(out,tmp,tmp1,tmp2);
- out=0;
- forall(1..length(v1),
- out=out+(v1_#)^2;
- );
- out=sqrt(out);
- out;
-);
-norm(v1,v2):=(
- norm(v2-v1);
-);
-
-// 16.03.28
-Removespace(str):=(
-//help:Removespace(" a b c ");
- regional(tmp,flg,out);
- tmp=length(str)+1;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- if((str_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(str,tmp-1,length(str));
- flg=0;
- tmp=0;
- forall(reverse(1..length(out)),
- if(flg==0,
- if((out_#)!=" ",
- tmp=#;
- flg=1;
- );
- );
- );
- out=substring(out,0,tmp);
-);
-
-Indexall(str,key):=(
- regional(rest,out,flg,tmp,tmp1,);
- out=[];
- rest=str;
- flg=0;
- forall(1..length(str),
- if(flg==0,
- tmp=indexof(rest,key);
- if(tmp>0,
- tmp1=tmp+length(str)-length(rest);
- out=append(out,tmp1);
- rest=substring(rest,tmp,length(rest));
- ,
- flg=1;
- );
- );
- );
- out;
-);
-
-Changestyle(nameL,style):=(
-//help:Changestyle(["sgAB"],["da"]);
- regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp);
- tmp=Divoptions(style);
- Ltypeorg=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- forall(nmL,name,
- Ltype=Ltypeorg;
- GCLIST=select(GCLIST,#_1!=name);
- COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
-);
-
-Op(n,object):=( // 16.05.25
-//help:Op(4,[1,2,3,4]);
-//help:Op(3,"abcd");
- regional(out);
- if(islist(object),
- out=object_n;
- ,
- if(isstring(object),
- out=substring(object,n-1,n);
- );
- );
- out;
-);
-
-Toupper(str):=(
- regional(alphabet,out,tmp,tmp1);
- alphabet="abcdefghijklmnopqrstuvwxyz";
- out="";
- forall(1..length(str),
- tmp=substring(str,#-1,#);
- tmp1=indexof(alphabet,tmp);
- if(tmp1>0,
- out=out+unicode(text(tmp1+64),base->10);
- ,
- out=out+tmp;
- );
- );
- out;
-);
-
-Textformat(value,dig):=(
-//help:Textformat(2/3,4);
-//help:Textformat([gr1,gr2],5);
- regional(vv,tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+Textformat(#,dig)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- if(ispoint(value) % isstring(value),
-// vv=Lcrd(value);
-// tmp1=Textformat(vv,dig);
-// tmp1=text(value); // 15.04.07
- if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02
- ,
- tmp1=format(value,dig);
- );
- );
- tmp1;
-);
-
-Sprintf(value,dig):=(
-//help:Sprintf(5.1,4);
- regional(vv,tmp,tmp1);
- if(!islist(value),
- vv=Textformat(value,dig);
- if(indexof(vv,".")==0,vv=vv+".");
- vv=vv+"0000000000000000";
- tmp=indexof(vv,".")+dig;
- vv=substring(vv,0,tmp);
- ,
- vv=apply(value,Sprintf(#,dig));
- );
- vv;
-);
-
-Assign(funstr,vrL):=(
- regional(nn,out,tmp,tmp1);
- nn=length(vrL)/2;
- out=funstr;
- forall(1..nn,
- out=Assign(out,vrL_(2*#-1),vrL_(2*#));
- );
- out;
-);
-
-Assign(funstr,varname,rep):=(
-//help:Assign("x^2+a*x","a",1.3);
-//help:Assign("a*x^2+b*x",["a",1,"b",2]);
- regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg);
- if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06
- tmp=[46]; // 12.20
- tmp=concat(tmp,48..57);
- tmp=concat(tmp,65..90);
- tmp=concat(tmp,97..122);
- Notvar=apply(tmp,unicode(text(#),base->10));
- tmp2="";
- forall(1..100,
- ii=indexof(funstr,varname);
- if(ii>0,
- Flg=0;
- if(ii>1,
- tmp=substring(funstr,ii-2,ii-1);
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,ii);
- funstr=substring(funstr,ii,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- jj=ii-1+length(varname);
- if(jj<length(funstr),
- tmp=substring(funstr,jj,jj+1));
- if(contains(Notvar,tmp),
- tmp2=tmp2+substring(funstr,0,jj);
- funstr=substring(funstr,jj,length(funstr));
- Flg=1;
- );
- );
- if(Flg==0,
- tmp2=tmp2+substring(funstr,0,ii-1)+repstr;
- funstr=substring(funstr,jj,length(funstr));
- );
- );
- );
- funstr=tmp2+funstr;
- funstr;
-);
-
-MeasureDepth(list):=(
- regional(tmp,Depth,Flg);
- Flg=0;
- Depth=0;
- if(ispoint(list), // 15.01.22
- Depth=0;
- Flg=1;
- ,
- tmp=list_1;
- );
- repeat(4,
- if(Flg==0,
- if(islist(tmp),
- tmp=tmp_1;
- Depth=Depth+1;
- ,
- if(ispoint(tmp),Depth=Depth+1);
- Flg=1;
- );
- );
- );
- Depth;
-);
-
-Flattenlist(pltlist):=(
-//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
- regional(Out,nn,Dt,ii,tmp,flg);
- Out=[];
- if(MeasureDepth(pltlist)==1,
- Out=[pltlist];
- ,
- forall(1..length(pltlist),nn,
- Dt=pltlist_nn;
- if(MeasureDepth(Dt)<2,
- Out=append(Out,Dt);
- ,
- forall(1..length(Dt),ii,
- tmp=Flattenlist(Dt_ii);
- Out=concat(Out,tmp);
- );
- );
- );
- );
- Out;
-);
-
-Divoptions(options):=(
-//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1);
- Ltype="dr"; // 2015.01.13
- Noflg=0;
- Inflg=0;
- Outflg=0;
- eqL=[];
- realL=[];
- strL=[];
- opstr="";
- opcindy="";
- forall(options,
- flg=0;
- if(flg==0,
- if(isreal(#) % ispoint(#) % islist(#),
- realL=append(realL,#);
- opstr=opstr+","+text(#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"=")>0,
- eqL=append(eqL,#);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"no")+indexof(#,"No")>0,
- if(indexof(#,"tex")>0,Noflg=1);
- if(indexof(#,"disp")>0,Noflg=2);
- if(indexof(#,"data")>0,Noflg=3);
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"out")+indexof(#,"Out")>0,
- if(indexof(#,"-")==0,
- Outflg=1;
- ,
- Outflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- if(indexof(#,"in")+indexof(#,"In")>0,
- if(indexof(#,"-")==0,
- Inflg=1;
- ,
- Inflg=2;
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(#,0,2);
- tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr");
- tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da");
- tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id");
- tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do");
- tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp");
- if(tmp1>0,
- Ltype=#;
- flg=1;
- );
- if(flg==0,
- strL=append(strL,#);
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- );
- if(indexof(opcindy,"color->")==0,// 16.10.07from
- opcindy=opcindy+",color->[0,0,0]";
- );
- [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy];
-);
-
-Dotprod(vec1,vec2):=(
-//help:Dotprod(vec1,vec2);
- regional(v1,v2,tmp);
- if(ispoint(vec1),v1=vec1.xy,v1=vec1);
- if(ispoint(vec2),v2=vec2.xy,v2=vec2);
- v1*v2;
-);
-
-Crossprod(a,b):=(
-//help:Crossprod(vec1,vec2);
- regional(tmp1,tmp2,tmp3,Out);
- if(length(a)==3,
- tmp1=a_2*b_3-a_3*b_2;
- tmp2=a_3*b_1-a_1*b_3;
- tmp3=a_1*b_2-a_2*b_1;
- Out=[tmp1,tmp2,tmp3];
- ,
- Out=a_1*b_2-a_2*b_1;
- );
- Out;
-);
-
-Ptstart(Fig):=(
-//help:Ptstart("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
- tmp_1;
-);
-
-Ptend(Fig):=(
-//help:Ptend("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_(length(tmp)); // 15.04.12
-);
-
-Numptcrv(Fig):=(
-//help:Numptcrv("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
- length(tmp);
-);
-
-Ptcrv(Num,Fig):=(
-//help:Ptcrv(10,"gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
- tmp_Num;
-);
-
-Invert(Fig):=(
-//help:Invert("gr1");
- regional(tmp);
- if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
- reverse(tmp);
-);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
-Invert(nm,Fig,options):=(
-//help:Invert("1","gr1");
- regional(name,tmp);
- name="-inv"+nm;
- tmp=Invert(Fig);
- Listplot(name,tmp,options);
-);// upto 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
-// Eps=10^(-8);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- Tmp=Nearestpt(pP,PtL);
- Tmp_2;
-);
-
-ParamonCurve(pP,nN,plist):=(
-//help:ParamonCurve(A,10,"gr1");
- regional(PtL,Out,Pa,Pb,vV,vW,sS);
- if(isstring(plist),PtL=parse(plist),PtL=plist);
- PtL=apply(PtL,LLcrd(#));//16.10.16
- if(nN==length(PtL),
- Out=nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- vV=Pb-Pa;
- vW=pP-Pa;
- sS=vV*vW/|vV|^2;
- sS=min([max([sS,0]),1]);
- Out=nN+sS;
- );
- Out;
-);
-
-Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
-PointonCurve(tT,Gdata):=(
-//help:PointonCurve(20.5,"gr1");
- regional(Out,Eps,nN,sS,Pa,Pb,PtL);
- if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
- if(length(PtL)==1,PtL=PtL_1);
- Eps=10^(-4);
- nN=floor(tT+Eps);
- sS=max([tT-nN,0]);
- if(nN==length(PtL),
- Out=PtL_nN;
- ,
- Pa=PtL_nN;
- Pb=PtL_(nN+1);
- Out=(1-sS)*Pa+sS*Pb;
- );
- Out;
-);
-
-Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
-Koutenseg(pA,pB,pC,pD,options):=(
- regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
- em1,eM1,em2,eM2,rT,Tmp1,Tmp2);
- Eps0=10^(-4);
- pV=pB-pA;
- Sv2=|pV|;
- pP=pC-pA; pQ=pD-pA;
- Eps=10^(-3);
- Eps2=0.2;
- Tmp1=0;
- forall(options,
- if(Tmp1==0,
- Eps=#;
- Tmp1=1;
- ,
- Eps2=#;
- );
- );
- Flg=0;
- if(Sv2<10^(-3),
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- Eps=min([Eps2,Eps/Sv2]);
- p1=pP*pV/Sv2^2;
- p2=[pP_2,-pP_1]*pV/Sv2^2;
- q1=pQ*pV/Sv2^2;
- q2=[pQ_2,-pQ_1]*pV/Sv2^2;
- em1=-Eps; eM1=1+Eps;
- em2=-Eps; eM2=Eps;
- if(max([p1,q1])<em1 % min([p1,q1])>eM1,
- Out=["inf","inf"];
- Flg=1;
- );
- if(max([p2,q2])<em2 % min([p2,q2])>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- );
- if(Flg==0 & p2*q2<0,
- rT=p1-(q1-p1)/(q2-p2)*p2;
- if(rT>em1 & rT<eM1,
- if(rT>-Eps0 & rT<1+Eps0,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,0];
- ,
- Tmp1=pA+rT*pV;
- Tmp2=min([max([rT,0]),1]);
- Out=[Tmp1,Tmp2,1];
- );
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- );
- if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0),
- rT= p1;
- Tmp1=pA+rT*pV;
- Out= [Tmp1, rT, 0];
- Flg=1;
- );
- if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0),
- rT= q1;
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,0];
- Flg=1;
- );
- if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2),
- if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2,
- Out=["inf","inf"];
- Flg=1;
- );
- if(Flg==0,
- rT=min([max([q1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- );
- if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2),
- rT=min([max([p1,0]),1]);
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- Flg=1;
- );
- if(Flg==0,
- if(abs(p2)<abs(q2),
- rT=min([max([p1,0]),1]);
- ,
- rT=min([max([q1,0]),1]);
- );
- Tmp1=pA+rT*pV;
- Out=[Tmp1,rT,1];
- );
- Out;
-);
-
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
- regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
- Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
- pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
- Eps=10^(-4);
- Eps2=0.1;
- Dif=0.05; // 2015.05.31
- Flg=0;
- Tmp1=Divoptions(options); //
- eqL=Tmp1_5;
- realL=Tmp1_6;
- opstr=Tmp1_(length(Tmp1));
- forall(eqL,
- if(substring(#,0,1)=="D",
- Tmp1=indexof(#,"=");
- Dif=parse(substring(#,Tmp1,length(#)));
- );
- );
- Tmp1=length(realL);
- if(Tmp1>0,
- Eps=realL_1;
- if(Tmp1>1,
- Eps2=realL_2;
- );
- );
- Flg=0;
- if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1);
- if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2);
- if(MeasureDepth(Data1)==2,Data1=Data1_1);
- if(MeasureDepth(Data2)==2,Data2=Data2_1);
- Data1=apply(Data1,LLcrd(#));
- Data2=apply(Data2,LLcrd(#));
- if(length(Data1)==length(Data2),
- Tmp1=Reverse(Data2);
- Eps0=10^(-6);
- Tmp2=0;
- forall(1..length(Data1),
- Tmp2=Tmp2+abs(Data1_#-Data2_#);
- );
- Tmp3=0;
- forall(1..length(Data1),
- Tmp3=Tmp3+abs(Data1_#-Tmp1_#);
- );
- if(Tmp2<Eps0 % Tmp3<Eps0,
- Out=[];
- Flg=1;
- );
- );
- if(Flg==0,
- KL1=[];
- KL2=[];
- forall(1..(length(Data1)-1),Ni,
- pA=Data1_Ni;
- pB=Data1_(Ni+1);
- forall(1..(length(Data2)-1),
- pP=Data2_#; pQ=Data2_(#+1);
- Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]);
- if(Tmp!=["inf","inf"],
- if(Tmp_3==0,
- Tmp1=[Tmp_1,Tmp_2,Ni,#];
- KL1=concat(KL1,[Tmp1]);
- ,
- Tmp2=[Tmp_1,Tmp_2,Ni,#];
- KL2=concat(KL2,[Tmp2]);
- );
- );
- );
- );
- Out=[];
- if(length(KL1)>0,
- Tmp=KL1_1;
- pP=Tmp_1;
- rT=Tmp_2;
- Ni=Tmp_3;
- Nj=Tmp_4;
- Tmp=[pP,Ni+rT,Nj];
- Out=[Tmp];
- );
- forall(2..length(KL1),Ni,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL1_Ni;
- pP=Tmp_1;
- rT=Tmp_2;
- Tmp1=Tmp_3;
- Tmp2=Tmp_4;
- Tmp=[pP,Tmp1+rT,Tmp2];
- Out=concat(Out,[Tmp]);
- );
- );
- forall(1..length(KL2),Ni,
- Tmp=KL2_Ni; // 15.11.21 Usui
- pP=Tmp_1;
- Tmp2=0;
- Flg=0;
- forall(1..length(Out),Nj,
- if(Flg==0,
- Tmp=Out_Nj;
- if(|pP-Tmp_1|<Eps,
- Tmp2=1;
- Flg=1;
- );
- );
- );
- if(Tmp2==0,
- Tmp=KL2_Ni;
- rT=Tmp_2;
- rT=min([max([rT,0]),1]); // 15.11.21 Usui
- Tmp=[pP,Tmp_3+rT,Tmp_4];
- Out=concat(Out,[Tmp]);
- );
- );
- );
- Tmp1=Out; // 15.04.06 from
- Out=[];
- forall(Tmp1,Tmp2,
- Tmp3=select(1..(length(Out)),|Out_#_1-Tmp2_1|<Dif);//16.11.27
- if(length(Tmp3)==0,
- Out=append(Out,Tmp2);
- ,
- forall(Tmp3,//16.11.27
- Out_#=(Out_#+Tmp2)/2;
- );
- );
- ); // 15.04.06 upto
- Out;
-);
-
-Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
-//help:Intersectcrvs("gr1","pa1");
-Intersectcrvs(Gr1,Gr2,options):=(
- regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
- apply(tmp1,#_1);
-);
-
-NearestptcrvPhy(point,PL):=(
- regional(tmp,pP,plist);
- pP=Pcrd(point);
- if(isstring(PL),plist=parse(PL),plist=PL);
- if(MeasureDepth(plist)==2,plist=plist_1);
- plist=apply(plist,#); // 14.12.18
- tmp=Nearestpt(pP,plist);
- tmp=tmp_1;
- [tmp_1/SCALEX,tmp_2/SCALEY];
-);
-
-Nearestptcrv(point,plist):=(
-//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
- tmp_1;
-);
-
-Nearestpt(point,PL2):=(
- regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
- a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
-//help:Nearestpt("gr1","gr2");
- if(isstring(point),PL1=parse(point),PL1=point);
- if(MeasureDepth(PL1)==2,PL1=PL1_1);
- if(!islist(PL1_1),
- PL1=[PL1];
- Flg=0;
- ,
- Flg=1;
- );
- if(isstring(PL2),PL=parse(PL2),PL=PL2);
- if(MeasureDepth(PL)==2,PL=PL_1);
- Eps=10^(-6);
- Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|];
- forall(1..length(PL1),Nn, // 16.05.04
- pA=PL1_Nn;
- Pm=PL_1;
- Im=1;
- Sm=|Pm-pA|;
- forall(1..(length(PL)-1),Ni,
- a1=PL_Ni_1; a2=PL_Ni_2;
- b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2;
- v1=b1-a1; v2=b2-a2;
- x1=pA_1; x2=pA_2;
- Tmp=v2^2+v1^2;
- if(abs(Tmp)>Eps,
- rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp;
- if(rT<-Eps,
- pP=[a1,a2];
- ,
- if(rT>1+Eps,
- pP=[b1,b2];
- ,
- pP=[a1+rT*v1,a2+rT*v2];
- );
- );
- sS=|pP-pA|;
- if(sS<Sm-Eps,
- Tmp=ParamonCurve(pP,Ni,PL);
- Pm=pP; Lm=Tmp; Sm=sS;
- );
- );
- if(Sm<Ans_5, // 16.05.03from
- Ans=[pA,Nn,Pm,Lm,Sm];
- );
- ); // 16.05.03upto
- );
- if(Flg==0,
- Ans=Ans_(3..5);
- );
- Ans;
-);
-
-Derivative(fun,var,value):=(
-//help:Derivative("x^3","x",2);
- regional(str,tmp);
- str="d(";
- str=str+replace(fun,var,"#")+",";
- str=str+value+")";
- tmp=Pcrd([1,parse(str)]); // 14.11.08
- tmp_2;
-);
-
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
- ,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
- );
-);
-
-Integrate(pltdata,range,options):=(
-//help:Integrate("gr1",[1,3]);
-//help:Integrate("gr1",[1,3],["Rule=t"]);
- regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
- tmp=Divoptions(options);
- eqL=tmp_5;
- Rule="o";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Rule=substring(#,tmp,tmp+1);
- );
- );
- if(Rule=="o",
- Sm= IntegrateO(pltdata,range);
- ,
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- list=apply(list,LLcrd(#)); // 15.09.14
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- ptP=list_#; // 15.09.14
- ptQ=list_(#+1);
- Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2;
- );
- Sm;
- );
-);
-
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
- Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
- );
- Sm=0;
- if(Way=="t",
- forall(1..Num,
- Lx=range_1+(range_2-range_1)*(#-1)/Num;
- Rx=range_1+(range_2-range_1)*#/Num;
- va1=parse(replace(fnstr,vastr,textformat(Lx,5)));
- va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
- Sm=Sm+(va1+va2)*(Rx-Lx)/2;
- );
- ,
- sx=range_1;
- ex=range_2;
- dx=(ex-sx)/Num;
- xn=apply(0..Num,sx+#*dx);
- yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5))));
- dx=dx/2;
- repeat(Num,s,
- x0=xn_s;
- x1=(xn_s+xn_(s+1))/2;
- x2=xn_(s+1);
- y0=yn_s;
- y1=parse(replace(fnstr,vastr,textformat(x1,5)));
- y2=yn_(s+1);
- Sm=Sm+dx*(y0+4*y1+y2)/3;
- );
- );
- Sm;
-);
-
-IntegrateO(p0org,p1org,p2org,p3org):=(
- regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
- p11,p12,p21,p22,p31,p32, tmp);
- if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10
- if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16
- if(ispoint(p2org),p2=p2org.xy,p2=p2org);
- if(ispoint(p3org),p3=p3org.xy,p3=p3org);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp=tmp/20;
-);
-IntegrateO(pltdata,rangeorg):=(
-//help:IntegrateO("gr1",[0,2]);
- regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg,
- Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata);
- if(MeasureDepth(pdata)==2,pdata=pdata_1);
- range=rangeorg;
- pmflg=1;
- if(range_2<range_1,
- range=reverse(range);
- pmflg=-1;
- );
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
- list=select(pdata,(#_1>range_1 & #_1<range_2));
- if((length(list)>0) & (list_1_1>list_(length(list))_1),
- list=reverse(list);
-// pmflg=pmflg*(-1);
- );
- list=apply(list,LLcrd(#));
- list=concat([va1],list);
- list=concat(list,[va2]);
- Sm=0;
- forall(1..(length(list)-1),
- p1=list_#;
- p2=list_(#+1);
- if(#==1 % #==length(list)-1,
- tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2;
- Sm=Sm+tmp1;
- ,
- p0=list_(#-1);
- p3=list_(#+2);
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0);
- pR=p2+cc*(p1-p3);
- p01=p1_1; p02=p1_2;
- p31=p2_1; p32=p2_2;
- p11=pQ_1; p12=pQ_2;
- p21=pR_1; p22=pR_2;
- tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11-
- 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11-
- 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01-
- 6*p32*p21+10*p32*p31;
- tmp1=tmp1/20;
- Sm=Sm+tmp1;
- );
- );
- if(pmflg==-1,
- Sm=-Sm;
- );
- Sm;
-);
-
-Findarea(pdstr):=(
-//help:Findarea("sgABCA");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=pd_#;
- p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
- s=s+tmp;
- );
- if(s<0,s=-s);
- s;
-);
-
-Findlength(pdstr):=(
-//help:Findlength("gr1");
- regional(pd,p1,p2,s,tmp);
- if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
- s=0;
- forall(1..(length(pd)-1),
- p1=Lcrd(pd_#);
- p2=Lcrd(pd_(#+1));
- tmp=|p2-p1|;
- s=s+tmp;
- );
- s;
-);
-
-Inversefun(fnstr,rngstr,value):=(
- regional(tmp,varstr,range,x1,x2,x3,va1,va2);
- tmp=indexof(rngstr,"=");
- varstr=substring(rngstr,0,tmp-1);
- range=parse(substring(rngstr,tmp,length(rngstr)));
- x1=range_1; x2=range_2;
- repeat(15,
- x3=(x1+x2)/2;
- va1=parse(replace(fnstr,varstr,textformat(x1,5)));
- va2=parse(replace(fnstr,varstr,textformat(x3,5)));
- if((va1>value & va2>value) % (va1<value & va2<value),
- x1=x3;
- ,
- x2=x3;
- );
- );
- va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value;
- va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value;
- if(x1==range_1 % x2==range_2,
- println("not found in ("+textformat(range_1,5)
- +","+textformat(range_2,5)+")");
- );
- if(abs(va1)<=abs(va2),x1,x2);
-);
-
-Lcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=[pt.x/SCALEX,pt.y/SCALEY];
- ,
- tmp=pt;
- );
- tmp;
-);
-
-Pcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=re(pt.xy); // 15.07.24
- ,
- tmp=[pt_1*SCALEX,pt_2*SCALEY];
- );
- tmp;
-);
-
-LLcrd(pt):=(
- regional(tmp);
- if(ispoint(pt),
- tmp=pt.xy
- ,
- tmp=pt;
- );
- tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
- tmp;
-);
-
-Doscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Unscaling(pltdata):=(
- regional(Level,Out,gL,gr,tmp);
- if(ispoint(pltdata) % isreal(pltdata_1),
- gL=[[pltdata]];
- Level=0;
- ,
- if(ispoint(pltdata_1) % isreal(pltdata_1_1),
- gL=[pltdata];
- Level=1;
- ,
- gL=pltdata;
- Level=2;
- );
- );
- Out=[];
- forall(gL,gr,
- tmp=apply(gr,Lcrd(#));
- tmp=apply(tmp,LLcrd(#));
- Out=concat(Out,[tmp]);
- );
- if(Level==0,
- Out=Out_1_1;
- );
- if(Level==1,
- Out=Out_1;
- );
- Out;
-);
-
-Definecolor(name,data):=(
-//help:Definecolor("mycolor",[1,1,1,0]);
- regional(type,tmp);
- if(length(data)>3,type="cmyk",type="rgb");
- tmp=text(data);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
- Texcom(tmp);
-);
-
-Setcolor(Par):=(
-//help:Setcolor([1,0,0,1]);
-//help:Setcolor([1,1,0]);
- if(islist(Par),
- if(length(Par)==3,
- Setcolorrgb(Par); // 2015.04.28
-// KCOLOR=Par;
- );
- if(length(Par)==4,
- Setcolor(Par,[]);
- );
- ,
- Setcolor(Par,[]);
- );
-);
-
-Setcolor(colorname,options):=(
-//help:Setcolor("greenyellow",0.3);
- regional(tmp);
- if(isstring(colorname),
- tmp="Setcolor("+Dq+colorname+Dq;
- if(length(options)>0,
- tmp=tmp+","+text(options_1);
- );
- Com2nd(tmp+")");
- );
- if(islist(colorname),
- tmp=text(colorname);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
- );
-);
-
-Setcolorrgb(colorlist):=(
-// help:Setcolorrgb([0.5,0.3,0.4]);
- regional(tmp);
- tmp=text(colorlist);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")";
- Com2nd(tmp);
-);
-
-ColorRgb2Cmyk(clr):=(
-// help:ColorRgb([0.2,0.5,0.1]);
- regional(clrnew,tmp,black);
- tmp=apply(clr,1-#);
- black=min(tmp);
- tmp=apply(clr,(1-#-black)/(1-black));
- clrnew=append(tmp,black);
- clrnew;
-);
-
-ColorCmyk2Rgb(clr):=(
-// help:ColorRgb([0.2,0.5,0.1,0.2]);
- regional(clrnew,tmp,black);
- black=clr_4;
- tmp=apply(clr,1-min(1,#*(1-black)+black));
- clrnew=tmp_(1..3);
- clrnew;
-);
-
-Colorrgbhsv(rgb):=(
- regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
- varR = rgb_1;
- varG = rgb_2;
- varB = rgb_3;
- varMin = min( [varR, varG, varB] );
- varMax = max( [varR, varG, varB] );
- delMax = varMax - varMin ;
- vv = varMax;
- if ( delMax == 0 ,
- hh = 0 ;
- ss = 0 ;
- ,
- ss = delMax / varMax;
- delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax;
- delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax;
- if( varR == varMax ,
- hh = delB - delG;
- ,
- if ( varG == varMax,
- hh = ( 1 / 3 ) + delR - delB;
- ,
- if ( varB == varMax ,
- hh = ( 2 / 3 ) + delG - delR;
- );
- );
- );
- if ( hh < 0 ,hh = hh+1);
- if ( hh > 1 ,hh = hh-1);
- );
- [hh*360,ss,vv];
-);
-
-Colorhsvrgb(sL):=(
- regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
- tmp=[sL_1/60,sL_2,sL_3];
- hi=mod(floor(tmp_1),6);
- ff=tmp_1-floor(tmp_1);
- tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)];
- tmp2=append(tmp2,tmp_3);
- if(hi==0,dL=tmp2_[4,3,1]);
- if(hi==1,dL=tmp2_[2,4,1]);
- if(hi==2,dL=tmp2_[1,4,3]);
- if(hi==3,dL=tmp2_[1,2,4]);
- if(hi==4,dL=tmp2_[3,1,4]);
- if(hi==5,dL=tmp2_[4,1,2]);
- dL;
-);
-
-Colorrgbhsl(rgb):=(
- regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
- rr = rgb_1 ;
- gg = rgb_2 ;
- bb = rgb_3 ;
- mn = min([rr, gg, bb]);
- mx = max([rr, gg, bb]);
- delta = mx - mn;
- ll = (mx + mn) / 2;
- if (delta == 0,
- hh=0;
- ss=0;
- ,
- if (ll < 0.5,
- ss = delta/ (mx + mn);
- ,
- ss = delta / (2 - mx - mn);
- );
- deltaR = (((mx - rr) / 6) + (delta / 2)) / delta;
- deltaG = (((mx - gg) / 6) + (delta / 2)) / delta;
- deltaB = (((mx - bb) / 6) + (delta / 2)) / delta;
- if (rr == mx,
- hh = deltaB - deltaG;
- ,
- if (gg == mx,
- hh = (1 / 3) + deltaR - deltaB;
- ,
- if (bb == mx,
- hh = (2 / 3) + deltaG - deltaR;
- );
- );
- );
- if ( hh < 0, hh = hh+1);
- if ( hh > 1, hh = hh-1);
- );
- [hh*360,ss,ll];
-);
-
-Colorhslrgb(hsl):=(
- regional(hh,ss,ll,rr,gg,bb,var1,var2);
- hh=hsl_1/360;
- ss=hsl_2;
- ll=hsl_3;
- if ( ss == 0.0,
- rr = ll ;
- gg = ll ;
- bb = ll ;
- ,
- if ( ll < 0.5 ,
- var2 = ll * ( 1.0 + ss );
- ,
- var2 = ( ll + ss ) - ( ss * ll );
- );
- var1 = 2.0 * ll - var2;
- rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) );
- gg = hue2rgb( var1, var2, hh );
- bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) );
- );
- [rr,gg,bb];
-);
-
-hue2rgb(vv1,vv2,vh):=(
- regional(out);
- if ( vh < 0.0 ,vh =vh+1);
- if ( vh > 1.0 ,vh =vh-1);
- if ( 6.0*vh < 1.0 ,
- out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ;
- ,
- if( 2.0*vh < 1.0 ,
- out = vv2;
- ,
- if ( 3.0*vh < 2.0 ,
- out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ;
- ,
- out= vv1 ;
- );
- );
- );
- out;
-);
-
-Colorrgbhwb(sL):=(
- regional(dl1,dl2,dl3);
- dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
- dl2 = min(sL);
- dl3 = 1 - max(sL);
- dL= [dl1, dl2 , dl3 ];
-);
-
-Colorhwbrgb(sLorg):=(
- regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
- sL=sLorg;
- sL=[sL_1/360,sL_2,sL_3];
- ratio = sL_2 + sL_3;
- // sL_2 + sL_3 cant be > 1
- if (ratio > 1.,
- sL_2 =sL_2 / ratio;
- sL_3 = sL_3 / ratio;
- );
- ii = floor(6 * sL_1);
- vv = 1 - sL_3;
- ff = 6 * sL_1 - ii;
- if(mod(ii,2)==1,ff = 1 - ff);
- nn = sL_2 + ff * (vv - sL_2); // linear interpolation
- tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn],
- [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]];
- flg=0;
- forall(0..6,
- if(flg==0 & ii == # ,
- dL=tmp_(#+1);
- flg=1;
- );
- );
- dL;
-);
-
-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;
-);
-
-Colorcode(src,dest,sL):=(
-//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=="hsv", dL=Colorrgbhsv(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;
-);
-
-Addcolor(cmdorg,list):=(
-//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]);
- regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4);
- cmd=replace(cmdorg,"'",Dq);
- if(length(list)==3,
- rgb=list;
- cmyk=Colorcode("rgb","cmyk",list);
- ,
- cmyk=list;
- rgb=Colorcode("cmyk","rgb",list);
- );
- tmp1="color->"+text(rgb);
- tmp2="Setcolor("+text(cmyk)+");";
- tmp3=substring(cmd,0,length(cmd)-2);
- tmp=substring(tmp3,length(tmp3)-1,length(tmp3));
- if(tmp!="[",
- tmp3=tmp3+",";
- );
- tmp3=tmp3+Dq+tmp1+Dq+"])";
- parse(tmp2);
- parse(tmp3);
- Setcolor("black");
-);
-
-Colorinfile(filename,clrf,clrt):=(
- regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
- if(length(clrf_1)==3,
- head="[rgb]{";
- ,
- head="[cmyk]{";
- );
- 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);
-);
-
-GetLinestyle(str,name):=(
- regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
- Ltype=-1;
- Dop="";
- tmp1=indexof(str,",");
- if(tmp1>0,
- Dop=","+substring(str,tmp1,length(str));
- );
- noflg=parse(substring(str,0,1));
- if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29
- tmp1=substring(str,1,3);
- if(tmp1=="dr" % tmp1=="Dr",
- Ltype=0;
- if(noflg==0 & subflg==0, // 16.02.29
- Drwline(name+Dop);
- );
- );
- if(tmp1=="da" % tmp1=="Da",
- Ltype=1;
- if(noflg==0 & subflg==0, // 16.02.29
- Dashline(name+Dop);
- );
- );
- if(tmp1=="id" % tmp1=="Id",
- Ltype=2; // 15.11.09
- if(noflg==0 & subflg==0, // 16.02.29
- Invdashline(name+Dop);
- );
- );
- if(tmp1=="do" % tmp1=="Do",
- Ltype=3;
- if(noflg==0 & subflg==0, // 16.02.29
- Dottedline(name+Dop);
- );
- );
- if(tmp1=="dp" % tmp1=="Dp",
- Ltype=0;
- tmp1=parse(name);
- tmp2="";
- forall(tmp1,
- tmp2=tmp2+textformat(#_1,5)+",";
- );
- tmp2=substring(tmp2,0,length(tmp2)-1);
- if(noflg==0,
- Drwpt(tmp2+Dop);
- );
- );
- if(tmp1=="no" % tmp1=="No",
- Ltype=10;
- );
- Ltype;
-);
-
-Chunderscore(str):=(
- regional(flg,tmp,tmp1,tmp2,tmp3);
- if(indexof(str,"]")>0,
- tmp1=replace(str,"]",",]");
- ,
- tmp1=str+",";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=substring(tmp1,tmp3,length(tmp1));
- tmp=indexof(tmp,",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- if(indexof(str,"]")>0,
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,"[","list(");
- ,
- tmp1=substring(tmp1,0,length(tmp1)-1);
- );
- tmp1;
-);
-
-//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]);
-AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
-// if(isstring(Arg2),
-// AddGraph(Arg1,Arg2,[]);
-// ,
-// if(MeasureDepth(Arg2)>0,
-// Addgraph(Arg1,Arg2,[]);
-// ,
-// Addgraph("-"+Arg1,Arg1,Arg2);
-// );
-// );
-//);
-AddGraph(nm,pltdata,options):=(
-//help:AddGraph("1","imp1"); // 16.04.04
-//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]);
- regional(name,Ltype,Noflg,opcindy,pdata,fname,flg,
- tmp,tmp1,tmp2,tmp3);
- if(substring(nm,0,1)=="-",
- name=substring(nm,1,length(nm));
- ,
- name="ad"+nm;
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_9;
- if(isstring(pltdata),
- pdata=parse(pltdata)
- ,
- if(!islist(pltdata),pdata=[pltdata],pdata=pltdata);
- pdata=apply(pdata,parse(#));
- ); // 15.01.22
- pdata=Flattenlist(pdata);
- tmp1=[];
- forall(pdata,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- pdata=tmp1;
- if(Noflg<3,
- println("generate addgraph "+name);
- tmp=name+"="+textformat(pdata,5);
- parse(tmp);
- if(isstring(pltdata), // 16.04.04 from
- if(indexof(pltdata,"]")>0,
- tmp1="list(Listplot("+substring(pltdata,1,length(pltdata));
- tmp1=replace(tmp1,"]",",]");
- ,
- tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]";
- );
- flg=0;
- tmp2=[];
- tmp3=0;
- forall(1..length(tmp1),
- if(flg==0,
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_");
- if(tmp==0,
- flg=1;
- ,
- tmp3=tmp3+tmp;
- tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1;
- tmp=substring(tmp1,tmp3,tmp3+tmp);
- tmp2=append(tmp2,tmp);
- );
- );
- );
- forall(tmp2,
- tmp1=replace(tmp1,"_"+#,"("+#+")");
- );
- tmp1=replace(tmp1,",]",")");
- tmp1=replace(tmp1,",","),Listplot(");
- if(indexof(pltdata,"[")>0,
- tmp1=tmp1+")";
- );
- GLIST=append(GLIST,name+"="+tmp1);
- ,
- if(MeasureDepth(pdata)==1,
- tmp1=name+"=Listplot("+textformat(pdata,5)+")";
- ,
- tmp1="list(";
- forall(1..length(pdata),
- tmp=name+"p"+textformat(#,5)+"=";
- if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+textformat(pdata_#,5)+")";
- ,
- tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")";
- );
- GLIST=append(GLIST,tmp);
- tmp1=tmp1+name+"p"+textformat(#,5)+",";
- );
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
- );
- GLIST=append(GLIST,tmp1);
- );
- ); // 16.04.04 upto
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
-Joincrvs(nm,plotstrL,options):=(
-//help:Joincrvs("1",["sgAB","sgDCB"]);
- regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN,
- opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg);
- name="join"+nm;
- plotlist=[];
- forall(plotstrL,str,
- if(isstring(str),
- tmp=parse(str);
- tmp=apply(tmp,LLcrd(#));
- ,
- tmp=str;
- );
- plotlist=append(plotlist,tmp);
- );
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Eps=tmp1_1);
- QdL=[];
- forall(plotlist,Qd,
- if(ispoint(Qd_1) % !islist(Qd_1_1),
- QdL=concat(QdL,[Qd]);
- ,
- forall(Qd,
- QdL=concat(QdL,[#]);
- );
- );
- );
- Flg=0;
- if(length(QdL)==0,
- PtL=[];
- Flg=1;
- );
- if(Flg==0,
- PtL=QdL_1;
- forall(2..length(QdL),Ni,
- Qd=QdL_Ni;
- if(Numptcrv(Qd)>1,
- pP=Ptend(PtL);
- pS=Ptstart(PtL);
- pQ=Ptstart(Qd);
- pR=Ptend(Qd);
- rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]);
- if(rMN==|pP-pR|,
- Qd=reverse(Qd);
- ,
- if(rMN==|pS-pQ|,
- PtL=reverse(PtL);
- ,
- if(rMN==|pS-pR|,
- PtL=reverse(PtL);
- Qd=reverse(Qd);
- );
- );
- );
- );
- if(rMN>Eps,
- PtL=concat(PtL,Qd);
- ,
- PtL=concat(PtL,Qd_(2..length(Qd)));
- );
- );
- );
- if(Noflg<3,
- println("generate joincurve "+name);
- tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1="";
- forall(plotstrL,
- tmp1=tmp1+#+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1);
- GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PtL;
-);
-
-Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
-Partcrv(nm,pA,pB,PkLstr,options):=(
-//help:Partcrv("1",A,B,"sgABC");
-//help:Partcrv("1",1.3,2.5,"sgABC");
- regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP,
- opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg);
- name="part"+nm;
- if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr);
- DepthFlg=0;
- if(MeasureDepth(PkL)==2,
- PkL=PkL_1;
- DepthFlg=1;
- );
- PkL=apply(PkL,LLcrd(#));
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- Flg=0;
- if(isreal(pA),
- if(pA>pB+Eps,
- Npt=Numptcrv(PkL);
- Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]);
- Out2=Partcrv("",1,pB,PkLstr,["nodata"]);
- tmp=Ptstart(PkL)-Ptend(PkL);
- if(|tmp|<Eps,
- Ans=Joincrvs("",[Out1,Out2],["nodata"]);
- ,
- Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))];
- );
- Flg=1;
- );
- if(Flg==0,
- nS=ceil(pA);
- nE=floor(pB);
- PPL=[];
- if(pA<nS-Eps,
- pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS;
- PPL=[pP];
- );
- PPL=concat(PPL,PkL_(nS..nE));
- if(pB>nE+Eps,
- pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1);
- PPL=concat(PPL,[pP]);
- );
- Ans=PPL;
- Flg=1;
- );
- );
- if(Flg==0,
- tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL);
- Ta=tmp_2;
- tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12
- Tb=tmp_2;
- Ans=Partcrv("",Ta,Tb,PkL,["nodata"] );
- Ans=apply(Ans,Pcrd(#));
- );
- if(Noflg<3,
- println("generate partcrv "+name);
- tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST, // 16.04.03
- if(DepthFlg==0,
- tmp=PkLstr;
- ,
- tmp=PkLstr+"(1)";
- );
- tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5)
- +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03
- GLIST=append(GLIST,tmp1);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Ans;
-);
-
-Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
-Opcrvs(num,Fig,options):=(
- //help:Subgraph(2,"grfs");
- regional(name,tmp,tmp1);
- name="-"+Fig+text(num);
- tmp=Fig+"_"+text(num);
- tmp1=parse(tmp);
- Listplot(name,tmp1,options);
-);
-
-
-Pointdata(nm,list):=Pointdata(nm,list,[]);
-Pointdata(nm,list,options):=(
-//help:Pointdata("1",[2,4],["Size=5"]);
-//help:Pointdata("2",[[2,3],[4,1]]);
- regional(name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="pt"+nm;
- nameL=name+"L";
- println("generate pointdata "+name);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- size="";
- eqL=tmp_5;
- if(length(eqL)>0,
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
- );
- );
- );
- tmp=MeasureDepth(list);
- if(tmp>0, // 2015.02.21
- if(tmp==1,ptlist=list,ptlist=list_1);
- tmp=apply(ptlist,[textformat(Pcrd(#),5)]);
- tmp1=text(tmp);
- tmp2=substring(tmp1,1,length(tmp1)-1);
- tmp3=tmp1;
- ,
- ptlist=list;
- tmp1=textformat(Pcrd(ptlist),5);
- tmp2=tmp1;
- tmp3="["+tmp1+"]";
- );
- tmp=name+"="+tmp1;
- parse(tmp);
- tmp=nameL+"="+tmp3;
- parse(tmp);
- if(Noflg<3,
- GLIST=append(GLIST,name+"=Pointdata("+tmp2+")");
- );
- if(Noflg<2,
- tmp=[nameL,0,opcindy];
- GCLIST=append(GCLIST,tmp);
- if(Noflg==0,
- if(length(size)>0,
- Com2nd("Setpt("+size+")");
- );
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- Com2nd("Drwpt(list("+name+")"+opstr+")");
- Setpen(thick); // 16.04.09
- if(length(size)>0,
- Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
- );
- );
- );
- ptlist;
-);
-
-Listplot(nm,list,options):=(
-//help:Listplot([A,B]);
-// help:Listplot(["A","B"]);
-//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg);
- if(substring(nm,0,1)=="-", // 16.01.27 from
- name=substring(nm,1,length(nm));
- ,
- name="sg"+nm;
- ); // upto
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_(length(tmp));
- Msg=1; // 15.09.17
- forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
- Msg=0;
- );
- );
- );
- if(Noflg<3,
- if(Msg==1,
- println("generate Listplot "+name);
- );
- if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
- ptlist=apply(tmp,Pcrd(#));
- tmp=name+"="+textformat(ptlist,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp1=apply(list,Lcrd(#));
- tmp1;
-);
-Listplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Listplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Listplot(name,list,options);
- );
-);
-Listplot(list):=Listplot(list,[]);
-
-Lineplot(nm,list,options):=(
-//help:Lineplot([A,B]);
-//help:Lineplot("1",[[2,1],[3,3]]);
- regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi,
- Vec,pA,pB,Ltype,Noflg);
- name="ln"+nm;
- Mag=100;
- Semi="";
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- tmp1=tmp_6;
- if(length(tmp1)>0,Mag=tmp1_1);
- tmp1=tmp_7;
- if(length(tmp1)>0,Semi=tmp1_1);
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- Vec= Mag/dist(pA,pB)*(pB-pA);
- if(length(Semi)==0,
- Out=[pA-Vec,pA+Vec];
- ,
- if(Semi=="+",
- Out=[pA,pA+Vec];
- ,
- Out=[pA-Vec,pA];
- );
- );
- if(Noflg<3,
- println("generate Lineplot "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Lineplot(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Lineplot(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";
- forall(list, // 16.10.07from
- name=name+#.name;
- );// 16.10.07upto
- Lineplot(name,list,options);
- );
-);
-Lineplot(list):=Lineplot(list,[]);
-
-Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
-Plotdata(name1,func,variable,options):=(
-//help:Plotdata("1","sin(x)","x",["Num=100"]);
-//help:Plotdata("2","x^2","x=[-1,1]");
-//help:Plotdata("3","Fout(x)","x",["out"]);
- regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gr"+name1;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- Eps=10^(-3);
- tmp=replace(func,LFmark,"");
- tmp=tokenize(variable,"=");
- Vname=tmp_1;
- if(length(tmp)>1,
- tmp=tmp_2;
- tmp=parse(tmp);
- x1=tmp_1;
- x2=tmp_2;
- ,
- x1=XMIN;
- x2=XMAX;
- );
- // dx=(x2-x2)/Num;
- Ec=append(sort(Ec),10000);
- Fun=Assign(func,Vname, "xx");
- Exfun=Assign(Exfun,Vname, "xx");
- PdL=[];
- Ke=1;
- forall(0..Num,
- xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1)
- if(length(Exfun)>0,
- tmp=parse(Exfun);
- if(abs(tmp)<Eps,
- if(length(Pdt)>0,
- PdL=concat(PdL,["inf"]);
- );
- );
- ,
- Pa=[];
- if(xx-Ec_Ke<-Eps,
- Pa=[xx,parse(Fun)];
- );
- if(abs(xx-Ec_Ke)<=Eps,
- if(length(PdL)>0,
- if(PdL_(length(PdL))_1!="inf",
- Pa=["inf"];
- );
- );
- );
- if(xx-Ec_Ke>Eps,
- Pa=[xx,parse(Fun)];
- Ke=Ke+1;
- );
- if(length(Pa)>0,
- if(Pa_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(length(PdL)==0,
- PdL=[Pa];
- ,
- tmp=PdL_(length(PdL));
- if(tmp_1=="inf",
- PdL=concat(PdL,[Pa]);
- ,
- if(dist(tmp,Pa)<Dc,
- PdL=concat(PdL,[Pa]);
- ,
- PdL=concat(PdL,[["inf"],Pa]);
- );
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(PdL),PdL_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[PdL_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(PdL),
- tmp1=concat(tmp1,[PdL_(tmp..length(PdL))]);
- );
- PdL=tmp1;
- if(length(PdL)==1,
- PdL=PdL_1;
- );
- if(Noflg<3,
- println("generate Plotdata "+name);
- if(MeasureDepth(PdL)==1,
- tmp1=apply(PdL,Pcrd(#));
- ,
- tmp1=[];
- forall(PdL,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(func,LFmark,"");
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Plotdata "+name);
- tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Plotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
-//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
- regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
- Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
- Ltype,Noflg,Inflg,Outflg,opstr,opcindy);
- name="gp"+name1;
- Eps=10^(-4);
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Ec=[];
- Exfun="";
- Dc=1000;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
- Ec=parse(tmp1);
- ,
- Exfun=tmp1;
- );
- );
- if(substring(#,0,1)=="D",
- Dc=parse(tmp1);
- );
- );
- if(Inflg==0 & Outflg==0,
- tmp=indexof(variable,"=");
- vname=substring(variable,0,tmp-1);
- str=substring(variable,tmp,length(variable));
- Rng=parse(str);
- t1=Rng_1; t2=Rng_2;
- dt=(t2-t1)/Num;// differs from Scilab ( / Num-1)
- func=Assign(funstr,vname,"tt");
- Out=[];
- Ec=append(sort(Ec),10000);
- ke=1;
- forall(0..Num,
- pt=[];
- tt=Rng_1+#*dt;
- if(tt-Ec_ke<-Eps,
- pa=parse(func);
- );
- if(abs(tt-Ec_ke)<=Eps,
- if(length(Out)>0,
- if(Out_(length(Out))_1!="inf",
- pa=["inf"];
- );
- );
- );
- if(tt-Ec_ke>Eps,
- pa=parse(func);
- ke=ke+1;
- );
- if(length(pa)>0,
- if(pa_1=="inf",
- Out=append(Out,pa);
- ,
- if(length(Out)==0,
- Out=[pa];
- ,
- tmp=Out_(length(Out));
- if(tmp_1=="inf",
- Out=append(Out,pa);
- ,
- if(|tmp-pa|<Dc,
- Out=append(Out,pa);
- ,
- Out=concat(Out,[["inf"],pa]);
- );
- );
- );
- );
- );
- );
- tmp1=[];
- tmp2=select(1..length(Out),Out_#==["inf"]);
- tmp=1;
- forall(tmp2,
- if(#>tmp,
- tmp1=concat(tmp1,[Out_(tmp..(#-1))])
- );
- tmp=#+1;
- );
- if(tmp<length(Out),
- tmp1=concat(tmp1,[Out_(tmp..length(Out))]);
- );
- Out=tmp1;
- if(length(Out)==1,
- Out=Out_1;
- );
- if(Noflg<3,
- println("generate Paramplot "+name);
- if(MeasureDepth(Out)==1,
- tmp1=apply(Out,Pcrd(#));
- ,
- tmp1=[];
- forall(Out,tmp2,
- tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
- );
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=replace(funstr,LFmark,""); // 15.11.13
- tmp2=replace(variable,LFmark,"");
- tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
- ,
- // Inflg or Outflg >0 15.05.15
- if(Noflg<3,
- if(Outflg==1,
- println("Output Paramplot "+name);
- tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")";
- GLIST=append(GLIST,tmp);
- SCIWRLIST=append(SCIWRLIST,name);
- if(Inflg==0,Inflg=1); // 15.05.17
- );
- if(Inflg==1,
- println("Input Paramplotdata "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")";
- Com1st(tmp);
- SCIRELIST=append(SCIRELIST,name);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- );
-);
-
-Circledata(cenrad):=Circledata(cenrad,[]);
-Circledata(para1,para2):=(
-//help:Circledata([A,B],["Rng=[0,pi/2]"]);
-//help:Circledata([A,B,C]);
- regional(name,cenrad,options,str,n);
- if(isstring(para1),
- name=para1;
- cenrad=para2;
- options=[];
- ,
- cenrad=para1;
- options=para2;
- name="";// 16.10.07from
- forall(cenrad,
- name=name+#.name;
- );// 16.10.07upto
- );
- Circledata(name,cenrad,options);
-);
-Circledata(nm,cenrad,options):=(
- regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,
- tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps);
- name="cr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- Num=50;
- Rg=[0,2*pi];
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
- if(substring(#,0,1)=="N",
- Num=parse(tmp1);
- );
- if(substring(#,0,1)=="R",
- Rg=parse(tmp1);
- );
- );
- if(length(cenrad)==2,
- Ctr=Lcrd(cenrad_1);
- Ptcir=Lcrd(cenrad_2);
- ra=dist(Ctr,Ptcir);
- ,
- Eps=10^(-1);
- pA=Lcrd(cenrad_1);
- pB=Lcrd(cenrad_2);
- pC=Lcrd(cenrad_3);
- tmp=pB-pA;
- tmp1=(tmp_2,-tmp_1);
- tmp=pC-pB;
- tmp2=(tmp_2,-tmp_1);
- d1=det([tmp1,tmp2]);
- d2=det([pC-pA,tmp2]);
- if(abs(d1)<Eps & abs(d2)>10*Eps,
- println("points are in a line");
- ra=0;
- ,
- Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
- ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
- parse(tmp);
- Defvar(name+"center",Ctr);
- );
- );
- if(ra>0,
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- ,
- Out=Lineplot("1",[pA,pB],["nodata"]);
- );
- if(Noflg<3,
- println("generate Circledata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- if(length(cenrad)==2,
- tmp=name+"=Circledata("+cenrad+opstr+")";
- ,
- if(ra>0,
- tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")";
- ,
- tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")";
- );
- );
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata():=(
- regional(pA,pB);
- pA=LLcrd((SW+NE)/2); // 15.09.17
- pB=LLcrd(NE);
- Framedata("win",[pA,pB]);
-);
-Framedata(list):=Framedata(list,[]);
-Framedata(Arg1,Arg2):=(
- regional(name,list,options,str);
- if(isstring(Arg1),
- name=Arg1;
- list=Arg2;
- Framedata(name,list,[]);
- ,
- list=Arg1;
- options=Arg2;
- name="";// 16.10.07from
- forall(list,
- name=name+#.name;
- );// 16.10.07upto
- Framedata(name,list,options);
- );
-);
-
-Framedata(nm,list,options):=(
-//help:Framedata();
-//help:Framedata([A,B]);
-//help:Framedata("1",[A,B]);
-//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Framedata2(nm,list):=Framedata2(nm,list,[]);
-Framedata2(nm,list,options):=(
-//help:Framedata2("1",[A,B]);
- regional(tmp,tmp1,pC,pB);
- pC=(Lcrd(list_1)+Lcrd(list_2))/2;
- pB=Lcrd(list_2);
- Framedata(nm,[pC,pB],options);
-);
-
-Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
-Ovaldata(nm,Pdata,options):=(
-//help:Ovaldata("1",[A,B]);
-//help:Ovaldata(optios=[size]);
- regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph,
- opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg);
- name="ov"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- opstr=tmp_(length(tmp)-1);
- Rc=0.2;
- tmp1=tmp_6;
- if(length(tmp1)>0,Rc=tmp1_1*Rc);
-// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15
- Ctr=Lcrd(Pdata_1);
- if(ispoint(Pdata_2) % islist(Pdata_2),
- tmp1=Lcrd(Pdata_2);
- Dx=abs(tmp1_1-Ctr_1);
- Dy=abs(tmp1_2-Ctr_2);
- ,
- Dx=Pdata_2;
- Dy=Pdata_3;
- );
- Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
- tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
- ["nodata"]);
- tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
- ["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
- tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
- Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
- tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
- ["nodata"]);
- Graph=Joincrvs("2",[Graph,tmp2],["nodata"]);
- if(Noflg<3,
- println("generate Ovaldata "+name);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,
- name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5);
- GLIST=append(GLIST,
- name+"=Ovaldata("+tmp+opstr+")");
- );
- Graph;
-);
-
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);
-Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
-Drawsegmark(nm,ptlist,options):=(
-//help:Segmark("1",[A,B]);
-//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
- tmp,tmp1,tmp2);
- name="mrk"+nm;
- pA=ptlist_1;
- pB=ptlist_2;
- size=0.15;
- wid=0.05;
- tp=1;
- tmp1=Divoptions(options);
- eqL=tmp1_5;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
- size=size*tmp1;
- );
- if(tmp=="W" % tmp=="w",
- wid=wid*tmp1;
- );
- if(tmp=="T" % tmp=="t",
- tp=tmp1;
- );
- );
- mid=(pA+pB)/2;
- dir=(pB-pA)/|pB-pA|;
- nor=[-dir_2,dir_1];
-// nor=nor/|nor|;
- if(tp==1,
- tmp1=mid+size*nor;
- tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
- );
- if(tp==2,
- tmp1=mid+wid*dir+size*nor;
- tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
- tmp1=mid-wid*dir+size*nor;
- tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
- );
- if(tp==3,
- tmp1=mid;
- tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
- );
- if(tp==4,
- tmp=mid+size*2/sqrt(3)*nor;
- tmp1=mid+size*dir-size/sqrt(3)*nor;
- tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
- );
-);
-
-Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
-Parabolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5,5]";
- options=Arg;
- );
- Parabolaplot(nm,ptlist,rng,options);
-);
-Parabolaplot(nm,ptlist,rng,options):=(
-//help:Parabolaplot("1",[A,B,C]):
-//help:Parabolaplot("1",[A,B,C],"[-5,5]");
- regional(pA,pB,pC,angle,tmp,tmp1,tmp2);
- tmp1=Lcrd(ptlist_1);
- tmp2=Lcrd(ptlist_3);
- pB=Lcrd(ptlist_2);
- tmp=(tmp2-pB)/|tmp2-pB|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pA=Rotatepoint(tmp1,-angle,pB);
- pC=Rotatepoint(tmp2,-angle,pB);
- tmp1=1/(2*(pA_2-pB_2));
- tmp2=1/2*(pA_2+pB_2);
- tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2";
- tmp=tmp+"+("+format(tmp2,5)+")";
- tmp1=parse(rng);
- tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2];
- tmp2="x="+textformat(tmp1,5);
- Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
- Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
-);
-
-Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
-Ellipseplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[0,2*pi]";
- options=Arg;
- );
- Ellipseplot(nm,ptlist,rng,options);
-);
-Ellipseplot(nm,ptlist,rng,options):=(
-//help:Ellipseplot("1",[A,B,3]);
-//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]);
- regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=|tmp2-pA|+|tmp2-tmp1|;
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(d^2/4-f^2);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]";
- tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]";
- Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
- Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
-);
-
-Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
-Hyperbolaplot(nm,ptlist,Arg):=(
- regional(rng,options);
- if(isstring(Arg),
- rng=Arg;
- options=[];
- ,
- rng="[-5/2,5/2]";
- options=Arg;
- );
- Hyperbolaplot(nm,ptlist,rng,options);
-);
-Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
-//help:Hyperbolaplot("1",[A,B,C],["Num=200"]):
-//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]);
- regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2);
- tmp=Divoptions(optionsorg);
- eqL=tmp_5;
- options=optionsorg;
- opasy=[];
- forall(eqL,
- if(Toupper(substring(#,0,1))=="A",
- tmp=indexof(#,"=");
- opasy=[substring(#,tmp,length(#))];
- options=remove(options,[#]);
- );
- );
- pA=Lcrd(ptlist_1);
- tmp1=Lcrd(ptlist_2);
- if(ispoint(ptlist_3),
- tmp2=Lcrd(ptlist_3);
- d=abs(|tmp2-pA|-|tmp2-tmp1|);
- ,
- d=ptlist_3;
- );
- tmp=(tmp1-pA)/|tmp1-pA|;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- pB=Rotatepoint(tmp1,-angle,pA);
- f=|pB_1-pA_1|/2;
- a=d/2;
- b=sqrt(f^2-d^2/4);
- pM=(pA+pB)/2;
- tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp"));
- tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,";
- tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]";
- Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp"));
- tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"];
- Rotatedata(nm+"hyp",tmp,angle,append(options,pA));
- if(length(opasy)>0,
- Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]);
- Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]);
- tmp=["ln"+nm+"asy1","ln"+nm+"asy2"];
- Rotatedata(nm+"asy",tmp,angle,append(opasy,pA));
- );
-);
-
-Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
-//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
- pA=Lcrd(ptlist_1);
- pB=Lcrd(ptlist_2);
- rr=|pB-pA|;
- tmp=(pB-pA)/rr;
- if(tmp_2>=0,
- angle=arccos(tmp_1);
- ,
- if(tmp_1>=0,
- angle=arcsin(tmp_2);
- ,
- angle=-arccos(tmp_1);
- );
- );
- ptL=[];
- forall(0..number,
- tmp=angle+#*2*pi/number;
- tmp1=pA+rr*[cos(tmp),sin(tmp)];
- if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
- //Pointdata(nm,ptL);
- );
- tmp2=tmp1;
- ptL=append(ptL,tmp1);
- );
- Listplot(nm+"ply",ptL,options);
-);
-
-Putintersect(nm,pdata1,pdata2):=(
-//help:Putintersect("Q","gr1","gr2");
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)==1,
- Putpoint(nm,tmp_1);
- ,
- if(length(tmp)==0,
- err("No intersect point");
- ,
- err("Multiple intersect points");
- println(tmp);
- err("Choose point number");
- );
- );
-);
-Putintersect(nm,pdata1,pdata2,ptno):=(
- regional(pd1,pd2,tmp);
- if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1);
- if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2);
- tmp=Intersectcrvs(pd1,pd2);
- if(length(tmp)>0,
- Putpoint(nm,tmp_ptno);
- ,
- err("No intersect point");
- );
-);
-
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-//help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
- Eps=10^(-3);
- pP=point;
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
- );
- );
- Flg=0;
- Hiraki=Hiraki*pi/180;
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
- if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
- tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
- Flg=1;
- );
- pA=pB;
- );
- );
- SCALEY=scy;
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
- );
- if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
- Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
- );
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
- list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
- list;
- );
-);
-
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
- ,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
- if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(1)+Ltype,name);
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 upto
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
- );
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
- );
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 upto
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
- ,
- tmp=text(#);
- );
- opstr=opstr+","+tmp;
- );
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
-);
-
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // upto
-Anglemark(nm,plist,options):=(
-//help:Anglemark([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-//help:Anglemark(options=["E/L=(sep,)letter",size]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg);
- name="ag"+nm;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.5;
- Num=20;
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=opstr+","+text(realL_1);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- sab=pB-pA;
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- if(length(Bname)>0,
- Th=(Rg_1+Rg_2)/2;
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate anglemark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp=textformat(plist,5);
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-Paramark(plist):=Paramark(plist,[]);
-Paramark(plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy);
- tmp=textformat(plist,5);
- tmp=replace(tmp,",","");
- tmp=substring(tmp,1,length(tmp)-1);
- name="pm"+tmp;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01upto
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="L" % tmp=="l",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- );
- if(tmp=="E" % tmp=="e",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- );
- tmp=indexof(#,"=");
- Bops=substring(#,tmp,length(#)); // 16.11.01
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from(moved)
- tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31upto(moved)
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01upto
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- if(MeasureDepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1);
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & length(Arg1)==1,
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deq,rng,initt,initf,options):=(
- regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2,
- tmp,tmp1,tmp2,tmp3,tmp4);
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- tmp2=tmp_2;
- tmp3=tokenize(tmp1,"`");
- if(length(tmp3)==2,
- if(indexof(tmp1,"[")>0,
- Deqplot(nm,deq,rng,initt,initf,options,[2,3]);
- ,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- tmp=tokenize(rng2,"=");
- deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]";
- rng2="t="+tmp_2;
- if(isreal(initf) & length(initf)==1,
- initf2=[initt,initf];
- initt2=initt;
- ,
- initf2=Lcrd(initf));
- initt2=initf2_1;
- Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]);
- );
- ,
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- opcindy=tmp_9;
- opstr="";
- forall(eqL,
- if(Toupper(substring(#,0,1))=="N",
- tmp=indexof(#,"=");
- tmp1="N="+substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp1+"'";
- );
- );
- if(Noflg<1,
- if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]");
- var2="d"+tmp3_1;
- deq2="["+tmp3_1+","+var2+"]`=[";
- tmp=replace(tmp2,tmp3_1+"`",var2);
- deq2=deq2+var2+","+tmp+"]";
- Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]);
- parse(tmp);
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- parse("de"+nm);
- );
- );
-);
-Deqplot(nm,deq,rng,initt,initf,options,Sel):=(
-//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y``=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]);
- regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num,
- outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg,
- kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- Inflg=tmp_3;
- Outflg=tmp_4;
- eqL=tmp_5;
- strL=tmp_7;
-// opstr=tmp_(length(tmp)-1);
- opstr="";
- opcindy=tmp_(length(tmp));
- outstr="";
- forall(strL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="S",
- outstr="Sci";
- );
- );
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+tmp2+"="+tmp1+"'";
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- if(outstr=="Sci",
- if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1);
- );
- if(Noflg<3,
- if(outstr=="Sci",
- if(Outflg==1,
- println("Output Deqplot "+name);
- SCIWRLIST=append(SCIWRLIST,name);
- );
- if(Inflg==1,
- println("Input Deqplot "+name);
- if(length(SCIRELIST)==0,
- ReadOutData(Fnameout);
- );
- tmp=parse(name);
- if(islist(tmp),
- Extractdata(name,["nodisp"]); // 12.19
- );
- SCIRELIST=append(SCIRELIST,name);
- );
- ,
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=tmp_1;
- func=tmp_2;
- tmp=indexof(tmp1,",");
- xf=substring(tmp1,1,tmp-1);
- yf=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(yf,"]");
- yf=substring(yf,0,tmp-1);
- tmp=tokenize(rng,"=");
- Vname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+Vname+","+xf+","+yf+"):="+func+";";
- parse(tmp);
- tmp=tokenize(func,",");
- tmp1="-("+substring(tmp_1,1,length(tmp_1))+")";
- tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")";
- tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- pdL=[[tt,x0,y0]];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,x0,y0);
- kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt+#*dt;
- pdL=append(pdL,[tt,x0,y0]);
- if(|tmp1|>Inf,flg=1);
- );
- );
- tt=initt;
- tmp=Lcrd(initf);
- x0=tmp_1;
- y0=tmp_2;
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,x0,y0);
- kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2);
- kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2);
- kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2);
- tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6;
- x0=tmp1_1;
- y0=tmp1_2;
- tt=initt-#*dt;
- pdL=prepend([tt,x0,y0],pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- println("Generate Deqplot "+name);
- pdL=apply(pdL,#_Sel);
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<1,
- tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',";
- tmp=tmp+initt+","+initf+opstr+")";
- GLIST=append(GLIST,tmp);
- );
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- if(outstr=="Sci",
- if(Inflg==1,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- ,
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- pdL;
- );
- );
-);
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-3);
- EEps=0.1;
- Start=[];
- Flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=|pt-Start|;
- forall(2..length(KL),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..length(plist),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..length(KL),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=ParamonCurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..length(tmp)));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
-// tmp=name+"=Enclosing(";//16.10.20from
-// tmp1="list(";
-// forall(plist,
-// tmp1=tmp1+#+",";
-// );
-// tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- tmp=apply(AnsL,LLcrd(#));
- tmp=name+"=Listplot("+textformat(tmp,5)+")";//16.10.20upto
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-Shade(plist):=Shade(plist,[]);
-Shade(plist,options):=(
-//help:Shade(["gr2","sg1"],[0.5]);
-//help:Shade([pointlist],[0.5]);
- regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg);
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- flg=0;
- forall(plist,
- if(flg==0,
- if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24
- if(!islist(tmp),flg=1); upto
- );
- );
- if(flg==1,
-// err("some data not defined yet");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade(";
- tmp1="list(";
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // upto 16.01.24
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- Com2nd(Str);
-);
-
-
-//help:start();
-
-Rotatepoint(point,Theta,ctr):=(
-//help:Rotatepoint(A,2*pi/3,B);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(ctr);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- [X2,Y2];
-);
-
-Translatepoint(point,mov):=(
-//help:Translatepoint(A,[2,3]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- X2=X1+Cx;
- Y2=Y1+Cy;
- [X2,Y2];
-);
-
-Scalepoint(point,ratio,center):=(
-//help:Scalepoint(A,[3,2],[0,0]);
- regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- tmp=Lcrd(center);
- Cx=tmp_1; Cy=tmp_2;
- X2=Cx+ratio_1*(X1-Cx);
- Y2=Cy+ratio_2*(Y1-Cy);
- [X2,Y2];
-);
-
-Reflectpoint(point,symL):=(
-//help:Reflectpoint(A,B);
-//help:Reflectpoint(A,[[2,3]]);
-//help:Reflectpoint(A,[C,E]);\\
- regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp);
- tmp=Lcrd(point);
- X1=tmp_1; Y1=tmp_2;
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- [X2,Y2];
-);
-
-Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
-//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="rt"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- if(isstring(angle),Theta=parse(angle),Theta=angle);
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta);
- Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Rotatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Rotatedata("+tmp1+","
- +textformat(angle,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]);
-translatedata(nm,plist,mov,options):=(
-//help:translatedata("1",["gr1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name);
- name="tr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- tmp=Lcrd(mov);
- Cx=tmp_1; Cy=tmp_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=tmp_1+Cx;
- Y2=tmp_2+Cy;
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate translatedata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Scaledata(nm,plist,ratioV):=(
- regional(tmp);
- tmp=Lcrd(ratioV);
- Scaledata(nm,plist,tmp_1,tmp_2,[]);
-);
-Scaledata(nm,plist,Arg1,Arg2):=(
-//help:Scaledata("1","crAB",3,2,[[0,0]]);
- regional(tmp,options);
- if(islist(Arg2),
- tmp=Lcrd(Arg1);
- options=Arg2;
- Scaledata(nm,plist,tmp_1,tmp_2,options);
- ,
- Scaledata(nm,plist,Arg1,Arg2,[]);
- );
-);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name);
- name="sc"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- tmp1=tmp_6;
- if(length(tmp1)>0,
- Pt=Lcrd(tmp1_1);
- );
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Cx=Pt_1; Cy=Pt_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X2=Cx+rx*(tmp_1-Cx);
- Y2=Cy+ry*(tmp_2-Cy);
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Scaledata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Scaledata("+tmp1+","
- +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
-//help:Reflectdata("1","crAB",[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name);
- name="re"+nm;
- Pt=[0,0];
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opcindy=tmp_(length(tmp));
- pdata=plist;
- if(isstring(pdata),pdata=[pdata]);
- if(!isstring(pdata_1) & MeasureDepth(pdata)==1,
- pdata=[pdata];
- );
- Pt1=Lcrd(symL_1);
- if(length(symL)==1,
- Pt2=Pt1;
- ,
- Pt2=Lcrd(symL_2);
- );
- Us=Pt2_1-Pt1_1;
- Vs=Pt2_2-Pt1_2;
- PdL=[];
- forall(pdata,Njj,
- if(isstring(Njj),Kj=parse(Njj),Kj=Njj);
- if(MeasureDepth(Kj)==1,Kj=[Kj]);
- tmp2=[];
- forall(Kj,Nj,
- tmp1=[];
- forall(Nj,
- tmp=LLcrd(#);
- X1=tmp_1;
- Y1=tmp_2;
- if(Pt1==Pt2,
- X2=2*Pt1_1-X1;
- Y2=2*Pt1_2-Y1;
- ,
- X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1
- -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1
- +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2);
- );
- tmp1=concat(tmp1,[[X2,Y2]]);
- );
- tmp2=concat(tmp2,[tmp1]);
- );
- PdL=concat(PdL,tmp2);
- );
- if(Noflg<3,
- println("generate Reflectdata "+name);
- tmp1=[];
- forall(PdL,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
-// tmp1=textformat(plist,5);
- tmp1=text(plist); // 15.10.15
- tmp1=replace(tmp1,"[","list(");
- tmp1=replace(tmp1,"]",")");
- tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- PdL;
-);
-
-Mksegments():=Mksegments([]);
-Mksegments(options):=(
-//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
- forall(allsegments(),seg,
- str=text(inspect(seg,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
- );
-);
-
-Mkcircles():=Mkcircles([]);
-Mkcircles(options):=(
-//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
- forall(allcircles(),cir,
- str=text(inspect(cir,"definition"));
- tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
- ,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
- );
- );
-);
-
-Makesciarg(arglist):=(
- regional(str,tmpstr);
- str="";
- forall(arglist,
- if(isstring(#),
- tmpstr=Dq+#+Dq;
- ,
- tmpstr=textformat(#,5);
- );
- str=str+tmpstr+",";
- );
- str=substring(str,0,length(str)-1);
- str;
-);
-
-Setax(arglist):=(
-//help:Setax(["l","x","e","y","n","O","sw"]);
-//help:Setax([7,"nw"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com1st("Setax("+tmp+")");
-);
-
-Htickmark(arglist):=(
-//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=Makesciarg(arglist);
- Com2nd("Htickmark("+tmp+")");
-);
-
-Vtickmark(arglist):=(
-//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=Makesciarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
-);
-
-Drwxy():=(
-//help:Drwxy();
- Com2nd("Drwxy()");
- Addax(0); // 16.01.21
-);
-
-Drwpt(pstr):=Drawpoint(pstr);
-Drwpt(ptlist,nn):=( // 16.03.05 from
-//help:Drwpt(A);
-//help:Drwpt("[1,1],0");
-//help:Drwpt(A,0);
-//help:Drwpt([1,2],0);
- Drawpoint(ptlist,nn);
-);
-Drawpoint(pstr):=(
- if(isstring(pstr),
- println("Drwpt : "+pstr);
- Com2nd("Drwpt("+pstr+")");
- ,
- Drawpoint(pstr,1);
- );
-);
-Drawpoint(ptlistorg,nn):=(
- regional(ptlist,thick,tmp,tmp1);
- println("Drwpt : "+text(ptlistorg));
- if(islist(ptlistorg),
- if(MeasureDepth(ptlistorg)==1,
- ptlist=ptlistorg
- ,
- ptlist=[ptlistorg]
- );
- ,
- ptlist=[ptlistorg]
- );
- thick=PenThick/PenThickInit;// 16.04.09 from
- tmp1=max(TenSize/TenSizeInit,1)/8;
- Setpen(tmp1); // 16.04.09 upto
- forall(ptlist,
- tmp=textformat(#,5)+","+text(nn);
- Com2nd("Drwpt("+tmp+")"); // 16.04.09
- );
- Setpen(thick); // 16.04.09
-);// 16.03.05 upto
-
-Addax(param):=(
-//help:Addax(0);
- ADDAXES=text(param);
-);
-
-Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
-Expr(list):=Expr(list,[]);
-Expr(listorg,options):=( //16.10.09
-//help:Expr([A,"e","f(x)=x^2"]);
- regional(list,str,tmp,tmp1,tmp2);
- list=listorg;
- forall(1..round(length(list)/3),
- str=list_(3*#);
- if(!isstring(str),str=format(str,5));
- str="$"+str+"$";
- list_(3*#)=str;
- );
- Letter(list,options);
-);
-
-Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
-Letter(list):=Letter(list,[]);
-Letter(list,options):=(
-//help:Letter([C,"c","Graph of f(x)"]);
- regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy,
- opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2);
- tmp=Divoptions(options);
- Noflg=tmp_2;
- opL=select(options,indexof(#,"->")>0); //16.10.09from
- tmp=select(opL,indexof(#,"color"));
- size=12;
- clr=[0,0,0];
- bld=false;
- ita=false;
- aln="left";
- forall(opL,
- tmp=indexof(#,"->");
- tmp1=removespace(substring(#,0,tmp-1));
- tmp2=substring(#,tmp+1,length(#));
- if(tmp1=="size",sz=parse(tmp2));
- if(tmp1=="color",clr=parse(tmp2));
- if(tmp1=="bold",bld=parse(tmp2));
- if(tmp1=="ita",ita=parse(tmp2));
- );//16.10.09upto
- Off=-4;
- Dmv=8;
- Nj=1;
- while(Nj+2<=length(list),
-// Pos=textformat(list_Nj,5);
- Pos=list_Nj;
- Dir=list_(Nj+1);
- tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from
- if(tmp>0,
- tmp=indexof(Dir,"w")+indexof(Dir,"e");
- if(tmp==0,
- Dir="c"+Dir;//16.10.08
- );
- );//16.10.19upto
- Str=list_(Nj+2);
- if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09
- tmp=replace(Str,".xy","");
- tmp=replace(tmp,".x","(1)");
- Str=replace(tmp,".y","(2)");
- if(indexof(Str,"`")>0,
-// tmp=Dq+",Assign('"+Str+"','`',Prime()))";
- tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22
- ,
- tmp=Dq+","+Dq+Str+Dq+")";
- );
- if(Noflg==0,
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- );
- if(Noflg<2,
- Xmv=0;//16.10.13
- Ymv=-4;
- if(indexof(Dir,"n")>0,
- Ymv=Dmv/2;
- );
- if(indexof(Dir,"s")>0,
- Ymv=-Dmv*3/2;//16.10.13
- );
- if(indexof(Dir,"e")>0,
- Xmv=Dmv/2;
- Off=0;
- aln="left";
- );
- if(indexof(Dir,"w")>0,
- Xmv=-Dmv/2;
- Off=0; // 16.09.30from
- aln="right";
- );
- if(indexof(Dir,"c")>0,
- Xmv=0;//16.10.13
- Off=0;
- if(Ymv==0,Ymv=-4);//16.10.08
- aln="mid"; // 16.09.30upto
- );
- drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv],
- size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09
- );
- Nj=Nj+3;
- );
-);
-
-Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str);
-Letterrot(pt,dir,movstr,str):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Letterrot(pt,dir,tmov,nmov,str);
-);
-Letterrot(pt,dir,tmov,nmov,str):=(
- Letter([pt,"c",str],["notex"]);
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str);
-Exprrot(pt,dir,movstr,str):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
- regional(tmov,nmov,tmp,tmp1,tmp2);
- tmp1=indexof(movstr,"t");
- tmp2=indexof(movstr,"n");
- if(tmp1>0,
- if(tmp2>0,tmp=tmp2-1,tmp=length(movstr));
- tmov=parse(substring(movstr,tmp1,tmp));
- ,
- tmov=0;
- );
- if(tmp2>0,
- nmov=parse(substring(movstr,tmp2,length(movstr)));
- ,
- nmov=0;
- );
- Exprrot(pt,dir,tmov,nmov,str);
-);
-Exprrot(pt,dir,tmov,nmov,str):=(
- Expr([pt,"c",str],["notex"]);
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')");
-);
-
-Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
-Putpoint(name,Ptinit,Pt):=(
-//help:Putpoint("A",[1,2],[1,A.y]);
- regional(ptstr);
- ptstr=apply(allpoints(),#.name);
- if(!contains(ptstr,name),
- createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+textformat(Pcrd(Pt),5);
- parse(ptstr);
- );
-);
-
-Bezierpt(t,ptlist,ctrlist):=(
- regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
- p0=ptlist_1;
- p3=ptlist_2;
- p1=ctrlist_1;
- if(length(ctrlist)==1,
- p2=p3;
- flg3=0;
- ,
- p2=ctrlist_2;
- flg3=1;
- );
- if(length(p0)<3, // 15.02.08
- p0=Lcrd(p0);
- p3=Lcrd(p3);
- p1=Lcrd(p1);
- p2=Lcrd(p2);
- );
- p4=(1-t)*p0+t*p1;
- p5=(1-t)*p1+t*p2;
- p6=(1-t)*p2+t*p3;
- p7=(1-t)*p4+t*p5;
- p8=(1-t)*p5+t*p6;
- p9=(1-t)*p7+t*p8;
- if(flg3==0,p7,p9);
-);
-
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
-Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
-//help:Bezier("1",[A,D],[B,C]);
-//help:Bezier(options=["Num=10"]);
- regional(name,Ltype,Noflg,opstr,opcindy,Num,
- ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list);
- name="bz"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Num=10;
- tmp1=tmp_5;
- forall(tmp1, // 14.12.31
- if(substring(#,0,1)=="N",
- tmp2=indexof(#,"=");
- Num=parse(substring(#,tmp2,length(#)));
- opstr=opstr+","+Dq+#+Dq;
- );
- );
- ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16
- ctrlist=[]; // 14.12.31
- if(length(ctrlistorg)==length(ptlist)-1,
- forall(ctrlistorg,tmp1,
- if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1);
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- ,
- forall(1..(length(ptlist)-1),ii,
- tmp=ctrlistorg_((2*ii-1)..(2*ii));
- tmp=apply(tmp,Lcrd(#)); // 16.08.16
- ctrlist=append(ctrlist,tmp);
- );
- );
- if(!islist(Num),
- Num=apply(ctrlist,Num);
- );
- list=[];
- forall(1..(length(ptlist)-1),ii,
- tmp1=ptlist_(ii..(ii+1));
- tmp2=ctrlist_ii;
- if(ii==1,st=0,st=1);
- forall(st..Num_ii,
- tmp=Bezierpt(#/Num_ii,tmp1,tmp2);
- list=append(list,tmp);
- );
- );
- if(Noflg<3,
- println("generate Bezier "+name);
- out=apply(list,Pcrd(#));
- tmp=name+"="+textformat(out,5);
- parse(tmp);
- tmp1=textformat(ptlist,5);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=textformat(ctrlist,5);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")");
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- list;
-);
-
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-
-Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
-Putbezierdata(name,ptL,options):=(
- regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
- tmp=Divoptions(options);
- psize=3;
- Deg=3;
- tmp1=tmp_5;
- forall(tmp1,
- if(substring(#,0,1)=="D",
- tmp=indexof(#,"=");
- Deg=parse(substring(#,tmp,length(#)));
- );
- if(substring(#,0,1)=="S",
- tmp=indexof(#,"=");
- psize=parse(substring(#,tmp,length(#)));
- );
- );
- pts=[];
- ctrs=[];
- forall(1..length(ptL),
- p2=ptL_#; // 16.08.16
- if(ispoint(p2),
- tmp1=text(p2);
- ,
- tmp1=name+text(#);
- Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
- );
- inspect(parse(tmp1),"ptsize",psize);
- pts=append(pts,parse(tmp1));
- inspect(parse(tmp1),"color",4);
- if(#>1,
- p1=Lcrd(ptL_(#-1)); // 16.08.16
- p2=Lcrd(ptL_#); // 16.08.16
- if(Deg==3,
- tmp=(2*p1+p2)/3;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- tmp=(p1+2*p2)/3;
- tmp2=name+"q"+text(#-1);
- Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16
- inspect(parse(tmp2),"labeled",false); //15.01.22
- Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22
- inspect(parse(tmp2),"ptsize",psize);
- inspect(parse(tmp2),"color",3);
- ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]);
- ,
- tmp=(p1+p2)/2;
- tmp1=name+"p"+text(#-1);
- Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16
- inspect(parse(tmp1),"labeled",false); //15.01.22
- Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22
- inspect(parse(tmp1),"ptsize",psize);
- inspect(parse(tmp1),"color",3);
- ctrs=append(ctrs,[parse(tmp1)]);
- );
- );
- );
- [pts,ctrs,name];
-);
-
-Bezierstart(n):=( // 2016.02.26
- BezierNumber=n;
-);
-
-Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
-Mkbezierptcrv(ptdata,options):=(
- //help:Mkbezierptcrv([A,B,C,D]);
- //help:Mkbezierptcrv([[A,B],[C,D]]);
- //help:Mkbezierptcrv(options=["Num=10"]);
- // global BezierNumber
- regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
- ptlist=Readcsvsla(ptdata,options);
- ,
- ptlist=ptdata;
- );
- if(MeasureDepth(ptlist)==1,ptlist=[ptlist]);
- Out=[];
- forall(1..length(ptlist),
- tmp=floor((BezierNumber-1)/26);// 15.02.23
- if(tmp==0,tmp="",tmp=text(tmp));
- tmp2=mod(BezierNumber,26);
- if(tmp2==0,tmp2=26);
- tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11
- tmp2=Putbezierdata(tmp1,ptlist_#,options);
- Bezier(tmp2,options);
- BezierNumber=BezierNumber+1;
- Out=append(Out,tmp2_(1..2));
- );
- Out;
-);
-
-Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
-Mkbeziercrv(nm,ptctrL,options):=(
- //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
- regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2);
- if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL);
- forall(1..length(ptctrLL),
- name=nm+text(#);
- ptlist=ptctrLL_#_1;
- ctrlist=ptctrLL_#_2;
- Bezier(name,ptlist,ctrlist,options);
- );
-);
-
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22upto
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list(","[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto
- out=append(out,"bz"+tmp);
- );
- out;
-);
-
-Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
-Ospline(nm,ptlist,options):=(
-//help:Ospline("1",ptlist,[options]);
- regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
- p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
- name="o"+nm;
- if(isstring(ptlist),list=parse(ptlist),list=ptlist);
- if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0);
-// list=apply(list,LLcrd(#));
- ctrL=[];
- forall(1..(length(list)-1),
- flg=0;
- p1=Lcrd(list_#); // 16.08.16
- p2=Lcrd(list_(#+1)); // 16.08.16
- if(#==1 % #==length(list)-1,
- flg=1;
- if(closed==0,
- pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16
- pR=(2*p1+p2)/3; // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- flg=2;
- ,
- if(#==1,
- p0=Lcrd(list_(length(list)-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- ,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_2); // 16.08.16
- );
- );
- );
- if(flg<=1,
- if(flg==0,
- p0=Lcrd(list_(#-1)); // 16.08.16
- p3=Lcrd(list_(#+2)); // 16.08.16
- );
- tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
- cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
- pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16
- pR=p2+cc*(p1-p3); // 16.08.16
- ctrL=append(ctrL,[pQ,pR]);
- );
- );
-// list=apply(list,LLcrd(#)); // 16.08.16
-// ctrL=apply(ctrL,LLcrd(#));
- if(closed==0, // 15.09.21
- p1=ctrL_2_1;
- p2=Lcrd(list_2); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_1=[pQ];
- tmp=length(ctrL);
- tmp1=ctrL_(tmp-1);
- p1=ctrL_(tmp-1)_2;
- p2=Lcrd(list_(tmp)); // 16.08.16
- pQ=p2+(p2-p1);
- ctrL_tmp=[pQ];
- );
- Bezier("o"+nm,list,ctrL,options);
-);
-
-CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
- // Catmull-Rom spline
-//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
- cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
- );
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
- ctrlist=[];
- forall(1..(length(ptlist)-1),
- if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
- ,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
- );
- ,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
- ,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
- );
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
- );
- Bezier(nm,ptlist,ctrlist,options);
-);
-
-Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
-//help:Beziersmooth("1",[A,B,C,A]);
-Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
-Bzspline(nm,ptL):=Bzspline(nm,ptL,[]);
-Bzspline(nm,ptLorg,options):=(
- // smooth bezier
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzsp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- lstr="c"+text(#);
- pt=ptLorg_#; // 16.08.16
- pt1=parse("C"+text(#-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp2="C"+text(#)+"p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp2],"PointOnLine",[parse(lstr),tmp]);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- tmp1="C1p";
- Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16
- );
- if(cflg==1,
- lstr="c1";
- pt=ptLorg_1; // 16.08.16
- pt1=parse("C"+text(length(ptL)-1)+"q");
- create([lstr],"Join",[pt1,pt]);
- tmp1="C1p";
- tmp=Append((2*pt.xy-pt1.xy),1);
- create([tmp1],"PointOnLine",[parse(lstr),tmp]);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- if(#>1 % cflg==1,
- tmp1="c"+text(#);
- inspect(parse(tmp1),"alpha",0.3);
- );
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp1),"ptsize",3);
- inspect(parse(tmp1),"color",3);
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
-Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
-Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
-Bzsspline(nm,ptLorg,options):=(
- // smooth bezier with symmetric control points
- regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr,
- tmp,tmp1,tmp2,cflg,ctrlist);
- name="bzssp"+nm;
- Eps=10^(-3);
- ptL=apply(ptLorg,Lcrd(#)); // 16.08.16
- if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0);
- forall(2..length(ptL),
- pt=ptL_#;
- pt1=ptL_(#-1);
- tmp1="C"+text(#-1)+"q";
- Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1)));
- );
- forall(2..(length(ptL)-1),
- if(#<length(ptL) % cflg==1,
- pt=ptL_#;
- pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
- parse(tmp2);
- );
- );
- if(cflg==0,
- pt=ptL_1;
- pt1=ptL_2;
- Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16
- inspect(C1p,"ptsize",3);
- inspect(C1p,"color",3);
- );
- if(cflg==1,
- pt=ptL_1;
- pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
- parse(tmp1);
- );
- ctrlist=[];
- forall(1..(length(ptL)-1),
- tmp1="C"+text(#)+"p";
- tmp2="C"+text(#)+"q";
- inspect(parse(tmp2),"ptsize",3);
- inspect(parse(tmp2),"color",3);
- tmp=[parse(tmp1),parse(tmp2)];
- ctrlist=append(ctrlist,tmp);
- );
- Bezier(nm,ptL,ctrlist,options);
- [ptL,ctrlist];
-);
-
-Listbspline2bz(listorg):=(
- regional(Eps,list,pcl,ptl,ctrl,k);
- Eps=10^(-3);
- list=apply(listorg,Lcrd(#)); // 16.08.16
- k=length(list);
- if(|list_1-list_k|>Eps,
- pcl=list;
- pcl_1=2*list_1-list_2;
- pcl_k=2*list_k-list_(k-1);
- ,
- pcl=concat(list,[list_2]);
- );
- ctrl=apply(2..(length(pcl)-1),[pcl_#]);
- ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
- [ptl,ctrl];
-);
-
-Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
-Bspline(nm,ctrL,options):=(
-//help:Bspline("",[A,B,C]);
- regional(list,tmp);
- list=Listbspline2bz(ctrL);
- tmp=BezierCurve("b"+nm,list_1,list_2,options);
- tmp;
-);
-
-MeetCurve(Crv,Xorg,Yorg):=(
- regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
- if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
- if(MeasureDepth(Cv)==2,Cv=Cv_1);
- Cv=apply(Cv,LLcrd(#)); // 14.12.18
- while(length(Cv)==1,
- Cv=Cv_1;
- );
- Cv=apply(Cv,Lcrd(#));
- tmp1=min(apply(Cv,#_1));
- tmp2=max(apply(Cv,#_1));
- if(isstring(Xorg),X0=parse(Xorg),X0=Xorg);
- if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg);
- if(X0<tmp1,
- X0=tmp1;
- ,
- if(X0>tmp2,
- X0=tmp2;
- );
- );
- tmp1=select(
- 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1);
- tmp2=select(
- 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1);
- tmp2=remove(tmp2,common(tmp2,tmp1));
- Ban=concat(tmp1,tmp2);
- Tate=select(Ban,
- abs(Cv_#_1-Cv_(#+1)_1)<=
- 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2)
- );
- Ban=remove(Ban,Tate);
- Ylist=[];
- forall(Ban,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1);
- Ylist=append(Ylist,tmp);
- );
- forall(Tate,
- tmp=Cv_#;
- x1=tmp_1; y1=tmp_2;
- tmp=Cv_(#+1);
- x2=tmp_1; y2=tmp_2;
- tmp1=min([y1,y2]);
- tmp2=max([y1,y2]);
- if(Y0<tmp1,
- tmp=tmp1;
- ,
- if(Y0>tmp2,
- tmp=tmp2;
- ,
- tmp=Y0;
- );
- );
- Ylist=append(Ylist,tmp);
- );
- tmp=sort(Ylist,abs(#_1-Y0));
- [X0,tmp_1];
-);
-
-PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
-PutonLine(name,p1org,p2org,options):=(
-//help:PutonLine("C","sgAB");
-//help:PutonLine("C",pA,pB);
- regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- tmp1=(1-par)*p1+par*p2;
- if(abs(dx)>abs(dy),
- tmp=name+".x";
- tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto
- Putpoint(name,tmp1,parse(tmp2));
- ,
- if(abs(dy)>0,
- tmp=name+".y";
- tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]";
- Putpoint(name,tmp1,parse(tmp2));
- ,
- tmp2=p1;//16.10.11
- Putpoint(name,tmp1,tmp2);
- );
- );
-);
-
-PutonSeg(name,sgstr):=(
- regional(seg,p1,p2);
- if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
- PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2));
-);
-PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]);
-PutonSeg(name,p1org,p2org,options):=(
-//help:PutonSeg("C","sgAB");
-//help:PutonSeg("C",pA,pB);
- regional(par,dx,dy,p,tmp,tmp1,tmp2);
- par=0.5;
- tmp=Divoptions(options);
- if(length(tmp_6)>0,
- par=tmp_6_1;
- );
- p1=Lcrd(p1org);//16.10.11from
- p2=Lcrd(p2org);
- PutonLine(name,p1,p2,[par]);
- dx=p2_1-p1_1;
- dy=p2_2-p1_2;
- p=parse(name+".xy");
- p=LLcrd(p);
- if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");
- );
- );
- if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0,
- if(|p-p1|<|p-p2|,
- parse(name+".xy=Pcrd(p1)");
- ,
- parse(name+".xy=Pcrd(p2)");//16.10.11upto
- );
- );
-);
-
-PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
-PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
- regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
- if(!islist(options),optionL=[options],optionL=options);
- leftlim=XMIN;
- rightlim=XMAX;
- Flg=0;
- Msg="y";
- forall(optionL,
- if(isstring(#), // 16.02.10 from
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="N", Msg="n"); // 16.02.10 upto
- ,
- if(Flg==0,
- leftlim=#;
- Flg=Flg+1;
- ,
- rightlim=#;
- );
- );
- );
- Pmt=MeetCurve(crv,leftlim,0);
- pstr=apply(allpoints(),textformat(#,5)); // 15.04.07
- if(!contains(pstr,pn),
- createpoint(pn,Pcrd(Pmt));
- ,
- tmp1=parse(pn+".x");
- if(tmp1< leftlim % tmp1>rightlim,
- if(tmp1< leftlim,tmp= leftlim, tmp=rightlim);
- Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y");
- ,
- Pmt=MeetCurve(crv,pn+".x",pn+".y");
- );
- ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";";
- parse(ptstr);
- );
- if(Msg=="y",
- println("Put "+pn+" on Curve "+text(crv));
- );
-);
-
-CrossPoint(name,Crv1,Crv2,range):=(
- regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
- Mx1=range_1; Mx2=range_2;
- repeat(15,
- Mx3=(Mx1+Mx2)/2;
- Crs1=MeetCurve(Crv1,Mx1,0);
- Crs2=MeetCurve(Crv2,Mx1,0);
- Crs3=MeetCurve(Crv1,Mx3,0);
- Crs4=MeetCurve(Crv2,Mx3,0);
- df1=Crs1_2-Crs2_2;
- df2=Crs3_2-Crs4_2;
- if((df1>0 & df2>0) % (df1<0 & df2<0),
- Mx1=Mx3;
- ,
- Mx2=Mx3;
- );
- );
- Putpoint(name,Crs1);
-);
-
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
-Tabledatalight(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledatalight "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist));
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,options):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2]);
- regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb,
- tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- println("Tabledata "+name+" generated");
- tmp=sum(yLst);
- upleft=[0,tmp];
- tick=1;
- tmp=Divoptions(options);
- flg=0;
- forall(tmp_6,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
- );
- );
- ul=upleft/10;
- m=length(xLst);
- n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
- clist=[ul];
- rlist=[ul];
- forall(1..m,
- tmp1=clist_(#)_1+xLst_#/10;
- clist=append(clist,[tmp1,clist_1_2]);
- );
- forall(1..n,
- tmp1=rlist_(#)_2-yLst_#/10;
- rlist=append(rlist,[0,tmp1]);
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
- );
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
- );
- forall(0..n,
- tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy");
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- inspect(parse(tmp),"ptsize",3);
- inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
- );
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- Tb;
-);
-
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
- );
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
- );
-);
-
-Tgrid(ptstr):=(
-//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
- tmp=parse(ptstr);
- if(islist(tmp),
- tmp;
- ,
- tmp=indexof(ptstr,"r");
- tmp1=substring(ptstr,1,tmp-1);
- tmp1=parse(tmp1);
- tmp2=substring(ptstr,tmp,length(ptstr));
- tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
- );
-);
-
-Tlistplot(ptL):=Tlistplot(ptL,[]);
-Tlistplot(Ag1,Ag2):=(
- regional(nm,ptL,options);
- if(isstring(Ag1),
- nm=Ag1;
- ptL=Ag2;
- options=[];
- ,
- ptL=Ag1;
- options=Ag2;
- nm=ptL_1+ptL_2;
- );
- Tlistplot(nm,ptL,options);
-);
-Tlistplot(nm,ptL,options):=(
-//help:Tlistplot(["c0r0","c0r4"]);
-//help:Tlistplot("1",["c0r0","c0r4"]);
- regional(tmp);
- tmp=apply(ptL,Tgrid(#)); // 15.06.03
- Listplot(nm,tmp,append(options,"Msg=no"));
-);
-
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,tmp,tmp1,tmp2);
- if(islist(nameL),nmL=nameL,nmL=[nameL]);
- nmL=apply(nmL,"sg"+#);
- nmL=select(nmL,islist(parse(#)));
- Changestyle(nmL,style);
-);
-
-Findcell(pos1,pos2):=Findcell("",pos1,pos2);
-Findcell(Tbdata,pos1,pos2):=(
-//help:Findcell("c0r0","c2r1");
- regional(tmp1,tmp2,posnw,posse,ctr,dx,dy);
- if(isstring(pos1),
- posnw=Tgrid(pos1); // 15.05.20
- posse=Tgrid(pos2);
- //posnw=parse(pos1);
- //posse=parse(pos2);
- ,
- if(islist(pos1),
- posnw=pos1;
- posse=pos2;
- ,
- tmp1="c"+text(pos1-1)+"r"+text(pos2-1);
- tmp2="c"+text(pos1)+"r"+text(pos2);
- posnw=Tgrid(tmp1);
- posse=Tgrid(tmp2);
-// posnw=parse(tmp1);
-// posse=parse(tmp2);
- );
- );
- ctr=(posnw+posse)/2;
- dx=abs(posse_1-ctr_1);
- dy=abs(posnw_2-ctr_2);
- [ctr,dx,dy];
-);
-
-Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
-Putcell(Tbdata,pos1,pos2,dir,lttr):=(
-//help:Putcell("c0r0","c2r1","lt","abc");
-//help:Putcell(2,3,"c","xyz");
- regional(tmp,tmp1,tmp2,posnw,posse,
- posdir,posstr,ctr,dx,dy);
- tmp=Findcell(Tbdata,pos1,pos2);
- ctr=tmp_1; dx=tmp_2; dy=tmp_3;
- posdir=ctr;
- posstr=dir;
- if(indexof(dir,"b")>0,
- posdir_2=posdir_2-dy;
- posstr=replace(posstr,"b","n");
- );
- if(indexof(dir,"t")>0,
- posdir_2=posdir_2+dy;
- posstr=replace(posstr,"t","s");
- );
- if(indexof(dir,"l")>0,
- posdir_1=posdir_1-dx;
- posstr=replace(posstr,"l","e");
- );
- if(indexof(dir,"r")>0,
- posdir_1=posdir_1+dx;
- posstr=replace(posstr,"r","w");
- );
- Letter(posdir,posstr,text(lttr));
-);
-
-Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex);
-Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
-//help:Putcellexpr("c0r0","c2r1","lt","abc");
-//help:Putcellexpr(2,3,"c","\sin x");
- Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
-);
-
-Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
-Putrow(Tbdata,nrow,dir,lttrL):=(
-//help:Putrow(1,"c",["x","y","z"]);
- regional(tmp,tmp1,mcol);
- mcol=length(lttrL);
- forall(1..mcol,
- Putcell(Tbdata,#,nrow,dir,lttrL_#);
- );
-);
-
-Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
-Putrowexpr(Tbdata,nrow,dir,exL):=(
-//help:Putrowexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- Putrow(Tbdata,nrow,dir,lttrL);
-);
-
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
-PutcoL(Tbdata,mcol,dir,lttrL):=(
-//help:PutcoL(1,"c",["x","y","z"]);
- regional(tmp,tmp1,nrow);
- nrow=length(lttrL);
- forall(1..nrow,
- Putcell(Tbdata,mcol,#,dir,lttrL_#);
- );
-);
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
-PutcoLexpr(Tbdata,mcol,dir,exL):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
- regional(lttrL);
- lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL);
-);
-
-Setwindow():=Setwindow("Msg=yes");
-Setwindow(str):=(
- regional(tmp,tmp1,tmp2,msg);
- msg="y";
- tmp=indexof(str,"="); // 16.02.10
- tmp1=Toupper(substring(str,tmp,tmp+1));
- if(tmp1=="N",msg="n");
- if((ispoint(SW) & ispoint(NE)),
- tmp1=Lcrd(SW);
- tmp2=Lcrd(NE);
- XMIN=tmp1_1; XMAX=tmp2_1;
- YMIN=tmp1_2; YMAX=tmp2_2;
- ,
-// XMIN=-5; XMAX=5;
-// YMIN=Lcrdy(-5); YMAX=Lcrdy(5);
- createpoint("SW",Pcrd([XMIN,YMIN]));
- createpoint("NE", Pcrd([XMAX,YMAX]));
- );
- if(msg=="y",
- println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
- );
- layer(KETPICLAYER);
- autoclearlayer(KETPICLAYER,true);
- drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
-);
-Setwindow(xrange,yrange):=(
-//help:Setwindow([2,3],[-1,1]);
- XMIN=xrange_1;
- XMAX=xrange_2;
- YMIN=yrange_1;
- YMAX=yrange_2;
-// Setwindow();
-);
-
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 upto
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
-
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list([[");
- out=replace(out,"[","c(");
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name+"=");
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name+"=",value];
- ,
- VLIST=prepend([name+"=",value],VLIST);
- );
-);
-
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- tmp1=tmp1+format(#,5)+",";
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name+"="); // 15.02.08
- VLIST=prepend([name+"=",value],VLIST);
-);
-
-Iftosci(strorg):=( // 16.06.10
- regional(str,ifL,ppL,cpL,kk,sL,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if(");
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1=" ";
- sL_tmp2=";end;";
- sL_(tmp3_1)=" then,";
- if(length(tmp3)>1,
- sL_(tmp3_2)=";else,";
- );
- );
- tmp=sum(sL);
-);
-
-Fortosci(strorg):=(
- regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4,
- Out,repL,Pflg,Iflg,Cflg);
- str=strorg;
- repL=[];
- tmp1=Indexall(str,"forall");
- tmp2=Indexall(str,",");
- forall(1..length(tmp1),jj,
- tmp=select(tmp2,#>tmp1_jj);
- var=substring(str,tmp_1,tmp_2-1);
- tmp3=substring(str,tmp1_jj-1,tmp_2-1);
- tmp=indexof(tmp3,"(");
- tmp4=substring(tmp3,tmp,length(tmp3));
- tmp=indexof(tmp4,",");
- tmp4=substring(tmp4,0,tmp-1);
- tmp4="for "+var+"="+tmp4;
- tmp4=replace(tmp4,"..",":");
- repL=concat(repL,[tmp3,tmp4]);
- );
- forall(1..length(repL)/2,
- str=replace(str,repL_(2*#-1),repL_(2*#));
- );
- tmp=Bracket(str);
- tmp=select(tmp,#_2==0);
- tmp=tmp_1_1;
- tmp1=substring(str,tmp-1,length(str));
- tmp1=replace(tmp1,")",";end");
- str=substring(str,0,tmp-1)+tmp1;
- str=replace(str,";;",";");
- str;
-);
-
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18
- regional(funstr,tmp,tmp1,str,Pos);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=bodylist_(length(bodylist));
- str="function "+tmp+"="+name+",";
- forall(1..(length(bodylist)-1),
- tmp1=bodylist_#;
- tmp1=replace(tmp1,LFmark,"");// 16.05.26
- tmp1=replace(tmp1," ","");// 16.05.26
- Pos=indexof(tmp1,"regional")+indexof(tmp1,"local");
- if(Pos==0,
- tmp=replace(tmp1,".xy","");
- tmp=replace(tmp,".x","(1)");
- tmp=replace(tmp,".y","(2)");
- if(indexof(tmp,"if(")>0,
- tmp=iftosci(tmp);
- );
- if(indexof(tmp,"forall(")>0, // 16.05.26from
- tmp=Fortosci(tmp);
- ); // 16.05.26upto
- str=str+tmp+",";
- );
- );
- str=str+"endfunction;";
- FUNLIST=append(FUNLIST,str);
-);
-
-Windispg():=(
- regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy);
- gsave();
- layer(KETPIClayer);
- forall(GCLIST,Nj,
- if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17
- if(islist(Dt) & length(Dt)>0, // 12.19,12.22
- tmp=MeasureDepth(Dt);
- if(tmp==1,Dt=[Dt]);
- opcindy=Nj_3;
- if(Nj_2<0,tmp1=0,tmp1=Nj_2);
- if(tmp1<10,
- forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
- tmp2=Nk; // 14.12.04
- if(length(Nk)>1,
- forall(2..length(Nk),
- tmp3=textformat(Nk_[#-1,#],5);
- tmp3=substring(tmp3,1,length(tmp3)-1);
- if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]");
- tmp="draw("+tmp3+
- ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")";
- parse(tmp);
- );
- ,
- if(length(Nk)==1,
- tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31
- parse(tmp);
- );
- );
- );
- );
- );
- );
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08upto
- grestore();
- layer(0);
-);
-</script>
- <script type="text/javascript">
-var cdy = CindyJS({
- scripts: "cs*",
- use: ["katex"],
- defaultAppearance: {
- dimDependent: 0.7,
- fontFamily: "sans-serif",
- lineSize: 1,
- pointSize: 5.0,
- textsize: 12.0
- },
- angleUnit: "°",
- geometry: [
- {name: "SW", type: "Free", pos: [4.0, 0.5714285714285714, -0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "NE", type: "Free", pos: [4.0, 2.857142857142857, 0.5714285714285714], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "A", type: "Free", pos: [4.0, -0.0, -2.0], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "B", type: "Free", pos: [4.0, -0.0, 2.0], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "C", type: "Free", pos: [-1.3333333333333333, -4.0, -1.3333333333333333], color: [1.0, 0.0, 0.0], labeled: true},
- {name: "Text4", type: "Button", color: [0.0, 0.0, 0.0], fillcolor: [1.0, 1.0, 1.0], fillalpha: 0.27272728085517883, script: "pc=C.xy;\nptsL=[];", text: "Start", textsize: 18.0, dock: {corner: "UL", offset: [298.0, -20.0]}}
- ],
- ports: [{
- id: "CSCanvas",
- width: 753,
- height: 540,
- transform: [{visibleRect: [-8.362618329472264, 7.29077405760399, 8.451938685461288, -4.767474000914095]}],
- axes: true,
- grid: 1.0,
- snap: true,
- background: "rgb(168,176,192)"
- }],
- csconsole: false,
- cinderella: {build: 1894, version: [2, 9, 1894]}
-});
- </script>
-</head>
-<body>
- <div id="CSCanvas"></div>
-</body>
-</html>
diff --git a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/kc.sh b/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/kc.sh
deleted file mode 100644
index e69de29b..00000000
--- a/texmf-dist/doc/support/ketcindy/ketsample/samplesJS/kc.sh
+++ /dev/null
diff --git a/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java b/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java
index a054c8f3..3e7d6312 100644
--- a/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java
+++ b/texmf-dist/doc/support/ketcindy/source/ketjava/KetCindyPlugin.java
@@ -13,7 +13,7 @@ public class KetCindyPlugin extends CindyScriptPlugin {
@CindyScript("ketjavaversion")
public String ketjavaversion() {
- return "Ketjava 2017.09.06";
+ return "Ketjava 2017.11.08";
}
public String getName() {
@@ -53,6 +53,12 @@ public class KetCindyPlugin extends CindyScriptPlugin {
public String gethome() {
return System.getProperty("user.home");
}
+
+ @CindyScript("getname")
+ // 17.10.08
+ public String getname() {
+ return System.getProperty("user.name");
+ }
@CindyScript("iswindows")
static public boolean iswindows(){
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png
new file mode 100644
index 00000000..7bb7441d
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dscreen.png
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png
new file mode 100644
index 00000000..f4dc5106
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/3dstart.png
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png
new file mode 100644
index 00000000..31fbe0bd
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL0.png
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex
new file mode 100644
index 00000000..dc1340de
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL1.tex
@@ -0,0 +1,68 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 13:39
+%%% template.sce 2016-8-9 13:39
+{\unitlength=8mm%
+\begin{picture}%
+( 7.00000, 6.00000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\special{pn 8}%
+\special{pa 4 -2}\special{pa -4 2}\special{fp}\special{pa -32 14}\special{pa -39 17}\special{fp}%
+\special{pa -68 29}\special{pa -75 32}\special{fp}\special{pa -103 44}\special{pa -111 47}\special{fp}%
+\special{pa -139 59}\special{pa -147 62}\special{fp}\special{pa -175 74}\special{pa -182 77}\special{fp}%
+\special{pa -211 89}\special{pa -218 92}\special{fp}\special{pa -246 104}\special{pa -254 107}\special{fp}%
+\special{pa -282 119}\special{pa -290 122}\special{fp}\special{pa -318 134}\special{pa -325 137}\special{fp}%
+\special{pa -354 149}\special{pa -361 153}\special{fp}\special{pa -389 164}\special{pa -397 168}\special{fp}%
+\special{pa -425 180}\special{pa -432 183}\special{fp}\special{pa -461 195}\special{pa -468 198}\special{fp}%
+\special{pa -496 210}\special{pa -504 213}\special{fp}\special{pa -532 225}\special{pa -540 228}\special{fp}%
+\special{pa -568 240}\special{pa -575 243}\special{fp}\special{pa -604 255}\special{pa -611 258}\special{fp}%
+\special{pn 8}%
+\special{pa -607 257}\special{pa 116 472}%
+\special{fp}%
+\special{pa 116 472}\special{pa 724 215}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -4 -1}\special{pa 4 1}\special{fp}\special{pa 34 10}\special{pa 42 12}\special{fp}%
+\special{pa 72 22}\special{pa 80 24}\special{fp}\special{pa 110 33}\special{pa 118 35}\special{fp}%
+\special{pa 149 44}\special{pa 156 46}\special{fp}\special{pa 187 56}\special{pa 194 58}\special{fp}%
+\special{pa 225 67}\special{pa 232 69}\special{fp}\special{pa 263 78}\special{pa 271 80}\special{fp}%
+\special{pa 301 90}\special{pa 309 92}\special{fp}\special{pa 339 101}\special{pa 347 103}\special{fp}%
+\special{pa 377 112}\special{pa 385 114}\special{fp}\special{pa 415 124}\special{pa 423 126}\special{fp}%
+\special{pa 453 135}\special{pa 461 137}\special{fp}\special{pa 491 146}\special{pa 499 148}\special{fp}%
+\special{pa 530 158}\special{pa 537 160}\special{fp}\special{pa 568 169}\special{pa 575 171}\special{fp}%
+\special{pa 606 180}\special{pa 613 182}\special{fp}\special{pa 644 192}\special{pa 651 194}\special{fp}%
+\special{pa 682 203}\special{pa 690 205}\special{fp}\special{pa 720 214}\special{pa 728 216}\special{fp}%
+\special{pn 8}%
+\special{pa 116 472}\special{pa 116 160}%
+\special{fp}%
+\special{pa 116 160}\special{pa -607 -315}%
+\special{fp}%
+\special{pa -607 257}\special{pa -607 -315}%
+\special{fp}%
+\special{pa 724 215}\special{pa 724 -539}%
+\special{fp}%
+\special{pa 116 160}\special{pa 724 -539}%
+\special{fp}%
+\special{pa 724 -539}\special{pa 367 -774}%
+\special{fp}%
+\special{pa 367 -774}\special{pa 0 -883}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 0 4}\special{pa 0 -4}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
+\special{pa 0 -76}\special{pa 0 -84}\special{fp}\special{pa 0 -116}\special{pa 0 -124}\special{fp}%
+\special{pa 0 -157}\special{pa 0 -165}\special{fp}\special{pa 0 -197}\special{pa 0 -205}\special{fp}%
+\special{pa 0 -237}\special{pa 0 -245}\special{fp}\special{pa 0 -277}\special{pa 0 -285}\special{fp}%
+\special{pa 0 -317}\special{pa 0 -325}\special{fp}\special{pa 0 -357}\special{pa 0 -365}\special{fp}%
+\special{pa 0 -398}\special{pa 0 -406}\special{fp}\special{pa 0 -438}\special{pa 0 -446}\special{fp}%
+\special{pa 0 -478}\special{pa 0 -486}\special{fp}\special{pa 0 -518}\special{pa 0 -526}\special{fp}%
+\special{pa 0 -558}\special{pa 0 -566}\special{fp}\special{pa 0 -598}\special{pa 0 -606}\special{fp}%
+\special{pa 0 -639}\special{pa 0 -647}\special{fp}\special{pa 0 -679}\special{pa 0 -687}\special{fp}%
+\special{pa 0 -719}\special{pa 0 -727}\special{fp}\special{pa 0 -759}\special{pa 0 -767}\special{fp}%
+\special{pa 0 -799}\special{pa 0 -807}\special{fp}\special{pa 0 -839}\special{pa 0 -847}\special{fp}%
+\special{pa 0 -879}\special{pa 0 -887}\special{fp}\special{pn 8}%
+\special{pa 0 -883}\special{pa -180 -807}%
+\special{fp}%
+\special{pa -607 -315}\special{pa -180 -807}%
+\special{fp}%
+\special{pa 367 -774}\special{pa -180 -807}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex
new file mode 100644
index 00000000..51a3442a
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/IntersectsgpL2.tex
@@ -0,0 +1,118 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 13:37
+%%% template.sce 2016-8-9 13:37
+{\unitlength=8mm%
+\begin{picture}%
+( 7.00000, 6.00000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\special{pn 8}%
+\special{pa 4 -2}\special{pa -4 2}\special{fp}\special{pa -32 14}\special{pa -39 17}\special{fp}%
+\special{pa -68 29}\special{pa -75 32}\special{fp}\special{pa -103 44}\special{pa -111 47}\special{fp}%
+\special{pa -139 59}\special{pa -147 62}\special{fp}\special{pa -175 74}\special{pa -182 77}\special{fp}%
+\special{pa -211 89}\special{pa -218 92}\special{fp}\special{pa -246 104}\special{pa -254 107}\special{fp}%
+\special{pa -282 119}\special{pa -290 122}\special{fp}\special{pa -318 134}\special{pa -325 137}\special{fp}%
+\special{pa -354 149}\special{pa -361 153}\special{fp}\special{pa -389 164}\special{pa -397 168}\special{fp}%
+\special{pa -425 180}\special{pa -432 183}\special{fp}\special{pa -461 195}\special{pa -468 198}\special{fp}%
+\special{pa -496 210}\special{pa -504 213}\special{fp}\special{pa -532 225}\special{pa -540 228}\special{fp}%
+\special{pa -568 240}\special{pa -575 243}\special{fp}\special{pa -604 255}\special{pa -611 258}\special{fp}%
+\special{pn 8}%
+\special{pa -607 257}\special{pa 116 472}%
+\special{fp}%
+\special{pa 116 472}\special{pa 724 215}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -4 -1}\special{pa 4 1}\special{fp}\special{pa 34 10}\special{pa 42 12}\special{fp}%
+\special{pa 72 22}\special{pa 80 24}\special{fp}\special{pa 110 33}\special{pa 118 35}\special{fp}%
+\special{pa 149 44}\special{pa 156 46}\special{fp}\special{pa 187 56}\special{pa 194 58}\special{fp}%
+\special{pa 225 67}\special{pa 232 69}\special{fp}\special{pa 263 78}\special{pa 271 80}\special{fp}%
+\special{pa 301 90}\special{pa 309 92}\special{fp}\special{pa 339 101}\special{pa 347 103}\special{fp}%
+\special{pa 377 112}\special{pa 385 114}\special{fp}\special{pa 415 124}\special{pa 423 126}\special{fp}%
+\special{pa 453 135}\special{pa 461 137}\special{fp}\special{pa 491 146}\special{pa 499 148}\special{fp}%
+\special{pa 530 158}\special{pa 537 160}\special{fp}\special{pa 568 169}\special{pa 575 171}\special{fp}%
+\special{pa 606 180}\special{pa 613 182}\special{fp}\special{pa 644 192}\special{pa 651 194}\special{fp}%
+\special{pa 682 203}\special{pa 690 205}\special{fp}\special{pa 720 214}\special{pa 728 216}\special{fp}%
+\special{pn 8}%
+\special{pa 116 472}\special{pa 116 160}%
+\special{fp}%
+\special{pa 116 160}\special{pa -607 -315}%
+\special{fp}%
+\special{pa -607 257}\special{pa -607 -315}%
+\special{fp}%
+\special{pa 724 215}\special{pa 724 -539}%
+\special{fp}%
+\special{pa 116 160}\special{pa 724 -539}%
+\special{fp}%
+\special{pa 724 -539}\special{pa 367 -774}%
+\special{fp}%
+\special{pa 367 -774}\special{pa 0 -883}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 0 4}\special{pa 0 -4}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
+\special{pa 0 -76}\special{pa 0 -84}\special{fp}\special{pa 0 -116}\special{pa 0 -124}\special{fp}%
+\special{pa 0 -157}\special{pa 0 -165}\special{fp}\special{pa 0 -197}\special{pa 0 -205}\special{fp}%
+\special{pa 0 -237}\special{pa 0 -245}\special{fp}\special{pa 0 -277}\special{pa 0 -285}\special{fp}%
+\special{pa 0 -317}\special{pa 0 -325}\special{fp}\special{pa 0 -357}\special{pa 0 -365}\special{fp}%
+\special{pa 0 -398}\special{pa 0 -406}\special{fp}\special{pa 0 -438}\special{pa 0 -446}\special{fp}%
+\special{pa 0 -478}\special{pa 0 -486}\special{fp}\special{pa 0 -518}\special{pa 0 -526}\special{fp}%
+\special{pa 0 -558}\special{pa 0 -566}\special{fp}\special{pa 0 -598}\special{pa 0 -606}\special{fp}%
+\special{pa 0 -639}\special{pa 0 -647}\special{fp}\special{pa 0 -679}\special{pa 0 -687}\special{fp}%
+\special{pa 0 -719}\special{pa 0 -727}\special{fp}\special{pa 0 -759}\special{pa 0 -767}\special{fp}%
+\special{pa 0 -799}\special{pa 0 -807}\special{fp}\special{pa 0 -839}\special{pa 0 -847}\special{fp}%
+\special{pa 0 -879}\special{pa 0 -887}\special{fp}\special{pn 8}%
+\special{pa 0 -883}\special{pa -180 -807}%
+\special{fp}%
+\special{pa -607 -315}\special{pa -180 -807}%
+\special{fp}%
+\special{pa 367 -774}\special{pa -180 -807}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -607 -311}\special{pa -607 -319}\special{fp}\special{pa -607 -349}\special{pa -607 -357}\special{fp}%
+\special{pa -607 -388}\special{pa -607 -396}\special{fp}\special{pa -607 -427}\special{pa -607 -435}\special{fp}%
+\special{pa -607 -466}\special{pa -607 -474}\special{fp}\special{pa -607 -505}\special{pa -607 -513}\special{fp}%
+\special{pa -607 -543}\special{pa -607 -551}\special{fp}\special{pa -607 -582}\special{pa -607 -590}\special{fp}%
+\special{pa -609 -622}\special{pa -605 -628}\special{fp}\special{pa -577 -640}\special{pa -570 -643}\special{fp}%
+\special{pa -541 -655}\special{pa -534 -658}\special{fp}\special{pa -505 -670}\special{pa -498 -673}\special{fp}%
+\special{pa -470 -685}\special{pa -462 -688}\special{fp}\special{pa -434 -700}\special{pa -427 -703}\special{fp}%
+\special{pa -398 -715}\special{pa -391 -718}\special{fp}\special{pa -363 -730}\special{pa -355 -733}\special{fp}%
+\special{pa -327 -745}\special{pa -319 -749}\special{fp}\special{pa -291 -761}\special{pa -284 -764}\special{fp}%
+\special{pa -255 -776}\special{pa -248 -779}\special{fp}\special{pa -220 -791}\special{pa -212 -794}\special{fp}%
+\special{pa -184 -806}\special{pa -176 -809}\special{fp}\special{pn 8}%
+\special{pn 8}%
+\special{pa -611 -628}\special{pa -604 -626}\special{fp}\special{pa -574 -617}\special{pa -566 -615}\special{fp}%
+\special{pa -536 -606}\special{pa -529 -603}\special{fp}\special{pa -499 -595}\special{pa -491 -592}\special{fp}%
+\special{pa -462 -584}\special{pa -454 -581}\special{fp}\special{pa -424 -572}\special{pa -417 -570}\special{fp}%
+\special{pa -387 -561}\special{pa -379 -559}\special{fp}\special{pa -349 -550}\special{pa -342 -548}\special{fp}%
+\special{pa -312 -539}\special{pa -304 -537}\special{fp}\special{pa -275 -528}\special{pa -267 -526}\special{fp}%
+\special{pa -237 -517}\special{pa -230 -514}\special{fp}\special{pa -200 -506}\special{pa -192 -503}\special{fp}%
+\special{pa -162 -495}\special{pa -155 -492}\special{fp}\special{pa -125 -483}\special{pa -117 -481}\special{fp}%
+\special{pa -88 -472}\special{pa -80 -470}\special{fp}\special{pa -50 -461}\special{pa -43 -459}\special{fp}%
+\special{pa -13 -450}\special{pa -5 -448}\special{fp}\special{pa 25 -439}\special{pa 32 -437}\special{fp}%
+\special{pa 62 -428}\special{pa 70 -425}\special{fp}\special{pa 100 -418}\special{pa 106 -413}\special{fp}%
+\special{pa 116 -390}\special{pa 117 -382}\special{fp}\special{pa 116 -351}\special{pa 116 -343}\special{fp}%
+\special{pa 116 -312}\special{pa 116 -304}\special{fp}\special{pa 116 -273}\special{pa 116 -265}\special{fp}%
+\special{pa 116 -234}\special{pa 116 -226}\special{fp}\special{pa 116 -195}\special{pa 116 -187}\special{fp}%
+\special{pa 116 -156}\special{pa 116 -148}\special{fp}\special{pa 116 -117}\special{pa 116 -109}\special{fp}%
+\special{pa 116 -78}\special{pa 116 -70}\special{fp}\special{pa 116 -39}\special{pa 116 -31}\special{fp}%
+\special{pa 116 0}\special{pa 116 8}\special{fp}\special{pa 116 39}\special{pa 116 47}\special{fp}%
+\special{pa 116 78}\special{pa 116 86}\special{fp}\special{pa 116 117}\special{pa 116 125}\special{fp}%
+\special{pa 116 156}\special{pa 116 164}\special{fp}\special{pn 8}%
+\special{pn 8}%
+\special{pa 113 -410}\special{pa 120 -413}\special{fp}\special{pa 149 -425}\special{pa 156 -428}\special{fp}%
+\special{pa 185 -441}\special{pa 193 -444}\special{fp}\special{pa 222 -456}\special{pa 229 -459}\special{fp}%
+\special{pa 258 -471}\special{pa 265 -474}\special{fp}\special{pa 294 -487}\special{pa 302 -490}\special{fp}%
+\special{pa 331 -502}\special{pa 338 -505}\special{fp}\special{pa 367 -517}\special{pa 374 -521}\special{fp}%
+\special{pa 403 -533}\special{pa 411 -536}\special{fp}\special{pa 440 -548}\special{pa 447 -551}\special{fp}%
+\special{pa 476 -564}\special{pa 484 -567}\special{fp}\special{pa 512 -579}\special{pa 520 -582}\special{fp}%
+\special{pa 549 -594}\special{pa 556 -597}\special{fp}\special{pa 585 -610}\special{pa 593 -613}\special{fp}%
+\special{pa 621 -625}\special{pa 629 -628}\special{fp}\special{pa 658 -640}\special{pa 665 -643}\special{fp}%
+\special{pa 694 -656}\special{pa 702 -658}\special{fp}\special{pa 721 -660}\special{pa 727 -654}\special{fp}%
+\special{pa 724 -621}\special{pa 724 -613}\special{fp}\special{pa 724 -582}\special{pa 724 -574}\special{fp}%
+\special{pa 724 -543}\special{pa 724 -535}\special{fp}\special{pn 8}%
+\special{pn 8}%
+\special{pa 728 -667}\special{pa 720 -669}\special{fp}\special{pa 688 -679}\special{pa 680 -681}\special{fp}%
+\special{pa 648 -691}\special{pa 641 -693}\special{fp}\special{pa 609 -702}\special{pa 601 -705}\special{fp}%
+\special{pa 569 -714}\special{pa 561 -717}\special{fp}\special{pa 529 -726}\special{pa 522 -728}\special{fp}%
+\special{pa 490 -738}\special{pa 482 -740}\special{fp}\special{pa 450 -750}\special{pa 442 -752}\special{fp}%
+\special{pa 410 -761}\special{pa 403 -764}\special{fp}\special{pa 371 -773}\special{pa 363 -776}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex
new file mode 100644
index 00000000..477861e1
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/bezier3d1.tex
@@ -0,0 +1,123 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-14 11:12
+%%% template.sce 2016-8-14 11:12
+{\unitlength=8mm%
+\begin{picture}%
+( 9.74000, 5.94000)( -4.74000, -1.94000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.2520,-1.0065){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.3782,-1.4998){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.9050){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1209 -374}\special{pa -967 299}%
+\special{fp}%
+\special{pa -1009 -448}\special{pa 1009 448}%
+\special{fp}%
+\special{pa 0 611}\special{pa 0 -1170}%
+\special{fp}%
+\special{pa -903 254}\special{pa -967 299}\special{pa -888 300}\special{pa -896 277}%
+\special{pa -903 254}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -903 254}\special{pa -967 299}\special{pa -888 300}\special{pa -896 277}%
+\special{pa -903 254}\special{pa -967 299}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 931 440}\special{pa 1009 448}\special{pa 951 395}\special{pa 941 418}%
+\special{pa 931 440}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 931 440}\special{pa 1009 448}\special{pa 951 395}\special{pa 941 418}%
+\special{pa 931 440}\special{pa 1009 448}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1095}\special{pa 0 -1170}\special{pa -24 -1095}\special{pa 0 -1095}%
+\special{pa 24 -1095}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1095}\special{pa 0 -1170}\special{pa -24 -1095}\special{pa 0 -1095}%
+\special{pa 24 -1095}\special{pa 0 -1170}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
+\put(0.1500,0.1500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pa -484 150}\special{pa -437 81}\special{pa -387 31}\special{pa -335 -1}%
+\special{pa -282 -19}\special{pa -227 -23}\special{pa -171 -16}\special{pa -115 0}%
+\special{pa -60 23}\special{pa -5 52}\special{pa 49 84}\special{pa 101 116}\special{pa 151 148}%
+\special{pa 199 177}\special{pa 243 201}\special{pa 284 219}\special{pa 321 227}\special{pa 354 225}%
+\special{pa 382 209}\special{pa 404 179}\special{pa 423 90}\special{pa 433 13}\special{pa 435 -52}%
+\special{pa 429 -108}\special{pa 417 -154}\special{pa 399 -193}\special{pa 376 -226}%
+\special{pa 349 -253}\special{pa 319 -277}\special{pa 286 -298}\special{pa 251 -319}%
+\special{pa 215 -339}\special{pa 178 -360}\special{pa 143 -384}\special{pa 108 -411}%
+\special{pa 76 -444}\special{pa 47 -483}\special{pa 21 -530}\special{pa 0 -585}%
+\special{fp}%
+\special{pn 1}%
+\special{pa -475 141}\special{pa -482 138}\special{pa -489 139}\special{pa -494 144}%
+\special{pa -495 152}\special{pa -492 158}\special{pa -485 161}\special{pa -478 160}%
+\special{pa -473 155}\special{pa -472 148}\special{pa -475 141}\special{sh 1}\special{fp}%
+\special{pa 412 171}\special{pa 406 168}\special{pa 398 169}\special{pa 393 174}\special{pa 392 181}%
+\special{pa 395 188}\special{pa 402 191}\special{pa 409 190}\special{pa 414 185}\special{pa 415 177}%
+\special{pa 412 171}\special{sh 1}\special{fp}%
+\special{pa 8 -593}\special{pa 2 -597}\special{pa -5 -596}\special{pa -11 -590}\special{pa -12 -583}%
+\special{pa -8 -577}\special{pa -2 -573}\special{pa 5 -575}\special{pa 11 -580}\special{pa 12 -587}%
+\special{pa 8 -593}\special{sh 1}\special{fp}%
+\special{pa -187 -360}\special{pa -194 -363}\special{pa -201 -362}\special{pa -206 -357}%
+\special{pa -207 -350}\special{pa -204 -343}\special{pa -197 -340}\special{pa -190 -341}%
+\special{pa -185 -346}\special{pa -184 -354}\special{pa -187 -360}\special{sh 1}\special{fp}%
+\special{pa 290 414}\special{pa 283 410}\special{pa 276 411}\special{pa 271 417}\special{pa 270 424}%
+\special{pa 273 430}\special{pa 279 434}\special{pa 287 433}\special{pa 292 427}\special{pa 293 420}%
+\special{pa 290 414}\special{sh 1}\special{fp}%
+\special{pa 563 -438}\special{pa 557 -441}\special{pa 549 -440}\special{pa 544 -435}%
+\special{pa 543 -428}\special{pa 546 -421}\special{pa 553 -418}\special{pa 560 -419}%
+\special{pa 565 -424}\special{pa 567 -432}\special{pa 563 -438}\special{sh 1}\special{fp}%
+\special{pa 126 -212}\special{pa 119 -215}\special{pa 112 -214}\special{pa 107 -209}%
+\special{pa 106 -201}\special{pa 109 -195}\special{pa 115 -192}\special{pa 123 -193}%
+\special{pa 128 -198}\special{pa 129 -205}\special{pa 126 -212}\special{sh 1}\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
+\put(-1.5352,-0.5252){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
+\put(1.3318,-0.5191){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
+\put(0.0500,1.9075){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(-0.5703,1.1665){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\settowidth{\Width}{E}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{E}\settodepth{\Depth}{E}\setlength{\Height}{-\Height}%
+\put(0.9432,-1.3898){\hspace*{\Width}\raisebox{\Height}{E}}%
+%
+%
+\settowidth{\Width}{F}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{F}\settodepth{\Depth}{F}\setlength{\Height}{\Depth}%
+\put(1.8116,1.4146){\hspace*{\Width}\raisebox{\Height}{F}}%
+%
+%
+\settowidth{\Width}{G}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{G}\settodepth{\Depth}{G}\setlength{\Height}{\Depth}%
+\put(0.4222,0.6951){\hspace*{\Width}\raisebox{\Height}{G}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex
new file mode 100644
index 00000000..ce715411
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/concatobj.tex
@@ -0,0 +1,42 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 20:24
+%%% template.sce 2016-8-24 20:24
+{\unitlength=8mm%
+\begin{picture}%
+( 5.00000, 5.00000)( -3.00000, -1.00000)%
+\special{pn 8}%
+%
+\special{pa 483 -179}\special{pa 185 -147}%
+\special{fp}%
+\special{pa 137 -141}\special{pa -712 -48}%
+\special{fp}%
+\special{pa -712 -48}\special{pa 229 228}%
+\special{fp}%
+\special{pa 483 -179}\special{pa 229 228}%
+\special{fp}%
+\special{pa -712 -48}\special{pa 0 -1030}%
+\special{fp}%
+\special{pa 483 -179}\special{pa 0 -1030}%
+\special{fp}%
+\special{pa 229 228}\special{pa 0 -1030}%
+\special{fp}%
+\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
+\put(-0.0500,3.3201){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.4118,0.1538){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
+\put(0.7771,-0.7732){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(1.5848,0.6193){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex
new file mode 100644
index 00000000..26edbc69
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata1.tex
@@ -0,0 +1,74 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 21:8
+%%% template.sce 2016-8-24 21:8
+{\unitlength=6mm%
+\begin{picture}%
+( 6.81000, 6.95000)( -3.50000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7936,-1.0660){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.9651,-1.1310){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.4380){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 471 -14}\special{pa 461 -50}\special{pa 451 -85}\special{pa 442 -120}%
+\special{pa 432 -153}\special{pa 422 -186}\special{pa 413 -219}\special{pa 403 -250}%
+\special{pa 393 -281}\special{pa 383 -311}\special{pa 374 -341}\special{pa 364 -369}%
+\special{pa 354 -397}\special{pa 345 -424}\special{pa 335 -451}\special{pa 325 -476}%
+\special{pa 315 -501}\special{pa 306 -525}\special{pa 296 -549}\special{pa 286 -571}%
+\special{pa 277 -593}\special{pa 268 -611}\special{pa 257 -635}\special{pa 247 -654}%
+\special{pa 237 -673}\special{pa 228 -692}\special{pa 218 -709}\special{pa 208 -726}%
+\special{pa 198 -742}\special{pa 188 -757}\special{pa 178 -772}\special{pa 169 -785}%
+\special{pa 159 -798}\special{pa 149 -810}\special{pa 143 -817}\special{pa 139 -822}%
+\special{pa 129 -833}\special{pa 118 -843}\special{pa 108 -852}\special{pa 98 -861}%
+\special{pa 87 -868}\special{pa 76 -876}\special{pa 69 -880}\special{pa 53 -887}\special{pa 41 -892}%
+\special{pa 31 -895}\special{pa 25 -896}\special{pa 17 -898}\special{pa 6 -899}\special{pa -5 -899}%
+\special{pa -16 -898}\special{pa -23 -897}\special{pa -30 -895}\special{pa -39 -893}%
+\special{pa -51 -888}\special{pa -65 -882}\special{pa -76 -876}\special{pa -87 -868}%
+\special{pa -98 -861}\special{pa -108 -852}\special{pa -118 -843}\special{pa -129 -833}%
+\special{pa -135 -826}\special{pa -149 -810}\special{pa -159 -798}\special{pa -169 -785}%
+\special{pa -178 -772}\special{pa -188 -757}\special{pa -198 -742}\special{pa -208 -726}%
+\special{pa -218 -709}\special{pa -228 -692}\special{pa -237 -673}\special{pa -243 -662}%
+\special{pa -247 -654}\special{pa -257 -635}\special{pa -267 -614}\special{pa -277 -593}%
+\special{pa -286 -571}\special{pa -296 -549}\special{pa -306 -525}\special{pa -315 -501}%
+\special{pa -325 -476}\special{pa -335 -451}\special{pa -345 -424}\special{pa -354 -397}%
+\special{pa -364 -369}\special{pa -374 -341}\special{pa -383 -311}\special{pa -393 -281}%
+\special{pa -403 -250}\special{pa -413 -219}\special{pa -422 -186}\special{pa -432 -153}%
+\special{pa -442 -120}\special{pa -451 -85}\special{pa -461 -50}\special{pa -471 -14}%
+\special{fp}%
+\special{pa -309 118}\special{pa -262 130}\special{pa -210 140}\special{pa -156 147}%
+\special{pa -99 152}\special{pa -40 155}\special{pa 19 156}\special{pa 78 154}\special{pa 136 149}%
+\special{pa 192 142}\special{pa 244 133}\special{pa 293 122}\special{pa 337 109}\special{pa 376 94}%
+\special{pa 409 78}\special{pa 435 61}\special{pa 455 42}\special{pa 467 23}\special{pa 472 3}%
+\special{pa 470 -16}\special{pa 460 -35}%
+\special{fp}%
+\special{pa -467 -23}\special{pa -472 -3}\special{pa -470 16}\special{pa -460 35}%
+\special{pa -443 54}\special{pa -419 72}\special{pa -388 89}\special{pa -351 104}%
+\special{pa -309 118}%
+\special{fp}%
+\special{pa -536 -153}\special{pa -424 -191}%
+\special{fp}%
+\special{pa 241 -416}\special{pa 536 -516}%
+\special{fp}%
+\special{pa 772 -295}\special{pa 429 -164}%
+\special{fp}%
+\special{pa -309 118}\special{pa -618 236}%
+\special{fp}%
+\special{pa -827 -236}\special{pa -440 -125}%
+\special{fp}%
+\special{pa 357 102}\special{pa 782 223}%
+\special{fp}%
+\special{pa 0 472}\special{pa 0 156}%
+\special{fp}%
+\special{pa 0 -899}\special{pa 0 -1003}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex
new file mode 100644
index 00000000..130e59cb
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/crvsfparadata2.tex
@@ -0,0 +1,139 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-24 21:3
+%%% template.sce 2016-8-24 21:3
+{\unitlength=6mm%
+\begin{picture}%
+( 6.81000, 6.95000)( -3.50000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7936,-1.0660){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.9651,-1.1310){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.4380){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 471 -14}\special{pa 461 -50}\special{pa 451 -85}\special{pa 442 -120}%
+\special{pa 432 -153}\special{pa 422 -186}\special{pa 413 -219}\special{pa 403 -250}%
+\special{pa 393 -281}\special{pa 383 -311}\special{pa 374 -341}\special{pa 364 -369}%
+\special{pa 354 -397}\special{pa 345 -424}\special{pa 335 -451}\special{pa 325 -476}%
+\special{pa 315 -501}\special{pa 306 -525}\special{pa 296 -549}\special{pa 286 -571}%
+\special{pa 277 -593}\special{pa 268 -611}\special{pa 257 -635}\special{pa 247 -654}%
+\special{pa 237 -673}\special{pa 228 -692}\special{pa 218 -709}\special{pa 208 -726}%
+\special{pa 198 -742}\special{pa 188 -757}\special{pa 178 -772}\special{pa 169 -785}%
+\special{pa 159 -798}\special{pa 149 -810}\special{pa 143 -817}\special{pa 139 -822}%
+\special{pa 129 -833}\special{pa 118 -843}\special{pa 108 -852}\special{pa 98 -861}%
+\special{pa 87 -868}\special{pa 76 -876}\special{pa 69 -880}\special{pa 53 -887}\special{pa 41 -892}%
+\special{pa 31 -895}\special{pa 25 -896}\special{pa 17 -898}\special{pa 6 -899}\special{pa -5 -899}%
+\special{pa -16 -898}\special{pa -23 -897}\special{pa -30 -895}\special{pa -39 -893}%
+\special{pa -51 -888}\special{pa -65 -882}\special{pa -76 -876}\special{pa -87 -868}%
+\special{pa -98 -861}\special{pa -108 -852}\special{pa -118 -843}\special{pa -129 -833}%
+\special{pa -135 -826}\special{pa -149 -810}\special{pa -159 -798}\special{pa -169 -785}%
+\special{pa -178 -772}\special{pa -188 -757}\special{pa -198 -742}\special{pa -208 -726}%
+\special{pa -218 -709}\special{pa -228 -692}\special{pa -237 -673}\special{pa -243 -662}%
+\special{pa -247 -654}\special{pa -257 -635}\special{pa -267 -614}\special{pa -277 -593}%
+\special{pa -286 -571}\special{pa -296 -549}\special{pa -306 -525}\special{pa -315 -501}%
+\special{pa -325 -476}\special{pa -335 -451}\special{pa -345 -424}\special{pa -354 -397}%
+\special{pa -364 -369}\special{pa -374 -341}\special{pa -383 -311}\special{pa -393 -281}%
+\special{pa -403 -250}\special{pa -413 -219}\special{pa -422 -186}\special{pa -432 -153}%
+\special{pa -442 -120}\special{pa -451 -85}\special{pa -461 -50}\special{pa -471 -14}%
+\special{fp}%
+\special{pa -309 118}\special{pa -262 130}\special{pa -210 140}\special{pa -156 147}%
+\special{pa -99 152}\special{pa -40 155}\special{pa 19 156}\special{pa 78 154}\special{pa 136 149}%
+\special{pa 192 142}\special{pa 244 133}\special{pa 293 122}\special{pa 337 109}\special{pa 376 94}%
+\special{pa 409 78}\special{pa 435 61}\special{pa 455 42}\special{pa 467 23}\special{pa 472 3}%
+\special{pa 470 -16}\special{pa 460 -35}%
+\special{fp}%
+\special{pa -467 -23}\special{pa -472 -3}\special{pa -470 16}\special{pa -460 35}%
+\special{pa -443 54}\special{pa -419 72}\special{pa -388 89}\special{pa -351 104}%
+\special{pa -309 118}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 463 -33}\special{pa 457 -38}\special{fp}\special{pa 435 -60}\special{pa 428 -65}\special{fp}%
+\special{pa 402 -82}\special{pa 395 -85}\special{fp}\special{pa 366 -98}\special{pa 358 -101}\special{fp}%
+\special{pa 329 -112}\special{pa 321 -114}\special{fp}\special{pa 291 -122}\special{pa 283 -124}\special{fp}%
+\special{pa 252 -132}\special{pa 244 -133}\special{fp}\special{pa 213 -139}\special{pa 205 -140}\special{fp}%
+\special{pa 174 -145}\special{pa 166 -146}\special{fp}\special{pa 135 -149}\special{pa 127 -150}\special{fp}%
+\special{pa 96 -153}\special{pa 88 -153}\special{fp}\special{pa 56 -155}\special{pa 48 -155}\special{fp}%
+\special{pa 17 -155}\special{pa 9 -156}\special{fp}\special{pa -23 -156}\special{pa -31 -155}\special{fp}%
+\special{pa -63 -154}\special{pa -71 -154}\special{fp}\special{pa -102 -152}\special{pa -110 -151}\special{fp}%
+\special{pa -141 -149}\special{pa -149 -148}\special{fp}\special{pa -181 -144}\special{pa -189 -143}\special{fp}%
+\special{pa -220 -138}\special{pa -228 -136}\special{fp}\special{pa -258 -130}\special{pa -266 -128}\special{fp}%
+\special{pa -297 -121}\special{pa -305 -119}\special{fp}\special{pa -335 -110}\special{pa -342 -107}\special{fp}%
+\special{pa -372 -96}\special{pa -379 -93}\special{fp}\special{pa -407 -79}\special{pa -414 -75}\special{fp}%
+\special{pa -440 -56}\special{pa -446 -51}\special{fp}\special{pa -465 -26}\special{pa -470 -20}\special{fp}%
+\special{pn 8}%
+\special{pa -536 -153}\special{pa -424 -191}%
+\special{fp}%
+\special{pa 241 -416}\special{pa 536 -516}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -428 -190}\special{pa -420 -192}\special{fp}\special{pa -391 -202}\special{pa -383 -205}\special{fp}%
+\special{pa -354 -215}\special{pa -346 -217}\special{fp}\special{pa -317 -227}\special{pa -309 -230}\special{fp}%
+\special{pa -280 -240}\special{pa -272 -242}\special{fp}\special{pa -243 -252}\special{pa -235 -255}\special{fp}%
+\special{pa -206 -265}\special{pa -198 -267}\special{fp}\special{pa -169 -277}\special{pa -161 -280}\special{fp}%
+\special{pa -132 -290}\special{pa -124 -292}\special{fp}\special{pa -95 -302}\special{pa -87 -305}\special{fp}%
+\special{pa -58 -315}\special{pa -50 -317}\special{fp}\special{pa -21 -327}\special{pa -14 -330}\special{fp}%
+\special{pa 16 -340}\special{pa 23 -342}\special{fp}\special{pa 53 -352}\special{pa 60 -355}\special{fp}%
+\special{pa 90 -365}\special{pa 97 -367}\special{fp}\special{pa 127 -377}\special{pa 134 -380}\special{fp}%
+\special{pa 164 -390}\special{pa 171 -392}\special{fp}\special{pa 201 -402}\special{pa 208 -405}\special{fp}%
+\special{pa 238 -415}\special{pa 245 -418}\special{fp}\special{pn 8}%
+\special{pa 772 -295}\special{pa 429 -164}%
+\special{fp}%
+\special{pa -309 118}\special{pa -618 236}%
+\special{fp}%
+\special{pa -827 -236}\special{pa -440 -125}%
+\special{fp}%
+\special{pa 357 102}\special{pa 782 223}%
+\special{fp}%
+\special{pa 0 472}\special{pa 0 156}%
+\special{fp}%
+\special{pa 0 -899}\special{pa 0 -1003}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 433 -165}\special{pa 425 -162}\special{fp}\special{pa 396 -151}\special{pa 388 -148}\special{fp}%
+\special{pa 359 -137}\special{pa 351 -134}\special{fp}\special{pa 322 -123}\special{pa 314 -120}\special{fp}%
+\special{pa 285 -109}\special{pa 278 -106}\special{fp}\special{pa 248 -95}\special{pa 241 -92}\special{fp}%
+\special{pa 211 -81}\special{pa 204 -78}\special{fp}\special{pa 174 -67}\special{pa 167 -64}\special{fp}%
+\special{pa 137 -52}\special{pa 130 -50}\special{fp}\special{pa 101 -38}\special{pa 93 -36}\special{fp}%
+\special{pa 64 -24}\special{pa 56 -21}\special{fp}\special{pa 27 -10}\special{pa 19 -7}\special{fp}%
+\special{pa -10 4}\special{pa -18 7}\special{fp}\special{pa -47 18}\special{pa -54 21}\special{fp}%
+\special{pa -84 32}\special{pa -91 35}\special{fp}\special{pa -121 46}\special{pa -128 49}\special{fp}%
+\special{pa -158 60}\special{pa -165 63}\special{fp}\special{pa -195 74}\special{pa -202 77}\special{fp}%
+\special{pa -231 88}\special{pa -239 91}\special{fp}\special{pa -268 102}\special{pa -276 105}\special{fp}%
+\special{pa -305 116}\special{pa -313 119}\special{fp}\special{pn 8}%
+\special{pa -444 -127}\special{pa -436 -124}\special{fp}\special{pa -406 -116}\special{pa -398 -114}\special{fp}%
+\special{pa -368 -105}\special{pa -360 -103}\special{fp}\special{pa -330 -94}\special{pa -322 -92}\special{fp}%
+\special{pa -292 -83}\special{pa -284 -81}\special{fp}\special{pa -254 -72}\special{pa -246 -70}\special{fp}%
+\special{pa -216 -62}\special{pa -208 -59}\special{fp}\special{pa -178 -51}\special{pa -171 -49}\special{fp}%
+\special{pa -140 -40}\special{pa -133 -38}\special{fp}\special{pa -102 -29}\special{pa -95 -27}\special{fp}%
+\special{pa -64 -18}\special{pa -57 -16}\special{fp}\special{pa -26 -8}\special{pa -19 -5}\special{fp}%
+\special{pa 11 3}\special{pa 19 5}\special{fp}\special{pa 49 14}\special{pa 57 16}\special{fp}%
+\special{pa 87 25}\special{pa 95 27}\special{fp}\special{pa 125 36}\special{pa 133 38}\special{fp}%
+\special{pa 163 47}\special{pa 171 49}\special{fp}\special{pa 201 57}\special{pa 209 60}\special{fp}%
+\special{pa 239 68}\special{pa 247 70}\special{fp}\special{pa 277 79}\special{pa 285 81}\special{fp}%
+\special{pa 315 90}\special{pa 323 92}\special{fp}\special{pa 353 101}\special{pa 361 103}\special{fp}%
+\special{pn 8}%
+\special{pa 0 160}\special{pa 0 152}\special{fp}\special{pa 0 121}\special{pa 0 113}\special{fp}%
+\special{pa 0 82}\special{pa 0 74}\special{fp}\special{pa 0 42}\special{pa 0 34}\special{fp}%
+\special{pa 0 3}\special{pa 0 -5}\special{fp}\special{pa 0 -36}\special{pa 0 -44}\special{fp}%
+\special{pa 0 -75}\special{pa 0 -83}\special{fp}\special{pa 0 -114}\special{pa 0 -122}\special{fp}%
+\special{pa 0 -153}\special{pa 0 -161}\special{fp}\special{pa 0 -192}\special{pa 0 -200}\special{fp}%
+\special{pa 0 -231}\special{pa 0 -239}\special{fp}\special{pa 0 -270}\special{pa 0 -278}\special{fp}%
+\special{pa 0 -309}\special{pa 0 -317}\special{fp}\special{pa 0 -348}\special{pa 0 -356}\special{fp}%
+\special{pa 0 -387}\special{pa 0 -395}\special{fp}\special{pa 0 -426}\special{pa 0 -434}\special{fp}%
+\special{pa 0 -465}\special{pa 0 -473}\special{fp}\special{pa 0 -504}\special{pa 0 -512}\special{fp}%
+\special{pa 0 -543}\special{pa 0 -551}\special{fp}\special{pa 0 -582}\special{pa 0 -590}\special{fp}%
+\special{pa 0 -621}\special{pa 0 -629}\special{fp}\special{pa 0 -660}\special{pa 0 -668}\special{fp}%
+\special{pa 0 -699}\special{pa 0 -707}\special{fp}\special{pa 0 -738}\special{pa 0 -746}\special{fp}%
+\special{pa 0 -778}\special{pa 0 -786}\special{fp}\special{pa 0 -817}\special{pa 0 -825}\special{fp}%
+\special{pa 0 -856}\special{pa 0 -864}\special{fp}\special{pa 0 -895}\special{pa 0 -903}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex
new file mode 100644
index 00000000..78f074ba
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed01.tex
@@ -0,0 +1,79 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-18 19:51
+%%% template.sce 2016-8-18 19:51
+{\unitlength=8mm%
+\begin{picture}%
+( 7.09000, 7.64000)( -4.39000, -1.91000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.9477,-0.3675){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.5243,-1.0700){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,5.0239){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 850 -79}\special{pa -1184 110}%
+\special{fp}%
+\special{pa -1078 -757}\special{pa 431 303}%
+\special{fp}%
+\special{pa 0 602}\special{pa 0 -1522}%
+\special{fp}%
+\special{pa -1111 79}\special{pa -1184 110}\special{pa -1107 127}\special{pa -1109 103}%
+\special{pa -1111 79}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -1111 79}\special{pa -1184 110}\special{pa -1107 127}\special{pa -1109 103}%
+\special{pa -1111 79}\special{pa -1184 110}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 356 280}\special{pa 431 303}\special{pa 384 240}\special{pa 370 260}\special{pa 356 280}%
+\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 356 280}\special{pa 431 303}\special{pa 384 240}\special{pa 370 260}\special{pa 356 280}%
+\special{pa 431 303}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1448}\special{pa 0 -1522}\special{pa -24 -1448}\special{pa 0 -1448}%
+\special{pa 24 -1448}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1448}\special{pa 0 -1522}\special{pa -24 -1448}\special{pa 0 -1448}%
+\special{pa 24 -1448}\special{pa 0 -1522}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
+\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pa -888 83}\special{pa -241 537}\special{pa -241 -1290}\special{pa -888 -1744}%
+\special{pa -888 83}%
+\special{fp}%
+\special{pa -349 -453}\special{pa -351 -530}\special{pa -356 -609}\special{pa -364 -687}%
+\special{pa -376 -765}\special{pa -390 -839}\special{pa -407 -910}\special{pa -427 -977}%
+\special{pa -449 -1037}\special{pa -473 -1090}\special{pa -498 -1136}\special{pa -524 -1174}%
+\special{pa -551 -1202}\special{pa -578 -1221}\special{pa -605 -1230}\special{pa -631 -1230}%
+\special{pa -656 -1219}\special{pa -680 -1199}\special{pa -702 -1170}\special{pa -722 -1131}%
+\special{pa -739 -1084}\special{pa -753 -1030}\special{pa -765 -969}\special{pa -773 -902}%
+\special{pa -778 -830}\special{pa -780 -755}\special{pa -778 -678}\special{pa -773 -599}%
+\special{pa -765 -520}\special{pa -753 -443}\special{pa -739 -368}\special{pa -722 -297}%
+\special{pa -702 -231}\special{pa -680 -171}\special{pa -656 -117}\special{pa -631 -71}%
+\special{pa -605 -34}\special{pa -578 -6}\special{pa -551 13}\special{pa -524 23}%
+\special{pa -498 22}\special{pa -473 12}\special{pa -449 -9}\special{pa -427 -38}%
+\special{pa -407 -77}\special{pa -390 -124}\special{pa -376 -178}\special{pa -364 -239}%
+\special{pa -356 -306}\special{pa -351 -377}\special{pa -349 -453}%
+\special{fp}%
+\special{pa -565 -1213}\special{pa -751 -430}\special{pa -378 -168}\special{pa -565 -1213}%
+\special{fp}%
+\special{pn 3}%
+\special{pa -556 -612}\special{pa -563 -616}\special{pa -570 -614}\special{pa -575 -609}%
+\special{pa -576 -602}\special{pa -573 -596}\special{pa -566 -592}\special{pa -559 -593}%
+\special{pa -554 -599}\special{pa -553 -606}\special{pa -556 -612}\special{sh 1}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex
new file mode 100644
index 00000000..115ca20d
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed02.tex
@@ -0,0 +1,82 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-18 21:20
+%%% template.sce 2016-8-18 21:20
+{\unitlength=8mm%
+\begin{picture}%
+( 9.18000, 7.71000)( -4.79000, -2.03000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.4289,-1.0449){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.8060,-1.7060){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.8175){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pn 3}%
+\special{pa -92 -427}\special{pa -99 -430}\special{pa -106 -429}\special{pa -111 -424}%
+\special{pa -112 -417}\special{pa -109 -410}\special{pa -103 -407}\special{pa -95 -408}%
+\special{pa -90 -413}\special{pa -89 -421}\special{pa -92 -427}\special{sh 1}\special{fp}%
+\special{pn 8}%
+\special{pa 1337 -315}\special{pa 811 -191}%
+\special{fp}%
+\special{pa 758 -179}\special{pa 380 -90}%
+\special{fp}%
+\special{pa 305 -72}\special{pa -311 73}%
+\special{fp}%
+\special{pa -385 91}\special{pa -1166 275}%
+\special{fp}%
+\special{pa -1219 288}\special{pa -1337 315}%
+\special{fp}%
+\special{pa -1332 -810}\special{pa -1019 -619}%
+\special{fp}%
+\special{pa -976 -593}\special{pa -742 -451}%
+\special{fp}%
+\special{pa -697 -424}\special{pa -581 -353}%
+\special{fp}%
+\special{pa -538 -327}\special{pa -306 -186}%
+\special{fp}%
+\special{pa -238 -144}\special{pa 78 47}%
+\special{fp}%
+\special{pa 130 79}\special{pa 635 386}%
+\special{fp}%
+\special{pa 677 412}\special{pa 833 506}%
+\special{fp}%
+\special{pa 0 639}\special{pa 0 418}%
+\special{fp}%
+\special{pa 0 369}\special{pa 0 119}%
+\special{fp}%
+\special{pa 0 68}\special{pa 0 -117}%
+\special{fp}%
+\special{pa 0 -166}\special{pa 0 -1458}%
+\special{fp}%
+\special{pa 993 -1126}\special{pa 645 451}\special{pa -1195 289}\special{pa -846 -1288}%
+\special{pa -24 -1216}%
+\special{fp}%
+\special{pa 24 -1212}\special{pa 993 -1126}%
+\special{fp}%
+\special{pa 513 -365}\special{pa 523 -431}\special{pa 522 -497}\special{pa 513 -562}%
+\special{pa 493 -625}\special{pa 464 -684}\special{pa 426 -740}\special{pa 380 -790}%
+\special{pa 326 -834}\special{pa 266 -872}\special{pa 199 -903}\special{pa 129 -926}%
+\special{pa 54 -941}\special{pa 24 -943}%
+\special{fp}%
+\special{pa -24 -947}\special{pa -101 -946}\special{pa -180 -936}\special{pa -257 -918}%
+\special{pa -331 -892}\special{pa -402 -859}\special{pa -468 -818}\special{pa -529 -772}%
+\special{pa -582 -720}\special{pa -628 -663}\special{pa -666 -602}\special{pa -695 -538}%
+\special{pa -714 -473}\special{pa -724 -406}\special{pa -724 -340}\special{pa -714 -275}%
+\special{pa -695 -212}\special{pa -666 -153}\special{pa -628 -98}\special{pa -582 -48}%
+\special{pa -528 -3}\special{pa -467 35}\special{pa -401 65}\special{pa -330 88}\special{pa -255 103}%
+\special{pa -178 110}\special{pa -100 108}\special{pa -22 99}\special{pa 55 81}\special{pa 130 55}%
+\special{pa 201 21}\special{pa 267 -19}\special{pa 327 -66}\special{pa 381 -118}\special{pa 427 -175}%
+\special{pa 465 -235}\special{pa 493 -299}\special{pa 513 -365}%
+\special{fp}%
+\special{pa -22 -905}\special{pa -690 -202}\special{pa 372 -109}\special{pa 16 -945}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png
new file mode 100644
index 00000000..35d19ef1
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/embed03.png
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex
new file mode 100644
index 00000000..0b5684e2
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/invparapt.tex
@@ -0,0 +1,110 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-23 9:12
+%%% template.sce 2016-8-23 9:12
+{\unitlength=8mm%
+\begin{picture}%
+( 7.55000, 6.27000)( -3.75000, -1.85000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.1557,-0.9707){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.5211,-1.3391){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.9488){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1171 -360}\special{pa -937 288}%
+\special{fp}%
+\special{pa -1053 -400}\special{pa 1053 400}%
+\special{fp}%
+\special{pa 0 583}\special{pa 0 -1184}%
+\special{fp}%
+\special{pa 24 144}\special{pa 187 -656}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -472 143}\special{pa -464 145}\special{fp}\special{pa -434 150}\special{pa -426 151}\special{fp}%
+\special{pa -395 157}\special{pa -387 158}\special{fp}\special{pa -356 163}\special{pa -348 164}\special{fp}%
+\special{pa -317 167}\special{pa -309 167}\special{fp}\special{pa -278 169}\special{pa -270 170}\special{fp}%
+\special{pa -239 172}\special{pa -231 172}\special{fp}\special{pa -199 173}\special{pa -191 173}\special{fp}%
+\special{pa -160 173}\special{pa -152 172}\special{fp}\special{pa -121 172}\special{pa -113 171}\special{fp}%
+\special{pa -82 171}\special{pa -74 170}\special{fp}\special{pa -42 169}\special{pa -34 168}\special{fp}%
+\special{pa -3 165}\special{pa 5 164}\special{fp}\special{pa 36 160}\special{pa 44 160}\special{fp}%
+\special{pa 75 156}\special{pa 83 155}\special{fp}\special{pa 114 151}\special{pa 122 150}\special{fp}%
+\special{pa 152 143}\special{pa 160 142}\special{fp}\special{pa 191 136}\special{pa 199 134}\special{fp}%
+\special{pa 229 128}\special{pa 237 126}\special{fp}\special{pa 267 119}\special{pa 275 117}\special{fp}%
+\special{pa 305 107}\special{pa 312 105}\special{fp}\special{pa 342 95}\special{pa 350 93}\special{fp}%
+\special{pa 380 83}\special{pa 387 81}\special{fp}\special{pa 416 68}\special{pa 423 64}\special{fp}%
+\special{pa 451 51}\special{pa 458 47}\special{fp}\special{pa 487 34}\special{pa 493 30}\special{fp}%
+\special{pa 519 12}\special{pa 526 8}\special{fp}\special{pa 550 -12}\special{pa 556 -17}\special{fp}%
+\special{pa 581 -36}\special{pa 586 -42}\special{fp}\special{pa 602 -69}\special{pa 606 -76}\special{fp}%
+\special{pa 622 -103}\special{pa 624 -110}\special{fp}\special{pa 625 -142}\special{pa 625 -150}\special{fp}%
+\special{pa 621 -179}\special{pa 619 -187}\special{fp}\special{pa 604 -215}\special{pa 599 -221}\special{fp}%
+\special{pa 581 -246}\special{pa 576 -252}\special{fp}\special{pa 552 -272}\special{pa 546 -277}\special{fp}%
+\special{pa 522 -298}\special{pa 516 -302}\special{fp}\special{pa 488 -317}\special{pa 481 -321}\special{fp}%
+\special{pa 453 -335}\special{pa 446 -339}\special{fp}\special{pa 418 -353}\special{pa 411 -357}\special{fp}%
+\special{pa 381 -367}\special{pa 374 -369}\special{fp}\special{pa 344 -379}\special{pa 337 -382}\special{fp}%
+\special{pa 307 -392}\special{pa 300 -395}\special{fp}\special{pa 270 -403}\special{pa 262 -405}\special{fp}%
+\special{pa 231 -412}\special{pa 223 -414}\special{fp}\special{pa 193 -420}\special{pa 185 -422}\special{fp}%
+\special{pa 155 -429}\special{pa 147 -430}\special{fp}\special{pa 116 -436}\special{pa 108 -437}\special{fp}%
+\special{pa 77 -441}\special{pa 69 -442}\special{fp}\special{pa 38 -445}\special{pa 30 -446}\special{fp}%
+\special{pa -1 -450}\special{pa -9 -451}\special{fp}\special{pa -40 -454}\special{pa -48 -454}\special{fp}%
+\special{pa -79 -455}\special{pa -87 -456}\special{fp}\special{pa -119 -457}\special{pa -127 -457}\special{fp}%
+\special{pa -158 -458}\special{pa -166 -459}\special{fp}\special{pa -197 -458}\special{pa -205 -458}\special{fp}%
+\special{pa -236 -457}\special{pa -244 -456}\special{fp}\special{pa -276 -455}\special{pa -284 -454}\special{fp}%
+\special{pa -315 -453}\special{pa -323 -452}\special{fp}\special{pa -354 -448}\special{pa -362 -447}\special{fp}%
+\special{pa -393 -442}\special{pa -401 -441}\special{fp}\special{pa -432 -436}\special{pa -439 -435}\special{fp}%
+\special{pa -470 -428}\special{pa -477 -425}\special{fp}\special{pa -507 -417}\special{pa -515 -414}\special{fp}%
+\special{pa -545 -405}\special{pa -552 -402}\special{fp}\special{pa -579 -386}\special{pa -586 -382}\special{fp}%
+\special{pa -610 -364}\special{pa -615 -357}\special{fp}\special{pa -627 -330}\special{pa -627 -322}\special{fp}%
+\special{pa -613 -294}\special{pa -608 -288}\special{fp}\special{pa -581 -272}\special{pa -574 -268}\special{fp}%
+\special{pa -547 -254}\special{pa -539 -251}\special{fp}\special{pa -509 -241}\special{pa -502 -239}\special{fp}%
+\special{pa -472 -229}\special{pa -464 -227}\special{fp}\special{pa -434 -222}\special{pa -426 -221}\special{fp}%
+\special{pa -395 -215}\special{pa -387 -214}\special{fp}\special{pa -356 -208}\special{pa -348 -208}\special{fp}%
+\special{pa -317 -205}\special{pa -309 -205}\special{fp}\special{pa -278 -203}\special{pa -270 -202}\special{fp}%
+\special{pa -239 -200}\special{pa -231 -200}\special{fp}\special{pa -199 -199}\special{pa -191 -199}\special{fp}%
+\special{pa -160 -199}\special{pa -152 -200}\special{fp}\special{pa -121 -200}\special{pa -113 -200}\special{fp}%
+\special{pa -82 -201}\special{pa -74 -201}\special{fp}\special{pa -42 -203}\special{pa -34 -204}\special{fp}%
+\special{pa -3 -207}\special{pa 5 -208}\special{fp}\special{pa 36 -211}\special{pa 44 -212}\special{fp}%
+\special{pa 75 -216}\special{pa 83 -217}\special{fp}\special{pa 114 -221}\special{pa 122 -222}\special{fp}%
+\special{pa 152 -229}\special{pa 160 -230}\special{fp}\special{pa 191 -236}\special{pa 199 -238}\special{fp}%
+\special{pa 229 -244}\special{pa 237 -246}\special{fp}\special{pa 267 -253}\special{pa 275 -255}\special{fp}%
+\special{pa 305 -265}\special{pa 312 -267}\special{fp}\special{pa 342 -277}\special{pa 350 -279}\special{fp}%
+\special{pa 380 -288}\special{pa 387 -291}\special{fp}\special{pa 416 -304}\special{pa 423 -308}\special{fp}%
+\special{pa 451 -321}\special{pa 458 -325}\special{fp}\special{pa 487 -338}\special{pa 493 -342}\special{fp}%
+\special{pa 519 -360}\special{pa 526 -364}\special{fp}\special{pa 550 -384}\special{pa 556 -389}\special{fp}%
+\special{pa 581 -408}\special{pa 586 -414}\special{fp}\special{pa 602 -441}\special{pa 606 -448}\special{fp}%
+\special{pa 622 -474}\special{pa 624 -482}\special{fp}\special{pa 625 -514}\special{pa 625 -522}\special{fp}%
+\special{pa 621 -551}\special{pa 619 -559}\special{fp}\special{pa 604 -586}\special{pa 599 -593}\special{fp}%
+\special{pa 581 -618}\special{pa 576 -624}\special{fp}\special{pa 552 -644}\special{pa 546 -649}\special{fp}%
+\special{pa 522 -670}\special{pa 516 -674}\special{fp}\special{pa 488 -689}\special{pa 481 -692}\special{fp}%
+\special{pa 453 -707}\special{pa 446 -711}\special{fp}\special{pa 418 -725}\special{pa 411 -728}\special{fp}%
+\special{pa 381 -739}\special{pa 374 -741}\special{fp}\special{pa 344 -751}\special{pa 337 -754}\special{fp}%
+\special{pa 307 -764}\special{pa 300 -767}\special{fp}\special{pa 270 -775}\special{pa 262 -777}\special{fp}%
+\special{pa 231 -784}\special{pa 223 -786}\special{fp}\special{pa 193 -792}\special{pa 185 -794}\special{fp}%
+\special{pa 155 -801}\special{pa 147 -802}\special{fp}\special{pa 116 -808}\special{pa 108 -809}\special{fp}%
+\special{pa 77 -813}\special{pa 69 -813}\special{fp}\special{pa 38 -817}\special{pa 30 -818}\special{fp}%
+\special{pa -1 -822}\special{pa -9 -823}\special{fp}\special{pa -40 -826}\special{pa -48 -826}\special{fp}%
+\special{pa -79 -827}\special{pa -87 -828}\special{fp}\special{pa -119 -829}\special{pa -127 -829}\special{fp}%
+\special{pa -158 -830}\special{pa -166 -830}\special{fp}\special{pa -197 -830}\special{pa -205 -830}\special{fp}%
+\special{pa -236 -828}\special{pa -244 -828}\special{fp}\special{pa -276 -827}\special{pa -284 -826}\special{fp}%
+\special{pa -315 -825}\special{pa -323 -824}\special{fp}\special{pa -354 -820}\special{pa -362 -819}\special{fp}%
+\special{pa -393 -814}\special{pa -401 -813}\special{fp}\special{pa -432 -808}\special{pa -439 -807}\special{fp}%
+\special{pa -470 -799}\special{pa -477 -797}\special{fp}\special{pa -507 -789}\special{pa -515 -786}\special{fp}%
+\special{pa -545 -777}\special{pa -552 -774}\special{fp}\special{pa -579 -758}\special{pa -586 -754}\special{fp}%
+\special{pa -610 -735}\special{pa -615 -729}\special{fp}\special{pa -627 -702}\special{pa -627 -694}\special{fp}%
+\special{pa -613 -666}\special{pa -608 -660}\special{fp}\special{pa -581 -644}\special{pa -574 -640}\special{fp}%
+\special{pa -547 -626}\special{pa -539 -623}\special{fp}\special{pa -509 -613}\special{pa -502 -611}\special{fp}%
+\special{pa -472 -601}\special{pa -465 -599}\special{fp}\special{pn 8}%
+\special{pa 140 -432}\special{pa 131 -433}\special{pa -27 -452}\special{pa -182 -458}%
+\special{pa -326 -450}\special{pa -452 -435}\special{pa -545 -406}\special{pa -607 -372}%
+\special{pa -630 -333}\special{pa -612 -294}\special{pa -560 -258}\special{pa -468 -229}%
+\special{pa -349 -208}\special{pa -208 -200}\special{pa -53 -202}\special{pa 96 -220}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex
new file mode 100644
index 00000000..6e7d1900
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces1.tex
@@ -0,0 +1,105 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 10:45
+%%% template.sce 2016-8-9 10:45
+{\unitlength=6mm%
+\begin{picture}%
+( 9.37000, 7.04000)( -5.00000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.3890,-1.4320){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.0123,-1.1937){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.8652){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 759 -321}\special{pa 301 -127}%
+\special{fp}%
+\special{pa -202 85}\special{pa -759 321}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 304 -129}\special{pa 297 -125}\special{fp}\special{pa 268 -113}\special{pa 261 -110}\special{fp}%
+\special{pa 233 -98}\special{pa 225 -95}\special{fp}\special{pa 197 -83}\special{pa 189 -80}\special{fp}%
+\special{pa 161 -68}\special{pa 153 -65}\special{fp}\special{pa 125 -53}\special{pa 117 -50}\special{fp}%
+\special{pa 89 -38}\special{pa 82 -34}\special{fp}\special{pa 53 -22}\special{pa 46 -19}\special{fp}%
+\special{pa 17 -7}\special{pa 10 -4}\special{fp}\special{pa -19 8}\special{pa -26 11}\special{fp}%
+\special{pa -55 23}\special{pa -62 26}\special{fp}\special{pa -91 38}\special{pa -98 41}\special{fp}%
+\special{pa -126 53}\special{pa -134 57}\special{fp}\special{pa -162 69}\special{pa -170 72}\special{fp}%
+\special{pa -198 84}\special{pa -206 87}\special{fp}\special{pn 8}%
+\special{pa -905 -269}\special{pa -398 -118}%
+\special{fp}%
+\special{pa 418 124}\special{pa 905 269}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -402 -120}\special{pa -394 -117}\special{fp}\special{pa -365 -109}\special{pa -357 -106}\special{fp}%
+\special{pa -328 -98}\special{pa -320 -95}\special{fp}\special{pa -291 -86}\special{pa -283 -84}\special{fp}%
+\special{pa -254 -75}\special{pa -246 -73}\special{fp}\special{pa -216 -64}\special{pa -209 -62}\special{fp}%
+\special{pa -179 -53}\special{pa -172 -51}\special{fp}\special{pa -142 -42}\special{pa -135 -40}\special{fp}%
+\special{pa -105 -31}\special{pa -98 -29}\special{fp}\special{pa -68 -20}\special{pa -60 -18}\special{fp}%
+\special{pa -31 -9}\special{pa -23 -7}\special{fp}\special{pa 6 2}\special{pa 14 4}\special{fp}%
+\special{pa 43 13}\special{pa 51 15}\special{fp}\special{pa 80 24}\special{pa 88 26}\special{fp}%
+\special{pa 117 35}\special{pa 125 37}\special{fp}\special{pa 155 46}\special{pa 162 48}\special{fp}%
+\special{pa 192 57}\special{pa 199 59}\special{fp}\special{pa 229 68}\special{pa 236 70}\special{fp}%
+\special{pa 266 79}\special{pa 273 81}\special{fp}\special{pa 303 90}\special{pa 311 92}\special{fp}%
+\special{pa 340 101}\special{pa 348 103}\special{fp}\special{pa 377 112}\special{pa 385 114}\special{fp}%
+\special{pa 414 123}\special{pa 422 125}\special{fp}\special{pn 8}%
+\special{pa 0 472}\special{pa 0 97}%
+\special{fp}%
+\special{pa 0 -764}\special{pa 0 -1104}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 0 101}\special{pa 0 93}\special{fp}\special{pa 0 62}\special{pa 0 54}\special{fp}%
+\special{pa 0 23}\special{pa 0 15}\special{fp}\special{pa 0 -16}\special{pa 0 -24}\special{fp}%
+\special{pa 0 -55}\special{pa 0 -63}\special{fp}\special{pa 0 -95}\special{pa 0 -103}\special{fp}%
+\special{pa 0 -134}\special{pa 0 -142}\special{fp}\special{pa 0 -173}\special{pa 0 -181}\special{fp}%
+\special{pa 0 -212}\special{pa 0 -220}\special{fp}\special{pa 0 -251}\special{pa 0 -259}\special{fp}%
+\special{pa 0 -290}\special{pa 0 -298}\special{fp}\special{pa 0 -330}\special{pa 0 -338}\special{fp}%
+\special{pa 0 -369}\special{pa 0 -377}\special{fp}\special{pa 0 -408}\special{pa 0 -416}\special{fp}%
+\special{pa 0 -447}\special{pa 0 -455}\special{fp}\special{pa 0 -486}\special{pa 0 -494}\special{fp}%
+\special{pa 0 -525}\special{pa 0 -533}\special{fp}\special{pa 0 -564}\special{pa 0 -572}\special{fp}%
+\special{pa 0 -604}\special{pa 0 -612}\special{fp}\special{pa 0 -643}\special{pa 0 -651}\special{fp}%
+\special{pa 0 -682}\special{pa 0 -690}\special{fp}\special{pa 0 -721}\special{pa 0 -729}\special{fp}%
+\special{pa 0 -760}\special{pa 0 -768}\special{fp}\special{pn 8}%
+\special{pn 8}%
+\special{pa 99 -192}\special{pa 92 -189}\special{fp}\special{pa 64 -177}\special{pa 56 -174}\special{fp}%
+\special{pa 28 -162}\special{pa 20 -158}\special{fp}\special{pa -8 -146}\special{pa -15 -143}\special{fp}%
+\special{pa -44 -131}\special{pa -51 -128}\special{fp}\special{pa -79 -116}\special{pa -87 -113}\special{fp}%
+\special{pa -115 -101}\special{pa -122 -98}\special{fp}\special{pa -151 -86}\special{pa -158 -83}\special{fp}%
+\special{pa -187 -71}\special{pa -194 -68}\special{fp}\special{pa -222 -56}\special{pa -230 -53}\special{fp}%
+\special{pa -258 -41}\special{pa -265 -38}\special{fp}\special{pa -294 -26}\special{pa -301 -23}\special{fp}%
+\special{pa -329 -11}\special{pa -337 -8}\special{fp}\special{pa -365 4}\special{pa -373 8}\special{fp}%
+\special{pa -401 20}\special{pa -408 23}\special{fp}\special{pa -437 35}\special{pa -444 38}\special{fp}%
+\special{pa -472 50}\special{pa -480 53}\special{fp}\special{pa -508 65}\special{pa -515 68}\special{fp}%
+\special{pn 8}%
+\special{pa -512 66}\special{pa 418 124}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 93 -193}\special{pa 98 -187}\special{fp}\special{pa 122 -164}\special{pa 128 -159}\special{fp}%
+\special{pa 151 -136}\special{pa 157 -130}\special{fp}\special{pa 181 -107}\special{pa 186 -102}\special{fp}%
+\special{pa 210 -79}\special{pa 216 -73}\special{fp}\special{pa 239 -50}\special{pa 245 -44}\special{fp}%
+\special{pa 269 -21}\special{pa 274 -16}\special{fp}\special{pa 298 7}\special{pa 304 13}\special{fp}%
+\special{pa 327 36}\special{pa 333 41}\special{fp}\special{pa 357 64}\special{pa 362 70}\special{fp}%
+\special{pa 386 93}\special{pa 392 99}\special{fp}\special{pa 415 122}\special{pa 421 127}\special{fp}%
+\special{pn 8}%
+\special{pa -512 66}\special{pa 0 -764}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 96 -186}\special{pa 95 -194}\special{fp}\special{pa 90 -225}\special{pa 89 -232}\special{fp}%
+\special{pa 83 -263}\special{pa 82 -271}\special{fp}\special{pa 77 -301}\special{pa 76 -309}\special{fp}%
+\special{pa 71 -339}\special{pa 69 -347}\special{fp}\special{pa 64 -378}\special{pa 63 -386}\special{fp}%
+\special{pa 58 -416}\special{pa 57 -424}\special{fp}\special{pa 52 -454}\special{pa 50 -462}\special{fp}%
+\special{pa 45 -492}\special{pa 44 -500}\special{fp}\special{pa 39 -531}\special{pa 38 -539}\special{fp}%
+\special{pa 33 -569}\special{pa 31 -577}\special{fp}\special{pa 26 -607}\special{pa 25 -615}\special{fp}%
+\special{pa 20 -645}\special{pa 18 -653}\special{fp}\special{pa 13 -684}\special{pa 12 -692}\special{fp}%
+\special{pa 7 -722}\special{pa 6 -730}\special{fp}\special{pa 1 -760}\special{pa -1 -768}\special{fp}%
+\special{pn 8}%
+\special{pa 418 124}\special{pa 0 -764}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex
new file mode 100644
index 00000000..d5477be0
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/nohiddenbyfaces2.tex
@@ -0,0 +1,58 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 15:59
+%%% template.sce 2016-8-11 15:59
+{\unitlength=6mm%
+\begin{picture}%
+( 8.39000, 6.29000)( -4.00000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.3919,-1.2682){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.0140,-1.0567){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.9880){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 759 -284}\special{pa -759 284}%
+\special{fp}%
+\special{pa -905 -238}\special{pa 905 238}%
+\special{fp}%
+\special{pa 0 472}\special{pa 0 -897}%
+\special{fp}%
+\special{pa 96 -168}\special{pa 60 -155}\special{fp}\special{pa 24 -142}\special{pa -12 -128}\special{fp}%
+\special{pa -47 -115}\special{pa -83 -102}\special{fp}\special{pa -119 -88}\special{pa -155 -75}\special{fp}%
+\special{pa -190 -61}\special{pa -226 -48}\special{fp}\special{pa -262 -35}\special{pa -297 -21}\special{fp}%
+\special{pa -333 -8}\special{pa -369 5}\special{fp}\special{pa -405 19}\special{pa -440 32}\special{fp}%
+\special{pa -476 45}\special{pa -512 59}\special{fp}%
+%
+\special{pn 16}%
+\special{pa -512 59}\special{pa 418 110}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 96 -168}\special{pa 125 -143}\special{fp}\special{pa 154 -118}\special{pa 184 -92}\special{fp}%
+\special{pa 213 -67}\special{pa 242 -42}\special{fp}\special{pa 271 -16}\special{pa 301 9}\special{fp}%
+\special{pa 330 34}\special{pa 359 59}\special{fp}\special{pa 389 85}\special{pa 418 110}\special{fp}%
+%
+%
+\special{pn 16}%
+\special{pa -512 59}\special{pa 0 -776}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 96 -168}\special{pa 90 -204}\special{fp}\special{pa 84 -240}\special{pa 79 -276}\special{fp}%
+\special{pa 73 -311}\special{pa 67 -347}\special{fp}\special{pa 62 -383}\special{pa 56 -419}\special{fp}%
+\special{pa 51 -454}\special{pa 45 -490}\special{fp}\special{pa 39 -526}\special{pa 34 -562}\special{fp}%
+\special{pa 28 -597}\special{pa 22 -633}\special{fp}\special{pa 17 -669}\special{pa 11 -705}\special{fp}%
+\special{pa 6 -740}\special{pa 0 -776}\special{fp}%
+%
+\special{pn 16}%
+\special{pa 418 110}\special{pa 0 -776}%
+\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex
new file mode 100644
index 00000000..437d8d61
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/parabola.tex
@@ -0,0 +1,335 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 19:8
+%%% template.sce 2016-8-7 19:8
+{\unitlength=6mm%
+\begin{picture}%
+( 10.01000, 7.51000)( -5.01000, -2.51000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1043 -262}\special{pa -1043 262}%
+\special{fp}%
+\special{pa -554 -493}\special{pa 554 493}%
+\special{fp}%
+\special{pa 0 593}\special{pa 0 -1041}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -17 -827}\special{pa -35 -818}\special{pa -52 -807}%
+\special{pa -70 -792}\special{pa -87 -775}\special{pa -104 -754}\special{pa -122 -731}%
+\special{pa -139 -705}\special{pa -156 -676}\special{pa -174 -644}\special{pa -191 -610}%
+\special{pa -209 -572}\special{pa -226 -532}\special{pa -243 -488}\special{pa -261 -442}%
+\special{pa -278 -393}\special{pa -296 -341}\special{pa -313 -286}\special{pa -330 -228}%
+\special{pa -348 -167}\special{pa -365 -104}\special{pa -383 -37}\special{pa -400 32}%
+\special{pa -417 105}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -14 -825}\special{pa -27 -813}\special{pa -41 -800}%
+\special{pa -55 -783}\special{pa -68 -763}\special{pa -82 -740}\special{pa -96 -715}%
+\special{pa -109 -687}\special{pa -123 -655}\special{pa -137 -621}\special{pa -151 -584}%
+\special{pa -164 -544}\special{pa -178 -501}\special{pa -192 -456}\special{pa -205 -407}%
+\special{pa -219 -356}\special{pa -233 -301}\special{pa -246 -244}\special{pa -260 -184}%
+\special{pa -274 -121}\special{pa -287 -55}\special{pa -301 14}\special{pa -315 86}%
+\special{pa -328 161}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -9 -823}\special{pa -17 -810}\special{pa -26 -795}%
+\special{pa -35 -776}\special{pa -43 -755}\special{pa -52 -730}\special{pa -61 -703}%
+\special{pa -69 -673}\special{pa -78 -640}\special{pa -86 -605}\special{pa -95 -566}%
+\special{pa -104 -524}\special{pa -112 -480}\special{pa -121 -432}\special{pa -130 -382}%
+\special{pa -138 -329}\special{pa -147 -273}\special{pa -156 -214}\special{pa -164 -152}%
+\special{pa -173 -87}\special{pa -182 -20}\special{pa -190 51}\special{pa -199 124}%
+\special{pa -207 201}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -3 -822}\special{pa -6 -808}\special{pa -8 -792}\special{pa -11 -773}%
+\special{pa -14 -750}\special{pa -17 -725}\special{pa -19 -697}\special{pa -22 -666}%
+\special{pa -25 -633}\special{pa -28 -596}\special{pa -30 -556}\special{pa -33 -514}%
+\special{pa -36 -469}\special{pa -39 -420}\special{pa -41 -369}\special{pa -44 -315}%
+\special{pa -47 -258}\special{pa -50 -198}\special{pa -52 -136}\special{pa -55 -70}%
+\special{pa -58 -2}\special{pa -61 70}\special{pa -63 144}\special{pa -66 221}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 3 -822}\special{pa 7 -809}\special{pa 10 -792}\special{pa 14 -773}%
+\special{pa 17 -751}\special{pa 20 -726}\special{pa 24 -698}\special{pa 27 -667}\special{pa 31 -633}%
+\special{pa 34 -596}\special{pa 37 -557}\special{pa 41 -515}\special{pa 44 -469}\special{pa 48 -421}%
+\special{pa 51 -370}\special{pa 54 -316}\special{pa 58 -259}\special{pa 61 -199}\special{pa 65 -137}%
+\special{pa 68 -71}\special{pa 71 -3}\special{pa 75 69}\special{pa 78 143}\special{pa 82 220}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 9 -823}\special{pa 18 -810}\special{pa 28 -795}\special{pa 37 -777}%
+\special{pa 46 -755}\special{pa 55 -731}\special{pa 65 -704}\special{pa 74 -674}\special{pa 83 -642}%
+\special{pa 92 -606}\special{pa 101 -567}\special{pa 111 -526}\special{pa 120 -481}%
+\special{pa 129 -434}\special{pa 138 -384}\special{pa 148 -331}\special{pa 157 -275}%
+\special{pa 166 -216}\special{pa 175 -155}\special{pa 185 -90}\special{pa 194 -23}%
+\special{pa 203 48}\special{pa 212 121}\special{pa 221 197}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 14 -825}\special{pa 28 -814}\special{pa 42 -800}\special{pa 57 -784}%
+\special{pa 71 -764}\special{pa 85 -742}\special{pa 99 -717}\special{pa 113 -688}%
+\special{pa 127 -657}\special{pa 141 -623}\special{pa 156 -587}\special{pa 170 -547}%
+\special{pa 184 -504}\special{pa 198 -459}\special{pa 212 -410}\special{pa 226 -359}%
+\special{pa 241 -305}\special{pa 255 -248}\special{pa 269 -188}\special{pa 283 -125}%
+\special{pa 297 -59}\special{pa 311 9}\special{pa 325 81}\special{pa 340 155}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 18 -827}\special{pa 35 -819}\special{pa 53 -807}\special{pa 71 -793}%
+\special{pa 88 -776}\special{pa 106 -756}\special{pa 124 -733}\special{pa 141 -707}%
+\special{pa 159 -679}\special{pa 177 -647}\special{pa 195 -613}\special{pa 212 -575}%
+\special{pa 230 -535}\special{pa 248 -492}\special{pa 265 -446}\special{pa 283 -397}%
+\special{pa 301 -345}\special{pa 318 -291}\special{pa 336 -233}\special{pa 354 -173}%
+\special{pa 371 -109}\special{pa 389 -43}\special{pa 407 26}\special{pa 424 98}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 19 -830}\special{pa 39 -824}\special{pa 58 -816}\special{pa 78 -804}%
+\special{pa 97 -790}\special{pa 117 -773}\special{pa 136 -753}\special{pa 156 -730}%
+\special{pa 175 -704}\special{pa 195 -675}\special{pa 214 -643}\special{pa 234 -609}%
+\special{pa 253 -571}\special{pa 273 -531}\special{pa 292 -488}\special{pa 312 -442}%
+\special{pa 331 -393}\special{pa 351 -341}\special{pa 370 -286}\special{pa 390 -228}%
+\special{pa 409 -168}\special{pa 429 -104}\special{pa 448 -38}\special{pa 468 31}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 19 -833}\special{pa 39 -830}\special{pa 58 -824}\special{pa 78 -816}%
+\special{pa 97 -805}\special{pa 116 -790}\special{pa 136 -773}\special{pa 155 -753}%
+\special{pa 175 -730}\special{pa 194 -704}\special{pa 213 -675}\special{pa 233 -644}%
+\special{pa 252 -609}\special{pa 271 -572}\special{pa 291 -532}\special{pa 310 -488}%
+\special{pa 330 -442}\special{pa 349 -393}\special{pa 368 -341}\special{pa 388 -287}%
+\special{pa 407 -229}\special{pa 427 -168}\special{pa 446 -105}\special{pa 465 -39}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 17 -836}\special{pa 35 -836}\special{pa 52 -833}\special{pa 70 -827}%
+\special{pa 87 -818}\special{pa 104 -807}\special{pa 122 -792}\special{pa 139 -775}%
+\special{pa 156 -755}\special{pa 174 -732}\special{pa 191 -706}\special{pa 209 -677}%
+\special{pa 226 -645}\special{pa 243 -610}\special{pa 261 -573}\special{pa 278 -532}%
+\special{pa 296 -489}\special{pa 313 -443}\special{pa 330 -394}\special{pa 348 -342}%
+\special{pa 365 -287}\special{pa 383 -229}\special{pa 400 -168}\special{pa 417 -105}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 14 -838}\special{pa 27 -840}\special{pa 41 -840}\special{pa 55 -836}%
+\special{pa 68 -830}\special{pa 82 -821}\special{pa 96 -809}\special{pa 109 -794}%
+\special{pa 123 -776}\special{pa 137 -755}\special{pa 151 -731}\special{pa 164 -705}%
+\special{pa 178 -675}\special{pa 192 -643}\special{pa 205 -608}\special{pa 219 -570}%
+\special{pa 233 -529}\special{pa 246 -485}\special{pa 260 -438}\special{pa 274 -388}%
+\special{pa 287 -336}\special{pa 301 -280}\special{pa 315 -222}\special{pa 328 -161}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 9 -840}\special{pa 17 -844}\special{pa 26 -845}\special{pa 35 -843}%
+\special{pa 43 -838}\special{pa 52 -831}\special{pa 61 -820}\special{pa 69 -807}\special{pa 78 -791}%
+\special{pa 86 -772}\special{pa 95 -750}\special{pa 104 -725}\special{pa 112 -697}%
+\special{pa 121 -666}\special{pa 130 -633}\special{pa 138 -596}\special{pa 147 -557}%
+\special{pa 156 -515}\special{pa 164 -470}\special{pa 173 -422}\special{pa 182 -371}%
+\special{pa 190 -317}\special{pa 199 -260}\special{pa 207 -201}%
+\special{fp}%
+\special{pa 0 -833}\special{pa 3 -840}\special{pa 6 -845}\special{pa 8 -847}\special{pa 11 -846}%
+\special{pa 14 -843}\special{pa 17 -836}\special{pa 19 -826}\special{pa 22 -814}\special{pa 25 -798}%
+\special{pa 28 -780}\special{pa 30 -759}\special{pa 33 -735}\special{pa 36 -708}\special{pa 39 -678}%
+\special{pa 41 -646}\special{pa 44 -610}\special{pa 47 -572}\special{pa 50 -530}\special{pa 52 -486}%
+\special{pa 55 -439}\special{pa 58 -389}\special{pa 61 -336}\special{pa 63 -280}\special{pa 66 -221}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -3 -840}\special{pa -7 -845}\special{pa -10 -847}\special{pa -14 -846}%
+\special{pa -17 -842}\special{pa -20 -836}\special{pa -24 -826}\special{pa -27 -813}%
+\special{pa -31 -798}\special{pa -34 -780}\special{pa -37 -759}\special{pa -41 -734}%
+\special{pa -44 -707}\special{pa -48 -678}\special{pa -51 -645}\special{pa -54 -609}%
+\special{pa -58 -571}\special{pa -61 -529}\special{pa -65 -485}\special{pa -68 -438}%
+\special{pa -71 -388}\special{pa -75 -335}\special{pa -78 -279}\special{pa -82 -220}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -9 -839}\special{pa -18 -843}\special{pa -28 -844}%
+\special{pa -37 -842}\special{pa -46 -838}\special{pa -55 -830}\special{pa -65 -819}%
+\special{pa -74 -806}\special{pa -83 -790}\special{pa -92 -770}\special{pa -101 -748}%
+\special{pa -111 -723}\special{pa -120 -695}\special{pa -129 -664}\special{pa -138 -631}%
+\special{pa -148 -594}\special{pa -157 -555}\special{pa -166 -512}\special{pa -175 -467}%
+\special{pa -185 -419}\special{pa -194 -368}\special{pa -203 -314}\special{pa -212 -257}%
+\special{pa -221 -197}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -14 -838}\special{pa -28 -840}\special{pa -42 -839}%
+\special{pa -57 -835}\special{pa -71 -829}\special{pa -85 -819}\special{pa -99 -807}%
+\special{pa -113 -792}\special{pa -127 -774}\special{pa -141 -753}\special{pa -156 -729}%
+\special{pa -170 -702}\special{pa -184 -672}\special{pa -198 -640}\special{pa -212 -604}%
+\special{pa -226 -566}\special{pa -241 -525}\special{pa -255 -481}\special{pa -269 -434}%
+\special{pa -283 -384}\special{pa -297 -331}\special{pa -311 -275}\special{pa -325 -217}%
+\special{pa -340 -155}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -18 -835}\special{pa -35 -835}\special{pa -53 -832}%
+\special{pa -71 -826}\special{pa -88 -817}\special{pa -106 -805}\special{pa -124 -790}%
+\special{pa -141 -773}\special{pa -159 -752}\special{pa -177 -729}\special{pa -195 -703}%
+\special{pa -212 -674}\special{pa -230 -641}\special{pa -248 -607}\special{pa -265 -569}%
+\special{pa -283 -528}\special{pa -301 -484}\special{pa -318 -438}\special{pa -336 -388}%
+\special{pa -354 -336}\special{pa -371 -281}\special{pa -389 -223}\special{pa -407 -162}%
+\special{pa -424 -98}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -19 -833}\special{pa -39 -829}\special{pa -58 -824}%
+\special{pa -78 -815}\special{pa -97 -803}\special{pa -117 -788}\special{pa -136 -771}%
+\special{pa -156 -751}\special{pa -175 -727}\special{pa -195 -701}\special{pa -214 -672}%
+\special{pa -234 -640}\special{pa -253 -605}\special{pa -273 -568}\special{pa -292 -527}%
+\special{pa -312 -483}\special{pa -331 -437}\special{pa -351 -388}\special{pa -370 -336}%
+\special{pa -390 -280}\special{pa -409 -223}\special{pa -429 -162}\special{pa -448 -98}%
+\special{pa -468 -31}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -19 -830}\special{pa -39 -824}\special{pa -58 -815}%
+\special{pa -78 -803}\special{pa -97 -788}\special{pa -116 -771}\special{pa -136 -751}%
+\special{pa -155 -727}\special{pa -175 -701}\special{pa -194 -672}\special{pa -213 -640}%
+\special{pa -233 -605}\special{pa -252 -567}\special{pa -271 -527}\special{pa -291 -483}%
+\special{pa -310 -437}\special{pa -330 -388}\special{pa -349 -335}\special{pa -368 -280}%
+\special{pa -388 -222}\special{pa -407 -161}\special{pa -427 -98}\special{pa -446 -31}%
+\special{pa -465 39}%
+\special{fp}%
+\special{pa 0 -833}\special{pa -17 -827}\special{pa -35 -818}\special{pa -52 -807}%
+\special{pa -70 -792}\special{pa -87 -775}\special{pa -104 -754}\special{pa -122 -731}%
+\special{pa -139 -705}\special{pa -156 -676}\special{pa -174 -644}\special{pa -191 -610}%
+\special{pa -209 -572}\special{pa -226 -532}\special{pa -243 -488}\special{pa -261 -442}%
+\special{pa -278 -393}\special{pa -296 -341}\special{pa -313 -286}\special{pa -330 -228}%
+\special{pa -348 -167}\special{pa -365 -104}\special{pa -383 -37}\special{pa -400 32}%
+\special{pa -417 105}%
+\special{fp}%
+\special{pa 3 -835}\special{pa -3 -835}\special{pa -3 -830}\special{pa 3 -830}\special{pa 3 -835}%
+\special{sh 1}\special{fp}%
+\special{pa -21 -825}\special{pa -17 -823}\special{pa -13 -821}\special{pa -7 -820}%
+\special{pa -1 -819}\special{pa 5 -820}\special{pa 11 -821}\special{pa 16 -822}\special{pa 20 -825}%
+\special{pa 23 -827}\special{pa 24 -830}\special{pa 23 -833}\special{pa 21 -836}\special{pa 17 -838}%
+\special{pa 13 -840}\special{pa 7 -841}\special{pa 1 -842}\special{pa -5 -841}\special{pa -11 -840}%
+\special{pa -16 -839}\special{pa -20 -836}\special{pa -23 -834}\special{pa -24 -831}%
+\special{pa -23 -828}\special{pa -21 -825}%
+\special{fp}%
+\special{pa -42 -814}\special{pa -35 -809}\special{pa -25 -805}\special{pa -14 -803}%
+\special{pa -2 -802}\special{pa 11 -803}\special{pa 22 -805}\special{pa 32 -808}\special{pa 40 -812}%
+\special{pa 45 -818}\special{pa 47 -824}\special{pa 46 -829}\special{pa 42 -835}\special{pa 35 -840}%
+\special{pa 25 -843}\special{pa 14 -846}\special{pa 2 -847}\special{pa -11 -846}\special{pa -22 -844}%
+\special{pa -32 -841}\special{pa -40 -836}\special{pa -45 -831}\special{pa -47 -825}%
+\special{pa -46 -819}\special{pa -42 -814}%
+\special{fp}%
+\special{pa -63 -798}\special{pa -52 -791}\special{pa -38 -786}\special{pa -21 -782}%
+\special{pa -3 -780}\special{pa 16 -781}\special{pa 33 -784}\special{pa 48 -789}\special{pa 60 -796}%
+\special{pa 68 -804}\special{pa 71 -813}\special{pa 69 -821}\special{pa 63 -830}\special{pa 52 -837}%
+\special{pa 38 -842}\special{pa 21 -846}\special{pa 3 -847}\special{pa -16 -847}\special{pa -33 -844}%
+\special{pa -48 -838}\special{pa -60 -832}\special{pa -68 -824}\special{pa -71 -815}%
+\special{pa -69 -806}\special{pa -63 -798}%
+\special{fp}%
+\special{pa -83 -778}\special{pa -69 -769}\special{pa -50 -761}\special{pa -28 -757}%
+\special{pa -3 -755}\special{pa 21 -756}\special{pa 44 -760}\special{pa 64 -767}\special{pa 80 -776}%
+\special{pa 90 -786}\special{pa 94 -798}\special{pa 92 -809}\special{pa 83 -820}\special{pa 69 -830}%
+\special{pa 50 -837}\special{pa 28 -842}\special{pa 3 -844}\special{pa -21 -843}\special{pa -44 -839}%
+\special{pa -64 -832}\special{pa -80 -823}\special{pa -90 -812}\special{pa -94 -801}%
+\special{pa -92 -789}\special{pa -83 -778}%
+\special{fp}%
+\special{pa -104 -754}\special{pa -86 -743}\special{pa -63 -733}\special{pa -35 -727}%
+\special{pa -4 -725}\special{pa 26 -726}\special{pa 55 -731}\special{pa 80 -740}\special{pa 100 -751}%
+\special{pa 113 -764}\special{pa 118 -779}\special{pa 115 -793}\special{pa 104 -807}%
+\special{pa 86 -819}\special{pa 63 -828}\special{pa 35 -834}\special{pa 4 -836}\special{pa -26 -835}%
+\special{pa -55 -830}\special{pa -80 -821}\special{pa -100 -810}\special{pa -113 -797}%
+\special{pa -118 -783}\special{pa -115 -768}\special{pa -104 -754}%
+\special{fp}%
+\special{pa -125 -726}\special{pa -104 -712}\special{pa -75 -701}\special{pa -42 -694}%
+\special{pa -5 -691}\special{pa 32 -692}\special{pa 66 -699}\special{pa 97 -709}\special{pa 120 -722}%
+\special{pa 136 -738}\special{pa 142 -755}\special{pa 138 -773}\special{pa 125 -789}%
+\special{pa 104 -803}\special{pa 75 -815}\special{pa 42 -822}\special{pa 5 -825}\special{pa -32 -823}%
+\special{pa -66 -817}\special{pa -97 -807}\special{pa -120 -793}\special{pa -136 -777}%
+\special{pa -142 -760}\special{pa -138 -743}\special{pa -125 -726}%
+\special{fp}%
+\special{pa -146 -694}\special{pa -121 -677}\special{pa -88 -664}\special{pa -48 -656}%
+\special{pa -6 -653}\special{pa 37 -654}\special{pa 78 -662}\special{pa 113 -673}%
+\special{pa 140 -689}\special{pa 158 -708}\special{pa 165 -728}\special{pa 161 -748}%
+\special{pa 146 -767}\special{pa 121 -784}\special{pa 88 -797}\special{pa 48 -805}%
+\special{pa 6 -809}\special{pa -37 -807}\special{pa -78 -800}\special{pa -113 -788}%
+\special{pa -140 -772}\special{pa -158 -754}\special{pa -165 -733}\special{pa -161 -713}%
+\special{pa -146 -694}%
+\special{fp}%
+\special{pa -167 -658}\special{pa -138 -639}\special{pa -100 -624}\special{pa -55 -614}%
+\special{pa -7 -610}\special{pa 42 -612}\special{pa 89 -621}\special{pa 129 -634}%
+\special{pa 160 -652}\special{pa 181 -673}\special{pa 189 -696}\special{pa 184 -719}%
+\special{pa 167 -741}\special{pa 138 -760}\special{pa 100 -775}\special{pa 55 -785}%
+\special{pa 7 -789}\special{pa -42 -786}\special{pa -89 -778}\special{pa -129 -765}%
+\special{pa -160 -747}\special{pa -181 -726}\special{pa -189 -703}\special{pa -184 -679}%
+\special{pa -167 -658}%
+\special{fp}%
+\special{pa -188 -617}\special{pa -156 -596}\special{pa -113 -579}\special{pa -62 -568}%
+\special{pa -8 -564}\special{pa 48 -566}\special{pa 100 -575}\special{pa 145 -590}%
+\special{pa 180 -611}\special{pa 203 -635}\special{pa 212 -660}\special{pa 207 -687}%
+\special{pa 188 -711}\special{pa 156 -733}\special{pa 113 -749}\special{pa 62 -760}%
+\special{pa 8 -764}\special{pa -48 -762}\special{pa -100 -753}\special{pa -145 -738}%
+\special{pa -180 -717}\special{pa -203 -694}\special{pa -212 -668}\special{pa -207 -642}%
+\special{pa -188 -617}%
+\special{fp}%
+\special{pa -209 -572}\special{pa -173 -548}\special{pa -125 -530}\special{pa -69 -518}%
+\special{pa -8 -513}\special{pa 53 -516}\special{pa 111 -526}\special{pa 161 -543}%
+\special{pa 200 -565}\special{pa 226 -592}\special{pa 236 -620}\special{pa 230 -650}%
+\special{pa 209 -677}\special{pa 173 -701}\special{pa 125 -719}\special{pa 69 -731}%
+\special{pa 8 -736}\special{pa -53 -733}\special{pa -111 -723}\special{pa -161 -706}%
+\special{pa -200 -684}\special{pa -226 -657}\special{pa -236 -628}\special{pa -230 -599}%
+\special{pa -209 -572}%
+\special{fp}%
+\special{pa -230 -523}\special{pa -190 -497}\special{pa -138 -477}\special{pa -76 -463}%
+\special{pa -9 -458}\special{pa 58 -461}\special{pa 122 -472}\special{pa 177 -491}%
+\special{pa 220 -516}\special{pa 248 -545}\special{pa 260 -576}\special{pa 253 -608}%
+\special{pa 230 -638}\special{pa 190 -664}\special{pa 138 -685}\special{pa 76 -698}%
+\special{pa 9 -704}\special{pa -58 -700}\special{pa -122 -689}\special{pa -177 -671}%
+\special{pa -220 -646}\special{pa -248 -617}\special{pa -260 -585}\special{pa -253 -553}%
+\special{pa -230 -523}%
+\special{fp}%
+\special{pa -250 -470}\special{pa -207 -442}\special{pa -150 -419}\special{pa -83 -405}%
+\special{pa -10 -399}\special{pa 64 -402}\special{pa 133 -415}\special{pa 193 -435}%
+\special{pa 240 -462}\special{pa 271 -494}\special{pa 283 -528}\special{pa 276 -563}%
+\special{pa 250 -596}\special{pa 207 -624}\special{pa 150 -646}\special{pa 83 -661}%
+\special{pa 10 -667}\special{pa -64 -663}\special{pa -133 -651}\special{pa -193 -631}%
+\special{pa -240 -604}\special{pa -271 -572}\special{pa -283 -538}\special{pa -276 -503}%
+\special{pa -250 -470}%
+\special{fp}%
+\special{pa -271 -413}\special{pa -225 -382}\special{pa -163 -358}\special{pa -90 -342}%
+\special{pa -11 -336}\special{pa 69 -339}\special{pa 144 -353}\special{pa 209 -375}%
+\special{pa 260 -404}\special{pa 294 -438}\special{pa 307 -476}\special{pa 299 -513}%
+\special{pa 271 -549}\special{pa 225 -580}\special{pa 163 -604}\special{pa 90 -620}%
+\special{pa 11 -626}\special{pa -69 -622}\special{pa -144 -609}\special{pa -209 -587}%
+\special{pa -260 -558}\special{pa -294 -523}\special{pa -307 -486}\special{pa -299 -448}%
+\special{pa -271 -413}%
+\special{fp}%
+\special{pa -292 -351}\special{pa -242 -318}\special{pa -175 -292}\special{pa -97 -275}%
+\special{pa -12 -268}\special{pa 74 -272}\special{pa 155 -287}\special{pa 225 -310}%
+\special{pa 280 -342}\special{pa 316 -379}\special{pa 330 -419}\special{pa 322 -460}%
+\special{pa 292 -498}\special{pa 242 -531}\special{pa 175 -557}\special{pa 97 -574}%
+\special{pa 12 -581}\special{pa -74 -577}\special{pa -155 -563}\special{pa -225 -539}%
+\special{pa -280 -508}\special{pa -316 -470}\special{pa -330 -430}\special{pa -322 -390}%
+\special{pa -292 -351}%
+\special{fp}%
+\special{pa -313 -286}\special{pa -259 -250}\special{pa -188 -222}\special{pa -104 -204}%
+\special{pa -13 -197}\special{pa 79 -201}\special{pa 166 -216}\special{pa 241 -242}%
+\special{pa 300 -275}\special{pa 339 -315}\special{pa 354 -358}\special{pa 345 -402}%
+\special{pa 313 -443}\special{pa 259 -478}\special{pa 188 -506}\special{pa 104 -524}%
+\special{pa 13 -532}\special{pa -79 -528}\special{pa -166 -512}\special{pa -241 -487}%
+\special{pa -300 -453}\special{pa -339 -413}\special{pa -354 -370}\special{pa -345 -327}%
+\special{pa -313 -286}%
+\special{fp}%
+\special{pa -334 -216}\special{pa -277 -178}\special{pa -201 -148}\special{pa -111 -129}%
+\special{pa -14 -121}\special{pa 85 -126}\special{pa 177 -142}\special{pa 258 -169}%
+\special{pa 320 -205}\special{pa 361 -247}\special{pa 378 -293}\special{pa 368 -340}%
+\special{pa 334 -383}\special{pa 277 -421}\special{pa 201 -451}\special{pa 111 -471}%
+\special{pa 14 -478}\special{pa -85 -474}\special{pa -177 -458}\special{pa -258 -431}%
+\special{pa -320 -395}\special{pa -361 -352}\special{pa -378 -306}\special{pa -368 -260}%
+\special{pa -334 -216}%
+\special{fp}%
+\special{pa -355 -142}\special{pa -294 -102}\special{pa -213 -70}\special{pa -118 -50}%
+\special{pa -14 -41}\special{pa 90 -46}\special{pa 188 -63}\special{pa 274 -92}\special{pa 340 -130}%
+\special{pa 384 -175}\special{pa 401 -224}\special{pa 391 -274}\special{pa 355 -320}%
+\special{pa 294 -360}\special{pa 213 -392}\special{pa 118 -413}\special{pa 14 -421}%
+\special{pa -90 -416}\special{pa -188 -399}\special{pa -274 -370}\special{pa -340 -332}%
+\special{pa -384 -287}\special{pa -401 -238}\special{pa -391 -189}\special{pa -355 -142}%
+\special{fp}%
+\special{pa -376 -64}\special{pa -311 -21}\special{pa -226 12}\special{pa -125 34}%
+\special{pa -15 43}\special{pa 95 38}\special{pa 199 19}\special{pa 290 -11}\special{pa 360 -52}%
+\special{pa 407 -99}\special{pa 425 -151}\special{pa 414 -203}\special{pa 376 -252}%
+\special{pa 311 -295}\special{pa 226 -329}\special{pa 125 -350}\special{pa 15 -359}%
+\special{pa -95 -354}\special{pa -199 -336}\special{pa -290 -305}\special{pa -360 -265}%
+\special{pa -407 -217}\special{pa -425 -165}\special{pa -414 -113}\special{pa -376 -64}%
+\special{fp}%
+\special{pa -396 18}\special{pa -329 63}\special{pa -238 99}\special{pa -132 122}%
+\special{pa -16 131}\special{pa 101 126}\special{pa 210 106}\special{pa 306 74}\special{pa 380 31}%
+\special{pa 429 -19}\special{pa 449 -74}\special{pa 437 -129}\special{pa 396 -181}%
+\special{pa 329 -226}\special{pa 238 -261}\special{pa 132 -284}\special{pa 16 -293}%
+\special{pa -101 -288}\special{pa -210 -269}\special{pa -306 -236}\special{pa -380 -194}%
+\special{pa -429 -143}\special{pa -449 -89}\special{pa -437 -34}\special{pa -396 18}%
+\special{fp}%
+\special{pa -417 105}\special{pa -346 152}\special{pa -251 189}\special{pa -139 214}%
+\special{pa -17 223}\special{pa 106 218}\special{pa 221 197}\special{pa 322 163}\special{pa 400 119}%
+\special{pa 452 65}\special{pa 472 8}\special{pa 460 -50}\special{pa 417 -105}\special{pa 346 -152}%
+\special{pa 251 -189}\special{pa 139 -214}\special{pa 17 -223}\special{pa -106 -218}%
+\special{pa -221 -197}\special{pa -322 -163}\special{pa -400 -119}\special{pa -452 -65}%
+\special{pa -472 -8}\special{pa -460 50}\special{pa -417 105}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex
new file mode 100644
index 00000000..fcff4da5
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d1.tex
@@ -0,0 +1,78 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 15:44
+%%% template.sce 2016-8-11 15:44
+{\unitlength=8mm%
+\begin{picture}%
+( 8.39000, 6.29000)( -4.00000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.3919,-1.2682){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.0140,-1.0567){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.9880){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1012 -378}\special{pa -1012 378}%
+\special{fp}%
+\special{pa -1206 -318}\special{pa 1206 318}%
+\special{fp}%
+\special{pa 0 630}\special{pa 0 -1196}%
+\special{fp}%
+\special{pa -405 151}\special{pa -341 159}\special{pa -271 163}\special{pa -197 165}%
+\special{pa -119 164}\special{pa -40 159}\special{pa 40 152}\special{pa 119 141}\special{pa 197 127}%
+\special{pa 271 110}\special{pa 341 90}\special{pa 405 68}\special{pa 463 43}\special{pa 513 16}%
+\special{pa 555 -13}\special{pa 588 -43}\special{pa 612 -75}\special{pa 626 -107}%
+\special{pa 630 -140}\special{pa 624 -172}\special{pa 607 -205}\special{pa 581 -236}%
+\special{pa 546 -266}\special{pa 501 -294}\special{pa 449 -321}\special{pa 389 -345}%
+\special{pa 324 -367}\special{pa 253 -386}\special{pa 177 -402}\special{pa 100 -415}%
+\special{pa 20 -425}\special{pa -60 -432}\special{pa -139 -436}\special{pa -215 -436}%
+\special{pa -289 -434}\special{pa -357 -429}\special{pa -420 -421}\special{pa -476 -410}%
+\special{pa -524 -398}\special{pa -564 -384}\special{pa -595 -368}\special{pa -617 -352}%
+\special{pa -628 -335}\special{pa -629 -317}\special{pa -620 -300}\special{pa -602 -283}%
+\special{pa -573 -267}\special{pa -535 -253}\special{pa -489 -240}\special{pa -435 -229}%
+\special{pa -373 -220}\special{pa -306 -214}\special{pa -234 -211}\special{pa -158 -211}%
+\special{pa -80 -214}\special{pa 0 -220}\special{pa 80 -229}\special{pa 158 -241}%
+\special{pa 234 -257}\special{pa 306 -275}\special{pa 373 -296}\special{pa 435 -320}%
+\special{pa 489 -346}\special{pa 535 -374}\special{pa 573 -404}\special{pa 602 -435}%
+\special{pa 620 -467}\special{pa 629 -499}\special{pa 628 -532}\special{pa 617 -564}%
+\special{pa 595 -596}\special{pa 564 -627}\special{pa 524 -656}\special{pa 476 -684}%
+\special{pa 420 -709}\special{pa 357 -732}\special{pa 289 -753}\special{pa 215 -770}%
+\special{pa 139 -785}\special{pa 60 -797}\special{pa -20 -805}\special{pa -100 -810}%
+\special{pa -177 -812}\special{pa -253 -811}\special{pa -324 -807}\special{pa -389 -801}%
+\special{pa -449 -792}\special{pa -501 -780}\special{pa -546 -767}\special{pa -581 -752}%
+\special{pa -607 -736}\special{pa -624 -719}\special{pa -630 -702}\special{pa -626 -684}%
+\special{pa -612 -667}\special{pa -588 -651}\special{pa -555 -636}\special{pa -513 -622}%
+\special{pa -463 -610}\special{pa -405 -600}%
+\special{fp}%
+\special{pn 24}%
+\special{pa -265 -436}\special{pa -333 -431}\special{pa -398 -422}\special{pa -456 -415}%
+\special{pa -509 -404}\special{pa -548 -390}\special{pa -584 -376}\special{pa -609 -359}%
+\special{pa -624 -343}\special{pa -629 -325}\special{pa -626 -308}\special{pa -613 -290}%
+\special{pa -586 -275}\special{pa -555 -259}\special{pa -513 -247}\special{pa -461 -234}%
+\special{pa -405 -225}\special{pa -341 -217}\special{pa -272 -213}\special{pa -198 -210}%
+\special{pa -123 -213}\special{pa -43 -215}\special{pa 35 -224}\special{pa 114 -234}%
+\special{pa 191 -248}\special{pa 265 -263}\special{pa 333 -284}\special{pa 398 -305}%
+\special{pa 456 -330}\special{pa 509 -355}\special{pa 548 -385}\special{pa 584 -414}%
+\special{pa 609 -446}\special{pa 624 -476}\special{pa 629 -510}\special{pa 626 -541}%
+\special{pa 613 -574}\special{pa 586 -604}\special{pa 572 -621}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{C}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
+\put(-0.8436,1.5307){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(1.8112,2.1196){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex
new file mode 100644
index 00000000..43f90bb4
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/partcrv3d2.tex
@@ -0,0 +1,129 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-20 11:2
+%%% template.sce 2016-8-20 11:2
+{\unitlength=8mm%
+\begin{picture}%
+( 7.89000, 5.95000)( -3.99000, -1.66000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7443,-1.2386){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.2452,-1.0313){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.8920){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1012 -457}\special{pa -810 366}%
+\special{fp}%
+\special{pa -1257 -399}\special{pa 965 307}%
+\special{fp}%
+\special{pa 0 523}\special{pa 0 -1166}%
+\special{fp}%
+\special{pa -752 313}\special{pa -810 366}\special{pa -732 357}\special{pa -742 335}%
+\special{pa -752 313}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -752 313}\special{pa -810 366}\special{pa -732 357}\special{pa -742 335}%
+\special{pa -752 313}\special{pa -810 366}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 886 307}\special{pa 965 307}\special{pa 901 261}\special{pa 894 284}\special{pa 886 307}%
+\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 886 307}\special{pa 965 307}\special{pa 901 261}\special{pa 894 284}\special{pa 886 307}%
+\special{pa 965 307}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1091}\special{pa 0 -1166}\special{pa -24 -1091}\special{pa 0 -1091}%
+\special{pa 24 -1091}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1091}\special{pa 0 -1166}\special{pa -24 -1091}\special{pa 0 -1091}%
+\special{pa 24 -1091}\special{pa 0 -1166}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
+\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pn 8}%
+\special{pa -409 183}\special{pa -401 182}\special{fp}\special{pa -370 180}\special{pa -362 180}\special{fp}%
+\special{pa -330 177}\special{pa -322 177}\special{fp}\special{pa -291 174}\special{pa -283 174}\special{fp}%
+\special{pa -252 172}\special{pa -244 171}\special{fp}\special{pa -213 169}\special{pa -205 168}\special{fp}%
+\special{pa -173 166}\special{pa -165 165}\special{fp}\special{pa -134 163}\special{pa -126 162}\special{fp}%
+\special{pa -95 160}\special{pa -87 160}\special{fp}\special{pa -56 157}\special{pa -48 157}\special{fp}%
+\special{pa -16 155}\special{pa -8 154}\special{fp}\special{pa 23 152}\special{pa 31 151}\special{fp}%
+\special{pa 62 149}\special{pa 70 148}\special{fp}\special{pa 101 146}\special{pa 109 145}\special{fp}%
+\special{pa 141 143}\special{pa 149 143}\special{fp}\special{pa 180 140}\special{pa 188 140}\special{fp}%
+\special{pa 219 137}\special{pa 227 137}\special{fp}\special{pa 258 135}\special{pa 266 134}\special{fp}%
+\special{pa 298 132}\special{pa 306 131}\special{fp}\special{pa 335 126}\special{pa 342 122}\special{fp}%
+\special{pa 361 96}\special{pa 366 90}\special{fp}\special{pa 386 66}\special{pa 391 60}\special{fp}%
+\special{pa 411 36}\special{pa 416 30}\special{fp}\special{pa 436 6}\special{pa 442 0}\special{fp}%
+\special{pa 462 -25}\special{pa 467 -31}\special{fp}\special{pa 487 -55}\special{pa 492 -61}\special{fp}%
+\special{pa 512 -85}\special{pa 517 -91}\special{fp}\special{pa 537 -115}\special{pa 542 -121}\special{fp}%
+\special{pa 562 -146}\special{pa 567 -152}\special{fp}\special{pa 588 -176}\special{pa 592 -182}\special{fp}%
+\special{pa 607 -203}\special{pa 604 -211}\special{fp}\special{pa 573 -221}\special{pa 566 -225}\special{fp}%
+\special{pa 537 -237}\special{pa 530 -241}\special{fp}\special{pa 501 -253}\special{pa 494 -257}\special{fp}%
+\special{pa 465 -269}\special{pa 458 -273}\special{fp}\special{pa 429 -285}\special{pa 422 -289}\special{fp}%
+\special{pa 393 -302}\special{pa 386 -305}\special{fp}\special{pa 358 -318}\special{pa 350 -321}\special{fp}%
+\special{pa 322 -334}\special{pa 314 -337}\special{fp}\special{pa 286 -350}\special{pa 278 -353}\special{fp}%
+\special{pa 250 -366}\special{pa 242 -369}\special{fp}\special{pa 214 -382}\special{pa 207 -385}\special{fp}%
+\special{pa 178 -398}\special{pa 171 -401}\special{fp}\special{pa 142 -414}\special{pa 135 -417}\special{fp}%
+\special{pa 106 -430}\special{pa 99 -433}\special{fp}\special{pa 70 -446}\special{pa 63 -449}\special{fp}%
+\special{pa 33 -456}\special{pa 25 -456}\special{fp}\special{pa -6 -452}\special{pa -14 -451}\special{fp}%
+\special{pa -45 -447}\special{pa -53 -446}\special{fp}\special{pa -84 -442}\special{pa -92 -441}\special{fp}%
+\special{pa -123 -438}\special{pa -131 -437}\special{fp}\special{pa -162 -433}\special{pa -170 -432}\special{fp}%
+\special{pa -201 -428}\special{pa -209 -427}\special{fp}\special{pa -240 -424}\special{pa -248 -423}\special{fp}%
+\special{pa -279 -419}\special{pa -287 -418}\special{fp}\special{pa -318 -414}\special{pa -326 -413}\special{fp}%
+\special{pa -357 -410}\special{pa -365 -409}\special{fp}\special{pa -396 -405}\special{pa -404 -404}\special{fp}%
+\special{pa -436 -400}\special{pa -443 -399}\special{fp}\special{pa -475 -396}\special{pa -483 -395}\special{fp}%
+\special{pa -514 -391}\special{pa -522 -390}\special{fp}\special{pa -553 -387}\special{pa -561 -384}\special{fp}%
+\special{pa -576 -378}\special{pa -577 -370}\special{fp}\special{pa -552 -347}\special{pa -547 -341}\special{fp}%
+\special{pa -526 -318}\special{pa -521 -312}\special{fp}\special{pa -500 -289}\special{pa -494 -283}\special{fp}%
+\special{pa -473 -260}\special{pa -468 -254}\special{fp}\special{pa -447 -230}\special{pa -442 -224}\special{fp}%
+\special{pa -421 -200}\special{pa -415 -196}\special{fp}\special{pa -389 -186}\special{pa -381 -184}\special{fp}%
+\special{pa -350 -188}\special{pa -342 -188}\special{fp}\special{pa -311 -190}\special{pa -303 -191}\special{fp}%
+\special{pa -272 -193}\special{pa -264 -194}\special{fp}\special{pa -232 -196}\special{pa -224 -197}\special{fp}%
+\special{pa -193 -199}\special{pa -185 -200}\special{fp}\special{pa -154 -202}\special{pa -146 -202}\special{fp}%
+\special{pa -115 -205}\special{pa -107 -205}\special{fp}\special{pa -75 -208}\special{pa -67 -208}\special{fp}%
+\special{pa -36 -210}\special{pa -28 -211}\special{fp}\special{pa 3 -213}\special{pa 11 -214}\special{fp}%
+\special{pa 42 -216}\special{pa 50 -217}\special{fp}\special{pa 82 -219}\special{pa 90 -220}\special{fp}%
+\special{pa 121 -222}\special{pa 129 -222}\special{fp}\special{pa 160 -225}\special{pa 168 -225}\special{fp}%
+\special{pa 199 -227}\special{pa 207 -228}\special{fp}\special{pa 239 -230}\special{pa 247 -231}\special{fp}%
+\special{pa 278 -233}\special{pa 286 -234}\special{fp}\special{pa 317 -235}\special{pa 325 -238}\special{fp}%
+\special{pa 348 -255}\special{pa 354 -261}\special{fp}\special{pa 374 -285}\special{pa 379 -291}\special{fp}%
+\special{pa 399 -315}\special{pa 404 -321}\special{fp}\special{pa 424 -345}\special{pa 429 -352}\special{fp}%
+\special{pa 449 -376}\special{pa 454 -382}\special{fp}\special{pa 474 -406}\special{pa 479 -412}\special{fp}%
+\special{pa 499 -436}\special{pa 505 -442}\special{fp}\special{pa 525 -466}\special{pa 530 -473}\special{fp}%
+\special{pa 550 -497}\special{pa 555 -503}\special{fp}\special{pa 575 -527}\special{pa 580 -533}\special{fp}%
+\special{pa 603 -556}\special{pa 603 -564}\special{fp}\special{pa 591 -579}\special{pa 584 -584}\special{fp}%
+\special{pa 555 -596}\special{pa 548 -599}\special{fp}\special{pa 519 -612}\special{pa 512 -615}\special{fp}%
+\special{pa 483 -628}\special{pa 476 -631}\special{fp}\special{pa 447 -644}\special{pa 440 -647}\special{fp}%
+\special{pa 411 -660}\special{pa 404 -663}\special{fp}\special{pa 376 -676}\special{pa 368 -679}\special{fp}%
+\special{pa 340 -692}\special{pa 332 -695}\special{fp}\special{pa 304 -708}\special{pa 296 -711}\special{fp}%
+\special{pa 268 -724}\special{pa 260 -727}\special{fp}\special{pa 232 -740}\special{pa 225 -743}\special{fp}%
+\special{pa 196 -756}\special{pa 189 -759}\special{fp}\special{pa 160 -772}\special{pa 153 -775}\special{fp}%
+\special{pa 124 -788}\special{pa 117 -792}\special{fp}\special{pa 88 -804}\special{pa 81 -808}\special{fp}%
+\special{pa 52 -821}\special{pa 45 -823}\special{fp}\special{pa 14 -820}\special{pa 6 -820}\special{fp}%
+\special{pa -25 -816}\special{pa -33 -815}\special{fp}\special{pa -64 -811}\special{pa -72 -810}\special{fp}%
+\special{pa -103 -806}\special{pa -111 -805}\special{fp}\special{pa -142 -802}\special{pa -150 -801}\special{fp}%
+\special{pa -182 -797}\special{pa -190 -796}\special{fp}\special{pa -221 -792}\special{pa -229 -791}\special{fp}%
+\special{pa -260 -788}\special{pa -268 -787}\special{fp}\special{pa -299 -783}\special{pa -307 -782}\special{fp}%
+\special{pa -338 -778}\special{pa -346 -777}\special{fp}\special{pa -377 -774}\special{pa -385 -773}\special{fp}%
+\special{pa -416 -769}\special{pa -424 -768}\special{fp}\special{pa -455 -764}\special{pa -463 -763}\special{fp}%
+\special{pa -494 -760}\special{pa -502 -759}\special{fp}\special{pa -533 -755}\special{pa -541 -754}\special{fp}%
+\special{pa -574 -753}\special{pa -578 -746}\special{fp}\special{pa -565 -729}\special{pa -561 -722}\special{fp}%
+\special{pa -539 -699}\special{pa -534 -693}\special{fp}\special{pa -513 -670}\special{pa -508 -664}\special{fp}%
+\special{pa -487 -641}\special{pa -481 -635}\special{fp}\special{pa -460 -611}\special{pa -455 -605}\special{fp}%
+\special{pa -434 -582}\special{pa -429 -576}\special{fp}\special{pa -408 -553}\special{pa -402 -547}\special{fp}%
+\special{pn 8}%
+\special{pa 441 -281}\special{pa 43 -457}\special{pa -584 -383}\special{pa -405 -185}%
+\special{pa 333 -238}\special{pa 613 -571}\special{pa 328 -696}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex
new file mode 100644
index 00000000..9ec431c8
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perpplane.tex
@@ -0,0 +1,69 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-8 16:15
+%%% template.sce 2016-8-8 16:15
+{\unitlength=6mm%
+\begin{picture}%
+( 10.06000, 7.68000)( -5.06000, -2.68000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.9153,-0.6687){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(1.7543,-2.0089){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.7841){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\settowidth{\Width}{P}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{P}\settodepth{\Depth}{P}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-0.6695,0.4170){\hspace*{\Width}\raisebox{\Height}{P}}%
+%
+%
+\settowidth{\Width}{A}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
+\put(1.7342,2.0313){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.7225,-1.8389){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}%
+\put(-2.9733,-1.1973){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(-1.9616,2.7230){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\special{pa 1117 -152}\special{pa 304 -41}%
+\special{fp}%
+\special{pa 265 -36}\special{pa -622 85}%
+\special{fp}%
+\special{pa -661 90}\special{pa -1117 152}%
+\special{fp}%
+\special{pa -385 -441}\special{pa 196 225}%
+\special{fp}%
+\special{pa 224 257}\special{pa 385 441}%
+\special{fp}%
+\special{pa 0 633}\special{pa 0 422}%
+\special{fp}%
+\special{pa 0 384}\special{pa 0 -525}%
+\special{fp}%
+\special{pa 0 -562}\special{pa 0 -1085}%
+\special{fp}%
+\special{pa -146 -99}\special{pa 0 0}%
+\special{fp}%
+\special{pa 398 -467}\special{pa 159 434}\special{pa -691 270}\special{pa -452 -631}%
+\special{pa 398 -467}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex
new file mode 100644
index 00000000..e03004d7
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/perppt.tex
@@ -0,0 +1,58 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 21:22
+%%% template.sce 2016-8-11 21:22
+{\unitlength=8mm%
+\begin{picture}%
+( 8.04000, 6.29000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.9908,-1.0008){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.8460,-0.3726){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.1119){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 574 -288}\special{pa -574 288}%
+\special{fp}%
+\special{pa -945 -73}\special{pa 1467 113}%
+\special{fp}%
+\special{pa 0 630}\special{pa 0 -1235}%
+\special{fp}%
+\special{pa -344 173}\special{pa 880 68}\special{pa 0 -926}\special{pa -344 173}%
+\special{fp}%
+\special{pa 0 0}\special{pa 179 -229}%
+\special{fp}%
+\settowidth{\Width}{A}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
+\put(-1.1426,-0.4993){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{\Depth}%
+\put(2.8439,-0.1648){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
+\put(0.0500,2.9915){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{\Depth}%
+\put(-0.0500,0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\settowidth{\Width}{H}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{H}\settodepth{\Depth}{H}\setlength{\Height}{\Depth}%
+\put(0.6171,0.7758){\hspace*{\Width}\raisebox{\Height}{H}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png
new file mode 100644
index 00000000..9e3c0696
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata01.png
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex
new file mode 100644
index 00000000..050bcbd6
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata02.tex
@@ -0,0 +1,118 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 22:26
+%%% template.sce 2016-8-11 22:26
+{\unitlength=6mm%
+\begin{picture}%
+( 7.60000, 7.37000)( -3.60000, -3.37000)%
+\special{pn 8}%
+%
+\special{pa -98 -684}\special{pa -242 -660}%
+\special{fp}%
+\special{pa -242 -660}\special{pa -52 -640}%
+\special{fp}%
+\special{pa -52 -640}\special{pa 210 -651}%
+\special{fp}%
+\special{pa 210 -651}\special{pa 182 -678}%
+\special{fp}%
+\special{pa 182 -678}\special{pa -98 -684}%
+\special{fp}%
+\special{pa 182 -678}\special{pa 363 -543}%
+\special{fp}%
+\special{pa -582 -380}\special{pa -484 -508}%
+\special{fp}%
+\special{pa -484 -508}\special{pa -242 -660}%
+\special{fp}%
+\special{pa -662 100}\special{pa -694 -128}%
+\special{fp}%
+\special{pa -694 -128}\special{pa -582 -380}%
+\special{fp}%
+\special{pa -694 -128}\special{pa -666 -101}%
+\special{fp}%
+\special{pa -666 -101}\special{pa -536 -336}%
+\special{fp}%
+\special{pa -536 -336}\special{pa -484 -508}%
+\special{fp}%
+\special{pa -536 -336}\special{pa -346 -316}%
+\special{fp}%
+\special{pa -346 -316}\special{pa -104 -468}%
+\special{fp}%
+\special{pa -104 -468}\special{pa -52 -640}%
+\special{fp}%
+\special{pa 210 -651}\special{pa 420 -490}%
+\special{fp}%
+\special{pa 420 -490}\special{pa 602 -355}%
+\special{fp}%
+\special{pa 602 -355}\special{pa 573 -382}%
+\special{fp}%
+\special{pa 573 -382}\special{pa 363 -543}%
+\special{fp}%
+\special{pa -602 355}\special{pa -662 100}%
+\special{fp}%
+\special{pa -602 355}\special{pa -573 382}%
+\special{fp}%
+\special{pa -573 382}\special{pa -605 154}%
+\special{fp}%
+\special{pa -605 154}\special{pa -666 -101}%
+\special{fp}%
+\special{pa -605 154}\special{pa -415 174}%
+\special{fp}%
+\special{pa -415 174}\special{pa -285 -61}%
+\special{fp}%
+\special{pa -285 -61}\special{pa -346 -316}%
+\special{fp}%
+\special{pa -285 -61}\special{pa -6 -56}%
+\special{fp}%
+\special{pa -6 -56}\special{pa 106 -307}%
+\special{fp}%
+\special{pa 106 -307}\special{pa -104 -468}%
+\special{fp}%
+\special{pa 106 -307}\special{pa 368 -318}%
+\special{fp}%
+\special{pa 368 -318}\special{pa 420 -490}%
+\special{fp}%
+\special{pa 602 -355}\special{pa 662 -100}%
+\special{fp}%
+\special{pa 662 -100}\special{pa 694 128}%
+\special{fp}%
+\special{pa -182 678}\special{pa -363 543}%
+\special{fp}%
+\special{pa -363 543}\special{pa -573 382}%
+\special{fp}%
+\special{pa -363 543}\special{pa -265 415}%
+\special{fp}%
+\special{pa -265 415}\special{pa -415 174}%
+\special{fp}%
+\special{pa -265 415}\special{pa 14 420}%
+\special{fp}%
+\special{pa 14 420}\special{pa 144 185}%
+\special{fp}%
+\special{pa 144 185}\special{pa -6 -56}%
+\special{fp}%
+\special{pa 144 185}\special{pa 406 174}%
+\special{fp}%
+\special{pa 406 174}\special{pa 518 -77}%
+\special{fp}%
+\special{pa 518 -77}\special{pa 368 -318}%
+\special{fp}%
+\special{pa 518 -77}\special{pa 662 -100}%
+\special{fp}%
+\special{pa 694 128}\special{pa 582 380}%
+\special{fp}%
+\special{pa 582 380}\special{pa 484 508}%
+\special{fp}%
+\special{pa 484 508}\special{pa 242 660}%
+\special{fp}%
+\special{pa 242 660}\special{pa 98 684}%
+\special{fp}%
+\special{pa 98 684}\special{pa -182 678}%
+\special{fp}%
+\special{pa 98 684}\special{pa 196 555}%
+\special{fp}%
+\special{pa 196 555}\special{pa 14 420}%
+\special{fp}%
+\special{pa 196 555}\special{pa 438 403}%
+\special{fp}%
+\special{pa 438 403}\special{pa 406 174}%
+\special{fp}%
+\special{pa 438 403}\special{pa 582 380}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex
new file mode 100644
index 00000000..2b5d91ad
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/phparadata03.tex
@@ -0,0 +1,272 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-11 22:33
+%%% template.sce 2016-8-11 22:33
+{\unitlength=6mm%
+\begin{picture}%
+( 7.60000, 7.37000)( -3.60000, -3.37000)%
+\special{pn 8}%
+%
+\special{pn 16}%
+\special{pa -98 -684}\special{pa -242 -660}%
+\special{fp}%
+\special{pa -242 -660}\special{pa -52 -640}%
+\special{fp}%
+\special{pa -52 -640}\special{pa 210 -651}%
+\special{fp}%
+\special{pa 210 -651}\special{pa 182 -678}%
+\special{fp}%
+\special{pa 182 -678}\special{pa -98 -684}%
+\special{fp}%
+\special{pa 182 -678}\special{pa 363 -543}%
+\special{fp}%
+\special{pa -582 -380}\special{pa -484 -508}%
+\special{fp}%
+\special{pa -484 -508}\special{pa -242 -660}%
+\special{fp}%
+\special{pa -662 100}\special{pa -694 -128}%
+\special{fp}%
+\special{pa -694 -128}\special{pa -582 -380}%
+\special{fp}%
+\special{pa -694 -128}\special{pa -666 -101}%
+\special{fp}%
+\special{pa -666 -101}\special{pa -536 -336}%
+\special{fp}%
+\special{pa -536 -336}\special{pa -484 -508}%
+\special{fp}%
+\special{pa -536 -336}\special{pa -346 -316}%
+\special{fp}%
+\special{pa -346 -316}\special{pa -104 -468}%
+\special{fp}%
+\special{pa -104 -468}\special{pa -52 -640}%
+\special{fp}%
+\special{pa 210 -651}\special{pa 420 -490}%
+\special{fp}%
+\special{pa 420 -490}\special{pa 602 -355}%
+\special{fp}%
+\special{pa 602 -355}\special{pa 573 -382}%
+\special{fp}%
+\special{pa 573 -382}\special{pa 363 -543}%
+\special{fp}%
+\special{pa -602 355}\special{pa -662 100}%
+\special{fp}%
+\special{pa -602 355}\special{pa -573 382}%
+\special{fp}%
+\special{pa -573 382}\special{pa -605 154}%
+\special{fp}%
+\special{pa -605 154}\special{pa -666 -101}%
+\special{fp}%
+\special{pa -605 154}\special{pa -415 174}%
+\special{fp}%
+\special{pa -415 174}\special{pa -285 -61}%
+\special{fp}%
+\special{pa -285 -61}\special{pa -346 -316}%
+\special{fp}%
+\special{pa -285 -61}\special{pa -6 -56}%
+\special{fp}%
+\special{pa -6 -56}\special{pa 106 -307}%
+\special{fp}%
+\special{pa 106 -307}\special{pa -104 -468}%
+\special{fp}%
+\special{pa 106 -307}\special{pa 368 -318}%
+\special{fp}%
+\special{pa 368 -318}\special{pa 420 -490}%
+\special{fp}%
+\special{pa 602 -355}\special{pa 662 -100}%
+\special{fp}%
+\special{pa 662 -100}\special{pa 694 128}%
+\special{fp}%
+\special{pa -182 678}\special{pa -363 543}%
+\special{fp}%
+\special{pa -363 543}\special{pa -573 382}%
+\special{fp}%
+\special{pa -363 543}\special{pa -265 415}%
+\special{fp}%
+\special{pa -265 415}\special{pa -415 174}%
+\special{fp}%
+\special{pa -265 415}\special{pa 14 420}%
+\special{fp}%
+\special{pa 14 420}\special{pa 144 185}%
+\special{fp}%
+\special{pa 144 185}\special{pa -6 -56}%
+\special{fp}%
+\special{pa 144 185}\special{pa 406 174}%
+\special{fp}%
+\special{pa 406 174}\special{pa 518 -77}%
+\special{fp}%
+\special{pa 518 -77}\special{pa 368 -318}%
+\special{fp}%
+\special{pa 518 -77}\special{pa 662 -100}%
+\special{fp}%
+\special{pa 694 128}\special{pa 582 380}%
+\special{fp}%
+\special{pa 582 380}\special{pa 484 508}%
+\special{fp}%
+\special{pa 484 508}\special{pa 242 660}%
+\special{fp}%
+\special{pa 242 660}\special{pa 98 684}%
+\special{fp}%
+\special{pa 98 684}\special{pa -182 678}%
+\special{fp}%
+\special{pa 98 684}\special{pa 196 555}%
+\special{fp}%
+\special{pa 196 555}\special{pa 14 420}%
+\special{fp}%
+\special{pa 196 555}\special{pa 438 403}%
+\special{fp}%
+\special{pa 438 403}\special{pa 406 174}%
+\special{fp}%
+\special{pa 438 403}\special{pa 582 380}%
+\special{fp}%
+\special{pn 8}%
+\special{pn 8}%
+\special{pa -95 -687}\special{pa -100 -680}\special{fp}\special{pa -120 -655}\special{pa -125 -648}\special{fp}%
+\special{pa -144 -622}\special{pa -149 -616}\special{fp}\special{pa -169 -590}\special{pa -174 -584}\special{fp}%
+\special{pa -193 -558}\special{pa -198 -552}\special{fp}\special{pn 8}%
+\special{pa -192 -557}\special{pa -199 -553}\special{fp}\special{pa -227 -535}\special{pa -234 -531}\special{fp}%
+\special{pa -261 -513}\special{pa -268 -509}\special{fp}\special{pa -296 -492}\special{pa -303 -488}\special{fp}%
+\special{pa -331 -470}\special{pa -337 -466}\special{fp}\special{pa -365 -448}\special{pa -372 -444}\special{fp}%
+\special{pa -400 -427}\special{pa -407 -422}\special{fp}\special{pa -434 -405}\special{pa -441 -401}\special{fp}%
+\special{pn 8}%
+\special{pa -586 -379}\special{pa -578 -380}\special{fp}\special{pa -550 -385}\special{pa -542 -386}\special{fp}%
+\special{pa -514 -391}\special{pa -506 -392}\special{fp}\special{pa -478 -396}\special{pa -470 -398}\special{fp}%
+\special{pa -442 -402}\special{pa -434 -403}\special{fp}\special{pn 8}%
+\special{pa -438 -407}\special{pa -437 -399}\special{fp}\special{pa -433 -369}\special{pa -432 -361}\special{fp}%
+\special{pa -428 -331}\special{pa -426 -323}\special{fp}\special{pa -422 -293}\special{pa -421 -285}\special{fp}%
+\special{pa -417 -254}\special{pa -416 -247}\special{fp}\special{pa -412 -216}\special{pa -410 -209}\special{fp}%
+\special{pa -406 -178}\special{pa -405 -170}\special{fp}\special{pn 8}%
+\special{pa -404 -178}\special{pa -407 -171}\special{fp}\special{pa -420 -142}\special{pa -423 -135}\special{fp}%
+\special{pa -436 -106}\special{pa -439 -99}\special{fp}\special{pa -452 -70}\special{pa -455 -63}\special{fp}%
+\special{pa -468 -34}\special{pa -471 -27}\special{fp}\special{pa -484 2}\special{pa -487 9}\special{fp}%
+\special{pa -500 38}\special{pa -504 45}\special{fp}\special{pa -516 74}\special{pa -520 81}\special{fp}%
+\special{pn 8}%
+\special{pa -666 101}\special{pa -658 100}\special{fp}\special{pa -630 95}\special{pa -622 94}\special{fp}%
+\special{pa -594 89}\special{pa -586 88}\special{fp}\special{pa -558 84}\special{pa -550 82}\special{fp}%
+\special{pa -522 78}\special{pa -514 77}\special{fp}\special{pn 8}%
+\special{pa -410 -174}\special{pa -402 -175}\special{fp}\special{pa -372 -176}\special{pa -364 -176}\special{fp}%
+\special{pa -335 -177}\special{pa -327 -178}\special{fp}\special{pa -297 -179}\special{pa -289 -179}\special{fp}%
+\special{pa -260 -180}\special{pa -252 -181}\special{fp}\special{pa -223 -182}\special{pa -215 -182}\special{fp}%
+\special{pa -185 -183}\special{pa -177 -184}\special{fp}\special{pa -148 -185}\special{pa -140 -185}\special{fp}%
+\special{pn 8}%
+\special{pa 366 -547}\special{pa 361 -540}\special{fp}\special{pa 341 -514}\special{pa 336 -508}\special{fp}%
+\special{pa 317 -482}\special{pa 312 -476}\special{fp}\special{pa 292 -450}\special{pa 287 -444}\special{fp}%
+\special{pa 268 -418}\special{pa 263 -411}\special{fp}\special{pn 8}%
+\special{pa 269 -414}\special{pa 261 -415}\special{fp}\special{pa 229 -415}\special{pa 221 -415}\special{fp}%
+\special{pa 190 -416}\special{pa 182 -416}\special{fp}\special{pa 150 -417}\special{pa 142 -417}\special{fp}%
+\special{pa 110 -418}\special{pa 102 -418}\special{fp}\special{pa 70 -419}\special{pa 62 -419}\special{fp}%
+\special{pa 30 -419}\special{pa 22 -420}\special{fp}\special{pa -10 -420}\special{pa -18 -420}\special{fp}%
+\special{pn 8}%
+\special{pa -199 -557}\special{pa -192 -552}\special{fp}\special{pa -169 -535}\special{pa -162 -530}\special{fp}%
+\special{pa -138 -512}\special{pa -132 -508}\special{fp}\special{pa -108 -490}\special{pa -102 -485}\special{fp}%
+\special{pa -78 -467}\special{pa -71 -463}\special{fp}\special{pa -48 -445}\special{pa -41 -440}\special{fp}%
+\special{pa -17 -423}\special{pa -11 -418}\special{fp}\special{pn 8}%
+\special{pa -146 -182}\special{pa -142 -189}\special{fp}\special{pa -127 -215}\special{pa -123 -222}\special{fp}%
+\special{pa -109 -249}\special{pa -105 -256}\special{fp}\special{pa -90 -282}\special{pa -86 -289}\special{fp}%
+\special{pa -72 -316}\special{pa -68 -323}\special{fp}\special{pa -53 -350}\special{pa -49 -357}\special{fp}%
+\special{pa -35 -383}\special{pa -31 -390}\special{fp}\special{pa -16 -417}\special{pa -12 -424}\special{fp}%
+\special{pn 8}%
+\special{pa -520 74}\special{pa -516 81}\special{fp}\special{pa -499 108}\special{pa -494 115}\special{fp}%
+\special{pa -477 143}\special{pa -473 149}\special{fp}\special{pa -456 177}\special{pa -452 184}\special{fp}%
+\special{pa -435 211}\special{pa -430 218}\special{fp}\special{pa -413 246}\special{pa -409 253}\special{fp}%
+\special{pa -392 280}\special{pa -388 287}\special{fp}\special{pa -370 315}\special{pa -366 321}\special{fp}%
+\special{pn 8}%
+\special{pa -367 314}\special{pa -369 322}\special{fp}\special{pa -378 349}\special{pa -380 356}\special{fp}%
+\special{pa -388 383}\special{pa -390 391}\special{fp}\special{pa -398 417}\special{pa -401 425}\special{fp}%
+\special{pa -409 452}\special{pa -411 459}\special{fp}\special{pa -419 486}\special{pa -421 494}\special{fp}%
+\special{pn 8}%
+\special{pa -605 353}\special{pa -599 358}\special{fp}\special{pa -575 375}\special{pa -568 380}\special{fp}%
+\special{pa -544 398}\special{pa -538 403}\special{fp}\special{pa -514 420}\special{pa -508 425}\special{fp}%
+\special{pa -484 443}\special{pa -477 447}\special{fp}\special{pa -454 465}\special{pa -447 470}\special{fp}%
+\special{pa -423 488}\special{pa -417 492}\special{fp}\special{pn 8}%
+\special{pa -146 -189}\special{pa -142 -182}\special{fp}\special{pa -125 -154}\special{pa -120 -147}\special{fp}%
+\special{pa -103 -120}\special{pa -99 -113}\special{fp}\special{pa -82 -85}\special{pa -78 -79}\special{fp}%
+\special{pa -60 -51}\special{pa -56 -44}\special{fp}\special{pa -39 -17}\special{pa -35 -10}\special{fp}%
+\special{pa -18 18}\special{pa -13 25}\special{fp}\special{pa 4 52}\special{pa 8 59}\special{fp}%
+\special{pn 8}%
+\special{pa 7 52}\special{pa 4 59}\special{fp}\special{pa -9 88}\special{pa -12 95}\special{fp}%
+\special{pa -25 124}\special{pa -28 131}\special{fp}\special{pa -41 160}\special{pa -44 167}\special{fp}%
+\special{pa -57 196}\special{pa -60 203}\special{fp}\special{pa -73 232}\special{pa -76 239}\special{fp}%
+\special{pa -89 268}\special{pa -92 275}\special{fp}\special{pa -105 304}\special{pa -108 311}\special{fp}%
+\special{pn 8}%
+\special{pa -372 318}\special{pa -364 318}\special{fp}\special{pa -335 317}\special{pa -327 316}\special{fp}%
+\special{pa -298 315}\special{pa -290 315}\special{fp}\special{pa -260 314}\special{pa -252 313}\special{fp}%
+\special{pa -223 312}\special{pa -215 312}\special{fp}\special{pa -185 310}\special{pa -177 310}\special{fp}%
+\special{pa -148 309}\special{pa -140 309}\special{fp}\special{pa -110 307}\special{pa -102 307}\special{fp}%
+\special{pn 8}%
+\special{pa 263 -418}\special{pa 268 -411}\special{fp}\special{pa 285 -384}\special{pa 289 -377}\special{fp}%
+\special{pa 306 -349}\special{pa 310 -342}\special{fp}\special{pa 327 -315}\special{pa 332 -308}\special{fp}%
+\special{pa 349 -280}\special{pa 353 -274}\special{fp}\special{pa 370 -246}\special{pa 374 -239}\special{fp}%
+\special{pa 392 -212}\special{pa 396 -205}\special{fp}\special{pa 413 -177}\special{pa 417 -170}\special{fp}%
+\special{pn 8}%
+\special{pa 417 -177}\special{pa 413 -170}\special{fp}\special{pa 398 -144}\special{pa 395 -137}\special{fp}%
+\special{pa 380 -110}\special{pa 376 -103}\special{fp}\special{pa 361 -77}\special{pa 357 -70}\special{fp}%
+\special{pa 343 -43}\special{pa 339 -36}\special{fp}\special{pa 324 -9}\special{pa 320 -2}\special{fp}%
+\special{pa 306 24}\special{pa 302 31}\special{fp}\special{pa 287 58}\special{pa 283 65}\special{fp}%
+\special{pn 8}%
+\special{pa 2 56}\special{pa 10 56}\special{fp}\special{pa 42 56}\special{pa 50 57}\special{fp}%
+\special{pa 82 57}\special{pa 90 57}\special{fp}\special{pa 122 58}\special{pa 130 58}\special{fp}%
+\special{pa 161 59}\special{pa 169 59}\special{fp}\special{pa 201 60}\special{pa 209 60}\special{fp}%
+\special{pa 241 60}\special{pa 249 61}\special{fp}\special{pa 281 61}\special{pa 289 61}\special{fp}%
+\special{pn 8}%
+\special{pa 573 -386}\special{pa 574 -378}\special{fp}\special{pa 578 -348}\special{pa 579 -340}\special{fp}%
+\special{pa 583 -310}\special{pa 585 -302}\special{fp}\special{pa 589 -272}\special{pa 590 -264}\special{fp}%
+\special{pa 594 -234}\special{pa 595 -226}\special{fp}\special{pa 599 -196}\special{pa 601 -188}\special{fp}%
+\special{pa 605 -158}\special{pa 606 -150}\special{fp}\special{pn 8}%
+\special{pa 411 -174}\special{pa 419 -173}\special{fp}\special{pa 449 -170}\special{pa 457 -169}\special{fp}%
+\special{pa 487 -166}\special{pa 495 -165}\special{fp}\special{pa 525 -162}\special{pa 533 -161}\special{fp}%
+\special{pa 563 -158}\special{pa 571 -157}\special{fp}\special{pa 601 -154}\special{pa 609 -153}\special{fp}%
+\special{pn 8}%
+\special{pa 56 640}\special{pa 48 641}\special{fp}\special{pa 18 642}\special{pa 10 642}\special{fp}%
+\special{pa -19 643}\special{pa -27 644}\special{fp}\special{pa -56 645}\special{pa -64 645}\special{fp}%
+\special{pa -94 646}\special{pa -102 647}\special{fp}\special{pa -131 648}\special{pa -139 648}\special{fp}%
+\special{pa -169 649}\special{pa -177 650}\special{fp}\special{pa -206 651}\special{pa -214 651}\special{fp}%
+\special{pn 8}%
+\special{pa -423 488}\special{pa -417 492}\special{fp}\special{pa -393 511}\special{pa -387 515}\special{fp}%
+\special{pa -363 534}\special{pa -357 538}\special{fp}\special{pa -333 557}\special{pa -327 561}\special{fp}%
+\special{pa -303 580}\special{pa -297 584}\special{fp}\special{pa -273 603}\special{pa -267 608}\special{fp}%
+\special{pa -243 626}\special{pa -237 631}\special{fp}\special{pa -213 649}\special{pa -207 654}\special{fp}%
+\special{pn 8}%
+\special{pa -213 648}\special{pa -207 654}\special{fp}\special{pa -185 675}\special{pa -179 681}\special{fp}%
+\special{pn 8}%
+\special{pa 284 57}\special{pa 286 65}\special{fp}\special{pa 293 94}\special{pa 295 102}\special{fp}%
+\special{pa 302 130}\special{pa 303 138}\special{fp}\special{pa 310 167}\special{pa 312 175}\special{fp}%
+\special{pa 319 203}\special{pa 321 211}\special{fp}\special{pa 327 240}\special{pa 329 247}\special{fp}%
+\special{pa 336 276}\special{pa 338 284}\special{fp}\special{pa 345 313}\special{pa 347 320}\special{fp}%
+\special{pn 8}%
+\special{pa 349 314}\special{pa 342 319}\special{fp}\special{pa 314 336}\special{pa 308 340}\special{fp}%
+\special{pa 280 358}\special{pa 273 362}\special{fp}\special{pa 245 379}\special{pa 239 384}\special{fp}%
+\special{pa 211 401}\special{pa 204 405}\special{fp}\special{pa 176 423}\special{pa 169 427}\special{fp}%
+\special{pa 142 445}\special{pa 135 449}\special{fp}\special{pa 107 466}\special{pa 100 471}\special{fp}%
+\special{pn 8}%
+\special{pa -110 305}\special{pa -103 310}\special{fp}\special{pa -80 328}\special{pa -73 333}\special{fp}%
+\special{pa -50 351}\special{pa -43 356}\special{fp}\special{pa -20 374}\special{pa -13 379}\special{fp}%
+\special{pa 10 397}\special{pa 17 402}\special{fp}\special{pa 40 420}\special{pa 47 425}\special{fp}%
+\special{pa 70 443}\special{pa 77 448}\special{fp}\special{pa 100 466}\special{pa 107 471}\special{fp}%
+\special{pn 8}%
+\special{pa 51 644}\special{pa 53 637}\special{fp}\special{pa 61 610}\special{pa 63 602}\special{fp}%
+\special{pa 71 575}\special{pa 74 568}\special{fp}\special{pa 82 541}\special{pa 84 533}\special{fp}%
+\special{pa 92 507}\special{pa 94 499}\special{fp}\special{pa 102 472}\special{pa 105 465}\special{fp}%
+\special{pn 8}%
+\special{pa 697 131}\special{pa 691 125}\special{fp}\special{pa 669 104}\special{pa 663 99}\special{fp}%
+\special{pn 8}%
+\special{pa 604 -158}\special{pa 606 -150}\special{fp}\special{pa 613 -121}\special{pa 615 -113}\special{fp}%
+\special{pa 622 -85}\special{pa 623 -77}\special{fp}\special{pa 630 -48}\special{pa 632 -41}\special{fp}%
+\special{pa 639 -12}\special{pa 641 -4}\special{fp}\special{pa 648 25}\special{pa 649 32}\special{fp}%
+\special{pa 656 61}\special{pa 658 69}\special{fp}\special{pa 665 97}\special{pa 667 105}\special{fp}%
+\special{pn 8}%
+\special{pa 668 98}\special{pa 664 105}\special{fp}\special{pa 649 131}\special{pa 645 138}\special{fp}%
+\special{pa 631 165}\special{pa 627 172}\special{fp}\special{pa 612 199}\special{pa 608 206}\special{fp}%
+\special{pa 593 232}\special{pa 590 239}\special{fp}\special{pa 575 266}\special{pa 571 273}\special{fp}%
+\special{pa 556 299}\special{pa 553 306}\special{fp}\special{pa 538 333}\special{pa 534 340}\special{fp}%
+\special{pn 8}%
+\special{pa 342 316}\special{pa 350 317}\special{fp}\special{pa 380 320}\special{pa 388 321}\special{fp}%
+\special{pa 418 324}\special{pa 426 325}\special{fp}\special{pa 456 328}\special{pa 464 329}\special{fp}%
+\special{pa 494 332}\special{pa 502 333}\special{fp}\special{pa 532 336}\special{pa 540 337}\special{fp}%
+\special{pn 8}%
+\special{pa 537 333}\special{pa 535 340}\special{fp}\special{pa 527 367}\special{pa 524 375}\special{fp}%
+\special{pa 516 401}\special{pa 514 409}\special{fp}\special{pa 506 436}\special{pa 504 443}\special{fp}%
+\special{pa 496 470}\special{pa 493 478}\special{fp}\special{pa 485 505}\special{pa 483 512}\special{fp}%
+\special{pn 8}%
+\special{pa 48 640}\special{pa 56 641}\special{fp}\special{pa 86 644}\special{pa 94 645}\special{fp}%
+\special{pa 124 648}\special{pa 132 649}\special{fp}\special{pa 162 652}\special{pa 170 653}\special{fp}%
+\special{pa 200 656}\special{pa 208 657}\special{fp}\special{pa 238 660}\special{pa 246 661}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex
new file mode 100644
index 00000000..479ba81a
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rasen.tex
@@ -0,0 +1,55 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-8 19:50
+%%% template.sce 2016-8-8 19:50
+{\unitlength=6mm%
+\begin{picture}%
+( 10.06000, 7.68000)( -5.06000, -2.68000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.7562,-0.7329){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.1820,-1.6994){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.8804){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1079 -166}\special{pa -1079 166}%
+\special{fp}%
+\special{pa -480 -374}\special{pa 480 374}%
+\special{fp}%
+\special{pa 0 633}\special{pa 0 -1108}%
+\special{fp}%
+\special{pa -432 67}\special{pa -404 79}\special{pa -370 91}\special{pa -329 100}%
+\special{pa -284 108}\special{pa -234 114}\special{pa -180 118}\special{pa -123 119}%
+\special{pa -64 117}\special{pa -5 113}\special{pa 55 106}\special{pa 114 97}\special{pa 171 85}%
+\special{pa 226 71}\special{pa 276 54}\special{pa 323 35}\special{pa 364 14}\special{pa 399 -8}%
+\special{pa 428 -32}\special{pa 450 -57}\special{pa 464 -82}\special{pa 472 -109}%
+\special{pa 471 -135}\special{pa 463 -161}\special{pa 448 -187}\special{pa 425 -212}%
+\special{pa 396 -236}\special{pa 360 -258}\special{pa 318 -278}\special{pa 272 -297}%
+\special{pa 221 -313}\special{pa 166 -328}\special{pa 109 -339}\special{pa 50 -348}%
+\special{pa -10 -355}\special{pa -70 -359}\special{pa -129 -360}\special{pa -185 -359}%
+\special{pa -239 -355}\special{pa -288 -349}\special{pa -333 -341}\special{pa -373 -331}%
+\special{pa -407 -319}\special{pa -434 -307}\special{pa -454 -293}\special{pa -467 -278}%
+\special{pa -472 -263}\special{pa -470 -248}\special{pa -460 -233}\special{pa -443 -219}%
+\special{pa -419 -205}\special{pa -388 -193}\special{pa -350 -183}\special{pa -307 -174}%
+\special{pa -259 -167}\special{pa -207 -162}\special{pa -152 -160}\special{pa -94 -160}%
+\special{pa -35 -163}\special{pa 25 -168}\special{pa 85 -177}\special{pa 143 -187}%
+\special{pa 199 -200}\special{pa 251 -216}\special{pa 300 -234}\special{pa 344 -253}%
+\special{pa 382 -275}\special{pa 414 -298}\special{pa 440 -323}\special{pa 458 -348}%
+\special{pa 469 -374}\special{pa 472 -400}\special{pa 468 -427}\special{pa 457 -453}%
+\special{pa 438 -478}\special{pa 411 -502}\special{pa 379 -525}\special{pa 340 -547}%
+\special{pa 296 -566}\special{pa 247 -584}\special{pa 194 -599}\special{pa 138 -612}%
+\special{pa 79 -623}\special{pa 20 -630}\special{pa -40 -636}\special{pa -100 -638}%
+\special{pa -157 -638}\special{pa -212 -636}\special{pa -264 -631}\special{pa -312 -624}%
+\special{pa -354 -615}\special{pa -391 -604}\special{pa -421 -592}\special{pa -445 -578}%
+\special{pa -461 -564}\special{pa -471 -549}\special{pa -472 -534}\special{pa -466 -519}%
+\special{pa -452 -504}\special{pa -432 -490}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex
new file mode 100644
index 00000000..5b9d71e6
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/readobj.tex
@@ -0,0 +1,64 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 20:2
+%%% template.sce 2016-8-9 20:2
+{\unitlength=8mm%
+\begin{picture}%
+( 6.00000, 5.00000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\special{pn 8}%
+\special{pa -59 -253}\special{pa -51 -251}\special{fp}\special{pa -21 -240}\special{pa -13 -238}\special{fp}%
+\special{pa 17 -228}\special{pa 25 -225}\special{fp}\special{pa 55 -215}\special{pa 62 -212}\special{fp}%
+\special{pa 93 -202}\special{pa 100 -200}\special{fp}\special{pa 130 -189}\special{pa 138 -187}\special{fp}%
+\special{pa 168 -177}\special{pa 176 -174}\special{fp}\special{pa 206 -164}\special{pa 214 -161}\special{fp}%
+\special{pa 244 -151}\special{pa 251 -148}\special{fp}\special{pa 282 -138}\special{pa 289 -136}\special{fp}%
+\special{pa 319 -125}\special{pa 327 -123}\special{fp}\special{pa 357 -113}\special{pa 365 -110}\special{fp}%
+\special{pa 395 -100}\special{pa 403 -97}\special{fp}\special{pa 433 -87}\special{pa 440 -85}\special{fp}%
+\special{pa 471 -74}\special{pa 478 -72}\special{fp}\special{pa 508 -62}\special{pa 516 -59}\special{fp}%
+\special{pa 546 -49}\special{pa 554 -46}\special{fp}\special{pa 584 -36}\special{pa 592 -34}\special{fp}%
+\special{pa 622 -23}\special{pa 629 -21}\special{fp}\special{pn 8}%
+\special{pa 626 -22}\special{pa 0 577}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -55 -256}\special{pa -54 -248}\special{fp}\special{pa -52 -216}\special{pa -52 -208}\special{fp}%
+\special{pa -50 -177}\special{pa -49 -169}\special{fp}\special{pa -47 -138}\special{pa -47 -130}\special{fp}%
+\special{pa -45 -98}\special{pa -44 -90}\special{fp}\special{pa -42 -59}\special{pa -41 -51}\special{fp}%
+\special{pa -39 -19}\special{pa -39 -11}\special{fp}\special{pa -37 20}\special{pa -36 28}\special{fp}%
+\special{pa -34 60}\special{pa -34 68}\special{fp}\special{pa -32 99}\special{pa -31 107}\special{fp}%
+\special{pa -29 139}\special{pa -28 147}\special{fp}\special{pa -26 178}\special{pa -26 186}\special{fp}%
+\special{pa -24 218}\special{pa -23 226}\special{fp}\special{pa -21 257}\special{pa -21 265}\special{fp}%
+\special{pa -19 296}\special{pa -18 304}\special{fp}\special{pa -16 336}\special{pa -15 344}\special{fp}%
+\special{pa -13 375}\special{pa -13 383}\special{fp}\special{pa -11 415}\special{pa -10 423}\special{fp}%
+\special{pa -8 454}\special{pa -8 462}\special{fp}\special{pa -5 494}\special{pa -5 502}\special{fp}%
+\special{pa -3 533}\special{pa -2 541}\special{fp}\special{pa 0 573}\special{pa 0 581}\special{fp}%
+\special{pn 8}%
+\special{pa -626 22}\special{pa 0 577}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -51 -254}\special{pa -58 -250}\special{fp}\special{pa -87 -237}\special{pa -94 -233}\special{fp}%
+\special{pa -122 -219}\special{pa -130 -216}\special{fp}\special{pa -158 -202}\special{pa -165 -199}\special{fp}%
+\special{pa -194 -185}\special{pa -201 -182}\special{fp}\special{pa -230 -168}\special{pa -237 -165}\special{fp}%
+\special{pa -265 -151}\special{pa -272 -147}\special{fp}\special{pa -301 -134}\special{pa -308 -130}\special{fp}%
+\special{pa -337 -117}\special{pa -344 -113}\special{fp}\special{pa -372 -100}\special{pa -379 -96}\special{fp}%
+\special{pa -408 -82}\special{pa -415 -79}\special{fp}\special{pa -444 -65}\special{pa -451 -62}\special{fp}%
+\special{pa -479 -48}\special{pa -487 -45}\special{fp}\special{pa -515 -31}\special{pa -522 -28}\special{fp}%
+\special{pa -551 -14}\special{pa -558 -10}\special{fp}\special{pa -586 3}\special{pa -594 7}\special{fp}%
+\special{pa -622 20}\special{pa -629 24}\special{fp}\special{pn 8}%
+\special{pa -626 22}\special{pa 0 -577}%
+\special{fp}%
+\special{pn 8}%
+\special{pa -55 -248}\special{pa -54 -256}\special{fp}\special{pa -49 -289}\special{pa -47 -296}\special{fp}%
+\special{pa -42 -329}\special{pa -40 -337}\special{fp}\special{pa -35 -370}\special{pa -34 -378}\special{fp}%
+\special{pa -28 -410}\special{pa -27 -418}\special{fp}\special{pa -21 -451}\special{pa -20 -459}\special{fp}%
+\special{pa -14 -491}\special{pa -13 -499}\special{fp}\special{pa -8 -532}\special{pa -6 -540}\special{fp}%
+\special{pa -1 -573}\special{pa 1 -581}\special{fp}\special{pn 8}%
+\special{pa 626 -22}\special{pa 0 -577}%
+\special{fp}%
+\special{pa 626 -22}\special{pa 55 252}%
+\special{fp}%
+\special{pa 55 252}\special{pa 0 577}%
+\special{fp}%
+\special{pa 55 252}\special{pa 0 -577}%
+\special{fp}%
+\special{pa 55 252}\special{pa -626 22}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex
new file mode 100644
index 00000000..1ab86842
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d01.tex
@@ -0,0 +1,85 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-15 20:33
+%%% template.sce 2016-8-15 20:33
+{\unitlength=8mm%
+\begin{picture}%
+( 7.77000, 5.78000)( -4.42000, -1.51000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1055 -175}\special{pa -1058 175}%
+\special{fp}%
+\special{pa -856 -338}\special{pa 856 338}%
+\special{fp}%
+\special{pa 0 476}\special{pa 0 -1218}%
+\special{fp}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{pa -1058 175}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{pa 856 338}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{pa 0 -1218}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
+\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pa -342 -135}\special{pa -871 -48}\special{pa -607 -700}\special{pa -342 -135}%
+\special{fp}%
+\special{pa -607 -700}\special{pa -607 -1005}%
+\special{fp}%
+\special{pn 16}%
+\special{pa -529 87}\special{pa -187 223}\special{pa -358 -454}\special{pa -529 87}%
+\special{fp}%
+\special{pa -358 -454}\special{pa -358 -758}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
+\put(-1.0867,0.3792){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.8157,0.1514){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
+\put(-1.8762,2.2739){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(-1.8762,3.2406){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex
new file mode 100644
index 00000000..35cbc525
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/rotatedata3d02.tex
@@ -0,0 +1,85 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-15 20:32
+%%% template.sce 2016-8-15 20:32
+{\unitlength=8mm%
+\begin{picture}%
+( 7.77000, 5.78000)( -4.42000, -1.51000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1055 -175}\special{pa -1058 175}%
+\special{fp}%
+\special{pa -856 -338}\special{pa 856 338}%
+\special{fp}%
+\special{pa 0 476}\special{pa 0 -1218}%
+\special{fp}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{pa -1058 175}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{pa 856 338}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{pa 0 -1218}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
+\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pa -342 -135}\special{pa -871 -48}\special{pa -607 -700}\special{pa -342 -135}%
+\special{fp}%
+\special{pa -607 -700}\special{pa -607 -1005}%
+\special{fp}%
+\special{pn 16}%
+\special{pa -964 64}\special{pa -622 199}\special{pa -793 -478}\special{pa -964 64}%
+\special{fp}%
+\special{pa -793 -478}\special{pa -793 -782}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{-\Height}%
+\put(-1.0867,0.3792){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+%
+\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.8157,0.1514){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{\Depth}%
+\put(-1.8762,2.2739){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+%
+\settowidth{\Width}{D}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{\Depth}%
+\put(-1.8762,3.2406){\hspace*{\Width}\raisebox{\Height}{D}}%
+%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex
new file mode 100644
index 00000000..3ff0ce04
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/saddle1.tex
@@ -0,0 +1,326 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 16:45
+%%% template.sce 2016-8-7 16:45
+{\unitlength=4mm%
+\begin{picture}%
+( 10.00000, 10.00000)( -5.00000, -5.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 696 -174}\special{pa -696 174}%
+\special{fp}%
+\special{pa -369 -329}\special{pa 369 329}%
+\special{fp}%
+\special{pa 0 694}\special{pa 0 -694}%
+\special{fp}%
+\special{pa 131 -201}\special{pa 107 -107}\special{pa 84 -20}\special{pa 61 59}\special{pa 38 130}%
+\special{pa 15 194}\special{pa -9 250}\special{pa -32 298}\special{pa -55 339}\special{pa -78 371}%
+\special{pa -101 397}\special{pa -124 414}\special{pa -148 424}\special{pa -171 426}%
+\special{pa -194 420}\special{pa -217 406}\special{pa -240 385}\special{pa -264 356}%
+\special{pa -287 320}\special{pa -310 275}\special{pa -333 223}\special{pa -356 164}%
+\special{pa -379 96}\special{pa -403 21}\special{pa -426 -62}%
+\special{fp}%
+\special{pa 145 -294}\special{pa 122 -199}\special{pa 99 -112}\special{pa 76 -33}%
+\special{pa 53 38}\special{pa 29 102}\special{pa 6 158}\special{pa -17 206}\special{pa -40 246}%
+\special{pa -63 279}\special{pa -86 304}\special{pa -110 322}\special{pa -133 331}%
+\special{pa -156 333}\special{pa -179 327}\special{pa -202 314}\special{pa -226 293}%
+\special{pa -249 264}\special{pa -272 227}\special{pa -295 183}\special{pa -318 131}%
+\special{pa -342 71}\special{pa -365 4}\special{pa -388 -71}\special{pa -411 -154}%
+\special{fp}%
+\special{pa 160 -375}\special{pa 137 -280}\special{pa 114 -194}\special{pa 91 -115}%
+\special{pa 67 -43}\special{pa 44 20}\special{pa 21 76}\special{pa -2 125}\special{pa -25 165}%
+\special{pa -49 198}\special{pa -72 223}\special{pa -95 240}\special{pa -118 250}%
+\special{pa -141 252}\special{pa -164 246}\special{pa -188 233}\special{pa -211 212}%
+\special{pa -234 183}\special{pa -257 146}\special{pa -280 102}\special{pa -304 50}%
+\special{pa -327 -10}\special{pa -350 -77}\special{pa -373 -152}\special{pa -396 -235}%
+\special{fp}%
+\special{pa 175 -445}\special{pa 152 -350}\special{pa 129 -264}\special{pa 105 -185}%
+\special{pa 82 -113}\special{pa 59 -50}\special{pa 36 6}\special{pa 13 54}\special{pa -11 95}%
+\special{pa -34 128}\special{pa -57 153}\special{pa -80 170}\special{pa -103 180}%
+\special{pa -127 182}\special{pa -150 176}\special{pa -173 163}\special{pa -196 142}%
+\special{pa -219 113}\special{pa -242 76}\special{pa -266 32}\special{pa -289 -20}%
+\special{pa -312 -80}\special{pa -335 -147}\special{pa -358 -223}\special{pa -382 -305}%
+\special{fp}%
+\special{pa 190 -504}\special{pa 166 -409}\special{pa 143 -323}\special{pa 120 -244}%
+\special{pa 97 -172}\special{pa 74 -109}\special{pa 51 -53}\special{pa 27 -5}\special{pa 4 36}%
+\special{pa -19 69}\special{pa -42 94}\special{pa -65 111}\special{pa -89 121}\special{pa -112 123}%
+\special{pa -135 117}\special{pa -158 104}\special{pa -181 83}\special{pa -205 54}%
+\special{pa -228 17}\special{pa -251 -27}\special{pa -274 -79}\special{pa -297 -139}%
+\special{pa -320 -206}\special{pa -344 -282}\special{pa -367 -364}%
+\special{fp}%
+\special{pa 204 -552}\special{pa 181 -457}\special{pa 158 -371}\special{pa 135 -292}%
+\special{pa 112 -220}\special{pa 88 -157}\special{pa 65 -101}\special{pa 42 -52}\special{pa 19 -12}%
+\special{pa -4 21}\special{pa -27 46}\special{pa -51 63}\special{pa -74 73}\special{pa -97 75}%
+\special{pa -120 69}\special{pa -143 56}\special{pa -167 35}\special{pa -190 6}\special{pa -213 -31}%
+\special{pa -236 -75}\special{pa -259 -127}\special{pa -282 -187}\special{pa -306 -254}%
+\special{pa -329 -329}\special{pa -352 -412}%
+\special{fp}%
+\special{pa 219 -589}\special{pa 196 -494}\special{pa 173 -407}\special{pa 150 -328}%
+\special{pa 126 -257}\special{pa 103 -193}\special{pa 80 -137}\special{pa 57 -89}%
+\special{pa 34 -49}\special{pa 11 -16}\special{pa -13 9}\special{pa -36 27}\special{pa -59 36}%
+\special{pa -82 38}\special{pa -105 32}\special{pa -129 19}\special{pa -152 -2}\special{pa -175 -31}%
+\special{pa -198 -68}\special{pa -221 -112}\special{pa -245 -164}\special{pa -268 -224}%
+\special{pa -291 -291}\special{pa -314 -366}\special{pa -337 -449}%
+\special{fp}%
+\special{pa 234 -614}\special{pa 211 -520}\special{pa 188 -433}\special{pa 164 -354}%
+\special{pa 141 -283}\special{pa 118 -219}\special{pa 95 -163}\special{pa 72 -115}%
+\special{pa 48 -74}\special{pa 25 -42}\special{pa 2 -17}\special{pa -21 1}\special{pa -44 11}%
+\special{pa -67 12}\special{pa -91 7}\special{pa -114 -7}\special{pa -137 -28}\special{pa -160 -57}%
+\special{pa -183 -93}\special{pa -207 -138}\special{pa -230 -190}\special{pa -253 -249}%
+\special{pa -276 -317}\special{pa -299 -392}\special{pa -323 -475}%
+\special{fp}%
+\special{pa 249 -629}\special{pa 226 -535}\special{pa 202 -448}\special{pa 179 -369}%
+\special{pa 156 -297}\special{pa 133 -234}\special{pa 110 -178}\special{pa 86 -130}%
+\special{pa 63 -89}\special{pa 40 -56}\special{pa 17 -31}\special{pa -6 -14}\special{pa -30 -4}%
+\special{pa -53 -2}\special{pa -76 -8}\special{pa -99 -21}\special{pa -122 -43}\special{pa -145 -71}%
+\special{pa -169 -108}\special{pa -192 -152}\special{pa -215 -204}\special{pa -238 -264}%
+\special{pa -261 -331}\special{pa -285 -407}\special{pa -308 -489}%
+\special{fp}%
+\special{pa 263 -632}\special{pa 240 -538}\special{pa 217 -451}\special{pa 194 -372}%
+\special{pa 171 -301}\special{pa 148 -237}\special{pa 124 -181}\special{pa 101 -133}%
+\special{pa 78 -93}\special{pa 55 -60}\special{pa 32 -35}\special{pa 8 -17}\special{pa -15 -8}%
+\special{pa -38 -6}\special{pa -61 -11}\special{pa -84 -25}\special{pa -108 -46}\special{pa -131 -75}%
+\special{pa -154 -111}\special{pa -177 -156}\special{pa -200 -208}\special{pa -223 -268}%
+\special{pa -247 -335}\special{pa -270 -410}\special{pa -293 -493}%
+\special{fp}%
+\special{pa 278 -625}\special{pa 255 -530}\special{pa 232 -444}\special{pa 209 -365}%
+\special{pa 185 -293}\special{pa 162 -230}\special{pa 139 -174}\special{pa 116 -125}%
+\special{pa 93 -85}\special{pa 70 -52}\special{pa 46 -27}\special{pa 23 -10}\special{pa 0 0}%
+\special{pa -23 2}\special{pa -46 -4}\special{pa -70 -17}\special{pa -93 -38}\special{pa -116 -67}%
+\special{pa -139 -104}\special{pa -162 -148}\special{pa -185 -200}\special{pa -209 -260}%
+\special{pa -232 -327}\special{pa -255 -402}\special{pa -278 -485}%
+\special{fp}%
+\special{pa 293 -606}\special{pa 270 -512}\special{pa 247 -425}\special{pa 223 -346}%
+\special{pa 200 -275}\special{pa 177 -211}\special{pa 154 -155}\special{pa 131 -107}%
+\special{pa 108 -66}\special{pa 84 -33}\special{pa 61 -8}\special{pa 38 9}\special{pa 15 19}%
+\special{pa -8 21}\special{pa -32 15}\special{pa -55 1}\special{pa -78 -20}\special{pa -101 -49}%
+\special{pa -124 -85}\special{pa -148 -129}\special{pa -171 -181}\special{pa -194 -241}%
+\special{pa -217 -309}\special{pa -240 -384}\special{pa -263 -467}%
+\special{fp}%
+\special{pa 308 -576}\special{pa 285 -482}\special{pa 261 -395}\special{pa 238 -316}%
+\special{pa 215 -245}\special{pa 192 -181}\special{pa 169 -125}\special{pa 145 -77}%
+\special{pa 122 -36}\special{pa 99 -4}\special{pa 76 21}\special{pa 53 39}\special{pa 30 49}%
+\special{pa 6 50}\special{pa -17 45}\special{pa -40 31}\special{pa -63 10}\special{pa -86 -19}%
+\special{pa -110 -55}\special{pa -133 -100}\special{pa -156 -152}\special{pa -179 -211}%
+\special{pa -202 -279}\special{pa -226 -354}\special{pa -249 -437}%
+\special{fp}%
+\special{pa 323 -535}\special{pa 299 -441}\special{pa 276 -354}\special{pa 253 -275}%
+\special{pa 230 -204}\special{pa 207 -140}\special{pa 183 -84}\special{pa 160 -36}%
+\special{pa 137 4}\special{pa 114 37}\special{pa 91 62}\special{pa 67 80}\special{pa 44 89}%
+\special{pa 21 91}\special{pa -2 86}\special{pa -25 72}\special{pa -48 51}\special{pa -72 22}%
+\special{pa -95 -14}\special{pa -118 -59}\special{pa -141 -111}\special{pa -164 -170}%
+\special{pa -188 -238}\special{pa -211 -313}\special{pa -234 -396}%
+\special{fp}%
+\special{pa 337 -483}\special{pa 314 -389}\special{pa 291 -302}\special{pa 268 -223}%
+\special{pa 245 -152}\special{pa 221 -88}\special{pa 198 -32}\special{pa 175 16}\special{pa 152 56}%
+\special{pa 129 89}\special{pa 105 114}\special{pa 82 132}\special{pa 59 141}\special{pa 36 143}%
+\special{pa 13 138}\special{pa -11 124}\special{pa -34 103}\special{pa -57 74}\special{pa -80 38}%
+\special{pa -103 -7}\special{pa -126 -59}\special{pa -150 -118}\special{pa -173 -186}%
+\special{pa -196 -261}\special{pa -219 -344}%
+\special{fp}%
+\special{pa 352 -420}\special{pa 329 -326}\special{pa 306 -239}\special{pa 282 -160}%
+\special{pa 259 -89}\special{pa 236 -25}\special{pa 213 31}\special{pa 190 79}\special{pa 167 120}%
+\special{pa 143 152}\special{pa 120 177}\special{pa 97 195}\special{pa 74 205}\special{pa 51 206}%
+\special{pa 27 201}\special{pa 4 187}\special{pa -19 166}\special{pa -42 137}\special{pa -65 101}%
+\special{pa -88 56}\special{pa -112 4}\special{pa -135 -55}\special{pa -158 -123}%
+\special{pa -181 -198}\special{pa -204 -281}%
+\special{fp}%
+\special{pa 367 -346}\special{pa 344 -252}\special{pa 320 -165}\special{pa 297 -86}%
+\special{pa 274 -14}\special{pa 251 49}\special{pa 228 105}\special{pa 205 153}\special{pa 181 194}%
+\special{pa 158 227}\special{pa 135 252}\special{pa 112 269}\special{pa 89 279}\special{pa 65 281}%
+\special{pa 42 275}\special{pa 19 261}\special{pa -4 240}\special{pa -27 211}\special{pa -51 175}%
+\special{pa -74 131}\special{pa -97 79}\special{pa -120 19}\special{pa -143 -49}\special{pa -166 -124}%
+\special{pa -190 -207}%
+\special{fp}%
+\special{pa 382 -261}\special{pa 358 -166}\special{pa 335 -80}\special{pa 312 -1}%
+\special{pa 289 71}\special{pa 266 134}\special{pa 242 190}\special{pa 219 239}\special{pa 196 279}%
+\special{pa 173 312}\special{pa 150 337}\special{pa 127 354}\special{pa 103 364}\special{pa 80 366}%
+\special{pa 57 360}\special{pa 34 347}\special{pa 11 326}\special{pa -13 297}\special{pa -36 260}%
+\special{pa -59 216}\special{pa -82 164}\special{pa -105 104}\special{pa -129 37}%
+\special{pa -152 -38}\special{pa -175 -121}%
+\special{fp}%
+\special{pa 396 -164}\special{pa 373 -70}\special{pa 350 17}\special{pa 327 96}\special{pa 304 167}%
+\special{pa 280 231}\special{pa 257 287}\special{pa 234 335}\special{pa 211 376}\special{pa 188 408}%
+\special{pa 164 433}\special{pa 141 451}\special{pa 118 460}\special{pa 95 462}\special{pa 72 457}%
+\special{pa 49 443}\special{pa 25 422}\special{pa 2 393}\special{pa -21 357}\special{pa -44 312}%
+\special{pa -67 260}\special{pa -91 201}\special{pa -114 133}\special{pa -137 58}%
+\special{pa -160 -25}%
+\special{fp}%
+\special{pa 411 -57}\special{pa 388 38}\special{pa 365 124}\special{pa 342 203}\special{pa 318 275}%
+\special{pa 295 338}\special{pa 272 394}\special{pa 249 443}\special{pa 226 483}\special{pa 202 516}%
+\special{pa 179 541}\special{pa 156 558}\special{pa 133 568}\special{pa 110 570}\special{pa 86 564}%
+\special{pa 63 551}\special{pa 40 530}\special{pa 17 501}\special{pa -6 464}\special{pa -29 420}%
+\special{pa -53 368}\special{pa -76 308}\special{pa -99 241}\special{pa -122 166}%
+\special{pa -145 83}%
+\special{fp}%
+\special{pa 426 62}\special{pa 403 156}\special{pa 379 243}\special{pa 356 322}\special{pa 333 393}%
+\special{pa 310 457}\special{pa 287 513}\special{pa 264 561}\special{pa 240 602}\special{pa 217 634}%
+\special{pa 194 660}\special{pa 171 677}\special{pa 148 687}\special{pa 124 689}\special{pa 101 683}%
+\special{pa 78 669}\special{pa 55 648}\special{pa 32 619}\special{pa 9 583}\special{pa -15 538}%
+\special{pa -38 486}\special{pa -61 427}\special{pa -84 359}\special{pa -107 284}%
+\special{pa -131 201}%
+\special{fp}%
+\special{pa 131 -201}\special{pa 143 -279}\special{pa 155 -349}\special{pa 168 -411}%
+\special{pa 180 -466}\special{pa 192 -513}\special{pa 204 -552}\special{pa 217 -583}%
+\special{pa 229 -607}\special{pa 241 -623}\special{pa 254 -631}\special{pa 266 -632}%
+\special{pa 278 -625}\special{pa 291 -610}\special{pa 303 -588}\special{pa 315 -557}%
+\special{pa 327 -519}\special{pa 340 -474}\special{pa 352 -420}\special{pa 364 -359}%
+\special{pa 377 -290}\special{pa 389 -214}\special{pa 401 -130}\special{pa 414 -38}%
+\special{pa 426 62}%
+\special{fp}%
+\special{pa 103 -89}\special{pa 115 -167}\special{pa 127 -237}\special{pa 140 -299}%
+\special{pa 152 -353}\special{pa 164 -400}\special{pa 177 -439}\special{pa 189 -471}%
+\special{pa 201 -495}\special{pa 213 -511}\special{pa 226 -519}\special{pa 238 -520}%
+\special{pa 250 -512}\special{pa 263 -498}\special{pa 275 -475}\special{pa 287 -445}%
+\special{pa 300 -407}\special{pa 312 -361}\special{pa 324 -308}\special{pa 337 -247}%
+\special{pa 349 -178}\special{pa 361 -102}\special{pa 373 -17}\special{pa 386 75}%
+\special{pa 398 174}%
+\special{fp}%
+\special{pa 75 12}\special{pa 87 -65}\special{pa 100 -135}\special{pa 112 -197}\special{pa 124 -252}%
+\special{pa 136 -299}\special{pa 149 -338}\special{pa 161 -370}\special{pa 173 -393}%
+\special{pa 186 -409}\special{pa 198 -418}\special{pa 210 -418}\special{pa 223 -411}%
+\special{pa 235 -396}\special{pa 247 -374}\special{pa 259 -344}\special{pa 272 -306}%
+\special{pa 284 -260}\special{pa 296 -207}\special{pa 309 -145}\special{pa 321 -77}%
+\special{pa 333 0}\special{pa 346 84}\special{pa 358 176}\special{pa 370 276}%
+\special{fp}%
+\special{pa 47 103}\special{pa 59 25}\special{pa 72 -45}\special{pa 84 -107}\special{pa 96 -162}%
+\special{pa 109 -209}\special{pa 121 -248}\special{pa 133 -279}\special{pa 146 -303}%
+\special{pa 158 -319}\special{pa 170 -327}\special{pa 182 -328}\special{pa 195 -321}%
+\special{pa 207 -306}\special{pa 219 -284}\special{pa 232 -253}\special{pa 244 -215}%
+\special{pa 256 -170}\special{pa 269 -116}\special{pa 281 -55}\special{pa 293 14}%
+\special{pa 305 90}\special{pa 318 174}\special{pa 330 266}\special{pa 342 366}%
+\special{fp}%
+\special{pa 19 182}\special{pa 32 104}\special{pa 44 34}\special{pa 56 -28}\special{pa 69 -83}%
+\special{pa 81 -130}\special{pa 93 -169}\special{pa 105 -200}\special{pa 118 -224}%
+\special{pa 130 -240}\special{pa 142 -248}\special{pa 155 -249}\special{pa 167 -242}%
+\special{pa 179 -227}\special{pa 192 -204}\special{pa 204 -174}\special{pa 216 -136}%
+\special{pa 228 -91}\special{pa 241 -37}\special{pa 253 24}\special{pa 265 93}\special{pa 278 169}%
+\special{pa 290 253}\special{pa 302 345}\special{pa 315 445}%
+\special{fp}%
+\special{pa -9 250}\special{pa 4 172}\special{pa 16 102}\special{pa 28 40}\special{pa 41 -15}%
+\special{pa 53 -61}\special{pa 65 -101}\special{pa 78 -132}\special{pa 90 -156}\special{pa 102 -172}%
+\special{pa 115 -180}\special{pa 127 -181}\special{pa 139 -174}\special{pa 151 -159}%
+\special{pa 164 -136}\special{pa 176 -106}\special{pa 188 -68}\special{pa 201 -22}%
+\special{pa 213 31}\special{pa 225 92}\special{pa 238 161}\special{pa 250 237}\special{pa 262 321}%
+\special{pa 274 413}\special{pa 287 513}%
+\special{fp}%
+\special{pa -36 307}\special{pa -24 229}\special{pa -12 159}\special{pa 1 97}\special{pa 13 42}%
+\special{pa 25 -5}\special{pa 37 -44}\special{pa 50 -75}\special{pa 62 -99}\special{pa 74 -115}%
+\special{pa 87 -123}\special{pa 99 -124}\special{pa 111 -117}\special{pa 124 -102}%
+\special{pa 136 -79}\special{pa 148 -49}\special{pa 160 -11}\special{pa 173 34}\special{pa 185 88}%
+\special{pa 197 149}\special{pa 210 218}\special{pa 222 294}\special{pa 234 378}\special{pa 247 470}%
+\special{pa 259 570}%
+\special{fp}%
+\special{pa -64 353}\special{pa -52 275}\special{pa -40 205}\special{pa -27 143}\special{pa -15 88}%
+\special{pa -3 41}\special{pa 10 2}\special{pa 22 -29}\special{pa 34 -53}\special{pa 47 -69}%
+\special{pa 59 -77}\special{pa 71 -78}\special{pa 83 -71}\special{pa 96 -56}\special{pa 108 -34}%
+\special{pa 120 -3}\special{pa 133 35}\special{pa 145 80}\special{pa 157 134}\special{pa 170 195}%
+\special{pa 182 263}\special{pa 194 340}\special{pa 206 424}\special{pa 219 516}\special{pa 231 616}%
+\special{fp}%
+\special{pa -92 387}\special{pa -80 310}\special{pa -67 240}\special{pa -55 177}\special{pa -43 123}%
+\special{pa -30 76}\special{pa -18 37}\special{pa -6 5}\special{pa 6 -18}\special{pa 19 -34}%
+\special{pa 31 -43}\special{pa 43 -43}\special{pa 56 -36}\special{pa 68 -21}\special{pa 80 1}%
+\special{pa 93 31}\special{pa 105 69}\special{pa 117 115}\special{pa 129 168}\special{pa 142 229}%
+\special{pa 154 298}\special{pa 166 375}\special{pa 179 459}\special{pa 191 551}\special{pa 203 650}%
+\special{fp}%
+\special{pa -120 411}\special{pa -108 333}\special{pa -95 263}\special{pa -83 201}%
+\special{pa -71 147}\special{pa -58 100}\special{pa -46 60}\special{pa -34 29}\special{pa -21 5}%
+\special{pa -9 -11}\special{pa 3 -19}\special{pa 16 -20}\special{pa 28 -13}\special{pa 40 2}%
+\special{pa 52 25}\special{pa 65 55}\special{pa 77 93}\special{pa 89 139}\special{pa 102 192}%
+\special{pa 114 253}\special{pa 126 322}\special{pa 139 398}\special{pa 151 483}\special{pa 163 574}%
+\special{pa 175 674}%
+\special{fp}%
+\special{pa -148 424}\special{pa -135 346}\special{pa -123 276}\special{pa -111 214}%
+\special{pa -98 159}\special{pa -86 112}\special{pa -74 73}\special{pa -62 42}\special{pa -49 18}%
+\special{pa -37 2}\special{pa -25 -6}\special{pa -12 -7}\special{pa 0 0}\special{pa 12 15}%
+\special{pa 25 37}\special{pa 37 68}\special{pa 49 106}\special{pa 62 151}\special{pa 74 205}%
+\special{pa 86 266}\special{pa 98 334}\special{pa 111 411}\special{pa 123 495}\special{pa 135 587}%
+\special{pa 148 687}%
+\special{fp}%
+\special{pa -175 425}\special{pa -163 347}\special{pa -151 277}\special{pa -139 215}%
+\special{pa -126 160}\special{pa -114 114}\special{pa -102 74}\special{pa -89 43}%
+\special{pa -77 19}\special{pa -65 3}\special{pa -52 -5}\special{pa -40 -6}\special{pa -28 1}%
+\special{pa -16 16}\special{pa -3 39}\special{pa 9 69}\special{pa 21 107}\special{pa 34 153}%
+\special{pa 46 206}\special{pa 58 267}\special{pa 71 336}\special{pa 83 412}\special{pa 95 497}%
+\special{pa 108 588}\special{pa 120 688}%
+\special{fp}%
+\special{pa -203 415}\special{pa -191 338}\special{pa -179 268}\special{pa -166 205}%
+\special{pa -154 151}\special{pa -142 104}\special{pa -129 65}\special{pa -117 33}%
+\special{pa -105 10}\special{pa -93 -6}\special{pa -80 -15}\special{pa -68 -15}\special{pa -56 -8}%
+\special{pa -43 7}\special{pa -31 29}\special{pa -19 59}\special{pa -6 97}\special{pa 6 143}%
+\special{pa 18 196}\special{pa 30 257}\special{pa 43 326}\special{pa 55 403}\special{pa 67 487}%
+\special{pa 80 579}\special{pa 92 678}%
+\special{fp}%
+\special{pa -231 395}\special{pa -219 317}\special{pa -206 247}\special{pa -194 185}%
+\special{pa -182 130}\special{pa -170 83}\special{pa -157 44}\special{pa -145 13}%
+\special{pa -133 -11}\special{pa -120 -27}\special{pa -108 -36}\special{pa -96 -36}%
+\special{pa -83 -29}\special{pa -71 -14}\special{pa -59 8}\special{pa -47 39}\special{pa -34 76}%
+\special{pa -22 122}\special{pa -10 176}\special{pa 3 237}\special{pa 15 305}\special{pa 27 382}%
+\special{pa 40 466}\special{pa 52 558}\special{pa 64 658}%
+\special{fp}%
+\special{pa -259 363}\special{pa -247 285}\special{pa -234 215}\special{pa -222 153}%
+\special{pa -210 98}\special{pa -197 51}\special{pa -185 12}\special{pa -173 -19}%
+\special{pa -160 -43}\special{pa -148 -59}\special{pa -136 -67}\special{pa -124 -68}%
+\special{pa -111 -61}\special{pa -99 -46}\special{pa -87 -24}\special{pa -74 7}\special{pa -62 45}%
+\special{pa -50 90}\special{pa -37 144}\special{pa -25 205}\special{pa -13 273}\special{pa -1 350}%
+\special{pa 12 434}\special{pa 24 526}\special{pa 36 626}%
+\special{fp}%
+\special{pa -287 320}\special{pa -274 242}\special{pa -262 172}\special{pa -250 110}%
+\special{pa -238 55}\special{pa -225 8}\special{pa -213 -31}\special{pa -201 -62}%
+\special{pa -188 -86}\special{pa -176 -102}\special{pa -164 -110}\special{pa -151 -111}%
+\special{pa -139 -104}\special{pa -127 -89}\special{pa -115 -67}\special{pa -102 -36}%
+\special{pa -90 2}\special{pa -78 47}\special{pa -65 101}\special{pa -53 162}\special{pa -41 231}%
+\special{pa -28 307}\special{pa -16 391}\special{pa -4 483}\special{pa 9 583}%
+\special{fp}%
+\special{pa -315 266}\special{pa -302 188}\special{pa -290 118}\special{pa -278 56}%
+\special{pa -265 1}\special{pa -253 -46}\special{pa -241 -85}\special{pa -228 -116}%
+\special{pa -216 -140}\special{pa -204 -156}\special{pa -192 -164}\special{pa -179 -165}%
+\special{pa -167 -158}\special{pa -155 -143}\special{pa -142 -121}\special{pa -130 -90}%
+\special{pa -118 -52}\special{pa -105 -7}\special{pa -93 47}\special{pa -81 108}\special{pa -69 176}%
+\special{pa -56 253}\special{pa -44 337}\special{pa -32 429}\special{pa -19 529}%
+\special{fp}%
+\special{pa -342 200}\special{pa -330 123}\special{pa -318 53}\special{pa -305 -10}%
+\special{pa -293 -64}\special{pa -281 -111}\special{pa -269 -150}\special{pa -256 -182}%
+\special{pa -244 -205}\special{pa -232 -221}\special{pa -219 -230}\special{pa -207 -230}%
+\special{pa -195 -223}\special{pa -182 -208}\special{pa -170 -186}\special{pa -158 -156}%
+\special{pa -146 -118}\special{pa -133 -72}\special{pa -121 -19}\special{pa -109 42}%
+\special{pa -96 111}\special{pa -84 188}\special{pa -72 272}\special{pa -59 364}\special{pa -47 463}%
+\special{fp}%
+\special{pa -370 124}\special{pa -358 46}\special{pa -346 -24}\special{pa -333 -86}%
+\special{pa -321 -140}\special{pa -309 -187}\special{pa -296 -226}\special{pa -284 -258}%
+\special{pa -272 -282}\special{pa -259 -298}\special{pa -247 -306}\special{pa -235 -307}%
+\special{pa -223 -299}\special{pa -210 -285}\special{pa -198 -262}\special{pa -186 -232}%
+\special{pa -173 -194}\special{pa -161 -148}\special{pa -149 -95}\special{pa -136 -34}%
+\special{pa -124 35}\special{pa -112 111}\special{pa -100 196}\special{pa -87 288}%
+\special{pa -75 387}%
+\special{fp}%
+\special{pa -398 37}\special{pa -386 -41}\special{pa -373 -111}\special{pa -361 -173}%
+\special{pa -349 -228}\special{pa -337 -275}\special{pa -324 -314}\special{pa -312 -345}%
+\special{pa -300 -369}\special{pa -287 -385}\special{pa -275 -393}\special{pa -263 -394}%
+\special{pa -250 -387}\special{pa -238 -372}\special{pa -226 -349}\special{pa -213 -319}%
+\special{pa -201 -281}\special{pa -189 -236}\special{pa -177 -182}\special{pa -164 -121}%
+\special{pa -152 -52}\special{pa -140 24}\special{pa -127 108}\special{pa -115 200}%
+\special{pa -103 300}%
+\special{fp}%
+\special{pa -426 -62}\special{pa -414 -139}\special{pa -401 -209}\special{pa -389 -272}%
+\special{pa -377 -326}\special{pa -364 -373}\special{pa -352 -412}\special{pa -340 -444}%
+\special{pa -327 -467}\special{pa -315 -484}\special{pa -303 -492}\special{pa -291 -492}%
+\special{pa -278 -485}\special{pa -266 -471}\special{pa -254 -448}\special{pa -241 -418}%
+\special{pa -229 -380}\special{pa -217 -334}\special{pa -204 -281}\special{pa -192 -220}%
+\special{pa -180 -151}\special{pa -168 -74}\special{pa -155 10}\special{pa -143 102}%
+\special{pa -131 201}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex
new file mode 100644
index 00000000..a2585b31
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata3.tex
@@ -0,0 +1,312 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-7 19:12
+%%% template.sce 2016-8-7 19:12
+{\unitlength=6mm%
+\begin{picture}%
+( 10.01000, 7.51000)( -5.01000, -2.51000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.6011,-1.1540){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.4854,-2.2142){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1043 -262}\special{pa -1043 262}%
+\special{fp}%
+\special{pa -554 -493}\special{pa 554 493}%
+\special{fp}%
+\special{pa 0 593}\special{pa 0 -1041}%
+\special{fp}%
+\special{pa 0 0}\special{pa -26 -19}\special{pa -52 -38}\special{pa -78 -57}\special{pa -104 -74}%
+\special{pa -130 -89}\special{pa -156 -103}\special{pa -183 -114}\special{pa -209 -123}%
+\special{pa -235 -129}\special{pa -261 -132}\special{pa -287 -132}\special{pa -313 -129}%
+\special{pa -339 -123}\special{pa -365 -113}\special{pa -391 -100}\special{pa -417 -85}%
+\special{pa -443 -66}\special{pa -469 -44}\special{pa -496 -20}\special{pa -522 6}%
+\special{pa -548 35}\special{pa -574 64}\special{pa -600 96}\special{pa -626 128}%
+\special{fp}%
+\special{pa 0 0}\special{pa -21 -16}\special{pa -41 -31}\special{pa -62 -46}\special{pa -82 -60}%
+\special{pa -103 -72}\special{pa -123 -82}\special{pa -144 -90}\special{pa -164 -95}%
+\special{pa -185 -98}\special{pa -205 -97}\special{pa -226 -94}\special{pa -246 -87}%
+\special{pa -267 -77}\special{pa -287 -64}\special{pa -308 -48}\special{pa -328 -29}%
+\special{pa -349 -6}\special{pa -370 19}\special{pa -390 46}\special{pa -411 76}\special{pa -431 108}%
+\special{pa -452 141}\special{pa -472 176}\special{pa -493 211}%
+\special{fp}%
+\special{pa 0 0}\special{pa -13 -13}\special{pa -26 -26}\special{pa -39 -39}\special{pa -52 -50}%
+\special{pa -65 -59}\special{pa -78 -67}\special{pa -91 -72}\special{pa -104 -75}%
+\special{pa -117 -75}\special{pa -130 -72}\special{pa -143 -66}\special{pa -156 -57}%
+\special{pa -169 -45}\special{pa -182 -29}\special{pa -195 -11}\special{pa -207 11}%
+\special{pa -220 36}\special{pa -233 64}\special{pa -246 94}\special{pa -259 126}%
+\special{pa -272 161}\special{pa -285 196}\special{pa -298 234}\special{pa -311 272}%
+\special{fp}%
+\special{pa 0 0}\special{pa -4 -12}\special{pa -8 -24}\special{pa -12 -35}\special{pa -17 -45}%
+\special{pa -21 -53}\special{pa -25 -59}\special{pa -29 -63}\special{pa -33 -65}\special{pa -37 -63}%
+\special{pa -41 -59}\special{pa -45 -52}\special{pa -50 -42}\special{pa -54 -28}\special{pa -58 -11}%
+\special{pa -62 9}\special{pa -66 32}\special{pa -70 58}\special{pa -74 87}\special{pa -79 118}%
+\special{pa -83 152}\special{pa -87 187}\special{pa -91 225}\special{pa -95 263}\special{pa -99 302}%
+\special{fp}%
+\special{pa 0 0}\special{pa 5 -12}\special{pa 10 -24}\special{pa 15 -35}\special{pa 20 -45}%
+\special{pa 26 -53}\special{pa 31 -59}\special{pa 36 -64}\special{pa 41 -65}\special{pa 46 -64}%
+\special{pa 51 -60}\special{pa 56 -53}\special{pa 61 -43}\special{pa 66 -29}\special{pa 71 -12}%
+\special{pa 77 8}\special{pa 82 31}\special{pa 87 57}\special{pa 92 85}\special{pa 97 117}%
+\special{pa 102 150}\special{pa 107 186}\special{pa 112 223}\special{pa 117 261}\special{pa 122 301}%
+\special{fp}%
+\special{pa 0 0}\special{pa 14 -14}\special{pa 28 -27}\special{pa 42 -39}\special{pa 55 -50}%
+\special{pa 69 -60}\special{pa 83 -68}\special{pa 97 -73}\special{pa 111 -77}\special{pa 125 -77}%
+\special{pa 138 -74}\special{pa 152 -69}\special{pa 166 -60}\special{pa 180 -48}\special{pa 194 -32}%
+\special{pa 208 -14}\special{pa 221 8}\special{pa 235 33}\special{pa 249 60}\special{pa 263 90}%
+\special{pa 277 122}\special{pa 291 156}\special{pa 304 192}\special{pa 318 229}\special{pa 332 267}%
+\special{fp}%
+\special{pa 0 0}\special{pa 21 -16}\special{pa 42 -32}\special{pa 64 -47}\special{pa 85 -61}%
+\special{pa 106 -73}\special{pa 127 -84}\special{pa 149 -92}\special{pa 170 -98}\special{pa 191 -100}%
+\special{pa 212 -101}\special{pa 233 -97}\special{pa 255 -91}\special{pa 276 -82}%
+\special{pa 297 -69}\special{pa 318 -53}\special{pa 340 -34}\special{pa 361 -12}\special{pa 382 13}%
+\special{pa 403 40}\special{pa 424 70}\special{pa 446 101}\special{pa 467 134}\special{pa 488 168}%
+\special{pa 509 204}%
+\special{fp}%
+\special{pa 0 0}\special{pa 27 -20}\special{pa 53 -39}\special{pa 80 -58}\special{pa 106 -75}%
+\special{pa 133 -91}\special{pa 159 -105}\special{pa 186 -117}\special{pa 212 -126}%
+\special{pa 239 -133}\special{pa 265 -136}\special{pa 292 -137}\special{pa 318 -134}%
+\special{pa 345 -128}\special{pa 371 -119}\special{pa 398 -107}\special{pa 424 -91}%
+\special{pa 451 -73}\special{pa 478 -52}\special{pa 504 -28}\special{pa 531 -2}\special{pa 557 26}%
+\special{pa 584 55}\special{pa 610 86}\special{pa 637 118}%
+\special{fp}%
+\special{pa 0 0}\special{pa 29 -24}\special{pa 58 -48}\special{pa 88 -70}\special{pa 117 -92}%
+\special{pa 146 -112}\special{pa 175 -130}\special{pa 205 -146}\special{pa 234 -160}%
+\special{pa 263 -170}\special{pa 292 -178}\special{pa 322 -183}\special{pa 351 -184}%
+\special{pa 380 -182}\special{pa 409 -177}\special{pa 439 -169}\special{pa 468 -158}%
+\special{pa 497 -144}\special{pa 526 -127}\special{pa 555 -107}\special{pa 585 -85}%
+\special{pa 614 -62}\special{pa 643 -36}\special{pa 672 -10}\special{pa 702 18}%
+\special{fp}%
+\special{pa 0 0}\special{pa 29 -28}\special{pa 58 -56}\special{pa 87 -83}\special{pa 116 -109}%
+\special{pa 145 -134}\special{pa 175 -156}\special{pa 204 -177}\special{pa 233 -194}%
+\special{pa 262 -210}\special{pa 291 -222}\special{pa 320 -231}\special{pa 349 -237}%
+\special{pa 378 -239}\special{pa 407 -239}\special{pa 436 -235}\special{pa 465 -228}%
+\special{pa 494 -218}\special{pa 524 -205}\special{pa 553 -190}\special{pa 582 -173}%
+\special{pa 611 -153}\special{pa 640 -133}\special{pa 669 -110}\special{pa 698 -87}%
+\special{fp}%
+\special{pa 0 0}\special{pa 26 -32}\special{pa 52 -65}\special{pa 78 -96}\special{pa 104 -126}%
+\special{pa 130 -155}\special{pa 156 -181}\special{pa 183 -206}\special{pa 209 -227}%
+\special{pa 235 -247}\special{pa 261 -263}\special{pa 287 -276}\special{pa 313 -286}%
+\special{pa 339 -293}\special{pa 365 -296}\special{pa 391 -297}\special{pa 417 -294}%
+\special{pa 443 -288}\special{pa 469 -280}\special{pa 496 -269}\special{pa 522 -255}%
+\special{pa 548 -240}\special{pa 574 -223}\special{pa 600 -205}\special{pa 626 -186}%
+\special{fp}%
+\special{pa 0 0}\special{pa 21 -36}\special{pa 41 -72}\special{pa 62 -106}\special{pa 82 -140}%
+\special{pa 103 -172}\special{pa 123 -202}\special{pa 144 -230}\special{pa 164 -255}%
+\special{pa 185 -278}\special{pa 205 -298}\special{pa 226 -315}\special{pa 246 -328}%
+\special{pa 267 -338}\special{pa 287 -345}\special{pa 308 -349}\special{pa 328 -350}%
+\special{pa 349 -348}\special{pa 370 -343}\special{pa 390 -335}\special{pa 411 -325}%
+\special{pa 431 -313}\special{pa 452 -300}\special{pa 472 -286}\special{pa 493 -270}%
+\special{fp}%
+\special{pa 0 0}\special{pa 13 -38}\special{pa 26 -77}\special{pa 39 -114}\special{pa 52 -150}%
+\special{pa 65 -184}\special{pa 78 -217}\special{pa 91 -248}\special{pa 104 -275}%
+\special{pa 117 -301}\special{pa 130 -323}\special{pa 143 -342}\special{pa 156 -358}%
+\special{pa 169 -371}\special{pa 182 -380}\special{pa 195 -387}\special{pa 207 -390}%
+\special{pa 220 -390}\special{pa 233 -388}\special{pa 246 -383}\special{pa 259 -375}%
+\special{pa 272 -366}\special{pa 285 -355}\special{pa 298 -343}\special{pa 311 -330}%
+\special{fp}%
+\special{pa 0 0}\special{pa 4 -40}\special{pa 8 -79}\special{pa 12 -118}\special{pa 17 -155}%
+\special{pa 21 -191}\special{pa 25 -225}\special{pa 29 -257}\special{pa 33 -286}\special{pa 37 -312}%
+\special{pa 41 -336}\special{pa 45 -356}\special{pa 50 -373}\special{pa 54 -388}\special{pa 58 -398}%
+\special{pa 62 -406}\special{pa 66 -410}\special{pa 70 -412}\special{pa 74 -411}\special{pa 79 -407}%
+\special{pa 83 -401}\special{pa 87 -393}\special{pa 91 -383}\special{pa 95 -373}\special{pa 99 -361}%
+\special{fp}%
+\special{pa 0 0}\special{pa -5 -40}\special{pa -10 -79}\special{pa -15 -117}\special{pa -20 -155}%
+\special{pa -26 -191}\special{pa -31 -224}\special{pa -36 -256}\special{pa -41 -285}%
+\special{pa -46 -312}\special{pa -51 -335}\special{pa -56 -355}\special{pa -61 -373}%
+\special{pa -66 -387}\special{pa -71 -397}\special{pa -77 -405}\special{pa -82 -409}%
+\special{pa -87 -411}\special{pa -92 -409}\special{pa -97 -406}\special{pa -102 -400}%
+\special{pa -107 -392}\special{pa -112 -382}\special{pa -117 -371}\special{pa -122 -359}%
+\special{fp}%
+\special{pa 0 0}\special{pa -14 -38}\special{pa -28 -76}\special{pa -42 -113}\special{pa -55 -149}%
+\special{pa -69 -183}\special{pa -83 -216}\special{pa -97 -246}\special{pa -111 -274}%
+\special{pa -125 -299}\special{pa -138 -321}\special{pa -152 -340}\special{pa -166 -356}%
+\special{pa -180 -368}\special{pa -194 -377}\special{pa -208 -384}\special{pa -221 -387}%
+\special{pa -235 -387}\special{pa -249 -384}\special{pa -263 -379}\special{pa -277 -371}%
+\special{pa -291 -362}\special{pa -304 -351}\special{pa -318 -338}\special{pa -332 -325}%
+\special{fp}%
+\special{pa 0 0}\special{pa -21 -36}\special{pa -42 -71}\special{pa -64 -105}\special{pa -85 -139}%
+\special{pa -106 -170}\special{pa -127 -200}\special{pa -149 -228}\special{pa -170 -253}%
+\special{pa -191 -275}\special{pa -212 -295}\special{pa -233 -311}\special{pa -255 -324}%
+\special{pa -276 -334}\special{pa -297 -341}\special{pa -318 -344}\special{pa -340 -345}%
+\special{pa -361 -342}\special{pa -382 -337}\special{pa -403 -329}\special{pa -424 -319}%
+\special{pa -446 -307}\special{pa -467 -293}\special{pa -488 -278}\special{pa -509 -262}%
+\special{fp}%
+\special{pa 0 0}\special{pa -27 -32}\special{pa -53 -64}\special{pa -80 -95}\special{pa -106 -124}%
+\special{pa -133 -152}\special{pa -159 -179}\special{pa -186 -203}\special{pa -212 -224}%
+\special{pa -239 -243}\special{pa -265 -259}\special{pa -292 -272}\special{pa -318 -281}%
+\special{pa -345 -288}\special{pa -371 -291}\special{pa -398 -291}\special{pa -424 -287}%
+\special{pa -451 -281}\special{pa -478 -272}\special{pa -504 -261}\special{pa -531 -247}%
+\special{pa -557 -232}\special{pa -584 -214}\special{pa -610 -196}\special{pa -637 -176}%
+\special{fp}%
+\special{pa 0 0}\special{pa -29 -28}\special{pa -58 -55}\special{pa -88 -82}\special{pa -117 -108}%
+\special{pa -146 -132}\special{pa -175 -154}\special{pa -205 -173}\special{pa -234 -191}%
+\special{pa -263 -205}\special{pa -292 -217}\special{pa -322 -226}\special{pa -351 -231}%
+\special{pa -380 -233}\special{pa -409 -232}\special{pa -439 -228}\special{pa -468 -221}%
+\special{pa -497 -210}\special{pa -526 -197}\special{pa -555 -182}\special{pa -585 -164}%
+\special{pa -614 -144}\special{pa -643 -122}\special{pa -672 -100}\special{pa -702 -76}%
+\special{fp}%
+\special{pa 0 0}\special{pa -29 -24}\special{pa -58 -47}\special{pa -87 -69}\special{pa -116 -90}%
+\special{pa -145 -110}\special{pa -175 -127}\special{pa -204 -143}\special{pa -233 -156}%
+\special{pa -262 -166}\special{pa -291 -173}\special{pa -320 -178}\special{pa -349 -179}%
+\special{pa -378 -177}\special{pa -407 -171}\special{pa -436 -162}\special{pa -465 -151}%
+\special{pa -494 -136}\special{pa -524 -119}\special{pa -553 -99}\special{pa -582 -76}%
+\special{pa -611 -52}\special{pa -640 -26}\special{pa -669 1}\special{pa -698 29}%
+\special{fp}%
+\special{pa 0 0}\special{pa -26 -19}\special{pa -52 -38}\special{pa -78 -57}\special{pa -104 -74}%
+\special{pa -130 -89}\special{pa -156 -103}\special{pa -183 -114}\special{pa -209 -123}%
+\special{pa -235 -129}\special{pa -261 -132}\special{pa -287 -132}\special{pa -313 -129}%
+\special{pa -339 -123}\special{pa -365 -113}\special{pa -391 -100}\special{pa -417 -85}%
+\special{pa -443 -66}\special{pa -469 -44}\special{pa -496 -20}\special{pa -522 6}%
+\special{pa -548 35}\special{pa -574 64}\special{pa -600 96}\special{pa -626 128}%
+\special{fp}%
+\special{pa 3 -3}\special{pa -3 -3}\special{pa -3 3}\special{pa 3 3}\special{pa 3 -3}%
+\special{sh 1}\special{fp}%
+\special{pa -31 -23}\special{pa -26 -20}\special{pa -19 -17}\special{pa -10 -15}\special{pa -1 -14}%
+\special{pa 8 -15}\special{pa 17 -16}\special{pa 24 -19}\special{pa 30 -22}\special{pa 34 -26}%
+\special{pa 35 -31}\special{pa 35 -35}\special{pa 31 -39}\special{pa 26 -43}\special{pa 19 -45}%
+\special{pa 10 -47}\special{pa 1 -48}\special{pa -8 -47}\special{pa -17 -46}\special{pa -24 -43}%
+\special{pa -30 -40}\special{pa -34 -36}\special{pa -35 -32}\special{pa -35 -27}\special{pa -31 -23}%
+\special{fp}%
+\special{pa -63 -46}\special{pa -52 -39}\special{pa -38 -33}\special{pa -21 -29}\special{pa -3 -28}%
+\special{pa 16 -29}\special{pa 33 -32}\special{pa 48 -37}\special{pa 60 -44}\special{pa 68 -52}%
+\special{pa 71 -60}\special{pa 69 -69}\special{pa 63 -77}\special{pa 52 -84}\special{pa 38 -90}%
+\special{pa 21 -94}\special{pa 3 -95}\special{pa -16 -94}\special{pa -33 -91}\special{pa -48 -86}%
+\special{pa -60 -79}\special{pa -68 -71}\special{pa -71 -63}\special{pa -69 -54}\special{pa -63 -46}%
+\special{fp}%
+\special{pa -94 -67}\special{pa -78 -56}\special{pa -56 -48}\special{pa -31 -43}\special{pa -4 -40}%
+\special{pa 24 -42}\special{pa 50 -46}\special{pa 72 -54}\special{pa 90 -64}\special{pa 102 -76}%
+\special{pa 106 -89}\special{pa 104 -102}\special{pa 94 -114}\special{pa 78 -125}%
+\special{pa 56 -133}\special{pa 31 -139}\special{pa 4 -141}\special{pa -24 -140}\special{pa -50 -135}%
+\special{pa -72 -127}\special{pa -90 -117}\special{pa -102 -105}\special{pa -106 -92}%
+\special{pa -104 -79}\special{pa -94 -67}%
+\special{fp}%
+\special{pa -125 -86}\special{pa -104 -72}\special{pa -75 -61}\special{pa -42 -53}%
+\special{pa -5 -51}\special{pa 32 -52}\special{pa 66 -58}\special{pa 97 -69}\special{pa 120 -82}%
+\special{pa 136 -98}\special{pa 142 -115}\special{pa 138 -133}\special{pa 125 -149}%
+\special{pa 104 -163}\special{pa 75 -174}\special{pa 42 -182}\special{pa 5 -184}\special{pa -32 -183}%
+\special{pa -66 -177}\special{pa -97 -167}\special{pa -120 -153}\special{pa -136 -137}%
+\special{pa -142 -120}\special{pa -138 -103}\special{pa -125 -86}%
+\special{fp}%
+\special{pa -156 -103}\special{pa -130 -85}\special{pa -94 -71}\special{pa -52 -62}%
+\special{pa -6 -58}\special{pa 40 -60}\special{pa 83 -68}\special{pa 121 -81}\special{pa 150 -97}%
+\special{pa 169 -117}\special{pa 177 -139}\special{pa 173 -161}\special{pa 156 -181}%
+\special{pa 130 -199}\special{pa 94 -213}\special{pa 52 -222}\special{pa 6 -226}\special{pa -40 -224}%
+\special{pa -83 -216}\special{pa -121 -203}\special{pa -150 -186}\special{pa -169 -166}%
+\special{pa -177 -145}\special{pa -173 -123}\special{pa -156 -103}%
+\special{fp}%
+\special{pa -188 -116}\special{pa -156 -95}\special{pa -113 -78}\special{pa -62 -67}%
+\special{pa -8 -63}\special{pa 48 -65}\special{pa 100 -74}\special{pa 145 -90}\special{pa 180 -110}%
+\special{pa 203 -134}\special{pa 212 -159}\special{pa 207 -186}\special{pa 188 -210}%
+\special{pa 156 -232}\special{pa 113 -248}\special{pa 62 -259}\special{pa 8 -263}%
+\special{pa -48 -261}\special{pa -100 -252}\special{pa -145 -237}\special{pa -180 -216}%
+\special{pa -203 -193}\special{pa -212 -167}\special{pa -207 -141}\special{pa -188 -116}%
+\special{fp}%
+\special{pa -219 -126}\special{pa -182 -101}\special{pa -132 -81}\special{pa -73 -68}%
+\special{pa -9 -63}\special{pa 56 -66}\special{pa 116 -77}\special{pa 169 -95}\special{pa 210 -118}%
+\special{pa 237 -146}\special{pa 248 -176}\special{pa 242 -207}\special{pa 219 -236}%
+\special{pa 182 -260}\special{pa 132 -280}\special{pa 73 -293}\special{pa 9 -298}%
+\special{pa -56 -295}\special{pa -116 -284}\special{pa -169 -266}\special{pa -210 -243}%
+\special{pa -237 -215}\special{pa -248 -185}\special{pa -242 -154}\special{pa -219 -126}%
+\special{fp}%
+\special{pa -250 -131}\special{pa -207 -103}\special{pa -150 -80}\special{pa -83 -66}%
+\special{pa -10 -60}\special{pa 64 -63}\special{pa 133 -76}\special{pa 193 -96}\special{pa 240 -123}%
+\special{pa 271 -155}\special{pa 283 -189}\special{pa 276 -224}\special{pa 250 -257}%
+\special{pa 207 -285}\special{pa 150 -308}\special{pa 83 -322}\special{pa 10 -328}%
+\special{pa -64 -325}\special{pa -133 -312}\special{pa -193 -292}\special{pa -240 -265}%
+\special{pa -271 -233}\special{pa -283 -199}\special{pa -276 -164}\special{pa -250 -131}%
+\special{fp}%
+\special{pa -282 -132}\special{pa -233 -100}\special{pa -169 -75}\special{pa -94 -59}%
+\special{pa -11 -52}\special{pa 71 -56}\special{pa 149 -70}\special{pa 217 -93}\special{pa 270 -123}%
+\special{pa 305 -159}\special{pa 319 -198}\special{pa 311 -237}\special{pa 282 -274}%
+\special{pa 233 -306}\special{pa 169 -331}\special{pa 94 -347}\special{pa 11 -354}%
+\special{pa -71 -350}\special{pa -149 -336}\special{pa -217 -313}\special{pa -270 -283}%
+\special{pa -305 -247}\special{pa -319 -209}\special{pa -311 -169}\special{pa -282 -132}%
+\special{fp}%
+\special{pa -313 -129}\special{pa -259 -94}\special{pa -188 -66}\special{pa -104 -48}%
+\special{pa -13 -40}\special{pa 79 -44}\special{pa 166 -60}\special{pa 241 -85}\special{pa 300 -119}%
+\special{pa 339 -159}\special{pa 354 -202}\special{pa 345 -245}\special{pa 313 -286}%
+\special{pa 259 -322}\special{pa 188 -350}\special{pa 104 -368}\special{pa 13 -375}%
+\special{pa -79 -371}\special{pa -166 -356}\special{pa -241 -330}\special{pa -300 -297}%
+\special{pa -339 -257}\special{pa -354 -214}\special{pa -345 -170}\special{pa -313 -129}%
+\special{fp}%
+\special{pa -344 -121}\special{pa -285 -82}\special{pa -207 -51}\special{pa -114 -31}%
+\special{pa -14 -23}\special{pa 87 -28}\special{pa 183 -45}\special{pa 266 -73}\special{pa 330 -110}%
+\special{pa 373 -153}\special{pa 390 -201}\special{pa 380 -249}\special{pa 344 -294}%
+\special{pa 285 -333}\special{pa 207 -364}\special{pa 114 -384}\special{pa 14 -392}%
+\special{pa -87 -387}\special{pa -183 -370}\special{pa -266 -342}\special{pa -330 -305}%
+\special{pa -373 -262}\special{pa -390 -214}\special{pa -380 -166}\special{pa -344 -121}%
+\special{fp}%
+\special{pa -376 -109}\special{pa -311 -66}\special{pa -226 -32}\special{pa -125 -11}%
+\special{pa -15 -2}\special{pa 95 -7}\special{pa 199 -25}\special{pa 290 -56}\special{pa 360 -96}%
+\special{pa 407 -144}\special{pa 425 -196}\special{pa 414 -248}\special{pa 376 -297}%
+\special{pa 311 -340}\special{pa 226 -373}\special{pa 125 -395}\special{pa 15 -404}%
+\special{pa -95 -399}\special{pa -199 -380}\special{pa -290 -350}\special{pa -360 -309}%
+\special{pa -407 -262}\special{pa -425 -210}\special{pa -414 -158}\special{pa -376 -109}%
+\special{fp}%
+\special{pa -407 -91}\special{pa -337 -45}\special{pa -244 -9}\special{pa -135 15}%
+\special{pa -16 24}\special{pa 103 19}\special{pa 216 -1}\special{pa 314 -34}\special{pa 390 -78}%
+\special{pa 440 -130}\special{pa 460 -186}\special{pa 449 -242}\special{pa 407 -295}%
+\special{pa 337 -342}\special{pa 244 -378}\special{pa 135 -402}\special{pa 16 -411}%
+\special{pa -103 -406}\special{pa -216 -386}\special{pa -314 -353}\special{pa -390 -309}%
+\special{pa -440 -257}\special{pa -460 -201}\special{pa -449 -145}\special{pa -407 -91}%
+\special{fp}%
+\special{pa -438 -70}\special{pa -363 -20}\special{pa -263 19}\special{pa -145 44}%
+\special{pa -18 55}\special{pa 111 49}\special{pa 233 27}\special{pa 338 -8}\special{pa 420 -55}%
+\special{pa 474 -111}\special{pa 496 -171}\special{pa 483 -232}\special{pa 438 -290}%
+\special{pa 363 -339}\special{pa 263 -378}\special{pa 145 -404}\special{pa 18 -414}%
+\special{pa -111 -408}\special{pa -233 -387}\special{pa -338 -351}\special{pa -420 -304}%
+\special{pa -474 -248}\special{pa -496 -188}\special{pa -483 -127}\special{pa -438 -70}%
+\special{fp}%
+\special{pa -469 -44}\special{pa -389 9}\special{pa -282 51}\special{pa -156 78}\special{pa -19 89}%
+\special{pa 119 83}\special{pa 249 60}\special{pa 362 22}\special{pa 450 -29}\special{pa 508 -88}%
+\special{pa 531 -153}\special{pa 518 -218}\special{pa 469 -280}\special{pa 389 -333}%
+\special{pa 282 -375}\special{pa 156 -402}\special{pa 19 -413}\special{pa -119 -407}%
+\special{pa -249 -384}\special{pa -362 -346}\special{pa -450 -295}\special{pa -508 -236}%
+\special{pa -531 -171}\special{pa -518 -106}\special{pa -469 -44}%
+\special{fp}%
+\special{pa -501 -15}\special{pa -415 42}\special{pa -301 87}\special{pa -166 116}%
+\special{pa -20 127}\special{pa 127 121}\special{pa 266 96}\special{pa 386 56}\special{pa 481 2}%
+\special{pa 542 -62}\special{pa 567 -131}\special{pa 553 -201}\special{pa 501 -266}%
+\special{pa 415 -323}\special{pa 301 -368}\special{pa 166 -397}\special{pa 20 -408}%
+\special{pa -127 -402}\special{pa -266 -377}\special{pa -386 -337}\special{pa -481 -283}%
+\special{pa -542 -219}\special{pa -567 -150}\special{pa -553 -81}\special{pa -501 -15}%
+\special{fp}%
+\special{pa -532 17}\special{pa -441 78}\special{pa -320 125}\special{pa -177 156}%
+\special{pa -22 168}\special{pa 135 161}\special{pa 282 135}\special{pa 410 92}\special{pa 511 35}%
+\special{pa 576 -33}\special{pa 602 -106}\special{pa 587 -180}\special{pa 532 -250}%
+\special{pa 441 -310}\special{pa 320 -357}\special{pa 177 -388}\special{pa 22 -401}%
+\special{pa -135 -394}\special{pa -282 -368}\special{pa -410 -324}\special{pa -511 -267}%
+\special{pa -576 -200}\special{pa -602 -126}\special{pa -587 -52}\special{pa -532 17}%
+\special{fp}%
+\special{pa -563 52}\special{pa -467 116}\special{pa -338 167}\special{pa -187 199}%
+\special{pa -23 212}\special{pa 143 205}\special{pa 299 177}\special{pa 435 132}\special{pa 541 71}%
+\special{pa 610 -1}\special{pa 637 -78}\special{pa 622 -157}\special{pa 563 -230}%
+\special{pa 467 -294}\special{pa 338 -344}\special{pa 187 -377}\special{pa 23 -390}%
+\special{pa -143 -383}\special{pa -299 -355}\special{pa -435 -310}\special{pa -541 -249}%
+\special{pa -610 -177}\special{pa -637 -100}\special{pa -622 -21}\special{pa -563 52}%
+\special{fp}%
+\special{pa -595 89}\special{pa -493 157}\special{pa -357 210}\special{pa -197 244}%
+\special{pa -24 258}\special{pa 151 250}\special{pa 316 221}\special{pa 459 173}\special{pa 571 109}%
+\special{pa 644 33}\special{pa 673 -48}\special{pa 656 -131}\special{pa 595 -209}%
+\special{pa 493 -277}\special{pa 357 -330}\special{pa 197 -364}\special{pa 24 -378}%
+\special{pa -151 -370}\special{pa -316 -341}\special{pa -459 -293}\special{pa -571 -229}%
+\special{pa -644 -153}\special{pa -673 -71}\special{pa -656 11}\special{pa -595 89}%
+\special{fp}%
+\special{pa -626 128}\special{pa -519 199}\special{pa -376 255}\special{pa -208 291}%
+\special{pa -25 305}\special{pa 159 297}\special{pa 332 267}\special{pa 483 216}\special{pa 601 148}%
+\special{pa 678 69}\special{pa 708 -17}\special{pa 691 -104}\special{pa 626 -186}%
+\special{pa 519 -258}\special{pa 376 -313}\special{pa 208 -350}\special{pa 25 -364}%
+\special{pa -159 -356}\special{pa -332 -325}\special{pa -483 -275}\special{pa -601 -207}%
+\special{pa -678 -128}\special{pa -708 -41}\special{pa -691 46}\special{pa -626 128}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex
new file mode 100644
index 00000000..7c4fa9d6
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sf3ddata4.tex
@@ -0,0 +1,326 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 20:36
+%%% template.sce 2016-8-13 20:36
+{\unitlength=6mm%
+\begin{picture}%
+( 9.80000, 7.34000)( -4.79000, -3.00000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.8116,-0.8391){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2443,-2.2778){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.7149){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1071 -236}\special{pa -857 189}%
+\special{fp}%
+\special{pa -499 -506}\special{pa 499 506}%
+\special{fp}%
+\special{pa 0 709}\special{pa 0 -833}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -56 -400}\special{pa -111 -378}\special{pa -164 -349}%
+\special{pa -214 -313}\special{pa -261 -273}\special{pa -303 -228}\special{pa -340 -179}%
+\special{pa -371 -127}\special{pa -396 -72}\special{pa -414 -17}\special{pa -425 39}%
+\special{pa -428 94}\special{pa -425 148}\special{pa -414 199}\special{pa -396 246}%
+\special{pa -371 290}\special{pa -340 328}\special{pa -303 361}\special{pa -261 388}%
+\special{pa -214 408}\special{pa -164 421}\special{pa -111 427}\special{pa -56 425}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -45 -393}\special{pa -89 -363}\special{pa -132 -326}%
+\special{pa -173 -284}\special{pa -210 -238}\special{pa -244 -187}\special{pa -274 -133}%
+\special{pa -299 -76}\special{pa -319 -19}\special{pa -334 39}\special{pa -343 97}%
+\special{pa -346 152}\special{pa -343 205}\special{pa -334 255}\special{pa -319 300}%
+\special{pa -299 340}\special{pa -274 374}\special{pa -244 402}\special{pa -210 423}%
+\special{pa -173 437}\special{pa -132 443}\special{pa -89 442}\special{pa -45 433}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -30 -387}\special{pa -59 -352}\special{pa -88 -310}%
+\special{pa -115 -263}\special{pa -140 -211}\special{pa -162 -156}\special{pa -182 -99}%
+\special{pa -199 -39}\special{pa -212 21}\special{pa -221 81}\special{pa -227 139}%
+\special{pa -229 195}\special{pa -227 248}\special{pa -221 296}\special{pa -212 340}%
+\special{pa -199 377}\special{pa -182 408}\special{pa -162 432}\special{pa -140 449}%
+\special{pa -115 458}\special{pa -88 459}\special{pa -59 453}\special{pa -30 438}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -12 -384}\special{pa -23 -345}\special{pa -35 -301}%
+\special{pa -45 -251}\special{pa -55 -197}\special{pa -64 -139}\special{pa -72 -80}%
+\special{pa -78 -18}\special{pa -83 43}\special{pa -87 104}\special{pa -90 163}\special{pa -90 219}%
+\special{pa -90 272}\special{pa -87 319}\special{pa -83 362}\special{pa -78 398}\special{pa -72 427}%
+\special{pa -64 449}\special{pa -55 464}\special{pa -45 470}\special{pa -35 469}\special{pa -23 459}%
+\special{pa -12 441}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 7 -384}\special{pa 15 -345}\special{pa 22 -300}\special{pa 29 -250}%
+\special{pa 35 -195}\special{pa 41 -138}\special{pa 46 -78}\special{pa 50 -16}\special{pa 53 45}%
+\special{pa 55 106}\special{pa 57 165}\special{pa 57 222}\special{pa 57 274}\special{pa 55 322}%
+\special{pa 53 364}\special{pa 50 400}\special{pa 46 429}\special{pa 41 451}\special{pa 35 465}%
+\special{pa 29 471}\special{pa 22 469}\special{pa 15 460}\special{pa 7 442}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 26 -386}\special{pa 52 -350}\special{pa 76 -307}\special{pa 100 -259}%
+\special{pa 121 -207}\special{pa 141 -151}\special{pa 158 -93}\special{pa 173 -33}%
+\special{pa 184 28}\special{pa 193 88}\special{pa 198 146}\special{pa 199 202}\special{pa 198 255}%
+\special{pa 193 303}\special{pa 184 346}\special{pa 173 383}\special{pa 158 414}\special{pa 141 438}%
+\special{pa 121 454}\special{pa 100 462}\special{pa 76 462}\special{pa 52 455}\special{pa 26 439}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 42 -391}\special{pa 83 -360}\special{pa 123 -322}\special{pa 161 -279}%
+\special{pa 196 -231}\special{pa 228 -179}\special{pa 255 -124}\special{pa 279 -67}%
+\special{pa 298 -8}\special{pa 311 50}\special{pa 319 108}\special{pa 322 163}\special{pa 319 216}%
+\special{pa 311 266}\special{pa 298 310}\special{pa 279 350}\special{pa 255 383}\special{pa 228 410}%
+\special{pa 196 430}\special{pa 161 442}\special{pa 123 447}\special{pa 83 444}\special{pa 42 434}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 54 -399}\special{pa 107 -374}\special{pa 158 -343}%
+\special{pa 207 -306}\special{pa 251 -264}\special{pa 292 -218}\special{pa 328 -167}%
+\special{pa 358 -114}\special{pa 382 -59}\special{pa 399 -3}\special{pa 410 53}\special{pa 413 108}%
+\special{pa 410 162}\special{pa 399 212}\special{pa 382 259}\special{pa 358 302}\special{pa 328 339}%
+\special{pa 292 371}\special{pa 251 396}\special{pa 207 415}\special{pa 158 426}\special{pa 107 430}%
+\special{pa 54 427}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 61 -407}\special{pa 120 -391}\special{pa 177 -368}%
+\special{pa 232 -339}\special{pa 282 -304}\special{pa 328 -264}\special{pa 368 -220}%
+\special{pa 402 -171}\special{pa 428 -120}\special{pa 448 -66}\special{pa 460 -12}%
+\special{pa 464 43}\special{pa 460 97}\special{pa 448 149}\special{pa 428 199}\special{pa 402 245}%
+\special{pa 368 287}\special{pa 328 325}\special{pa 282 356}\special{pa 232 382}\special{pa 177 401}%
+\special{pa 120 413}\special{pa 61 418}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 61 -416}\special{pa 121 -409}\special{pa 179 -395}%
+\special{pa 234 -374}\special{pa 285 -347}\special{pa 332 -314}\special{pa 372 -275}%
+\special{pa 406 -232}\special{pa 433 -184}\special{pa 453 -134}\special{pa 465 -81}%
+\special{pa 469 -27}\special{pa 465 27}\special{pa 453 82}\special{pa 433 134}\special{pa 406 185}%
+\special{pa 372 232}\special{pa 332 275}\special{pa 285 314}\special{pa 234 347}\special{pa 179 374}%
+\special{pa 121 395}\special{pa 61 409}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 56 -425}\special{pa 111 -427}\special{pa 164 -421}%
+\special{pa 214 -408}\special{pa 261 -388}\special{pa 303 -361}\special{pa 340 -328}%
+\special{pa 371 -290}\special{pa 396 -246}\special{pa 414 -199}\special{pa 425 -148}%
+\special{pa 428 -94}\special{pa 425 -39}\special{pa 414 17}\special{pa 396 72}\special{pa 371 127}%
+\special{pa 340 179}\special{pa 303 228}\special{pa 261 273}\special{pa 214 313}\special{pa 164 349}%
+\special{pa 111 378}\special{pa 56 400}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 45 -433}\special{pa 89 -442}\special{pa 132 -443}\special{pa 173 -437}%
+\special{pa 210 -423}\special{pa 244 -402}\special{pa 274 -374}\special{pa 299 -340}%
+\special{pa 319 -300}\special{pa 334 -255}\special{pa 343 -205}\special{pa 346 -152}%
+\special{pa 343 -97}\special{pa 334 -39}\special{pa 319 19}\special{pa 299 76}\special{pa 274 133}%
+\special{pa 244 187}\special{pa 210 238}\special{pa 173 284}\special{pa 132 326}\special{pa 89 363}%
+\special{pa 45 393}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 30 -438}\special{pa 59 -453}\special{pa 88 -459}\special{pa 115 -458}%
+\special{pa 140 -449}\special{pa 162 -432}\special{pa 182 -408}\special{pa 199 -377}%
+\special{pa 212 -340}\special{pa 221 -296}\special{pa 227 -248}\special{pa 229 -195}%
+\special{pa 227 -139}\special{pa 221 -81}\special{pa 212 -21}\special{pa 199 39}\special{pa 182 99}%
+\special{pa 162 156}\special{pa 140 211}\special{pa 115 263}\special{pa 88 310}\special{pa 59 352}%
+\special{pa 30 387}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa 12 -441}\special{pa 23 -459}\special{pa 35 -469}\special{pa 45 -470}%
+\special{pa 55 -464}\special{pa 64 -449}\special{pa 72 -427}\special{pa 78 -398}\special{pa 83 -362}%
+\special{pa 87 -319}\special{pa 90 -272}\special{pa 90 -219}\special{pa 90 -163}\special{pa 87 -104}%
+\special{pa 83 -43}\special{pa 78 18}\special{pa 72 80}\special{pa 64 139}\special{pa 55 197}%
+\special{pa 45 251}\special{pa 35 301}\special{pa 23 345}\special{pa 12 384}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -7 -442}\special{pa -15 -460}\special{pa -22 -469}%
+\special{pa -29 -471}\special{pa -35 -465}\special{pa -41 -451}\special{pa -46 -429}%
+\special{pa -50 -400}\special{pa -53 -364}\special{pa -55 -322}\special{pa -57 -274}%
+\special{pa -57 -222}\special{pa -57 -165}\special{pa -55 -106}\special{pa -53 -45}%
+\special{pa -50 16}\special{pa -46 78}\special{pa -41 138}\special{pa -35 195}\special{pa -29 250}%
+\special{pa -22 300}\special{pa -15 345}\special{pa -7 384}\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -26 -439}\special{pa -52 -455}\special{pa -76 -462}%
+\special{pa -100 -462}\special{pa -121 -454}\special{pa -141 -438}\special{pa -158 -414}%
+\special{pa -173 -383}\special{pa -184 -346}\special{pa -193 -303}\special{pa -198 -255}%
+\special{pa -199 -202}\special{pa -198 -146}\special{pa -193 -88}\special{pa -184 -28}%
+\special{pa -173 33}\special{pa -158 93}\special{pa -141 151}\special{pa -121 207}%
+\special{pa -100 259}\special{pa -76 307}\special{pa -52 350}\special{pa -26 386}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -42 -434}\special{pa -83 -444}\special{pa -123 -447}%
+\special{pa -161 -442}\special{pa -196 -430}\special{pa -228 -410}\special{pa -255 -383}%
+\special{pa -279 -350}\special{pa -298 -310}\special{pa -311 -266}\special{pa -319 -216}%
+\special{pa -322 -163}\special{pa -319 -108}\special{pa -311 -50}\special{pa -298 8}%
+\special{pa -279 67}\special{pa -255 124}\special{pa -228 179}\special{pa -196 231}%
+\special{pa -161 279}\special{pa -123 322}\special{pa -83 360}\special{pa -42 391}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -54 -427}\special{pa -107 -430}\special{pa -158 -426}%
+\special{pa -207 -415}\special{pa -251 -396}\special{pa -292 -371}\special{pa -328 -339}%
+\special{pa -358 -302}\special{pa -382 -259}\special{pa -399 -212}\special{pa -410 -162}%
+\special{pa -413 -108}\special{pa -410 -53}\special{pa -399 3}\special{pa -382 59}%
+\special{pa -358 114}\special{pa -328 167}\special{pa -292 218}\special{pa -251 264}%
+\special{pa -207 306}\special{pa -158 343}\special{pa -107 374}\special{pa -54 399}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -61 -418}\special{pa -120 -413}\special{pa -177 -401}%
+\special{pa -232 -382}\special{pa -282 -356}\special{pa -328 -325}\special{pa -368 -287}%
+\special{pa -402 -245}\special{pa -428 -199}\special{pa -448 -149}\special{pa -460 -97}%
+\special{pa -464 -43}\special{pa -460 12}\special{pa -448 66}\special{pa -428 120}%
+\special{pa -402 171}\special{pa -368 220}\special{pa -328 264}\special{pa -282 304}%
+\special{pa -232 339}\special{pa -177 368}\special{pa -120 391}\special{pa -61 407}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -61 -409}\special{pa -121 -395}\special{pa -179 -374}%
+\special{pa -234 -347}\special{pa -285 -314}\special{pa -332 -275}\special{pa -372 -232}%
+\special{pa -406 -185}\special{pa -433 -134}\special{pa -453 -82}\special{pa -465 -27}%
+\special{pa -469 27}\special{pa -465 81}\special{pa -453 134}\special{pa -433 184}%
+\special{pa -406 232}\special{pa -372 275}\special{pa -332 314}\special{pa -285 347}%
+\special{pa -234 374}\special{pa -179 395}\special{pa -121 409}\special{pa -61 416}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 0 -416}\special{pa -56 -400}\special{pa -111 -378}\special{pa -164 -349}%
+\special{pa -214 -313}\special{pa -261 -273}\special{pa -303 -228}\special{pa -340 -179}%
+\special{pa -371 -127}\special{pa -396 -72}\special{pa -414 -17}\special{pa -425 39}%
+\special{pa -428 94}\special{pa -425 148}\special{pa -414 199}\special{pa -396 246}%
+\special{pa -371 290}\special{pa -340 328}\special{pa -303 361}\special{pa -261 388}%
+\special{pa -214 408}\special{pa -164 421}\special{pa -111 427}\special{pa -56 425}%
+\special{pa 0 416}%
+\special{fp}%
+\special{pa 3 -419}\special{pa -3 -419}\special{pa -3 -414}\special{pa 3 -414}\special{pa 3 -419}%
+\special{sh 1}\special{fp}%
+\special{pa -67 -396}\special{pa -57 -389}\special{pa -42 -383}\special{pa -25 -378}%
+\special{pa -6 -376}\special{pa 13 -377}\special{pa 31 -380}\special{pa 47 -384}\special{pa 61 -391}%
+\special{pa 69 -399}\special{pa 74 -408}\special{pa 73 -417}\special{pa 67 -426}\special{pa 57 -434}%
+\special{pa 42 -440}\special{pa 25 -444}\special{pa 6 -446}\special{pa -13 -446}\special{pa -31 -443}%
+\special{pa -47 -438}\special{pa -61 -431}\special{pa -69 -423}\special{pa -74 -414}%
+\special{pa -73 -405}\special{pa -67 -396}%
+\special{fp}%
+\special{pa -132 -367}\special{pa -112 -352}\special{pa -84 -339}\special{pa -50 -331}%
+\special{pa -13 -327}\special{pa 25 -328}\special{pa 62 -333}\special{pa 94 -343}%
+\special{pa 120 -356}\special{pa 137 -372}\special{pa 145 -390}\special{pa 144 -408}%
+\special{pa 132 -425}\special{pa 112 -440}\special{pa 84 -452}\special{pa 50 -461}%
+\special{pa 13 -465}\special{pa -25 -464}\special{pa -62 -459}\special{pa -94 -449}%
+\special{pa -120 -436}\special{pa -137 -420}\special{pa -145 -402}\special{pa -144 -384}%
+\special{pa -132 -367}%
+\special{fp}%
+\special{pa -194 -328}\special{pa -164 -306}\special{pa -123 -288}\special{pa -73 -276}%
+\special{pa -19 -270}\special{pa 37 -271}\special{pa 91 -279}\special{pa 138 -293}%
+\special{pa 176 -313}\special{pa 202 -336}\special{pa 214 -362}\special{pa 211 -389}%
+\special{pa 194 -414}\special{pa 164 -436}\special{pa 123 -454}\special{pa 73 -466}%
+\special{pa 19 -472}\special{pa -37 -471}\special{pa -91 -463}\special{pa -138 -449}%
+\special{pa -176 -429}\special{pa -202 -406}\special{pa -214 -380}\special{pa -211 -353}%
+\special{pa -194 -328}%
+\special{fp}%
+\special{pa -252 -281}\special{pa -213 -252}\special{pa -159 -229}\special{pa -95 -213}%
+\special{pa -24 -206}\special{pa 48 -208}\special{pa 117 -218}\special{pa 178 -236}%
+\special{pa 227 -261}\special{pa 261 -292}\special{pa 277 -325}\special{pa 273 -360}%
+\special{pa 252 -392}\special{pa 213 -421}\special{pa 159 -444}\special{pa 95 -460}%
+\special{pa 24 -468}\special{pa -48 -466}\special{pa -117 -456}\special{pa -178 -437}%
+\special{pa -227 -412}\special{pa -261 -382}\special{pa -277 -348}\special{pa -273 -314}%
+\special{pa -252 -281}%
+\special{fp}%
+\special{pa -303 -228}\special{pa -256 -193}\special{pa -192 -165}\special{pa -114 -146}%
+\special{pa -29 -137}\special{pa 58 -139}\special{pa 141 -151}\special{pa 215 -173}%
+\special{pa 274 -204}\special{pa 314 -240}\special{pa 333 -281}\special{pa 329 -322}%
+\special{pa 303 -361}\special{pa 256 -396}\special{pa 192 -424}\special{pa 114 -443}%
+\special{pa 29 -452}\special{pa -58 -450}\special{pa -141 -438}\special{pa -215 -415}%
+\special{pa -274 -385}\special{pa -314 -348}\special{pa -333 -308}\special{pa -329 -267}%
+\special{pa -303 -228}%
+\special{fp}%
+\special{pa -346 -168}\special{pa -293 -129}\special{pa -219 -97}\special{pa -131 -75}%
+\special{pa -33 -65}\special{pa 66 -67}\special{pa 161 -81}\special{pa 246 -106}\special{pa 313 -141}%
+\special{pa 359 -183}\special{pa 381 -229}\special{pa 376 -276}\special{pa 346 -321}%
+\special{pa 293 -361}\special{pa 219 -393}\special{pa 131 -414}\special{pa 33 -425}%
+\special{pa -66 -423}\special{pa -161 -408}\special{pa -246 -383}\special{pa -313 -348}%
+\special{pa -359 -307}\special{pa -381 -261}\special{pa -376 -213}\special{pa -346 -168}%
+\special{fp}%
+\special{pa -382 -105}\special{pa -323 -61}\special{pa -242 -26}\special{pa -144 -2}%
+\special{pa -37 9}\special{pa 73 7}\special{pa 178 -9}\special{pa 270 -37}\special{pa 345 -75}%
+\special{pa 395 -121}\special{pa 419 -172}\special{pa 415 -223}\special{pa 382 -273}%
+\special{pa 323 -317}\special{pa 242 -352}\special{pa 144 -376}\special{pa 37 -387}%
+\special{pa -73 -385}\special{pa -178 -369}\special{pa -270 -341}\special{pa -345 -303}%
+\special{pa -395 -257}\special{pa -419 -206}\special{pa -415 -155}\special{pa -382 -105}%
+\special{fp}%
+\special{pa -407 -39}\special{pa -344 8}\special{pa -258 45}\special{pa -154 71}\special{pa -39 83}%
+\special{pa 78 81}\special{pa 190 64}\special{pa 289 34}\special{pa 368 -7}\special{pa 422 -56}%
+\special{pa 448 -110}\special{pa 443 -165}\special{pa 407 -218}\special{pa 344 -265}%
+\special{pa 258 -303}\special{pa 154 -328}\special{pa 39 -340}\special{pa -78 -338}%
+\special{pa -190 -321}\special{pa -289 -291}\special{pa -368 -251}\special{pa -422 -201}%
+\special{pa -448 -147}\special{pa -443 -92}\special{pa -407 -39}%
+\special{fp}%
+\special{pa -423 28}\special{pa -358 77}\special{pa -268 115}\special{pa -160 142}%
+\special{pa -41 155}\special{pa 81 152}\special{pa 197 135}\special{pa 300 104}\special{pa 382 61}%
+\special{pa 438 10}\special{pa 465 -46}\special{pa 460 -103}\special{pa 423 -158}%
+\special{pa 358 -207}\special{pa 268 -246}\special{pa 160 -272}\special{pa 41 -285}%
+\special{pa -81 -282}\special{pa -197 -265}\special{pa -300 -234}\special{pa -382 -192}%
+\special{pa -438 -141}\special{pa -465 -84}\special{pa -460 -27}\special{pa -423 28}%
+\special{fp}%
+\special{pa -428 94}\special{pa -362 143}\special{pa -271 183}\special{pa -162 210}%
+\special{pa -41 222}\special{pa 82 220}\special{pa 199 202}\special{pa 304 171}\special{pa 387 128}%
+\special{pa 444 76}\special{pa 471 20}\special{pa 465 -39}\special{pa 428 -94}\special{pa 362 -143}%
+\special{pa 271 -183}\special{pa 162 -210}\special{pa 41 -222}\special{pa -82 -220}%
+\special{pa -199 -202}\special{pa -304 -171}\special{pa -387 -128}\special{pa -444 -76}%
+\special{pa -471 -20}\special{pa -465 39}\special{pa -428 94}%
+\special{fp}%
+\special{pa -423 158}\special{pa -358 207}\special{pa -268 246}\special{pa -160 272}%
+\special{pa -41 285}\special{pa 81 282}\special{pa 197 265}\special{pa 300 234}\special{pa 382 192}%
+\special{pa 438 141}\special{pa 465 84}\special{pa 460 27}\special{pa 423 -28}\special{pa 358 -77}%
+\special{pa 268 -115}\special{pa 160 -142}\special{pa 41 -155}\special{pa -81 -152}%
+\special{pa -197 -135}\special{pa -300 -104}\special{pa -382 -61}\special{pa -438 -10}%
+\special{pa -465 46}\special{pa -460 103}\special{pa -423 158}%
+\special{fp}%
+\special{pa -407 218}\special{pa -344 265}\special{pa -258 303}\special{pa -154 328}%
+\special{pa -39 340}\special{pa 78 338}\special{pa 190 321}\special{pa 289 291}\special{pa 368 251}%
+\special{pa 422 201}\special{pa 448 147}\special{pa 443 92}\special{pa 407 39}\special{pa 344 -8}%
+\special{pa 258 -45}\special{pa 154 -71}\special{pa 39 -83}\special{pa -78 -81}\special{pa -190 -64}%
+\special{pa -289 -34}\special{pa -368 7}\special{pa -422 56}\special{pa -448 110}%
+\special{pa -443 165}\special{pa -407 218}%
+\special{fp}%
+\special{pa -382 273}\special{pa -323 317}\special{pa -242 352}\special{pa -144 376}%
+\special{pa -37 387}\special{pa 73 385}\special{pa 178 369}\special{pa 270 341}\special{pa 345 303}%
+\special{pa 395 257}\special{pa 419 206}\special{pa 415 155}\special{pa 382 105}\special{pa 323 61}%
+\special{pa 242 26}\special{pa 144 2}\special{pa 37 -9}\special{pa -73 -7}\special{pa -178 9}%
+\special{pa -270 37}\special{pa -345 75}\special{pa -395 121}\special{pa -419 172}%
+\special{pa -415 223}\special{pa -382 273}%
+\special{fp}%
+\special{pa -346 321}\special{pa -293 361}\special{pa -219 393}\special{pa -131 414}%
+\special{pa -33 425}\special{pa 66 423}\special{pa 161 408}\special{pa 246 383}\special{pa 313 348}%
+\special{pa 359 307}\special{pa 381 261}\special{pa 376 213}\special{pa 346 168}\special{pa 293 129}%
+\special{pa 219 97}\special{pa 131 75}\special{pa 33 65}\special{pa -66 67}\special{pa -161 81}%
+\special{pa -246 106}\special{pa -313 141}\special{pa -359 183}\special{pa -381 229}%
+\special{pa -376 276}\special{pa -346 321}%
+\special{fp}%
+\special{pa -303 361}\special{pa -256 396}\special{pa -192 424}\special{pa -114 443}%
+\special{pa -29 452}\special{pa 58 450}\special{pa 141 438}\special{pa 215 415}\special{pa 274 385}%
+\special{pa 314 348}\special{pa 333 308}\special{pa 329 267}\special{pa 303 228}\special{pa 256 193}%
+\special{pa 192 165}\special{pa 114 146}\special{pa 29 137}\special{pa -58 139}\special{pa -141 151}%
+\special{pa -215 173}\special{pa -274 204}\special{pa -314 240}\special{pa -333 281}%
+\special{pa -329 322}\special{pa -303 361}%
+\special{fp}%
+\special{pa -252 392}\special{pa -213 421}\special{pa -159 444}\special{pa -95 460}%
+\special{pa -24 468}\special{pa 48 466}\special{pa 117 456}\special{pa 178 437}\special{pa 227 412}%
+\special{pa 261 382}\special{pa 277 348}\special{pa 273 314}\special{pa 252 281}\special{pa 213 252}%
+\special{pa 159 229}\special{pa 95 213}\special{pa 24 206}\special{pa -48 208}\special{pa -117 218}%
+\special{pa -178 236}\special{pa -227 261}\special{pa -261 292}\special{pa -277 325}%
+\special{pa -273 360}\special{pa -252 392}%
+\special{fp}%
+\special{pa -194 414}\special{pa -164 436}\special{pa -123 454}\special{pa -73 466}%
+\special{pa -19 472}\special{pa 37 471}\special{pa 91 463}\special{pa 138 449}\special{pa 176 429}%
+\special{pa 202 406}\special{pa 214 380}\special{pa 211 353}\special{pa 194 328}\special{pa 164 306}%
+\special{pa 123 288}\special{pa 73 276}\special{pa 19 270}\special{pa -37 271}\special{pa -91 279}%
+\special{pa -138 293}\special{pa -176 313}\special{pa -202 336}\special{pa -214 362}%
+\special{pa -211 389}\special{pa -194 414}%
+\special{fp}%
+\special{pa -132 425}\special{pa -112 440}\special{pa -84 452}\special{pa -50 461}%
+\special{pa -13 465}\special{pa 25 464}\special{pa 62 459}\special{pa 94 449}\special{pa 120 436}%
+\special{pa 137 420}\special{pa 145 402}\special{pa 144 384}\special{pa 132 367}\special{pa 112 352}%
+\special{pa 84 339}\special{pa 50 331}\special{pa 13 327}\special{pa -25 328}\special{pa -62 333}%
+\special{pa -94 343}\special{pa -120 356}\special{pa -137 372}\special{pa -145 390}%
+\special{pa -144 408}\special{pa -132 425}%
+\special{fp}%
+\special{pa -67 426}\special{pa -57 434}\special{pa -42 440}\special{pa -25 444}\special{pa -6 446}%
+\special{pa 13 446}\special{pa 31 443}\special{pa 47 438}\special{pa 61 431}\special{pa 69 423}%
+\special{pa 74 414}\special{pa 73 405}\special{pa 67 396}\special{pa 57 389}\special{pa 42 383}%
+\special{pa 25 378}\special{pa 6 376}\special{pa -13 377}\special{pa -31 380}\special{pa -47 384}%
+\special{pa -61 391}\special{pa -69 399}\special{pa -74 408}\special{pa -73 417}\special{pa -67 426}%
+\special{fp}%
+\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
+\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
+\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
+\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}\special{pa 0 416}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex
new file mode 100644
index 00000000..d96415aa
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara01.tex
@@ -0,0 +1,72 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:52
+%%% template.sce 2016-8-22 17:52
+{\unitlength=5mm%
+\begin{picture}%
+( 7.04000, 9.33000)( -3.57000, -4.74000)%
+\special{pn 8}%
+%
+\special{pa -260 -469}\special{pa -253 -441}\special{pa -250 -430}\special{pa -240 -393}%
+\special{pa -235 -374}\special{pa -231 -357}\special{pa -221 -323}\special{pa -218 -312}%
+\special{pa -211 -291}\special{pa -201 -261}\special{pa -191 -232}\special{pa -182 -206}%
+\special{pa -172 -179}\special{pa -165 -161}\special{pa -162 -156}\special{pa -152 -134}%
+\special{pa -147 -122}\special{pa -143 -114}\special{pa -133 -95}\special{pa -129 -89}%
+\special{pa -123 -78}\special{pa -113 -63}\special{pa -104 -50}\special{pa -94 -38}%
+\special{pa -84 -28}\special{pa -76 -21}\special{pa -65 -13}\special{pa -59 -10}\special{pa -45 -5}%
+\special{pa -35 -4}\special{pa -26 -4}\special{pa -16 -6}\special{pa -6 -9}\special{pa 4 -15}%
+\special{pa 12 -20}\special{pa 23 -30}\special{pa 30 -37}\special{pa 33 -41}\special{pa 43 -53}%
+\special{pa 47 -59}\special{pa 53 -67}\special{pa 62 -82}\special{pa 65 -87}\special{pa 72 -100}%
+\special{pa 82 -119}\special{pa 92 -139}\special{pa 100 -159}\special{pa 111 -186}%
+\special{pa 118 -203}\special{pa 121 -211}\special{pa 131 -239}\special{pa 136 -253}%
+\special{pa 140 -268}\special{pa 150 -299}\special{pa 153 -309}\special{pa 160 -331}%
+\special{pa 170 -366}\special{pa 179 -402}\special{pa 188 -436}\special{pa 199 -479}%
+\special{pa 206 -509}\special{pa 209 -520}\special{pa 219 -563}%
+\special{fp}%
+\special{pa -535 -55}\special{pa -527 -107}\special{pa -520 -158}\special{pa -512 -206}%
+\special{pa -505 -252}\special{pa -497 -295}\special{pa -489 -336}\special{pa -482 -375}%
+\special{pa -474 -411}\special{pa -466 -445}\special{pa -459 -477}\special{pa -451 -506}%
+\special{pa -444 -533}\special{pa -436 -558}\special{pa -428 -580}\special{pa -421 -600}%
+\special{pa -413 -617}\special{pa -405 -632}\special{pa -398 -645}\special{pa -390 -656}%
+\special{pa -383 -664}\special{pa -375 -669}\special{pa -367 -673}\special{pa -360 -674}%
+\special{pa -352 -672}\special{pa -345 -669}\special{pa -337 -663}\special{pa -329 -654}%
+\special{pa -322 -643}\special{pa -314 -630}\special{pa -306 -615}\special{pa -299 -597}%
+\special{pa -291 -577}\special{pa -284 -554}\special{pa -276 -529}\special{pa -268 -502}%
+\special{pa -261 -472}\special{pa -253 -440}\special{pa -245 -406}\special{pa -238 -369}%
+\special{pa -230 -330}\special{pa -223 -289}\special{pa -215 -245}\special{pa -207 -199}%
+\special{pa -200 -151}\special{pa -192 -100}\special{pa -184 -47}\special{pa -177 9}%
+\special{pa -169 67}\special{pa -162 127}\special{pa -154 190}%
+\special{fp}%
+\special{pa 535 55}\special{pa 521 115}\special{pa 508 173}\special{pa 494 229}\special{pa 480 282}%
+\special{pa 466 333}\special{pa 452 382}\special{pa 439 428}\special{pa 425 472}\special{pa 411 514}%
+\special{pa 397 553}\special{pa 383 590}\special{pa 370 624}\special{pa 356 656}\special{pa 342 686}%
+\special{pa 328 714}\special{pa 315 739}\special{pa 301 761}\special{pa 287 782}\special{pa 273 800}%
+\special{pa 259 815}\special{pa 246 829}\special{pa 232 840}\special{pa 218 848}\special{pa 204 855}%
+\special{pa 191 858}\special{pa 177 860}\special{pa 163 859}\special{pa 149 856}\special{pa 135 850}%
+\special{pa 122 842}\special{pa 108 832}\special{pa 94 820}\special{pa 80 805}\special{pa 66 787}%
+\special{pa 53 768}\special{pa 39 746}\special{pa 25 721}\special{pa 11 694}\special{pa -2 665}%
+\special{pa -16 634}\special{pa -30 600}\special{pa -44 564}\special{pa -58 525}\special{pa -71 484}%
+\special{pa -85 441}\special{pa -99 396}\special{pa -113 348}\special{pa -126 297}%
+\special{pa -140 245}\special{pa -154 190}%
+\special{fp}%
+\special{pa 219 -563}\special{pa 223 -580}\special{pa 230 -612}\special{pa 238 -641}%
+\special{pa 245 -668}\special{pa 253 -693}\special{pa 261 -715}\special{pa 268 -735}%
+\special{pa 276 -752}\special{pa 284 -768}\special{pa 291 -780}\special{pa 299 -791}%
+\special{pa 306 -799}\special{pa 314 -804}\special{pa 322 -808}\special{pa 329 -809}%
+\special{pa 337 -808}\special{pa 345 -804}\special{pa 352 -798}\special{pa 360 -789}%
+\special{pa 367 -779}\special{pa 375 -765}\special{pa 383 -750}\special{pa 390 -732}%
+\special{pa 398 -712}\special{pa 405 -689}\special{pa 413 -664}\special{pa 421 -637}%
+\special{pa 428 -608}\special{pa 436 -576}\special{pa 444 -541}\special{pa 451 -505}%
+\special{pa 459 -465}\special{pa 466 -424}\special{pa 474 -380}\special{pa 482 -334}%
+\special{pa 489 -286}\special{pa 497 -235}\special{pa 505 -182}\special{pa 512 -126}%
+\special{pa 520 -68}\special{pa 527 -8}\special{pa 535 55}%
+\special{fp}%
+\special{pa -66 494}\special{pa -80 517}\special{pa -94 537}\special{pa -108 555}%
+\special{pa -122 571}\special{pa -135 584}\special{pa -149 595}\special{pa -163 604}%
+\special{pa -177 610}\special{pa -191 614}\special{pa -204 616}\special{pa -218 615}%
+\special{pa -232 612}\special{pa -246 606}\special{pa -259 598}\special{pa -273 588}%
+\special{pa -287 575}\special{pa -301 560}\special{pa -315 543}\special{pa -328 523}%
+\special{pa -342 501}\special{pa -356 477}\special{pa -370 450}\special{pa -383 421}%
+\special{pa -397 390}\special{pa -411 356}\special{pa -425 320}\special{pa -439 281}%
+\special{pa -452 240}\special{pa -466 197}\special{pa -480 151}\special{pa -494 103}%
+\special{pa -508 53}\special{pa -521 0}\special{pa -535 -55}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex
new file mode 100644
index 00000000..dcf3cd7f
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara02.tex
@@ -0,0 +1,91 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:51
+%%% template.sce 2016-8-22 17:51
+{\unitlength=5mm%
+\begin{picture}%
+( 7.04000, 9.33000)( -3.57000, -4.74000)%
+\special{pn 8}%
+%
+\special{pn 16}%
+\special{pa -260 -469}\special{pa -253 -441}\special{pa -250 -430}\special{pa -240 -393}%
+\special{pa -235 -374}\special{pa -231 -357}\special{pa -221 -323}\special{pa -218 -312}%
+\special{pa -211 -291}\special{pa -201 -261}\special{pa -191 -232}\special{pa -182 -206}%
+\special{pa -172 -179}\special{pa -165 -161}\special{pa -162 -156}\special{pa -152 -134}%
+\special{pa -147 -122}\special{pa -143 -114}\special{pa -133 -95}\special{pa -129 -89}%
+\special{pa -123 -78}\special{pa -113 -63}\special{pa -104 -50}\special{pa -94 -38}%
+\special{pa -84 -28}\special{pa -76 -21}\special{pa -65 -13}\special{pa -59 -10}\special{pa -45 -5}%
+\special{pa -35 -4}\special{pa -26 -4}\special{pa -16 -6}\special{pa -6 -9}\special{pa 4 -15}%
+\special{pa 12 -20}\special{pa 23 -30}\special{pa 30 -37}\special{pa 33 -41}\special{pa 43 -53}%
+\special{pa 47 -59}\special{pa 53 -67}\special{pa 62 -82}\special{pa 65 -87}\special{pa 72 -100}%
+\special{pa 82 -119}\special{pa 92 -139}\special{pa 100 -159}\special{pa 111 -186}%
+\special{pa 118 -203}\special{pa 121 -211}\special{pa 131 -239}\special{pa 136 -253}%
+\special{pa 140 -268}\special{pa 150 -299}\special{pa 153 -309}\special{pa 160 -331}%
+\special{pa 170 -366}\special{pa 179 -402}\special{pa 188 -436}\special{pa 199 -479}%
+\special{pa 206 -509}\special{pa 209 -520}\special{pa 219 -563}%
+\special{fp}%
+\special{pa -535 -55}\special{pa -527 -107}\special{pa -520 -158}\special{pa -512 -206}%
+\special{pa -505 -252}\special{pa -497 -295}\special{pa -489 -336}\special{pa -482 -375}%
+\special{pa -474 -411}\special{pa -466 -445}\special{pa -459 -477}\special{pa -451 -506}%
+\special{pa -444 -533}\special{pa -436 -558}\special{pa -428 -580}\special{pa -421 -600}%
+\special{pa -413 -617}\special{pa -405 -632}\special{pa -398 -645}\special{pa -390 -656}%
+\special{pa -383 -664}\special{pa -375 -669}\special{pa -367 -673}\special{pa -360 -674}%
+\special{pa -352 -672}\special{pa -345 -669}\special{pa -337 -663}\special{pa -329 -654}%
+\special{pa -322 -643}\special{pa -314 -630}\special{pa -306 -615}\special{pa -299 -597}%
+\special{pa -291 -577}\special{pa -284 -554}\special{pa -276 -529}\special{pa -268 -502}%
+\special{pa -261 -472}\special{pa -253 -440}\special{pa -245 -406}\special{pa -238 -369}%
+\special{pa -230 -330}\special{pa -223 -289}\special{pa -215 -245}\special{pa -207 -199}%
+\special{pa -200 -151}\special{pa -192 -100}\special{pa -184 -47}\special{pa -177 9}%
+\special{pa -169 67}\special{pa -162 127}\special{pa -154 190}%
+\special{fp}%
+\special{pa 535 55}\special{pa 521 115}\special{pa 508 173}\special{pa 494 229}\special{pa 480 282}%
+\special{pa 466 333}\special{pa 452 382}\special{pa 439 428}\special{pa 425 472}\special{pa 411 514}%
+\special{pa 397 553}\special{pa 383 590}\special{pa 370 624}\special{pa 356 656}\special{pa 342 686}%
+\special{pa 328 714}\special{pa 315 739}\special{pa 301 761}\special{pa 287 782}\special{pa 273 800}%
+\special{pa 259 815}\special{pa 246 829}\special{pa 232 840}\special{pa 218 848}\special{pa 204 855}%
+\special{pa 191 858}\special{pa 177 860}\special{pa 163 859}\special{pa 149 856}\special{pa 135 850}%
+\special{pa 122 842}\special{pa 108 832}\special{pa 94 820}\special{pa 80 805}\special{pa 66 787}%
+\special{pa 53 768}\special{pa 39 746}\special{pa 25 721}\special{pa 11 694}\special{pa -2 665}%
+\special{pa -16 634}\special{pa -30 600}\special{pa -44 564}\special{pa -58 525}\special{pa -71 484}%
+\special{pa -85 441}\special{pa -99 396}\special{pa -113 348}\special{pa -126 297}%
+\special{pa -140 245}\special{pa -154 190}%
+\special{fp}%
+\special{pa 219 -563}\special{pa 223 -580}\special{pa 230 -612}\special{pa 238 -641}%
+\special{pa 245 -668}\special{pa 253 -693}\special{pa 261 -715}\special{pa 268 -735}%
+\special{pa 276 -752}\special{pa 284 -768}\special{pa 291 -780}\special{pa 299 -791}%
+\special{pa 306 -799}\special{pa 314 -804}\special{pa 322 -808}\special{pa 329 -809}%
+\special{pa 337 -808}\special{pa 345 -804}\special{pa 352 -798}\special{pa 360 -789}%
+\special{pa 367 -779}\special{pa 375 -765}\special{pa 383 -750}\special{pa 390 -732}%
+\special{pa 398 -712}\special{pa 405 -689}\special{pa 413 -664}\special{pa 421 -637}%
+\special{pa 428 -608}\special{pa 436 -576}\special{pa 444 -541}\special{pa 451 -505}%
+\special{pa 459 -465}\special{pa 466 -424}\special{pa 474 -380}\special{pa 482 -334}%
+\special{pa 489 -286}\special{pa 497 -235}\special{pa 505 -182}\special{pa 512 -126}%
+\special{pa 520 -68}\special{pa 527 -8}\special{pa 535 55}%
+\special{fp}%
+\special{pa -66 494}\special{pa -80 517}\special{pa -94 537}\special{pa -108 555}%
+\special{pa -122 571}\special{pa -135 584}\special{pa -149 595}\special{pa -163 604}%
+\special{pa -177 610}\special{pa -191 614}\special{pa -204 616}\special{pa -218 615}%
+\special{pa -232 612}\special{pa -246 606}\special{pa -259 598}\special{pa -273 588}%
+\special{pa -287 575}\special{pa -301 560}\special{pa -315 543}\special{pa -328 523}%
+\special{pa -342 501}\special{pa -356 477}\special{pa -370 450}\special{pa -383 421}%
+\special{pa -397 390}\special{pa -411 356}\special{pa -425 320}\special{pa -439 281}%
+\special{pa -452 240}\special{pa -466 197}\special{pa -480 151}\special{pa -494 103}%
+\special{pa -508 53}\special{pa -521 0}\special{pa -535 -55}%
+\special{fp}%
+\special{pn 8}%
+\special{pn 8}%
+\special{pa 153 -186}\special{pa 155 -194}\special{fp}\special{pa 159 -223}\special{pa 160 -231}\special{fp}%
+\special{pa 164 -261}\special{pa 166 -269}\special{fp}\special{pa 170 -298}\special{pa 171 -306}\special{fp}%
+\special{pa 176 -335}\special{pa 177 -343}\special{fp}\special{pa 182 -373}\special{pa 183 -381}\special{fp}%
+\special{pa 189 -410}\special{pa 190 -418}\special{fp}\special{pa 195 -447}\special{pa 197 -455}\special{fp}%
+\special{pa 202 -485}\special{pa 204 -492}\special{fp}\special{pa 210 -522}\special{pa 211 -529}\special{fp}%
+\special{pa 218 -559}\special{pa 219 -566}\special{fp}\special{pn 8}%
+\special{pa 155 -194}\special{pa 153 -186}\special{fp}\special{pa 146 -155}\special{pa 144 -147}\special{fp}%
+\special{pa 137 -116}\special{pa 135 -108}\special{fp}\special{pa 128 -77}\special{pa 126 -69}\special{fp}%
+\special{pa 118 -38}\special{pa 116 -30}\special{fp}\special{pa 108 1}\special{pa 106 9}\special{fp}%
+\special{pa 98 40}\special{pa 96 48}\special{fp}\special{pa 88 79}\special{pa 86 86}\special{fp}%
+\special{pa 77 117}\special{pa 75 125}\special{fp}\special{pa 66 156}\special{pa 64 163}\special{fp}%
+\special{pa 54 194}\special{pa 52 202}\special{fp}\special{pa 42 232}\special{pa 40 240}\special{fp}%
+\special{pa 30 270}\special{pa 27 278}\special{fp}\special{pa 16 308}\special{pa 14 315}\special{fp}%
+\special{pa 2 345}\special{pa -1 353}\special{fp}\special{pa -13 383}\special{pa -16 390}\special{fp}%
+\special{pa -29 419}\special{pa -32 427}\special{fp}\special{pa -46 455}\special{pa -49 463}\special{fp}%
+\special{pa -65 491}\special{pa -68 498}\special{fp}\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex
new file mode 100644
index 00000000..15121319
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara03.tex
@@ -0,0 +1,42 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:46
+%%% template.sce 2016-8-22 17:46
+{\unitlength=6mm%
+\begin{picture}%
+( 6.00000, 6.59000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\special{pa 470 -16}\special{pa 461 -52}\special{pa 451 -87}\special{pa 441 -121}%
+\special{pa 432 -154}\special{pa 422 -187}\special{pa 412 -219}\special{pa 402 -250}%
+\special{pa 393 -281}\special{pa 383 -311}\special{pa 373 -340}\special{pa 364 -368}%
+\special{pa 354 -396}\special{pa 344 -423}\special{pa 334 -449}\special{pa 325 -474}%
+\special{pa 315 -499}\special{pa 305 -523}\special{pa 296 -546}\special{pa 286 -568}%
+\special{pa 276 -590}\special{pa 266 -611}\special{pa 256 -631}\special{pa 247 -651}%
+\special{pa 240 -664}\special{pa 237 -669}\special{pa 227 -687}\special{pa 217 -705}%
+\special{pa 207 -721}\special{pa 197 -737}\special{pa 188 -752}\special{pa 178 -767}%
+\special{pa 168 -780}\special{pa 158 -793}\special{pa 148 -805}\special{pa 138 -816}%
+\special{pa 127 -827}\special{pa 117 -837}\special{pa 107 -846}\special{pa 96 -855}%
+\special{pa 85 -863}\special{pa 74 -870}\special{pa 63 -876}\special{pa 53 -880}\special{pa 41 -885}%
+\special{pa 32 -888}\special{pa 24 -889}\special{pa 18 -890}\special{pa 10 -891}\special{pa -1 -891}%
+\special{pa -13 -891}\special{pa -19 -890}\special{pa -26 -889}\special{pa -35 -887}%
+\special{pa -45 -883}\special{pa -59 -878}\special{pa -74 -870}\special{pa -85 -863}%
+\special{pa -96 -855}\special{pa -107 -846}\special{pa -117 -837}\special{pa -127 -827}%
+\special{pa -137 -817}\special{pa -148 -805}\special{pa -158 -793}\special{pa -165 -783}%
+\special{pa -178 -767}\special{pa -188 -752}\special{pa -197 -737}\special{pa -207 -721}%
+\special{pa -217 -705}\special{pa -227 -687}\special{pa -237 -669}\special{pa -247 -651}%
+\special{pa -256 -631}\special{pa -266 -611}\special{pa -276 -590}\special{pa -286 -568}%
+\special{pa -296 -546}\special{pa -305 -523}\special{pa -315 -499}\special{pa -325 -474}%
+\special{pa -327 -468}\special{pa -334 -449}\special{pa -344 -422}\special{pa -354 -396}%
+\special{pa -364 -368}\special{pa -373 -340}\special{pa -383 -311}\special{pa -393 -281}%
+\special{pa -402 -250}\special{pa -412 -219}\special{pa -422 -187}\special{pa -432 -154}%
+\special{pa -441 -121}\special{pa -451 -87}\special{pa -461 -52}\special{pa -470 -16}%
+\special{fp}%
+\special{pa -413 81}\special{pa -382 99}\special{pa -344 115}\special{pa -300 129}%
+\special{pa -252 142}\special{pa -200 152}\special{pa -145 159}\special{pa -87 165}%
+\special{pa -28 167}\special{pa 31 167}\special{pa 90 164}\special{pa 147 159}\special{pa 202 151}%
+\special{pa 254 141}\special{pa 302 129}\special{pa 345 114}\special{pa 383 98}\special{pa 415 80}%
+\special{pa 440 61}\special{pa 458 41}\special{pa 469 21}\special{pa 472 0}\special{pa 470 -16}%
+\special{fp}%
+\special{pa -469 -21}\special{pa -472 0}\special{pa -469 21}\special{pa -457 42}\special{pa -439 62}%
+\special{pa -413 81}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex
new file mode 100644
index 00000000..4ea7e247
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/sfbdpara04.tex
@@ -0,0 +1,51 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 17:48
+%%% template.sce 2016-8-22 17:48
+{\unitlength=6mm%
+\begin{picture}%
+( 6.00000, 6.59000)( -3.00000, -2.00000)%
+\special{pn 8}%
+%
+\special{pa 470 -16}\special{pa 461 -52}\special{pa 451 -87}\special{pa 441 -121}%
+\special{pa 432 -154}\special{pa 422 -187}\special{pa 412 -219}\special{pa 402 -250}%
+\special{pa 393 -281}\special{pa 383 -311}\special{pa 373 -340}\special{pa 364 -368}%
+\special{pa 354 -396}\special{pa 344 -423}\special{pa 334 -449}\special{pa 325 -474}%
+\special{pa 315 -499}\special{pa 305 -523}\special{pa 296 -546}\special{pa 286 -568}%
+\special{pa 276 -590}\special{pa 266 -611}\special{pa 256 -631}\special{pa 247 -651}%
+\special{pa 240 -664}\special{pa 237 -669}\special{pa 227 -687}\special{pa 217 -705}%
+\special{pa 207 -721}\special{pa 197 -737}\special{pa 188 -752}\special{pa 178 -767}%
+\special{pa 168 -780}\special{pa 158 -793}\special{pa 148 -805}\special{pa 138 -816}%
+\special{pa 127 -827}\special{pa 117 -837}\special{pa 107 -846}\special{pa 96 -855}%
+\special{pa 85 -863}\special{pa 74 -870}\special{pa 63 -876}\special{pa 53 -880}\special{pa 41 -885}%
+\special{pa 32 -888}\special{pa 24 -889}\special{pa 18 -890}\special{pa 10 -891}\special{pa -1 -891}%
+\special{pa -13 -891}\special{pa -19 -890}\special{pa -26 -889}\special{pa -35 -887}%
+\special{pa -45 -883}\special{pa -59 -878}\special{pa -74 -870}\special{pa -85 -863}%
+\special{pa -96 -855}\special{pa -107 -846}\special{pa -117 -837}\special{pa -127 -827}%
+\special{pa -137 -817}\special{pa -148 -805}\special{pa -158 -793}\special{pa -165 -783}%
+\special{pa -178 -767}\special{pa -188 -752}\special{pa -197 -737}\special{pa -207 -721}%
+\special{pa -217 -705}\special{pa -227 -687}\special{pa -237 -669}\special{pa -247 -651}%
+\special{pa -256 -631}\special{pa -266 -611}\special{pa -276 -590}\special{pa -286 -568}%
+\special{pa -296 -546}\special{pa -305 -523}\special{pa -315 -499}\special{pa -325 -474}%
+\special{pa -327 -468}\special{pa -334 -449}\special{pa -344 -422}\special{pa -354 -396}%
+\special{pa -364 -368}\special{pa -373 -340}\special{pa -383 -311}\special{pa -393 -281}%
+\special{pa -402 -250}\special{pa -412 -219}\special{pa -422 -187}\special{pa -432 -154}%
+\special{pa -441 -121}\special{pa -451 -87}\special{pa -461 -52}\special{pa -470 -16}%
+\special{fp}%
+\special{pa -413 81}\special{pa -382 99}\special{pa -344 115}\special{pa -300 129}%
+\special{pa -252 142}\special{pa -200 152}\special{pa -145 159}\special{pa -87 165}%
+\special{pa -28 167}\special{pa 31 167}\special{pa 90 164}\special{pa 147 159}\special{pa 202 151}%
+\special{pa 254 141}\special{pa 302 129}\special{pa 345 114}\special{pa 383 98}\special{pa 415 80}%
+\special{pa 440 61}\special{pa 458 41}\special{pa 469 21}\special{pa 472 0}\special{pa 470 -16}%
+\special{fp}%
+\special{pa -469 -21}\special{pa -472 0}\special{pa -469 21}\special{pa -457 42}\special{pa -439 62}%
+\special{pa -413 81}%
+\special{fp}%
+\special{pa 470 -16}\special{pa 469 -21}\special{pa 457 -42}\special{pa 451 -48}\special{fp}%
+\special{pa 423 -74}\special{pa 413 -81}\special{pa 391 -94}\special{fp}\special{pa 356 -109}\special{pa 344 -115}\special{pa 321 -123}\special{fp}%
+\special{pa 284 -133}\special{pa 252 -142}\special{pa 248 -143}\special{fp}\special{pa 210 -150}\special{pa 200 -152}\special{pa 173 -156}\special{fp}%
+\special{pa 135 -160}\special{pa 97 -164}\special{fp}\special{pa 59 -166}\special{pa 28 -167}\special{pa 21 -167}\special{fp}%
+\special{pa -17 -167}\special{pa -31 -167}\special{pa -55 -166}\special{fp}\special{pa -92 -164}\special{pa -130 -161}\special{fp}%
+\special{pa -168 -156}\special{pa -202 -151}\special{pa -206 -151}\special{fp}\special{pa -243 -143}\special{pa -254 -141}\special{pa -280 -135}\special{fp}%
+\special{pa -316 -124}\special{pa -345 -114}\special{pa -352 -111}\special{fp}\special{pa -387 -96}\special{pa -415 -80}\special{pa -419 -77}\special{fp}%
+\special{pa -448 -52}\special{pa -458 -41}\special{pa -469 -21}\special{fp}%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex
new file mode 100644
index 00000000..0d8dfb8d
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata01.tex
@@ -0,0 +1,81 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:38
+%%% template.sce 2016-8-17 20:38
+{\unitlength=6mm%
+\begin{picture}%
+( 5.73000, 5.88000)( -2.98000, -1.69000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 650 -107}\special{pa 479 -79}%
+\special{fp}%
+\special{pa 434 -72}\special{pa -595 98}%
+\special{fp}%
+\special{pa -642 -253}\special{pa 115 45}%
+\special{fp}%
+\special{pa 167 66}\special{pa 513 203}%
+\special{fp}%
+\special{pa 0 399}\special{pa 0 94}%
+\special{fp}%
+\special{pa 0 57}\special{pa 0 -193}%
+\special{fp}%
+\special{pa 0 -230}\special{pa 0 -913}%
+\special{fp}%
+\special{pa -257 355}\special{pa -111 100}%
+\special{fp}%
+\special{pa -90 64}\special{pa -71 29}%
+\special{fp}%
+\special{pa -35 -33}\special{pa -14 -70}%
+\special{fp}%
+\special{pa 14 -120}\special{pa 61 -201}%
+\special{fp}%
+\special{pa 83 -240}\special{pa 327 -667}%
+\special{fp}%
+\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
+\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
+\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
+\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -51}\special{pa 454 -71}\special{pa 467 -91}%
+\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
+\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 308 -248}%
+\special{pa 293 -253}%
+\special{fp}%
+\special{pa 242 -268}\special{pa 208 -277}\special{pa 153 -288}\special{pa 133 -292}%
+\special{fp}%
+\special{pa 96 -298}\special{pa 95 -298}\special{pa 36 -306}\special{pa 18 -308}%
+\special{fp}%
+\special{pa -18 -311}\special{pa -24 -312}\special{pa -84 -316}\special{pa -142 -318}%
+\special{pa -198 -318}\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}%
+\special{pa -381 -303}\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}%
+\special{pa -469 -270}\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}%
+\special{pa -438 -233}\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}%
+\special{pa -297 -207}\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}%
+\special{pa -81 -206}\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}%
+\special{pa 156 -234}\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}%
+\special{pa 353 -291}\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -348}%
+\special{pa 461 -368}\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}%
+\special{pa 453 -452}\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}%
+\special{pa 330 -527}\special{pa 285 -543}\special{pa 277 -545}%
+\special{fp}%
+\special{pa 242 -555}\special{pa 235 -557}\special{pa 181 -570}\special{pa 124 -580}%
+\special{pa 66 -589}\special{pa 18 -595}%
+\special{fp}%
+\special{pa -18 -598}\special{pa -54 -601}\special{pa -113 -604}\special{pa -170 -605}%
+\special{pa -224 -605}\special{pa -275 -603}\special{pa -322 -599}\special{pa -363 -593}%
+\special{pa -398 -587}\special{pa -427 -579}\special{pa -449 -571}\special{pa -464 -562}%
+\special{pa -472 -552}\special{pa -471 -543}\special{pa -464 -533}\special{pa -448 -524}%
+\special{pa -426 -516}\special{pa -397 -508}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex
new file mode 100644
index 00000000..1f60f627
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata02.tex
@@ -0,0 +1,76 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:38
+%%% template.sce 2016-8-17 20:38
+{\unitlength=6mm%
+\begin{picture}%
+( 5.73000, 5.88000)( -2.98000, -1.69000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 650 -107}\special{pa 502 -83}%
+\special{fp}%
+\special{pa 412 -68}\special{pa -595 98}%
+\special{fp}%
+\special{pa -642 -253}\special{pa 90 35}%
+\special{fp}%
+\special{pa 192 76}\special{pa 513 203}%
+\special{fp}%
+\special{pa 0 399}\special{pa 0 112}%
+\special{fp}%
+\special{pa 0 39}\special{pa 0 -176}%
+\special{fp}%
+\special{pa 0 -248}\special{pa 0 -913}%
+\special{fp}%
+\special{pa -257 355}\special{pa -122 118}%
+\special{fp}%
+\special{pa 28 -144}\special{pa 50 -182}%
+\special{fp}%
+\special{pa 93 -258}\special{pa 327 -667}%
+\special{fp}%
+\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
+\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
+\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
+\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -51}\special{pa 454 -71}\special{pa 467 -91}%
+\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
+\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 319 -244}%
+\special{fp}%
+\special{pa 216 -274}\special{pa 208 -277}\special{pa 153 -288}\special{pa 151 -288}%
+\special{fp}%
+\special{pa 77 -300}\special{pa 36 -306}\special{pa 35 -306}%
+\special{fp}%
+\special{pa -36 -313}\special{pa -84 -316}\special{pa -142 -318}\special{pa -198 -318}%
+\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}\special{pa -381 -303}%
+\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}\special{pa -469 -270}%
+\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}\special{pa -438 -233}%
+\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}\special{pa -297 -207}%
+\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}\special{pa -81 -206}%
+\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}\special{pa 156 -234}%
+\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}\special{pa 353 -291}%
+\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -348}\special{pa 461 -368}%
+\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}\special{pa 453 -452}%
+\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}\special{pa 330 -527}%
+\special{pa 295 -539}%
+\special{fp}%
+\special{pa 225 -559}\special{pa 181 -570}\special{pa 124 -580}\special{pa 66 -589}%
+\special{pa 35 -593}%
+\special{fp}%
+\special{pa -35 -600}\special{pa -54 -601}\special{pa -113 -604}\special{pa -170 -605}%
+\special{pa -224 -605}\special{pa -275 -603}\special{pa -322 -599}\special{pa -363 -593}%
+\special{pa -398 -587}\special{pa -427 -579}\special{pa -449 -571}\special{pa -464 -562}%
+\special{pa -472 -552}\special{pa -471 -543}\special{pa -464 -533}\special{pa -448 -524}%
+\special{pa -426 -516}\special{pa -397 -508}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex
new file mode 100644
index 00000000..9eaf162b
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/skeletonparadata03.tex
@@ -0,0 +1,68 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-17 20:36
+%%% template.sce 2016-8-17 20:36
+{\unitlength=6mm%
+\begin{picture}%
+( 5.73000, 5.88000)( -2.98000, -1.69000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7060,-0.4477){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.3501,-0.9282){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa -397 66}\special{pa -361 72}\special{pa -319 77}\special{pa -273 81}\special{pa -222 83}%
+\special{pa -167 84}\special{pa -110 83}\special{pa -51 79}\special{pa 9 74}\special{pa 69 67}%
+\special{pa 127 58}\special{pa 184 47}\special{pa 238 35}\special{pa 287 21}\special{pa 332 5}%
+\special{pa 372 -13}\special{pa 406 -31}\special{pa 433 -50}\special{pa 454 -71}\special{pa 467 -91}%
+\special{pa 472 -113}\special{pa 470 -134}\special{pa 460 -155}\special{pa 443 -175}%
+\special{pa 419 -195}\special{pa 388 -214}\special{pa 351 -232}\special{pa 308 -248}%
+\special{pa 260 -263}\special{pa 208 -277}\special{pa 153 -288}\special{pa 95 -298}%
+\special{pa 36 -306}\special{pa -24 -312}\special{pa -84 -316}\special{pa -142 -318}%
+\special{pa -198 -318}\special{pa -250 -317}\special{pa -299 -314}\special{pa -343 -309}%
+\special{pa -381 -303}\special{pa -414 -296}\special{pa -439 -288}\special{pa -458 -279}%
+\special{pa -469 -270}\special{pa -472 -261}\special{pa -468 -251}\special{pa -457 -242}%
+\special{pa -438 -233}\special{pa -412 -225}\special{pa -380 -218}\special{pa -341 -212}%
+\special{pa -297 -207}\special{pa -248 -204}\special{pa -195 -203}\special{pa -139 -203}%
+\special{pa -81 -206}\special{pa -21 -210}\special{pa 39 -216}\special{pa 98 -224}%
+\special{pa 156 -234}\special{pa 211 -246}\special{pa 263 -259}\special{pa 311 -274}%
+\special{pa 353 -291}\special{pa 390 -309}\special{pa 421 -328}\special{pa 444 -347}%
+\special{pa 461 -368}\special{pa 470 -389}\special{pa 472 -410}\special{pa 466 -431}%
+\special{pa 453 -452}\special{pa 432 -472}\special{pa 405 -491}\special{pa 370 -510}%
+\special{pa 330 -527}\special{pa 285 -543}\special{pa 235 -557}\special{pa 181 -570}%
+\special{pa 124 -580}\special{pa 66 -589}\special{pa 6 -596}\special{pa -54 -601}%
+\special{pa -113 -604}\special{pa -170 -605}\special{pa -224 -605}\special{pa -275 -603}%
+\special{pa -322 -599}\special{pa -363 -593}\special{pa -398 -587}\special{pa -427 -579}%
+\special{pa -449 -571}\special{pa -464 -562}\special{pa -472 -552}\special{pa -471 -543}%
+\special{pa -464 -533}\special{pa -448 -524}\special{pa -426 -516}\special{pa -397 -508}%
+\special{fp}%
+\special{pa -257 355}\special{pa -111 100}%
+\special{fp}%
+\special{pa -90 64}\special{pa 61 -201}%
+\special{fp}%
+\special{pa 83 -240}\special{pa 327 -667}%
+\special{fp}%
+\special{pa 650 -107}\special{pa 479 -79}%
+\special{fp}%
+\special{pa 434 -72}\special{pa -595 98}%
+\special{fp}%
+\special{pa -642 -253}\special{pa 115 45}%
+\special{fp}%
+\special{pa 167 66}\special{pa 513 203}%
+\special{fp}%
+\special{pa 0 399}\special{pa 0 94}%
+\special{fp}%
+\special{pa 0 57}\special{pa 0 -193}%
+\special{fp}%
+\special{pa 0 -230}\special{pa 0 -913}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex
new file mode 100644
index 00000000..19281c08
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/translate01.tex
@@ -0,0 +1,53 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-12 20:47
+%%% template.sce 2016-8-12 20:47
+{\unitlength=8mm%
+\begin{picture}%
+( 7.59000, 6.02000)( -3.60000, -2.65000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.7342,-0.4211){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.3490,-1.3293){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,3.0968){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1257 -194}\special{pa -802 124}%
+\special{fp}%
+\special{pa -833 -330}\special{pa 999 397}%
+\special{fp}%
+\special{pa 0 835}\special{pa 0 -916}%
+\special{fp}%
+\special{pa 476 -20}\special{pa 947 167}%
+\special{fp}%
+\special{pa 947 167}\special{pa 333 743}%
+\special{fp}%
+\special{pa 476 -20}\special{pa 333 743}%
+\special{fp}%
+\special{pa -281 97}\special{pa 333 743}%
+\special{fp}%
+\special{pa 476 -20}\special{pa -281 97}%
+\special{fp}%
+\special{pa -281 97}\special{pa 333 -478}%
+\special{fp}%
+\special{pa 476 -20}\special{pa 333 -478}%
+\special{fp}%
+\special{pa 947 167}\special{pa 333 -478}%
+\special{fp}%
+\special{pa 947 167}\special{pa 191 284}%
+\special{fp}%
+\special{pa 191 284}\special{pa 333 743}%
+\special{fp}%
+\special{pa 191 284}\special{pa 333 -478}%
+\special{fp}%
+\special{pa 191 284}\special{pa -281 97}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex
new file mode 100644
index 00000000..574b3b29
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/vertex01.tex
@@ -0,0 +1,20 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-9 9:51
+%%% template.sce 2016-8-9 9:51
+{\unitlength=8mm%
+\begin{picture}%
+( 6.32000, 5.44000)( -3.32000, -1.44000)%
+\special{pn 8}%
+%
+\special{pa 375 -221}\special{pa -727 -5}%
+\special{fp}%
+\special{pa -727 -5}\special{pa 352 226}%
+\special{fp}%
+\special{pa 375 -221}\special{pa 352 226}%
+\special{fp}%
+\special{pa -727 -5}\special{pa 0 -1020}%
+\special{fp}%
+\special{pa 375 -221}\special{pa 0 -1020}%
+\special{fp}%
+\special{pa 352 226}\special{pa 0 -1020}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex
new file mode 100644
index 00000000..c8ba75ae
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara1.tex
@@ -0,0 +1,202 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 19:41
+%%% template.sce 2016-8-13 19:41
+{\unitlength=4mm%
+\begin{picture}%
+( 10.01000, 9.42000)( -5.01000, -4.42000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.4262,-1.3033){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.7950,-2.1209){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 668 -197}\special{pa -668 197}%
+\special{fp}%
+\special{pa -416 -316}\special{pa 416 316}%
+\special{fp}%
+\special{pa 0 694}\special{pa 0 -694}%
+\special{fp}%
+\special{pa -190 -298}\special{pa -183 -272}\special{pa -180 -262}\special{pa -177 -248}%
+\special{pa -170 -225}\special{pa -163 -204}\special{pa -159 -190}\special{pa -157 -183}%
+\special{pa -150 -163}\special{pa -148 -159}\special{pa -143 -145}\special{pa -137 -130}%
+\special{pa -130 -112}\special{pa -127 -105}\special{pa -123 -97}\special{pa -116 -83}%
+\special{pa -110 -70}\special{pa -105 -62}\special{pa -103 -58}\special{pa -96 -48}%
+\special{pa -90 -39}\special{pa -84 -31}\special{pa -76 -23}\special{pa -73 -20}\special{pa -70 -17}%
+\special{pa -63 -12}\special{pa -56 -9}\special{pa -52 -7}\special{pa -43 -5}\special{pa -36 -4}%
+\special{pa -30 -5}\special{pa -23 -7}\special{pa -16 -10}\special{pa -10 -15}\special{pa -3 -20}%
+\special{pa 2 -24}\special{pa 10 -34}\special{pa 17 -43}\special{pa 23 -52}\special{pa 30 -64}%
+\special{pa 34 -70}\special{pa 37 -76}\special{pa 44 -89}\special{pa 50 -104}\special{pa 55 -115}%
+\special{pa 57 -119}\special{pa 64 -136}\special{pa 66 -142}\special{pa 71 -154}\special{pa 77 -172}%
+\special{pa 84 -193}\special{pa 88 -204}\special{pa 91 -214}\special{pa 97 -236}\special{pa 98 -240}%
+\special{pa 104 -260}\special{pa 109 -279}\special{pa 111 -284}\special{pa 117 -310}%
+\special{pa 120 -320}\special{pa 124 -337}\special{pa 131 -364}\special{pa 137 -394}%
+\special{fp}%
+\special{pa -434 -48}\special{pa -427 -87}\special{pa -420 -124}\special{pa -413 -160}%
+\special{pa -407 -193}\special{pa -400 -225}\special{pa -393 -255}\special{pa -386 -283}%
+\special{pa -379 -310}\special{pa -373 -334}\special{pa -366 -357}\special{pa -359 -377}%
+\special{pa -352 -396}\special{pa -345 -413}\special{pa -339 -429}\special{pa -332 -442}%
+\special{pa -325 -453}\special{pa -318 -463}\special{pa -312 -471}\special{pa -305 -477}%
+\special{pa -298 -481}\special{pa -291 -483}\special{pa -284 -483}\special{pa -278 -482}%
+\special{pa -271 -479}\special{pa -264 -474}\special{pa -257 -467}\special{pa -250 -458}%
+\special{pa -244 -447}\special{pa -237 -434}\special{pa -230 -420}\special{pa -223 -404}%
+\special{pa -216 -386}\special{pa -210 -366}\special{pa -203 -344}\special{pa -196 -320}%
+\special{pa -189 -295}\special{pa -182 -267}\special{pa -176 -238}\special{pa -169 -207}%
+\special{pa -162 -174}\special{pa -155 -140}\special{pa -148 -103}\special{pa -142 -64}%
+\special{pa -135 -24}\special{pa -128 18}\special{pa -121 62}\special{pa -114 108}%
+\special{pa -108 156}\special{pa -101 205}%
+\special{fp}%
+\special{pa 434 48}\special{pa 423 95}\special{pa 412 141}\special{pa 401 185}\special{pa 390 227}%
+\special{pa 379 267}\special{pa 368 306}\special{pa 357 342}\special{pa 347 377}\special{pa 336 409}%
+\special{pa 325 440}\special{pa 314 470}\special{pa 303 497}\special{pa 292 522}\special{pa 281 546}%
+\special{pa 270 567}\special{pa 259 587}\special{pa 248 605}\special{pa 237 622}\special{pa 227 636}%
+\special{pa 216 648}\special{pa 205 659}\special{pa 194 668}\special{pa 183 675}\special{pa 172 680}%
+\special{pa 161 683}\special{pa 150 684}\special{pa 139 684}\special{pa 128 681}\special{pa 117 677}%
+\special{pa 107 671}\special{pa 96 663}\special{pa 85 654}\special{pa 74 642}\special{pa 63 629}%
+\special{pa 52 613}\special{pa 41 596}\special{pa 30 577}\special{pa 19 556}\special{pa 8 534}%
+\special{pa -3 509}\special{pa -14 483}\special{pa -24 454}\special{pa -35 424}\special{pa -46 392}%
+\special{pa -57 359}\special{pa -68 323}\special{pa -79 286}\special{pa -90 246}\special{pa -101 205}%
+\special{fp}%
+\special{pa 137 -394}\special{pa 142 -413}\special{pa 148 -441}\special{pa 155 -467}%
+\special{pa 162 -492}\special{pa 169 -514}\special{pa 176 -535}\special{pa 182 -554}%
+\special{pa 189 -571}\special{pa 196 -586}\special{pa 203 -599}\special{pa 210 -611}%
+\special{pa 216 -620}\special{pa 223 -628}\special{pa 230 -634}\special{pa 237 -638}%
+\special{pa 244 -641}\special{pa 250 -641}\special{pa 257 -639}\special{pa 264 -636}%
+\special{pa 271 -631}\special{pa 278 -624}\special{pa 284 -615}\special{pa 291 -604}%
+\special{pa 298 -592}\special{pa 305 -577}\special{pa 312 -561}\special{pa 318 -543}%
+\special{pa 325 -523}\special{pa 332 -501}\special{pa 339 -478}\special{pa 345 -452}%
+\special{pa 352 -425}\special{pa 359 -396}\special{pa 366 -365}\special{pa 373 -332}%
+\special{pa 379 -297}\special{pa 386 -260}\special{pa 393 -222}\special{pa 400 -182}%
+\special{pa 407 -139}\special{pa 413 -95}\special{pa 420 -50}\special{pa 427 -2}\special{pa 434 48}%
+\special{fp}%
+\special{pa -68 324}\special{pa -74 335}\special{pa -85 353}\special{pa -96 369}\special{pa -107 383}%
+\special{pa -117 396}\special{pa -128 406}\special{pa -139 415}\special{pa -150 422}%
+\special{pa -161 427}\special{pa -172 430}\special{pa -183 431}\special{pa -194 431}%
+\special{pa -205 429}\special{pa -216 424}\special{pa -227 418}\special{pa -237 411}%
+\special{pa -248 401}\special{pa -259 389}\special{pa -270 376}\special{pa -281 361}%
+\special{pa -292 343}\special{pa -303 324}\special{pa -314 304}\special{pa -325 281}%
+\special{pa -336 256}\special{pa -347 230}\special{pa -357 202}\special{pa -368 172}%
+\special{pa -379 140}\special{pa -390 106}\special{pa -401 70}\special{pa -412 33}%
+\special{pa -423 -6}\special{pa -434 -48}%
+\special{fp}%
+\special{pa 67 -135}\special{pa 72 -153}\special{pa 78 -175}\special{pa 85 -196}\special{pa 92 -215}%
+\special{pa 98 -232}\special{pa 105 -247}\special{pa 112 -261}\special{pa 118 -273}%
+\special{pa 125 -283}\special{pa 132 -291}\special{pa 138 -298}\special{pa 145 -302}%
+\special{pa 152 -305}\special{pa 158 -306}\special{pa 165 -306}\special{pa 172 -303}%
+\special{pa 178 -299}\special{pa 185 -293}\special{pa 192 -286}\special{pa 198 -276}%
+\special{pa 205 -265}\special{pa 212 -252}\special{pa 218 -237}\special{pa 225 -220}%
+\special{pa 232 -202}\special{pa 238 -182}\special{pa 245 -160}\special{pa 251 -136}%
+\special{pa 258 -111}\special{pa 265 -83}\special{pa 271 -54}\special{pa 278 -24}%
+\special{pa 285 9}\special{pa 291 43}\special{pa 298 80}\special{pa 305 117}\special{pa 311 157}%
+\special{pa 318 199}\special{pa 325 242}\special{pa 331 287}\special{pa 338 334}\special{pa 345 382}%
+\special{fp}%
+\special{pa -77 341}\special{pa -72 310}%
+\special{fp}%
+\special{pa 19 -42}\special{pa 23 -50}\special{pa 29 -61}\special{pa 36 -72}\special{pa 42 -80}%
+\special{pa 49 -86}\special{pa 56 -91}\special{pa 62 -94}\special{pa 69 -95}\special{pa 76 -94}%
+\special{pa 82 -92}\special{pa 89 -88}\special{pa 96 -82}\special{pa 102 -74}\special{pa 109 -65}%
+\special{pa 116 -53}\special{pa 122 -40}\special{pa 129 -26}\special{pa 136 -9}\special{pa 142 9}%
+\special{pa 149 30}\special{pa 156 51}\special{pa 162 75}\special{pa 169 101}\special{pa 176 128}%
+\special{pa 182 157}\special{pa 189 188}\special{pa 196 220}\special{pa 202 255}\special{pa 209 291}%
+\special{pa 216 329}\special{pa 222 368}\special{pa 229 410}\special{pa 236 453}\special{pa 242 498}%
+\special{pa 249 545}\special{pa 256 594}%
+\special{fp}%
+\special{pa -167 429}\special{pa -160 390}\special{pa -153 354}\special{pa -147 319}%
+\special{pa -140 286}\special{pa -133 254}\special{pa -127 225}\special{pa -120 197}%
+\special{pa -113 171}\special{pa -109 155}%
+\special{fp}%
+\special{pa -30 -5}\special{pa -27 -6}\special{pa -20 -7}\special{pa -13 -7}\special{pa -7 -4}%
+\special{pa 0 0}\special{pa 7 6}\special{pa 13 14}\special{pa 20 23}\special{pa 27 34}%
+\special{pa 33 47}\special{pa 40 62}\special{pa 47 79}\special{pa 53 97}\special{pa 60 117}%
+\special{pa 67 139}\special{pa 73 163}\special{pa 80 189}\special{pa 87 216}\special{pa 93 245}%
+\special{pa 100 276}\special{pa 107 308}\special{pa 113 343}\special{pa 120 379}\special{pa 127 417}%
+\special{pa 133 456}\special{pa 140 498}\special{pa 147 541}\special{pa 153 586}\special{pa 160 633}%
+\special{pa 167 681}%
+\special{fp}%
+\special{pa -256 393}\special{pa -249 355}\special{pa -242 318}\special{pa -236 283}%
+\special{pa -229 250}\special{pa -222 219}\special{pa -216 189}\special{pa -209 161}%
+\special{pa -202 135}\special{pa -196 111}\special{pa -189 89}\special{pa -182 68}%
+\special{pa -176 49}\special{pa -169 32}\special{pa -162 16}\special{pa -156 3}\special{pa -149 -9}%
+\special{pa -142 -19}\special{pa -136 -27}%
+\special{fp}%
+\special{pa -84 -31}\special{pa -82 -29}\special{pa -76 -22}\special{pa -69 -12}\special{pa -62 -1}%
+\special{pa -56 12}\special{pa -49 27}\special{pa -42 43}\special{pa -36 62}\special{pa -29 82}%
+\special{pa -23 104}\special{pa -16 128}\special{pa -9 153}\special{pa -3 180}\special{pa 4 209}%
+\special{pa 11 240}\special{pa 17 273}\special{pa 24 307}\special{pa 31 343}\special{pa 37 381}%
+\special{pa 44 421}\special{pa 51 462}\special{pa 57 506}\special{pa 64 551}\special{pa 71 597}%
+\special{pa 77 646}%
+\special{fp}%
+\special{pa -345 235}\special{pa -338 196}\special{pa -331 159}\special{pa -325 124}%
+\special{pa -318 91}\special{pa -311 60}\special{pa -305 30}\special{pa -298 3}\special{pa -291 -23}%
+\special{pa -285 -48}\special{pa -278 -70}\special{pa -271 -91}\special{pa -265 -110}%
+\special{pa -258 -127}\special{pa -251 -142}\special{pa -245 -156}\special{pa -238 -168}%
+\special{pa -232 -178}\special{pa -225 -186}\special{pa -218 -193}\special{pa -212 -197}%
+\special{pa -205 -200}\special{pa -198 -201}\special{pa -192 -201}\special{pa -185 -198}%
+\special{pa -178 -194}\special{pa -172 -188}\special{pa -165 -181}\special{pa -163 -177}%
+\special{fp}%
+\special{pa -152 -160}\special{pa -145 -147}\special{pa -138 -132}\special{pa -132 -115}%
+\special{pa -125 -97}\special{pa -118 -77}\special{pa -112 -55}\special{pa -105 -31}%
+\special{pa -98 -6}\special{pa -92 22}\special{pa -85 51}\special{pa -78 81}\special{pa -72 114}%
+\special{pa -65 148}\special{pa -58 185}\special{pa -52 222}\special{pa -45 262}\special{pa -38 304}%
+\special{pa -32 347}\special{pa -25 392}\special{pa -18 439}\special{pa -12 487}%
+\special{fp}%
+\special{pa 167 -510}\special{pa 157 -463}\special{pa 146 -418}\special{pa 135 -375}%
+\special{pa 125 -334}\special{pa 114 -294}\special{pa 103 -256}\special{pa 93 -220}%
+\special{pa 82 -186}\special{pa 71 -154}\special{pa 60 -123}\special{pa 50 -94}\special{pa 47 -88}%
+\special{fp}%
+\special{pa -111 126}\special{pa -121 127}\special{pa -132 125}\special{pa -143 122}%
+\special{pa -153 118}\special{pa -164 111}\special{pa -175 103}\special{pa -185 92}%
+\special{pa -196 80}\special{pa -207 67}\special{pa -218 51}\special{pa -228 34}\special{pa -239 15}%
+\special{pa -250 -6}\special{pa -260 -29}\special{pa -271 -53}\special{pa -282 -79}%
+\special{pa -292 -107}\special{pa -303 -137}\special{pa -314 -168}\special{pa -324 -202}%
+\special{pa -335 -237}\special{pa -346 -273}\special{pa -357 -312}\special{pa -367 -352}%
+\special{fp}%
+\special{pa 234 -637}\special{pa 223 -590}\special{pa 213 -545}\special{pa 202 -502}%
+\special{pa 191 -461}\special{pa 181 -421}\special{pa 170 -384}\special{pa 159 -348}%
+\special{pa 148 -313}\special{pa 138 -281}\special{pa 127 -250}\special{pa 116 -221}%
+\special{pa 106 -194}\special{pa 95 -169}\special{pa 84 -145}\special{pa 74 -123}%
+\special{pa 63 -103}\special{pa 52 -85}\special{pa 42 -69}\special{pa 31 -54}\special{pa 20 -41}%
+\special{pa 9 -30}\special{pa -1 -21}\special{pa -12 -13}\special{pa -23 -7}\special{pa -30 -4}%
+\special{fp}%
+\special{pa -140 -60}\special{pa -151 -76}\special{pa -162 -93}\special{pa -172 -112}%
+\special{pa -183 -133}\special{pa -194 -156}\special{pa -204 -180}\special{pa -215 -206}%
+\special{pa -226 -234}\special{pa -236 -264}\special{pa -247 -295}\special{pa -258 -329}%
+\special{pa -269 -364}\special{pa -279 -400}\special{pa -290 -439}\special{pa -301 -479}%
+\special{fp}%
+\special{pa 301 -586}\special{pa 290 -540}\special{pa 279 -495}\special{pa 269 -452}%
+\special{pa 258 -410}\special{pa 247 -371}\special{pa 236 -333}\special{pa 226 -297}%
+\special{pa 215 -263}\special{pa 204 -230}\special{pa 194 -200}\special{pa 183 -171}%
+\special{pa 172 -144}\special{pa 162 -118}\special{pa 151 -95}\special{pa 140 -73}%
+\special{pa 130 -53}\special{pa 119 -35}\special{pa 108 -18}\special{pa 97 -3}\special{pa 87 10}%
+\special{pa 76 21}\special{pa 65 30}\special{pa 55 38}\special{pa 44 43}\special{pa 33 47}%
+\special{pa 23 50}\special{pa 12 50}\special{pa 1 49}\special{pa -9 46}\special{pa -20 41}%
+\special{pa -31 34}\special{pa -42 26}\special{pa -52 16}\special{pa -63 4}\special{pa -74 -10}%
+\special{pa -84 -25}\special{pa -95 -43}\special{pa -106 -62}\special{pa -116 -83}%
+\special{pa -127 -105}\special{pa -138 -130}\special{pa -148 -156}\special{pa -159 -184}%
+\special{pa -161 -189}%
+\special{fp}%
+\special{pa -170 -213}\special{pa -181 -245}\special{pa -191 -278}\special{pa -202 -313}%
+\special{pa -213 -350}\special{pa -223 -389}\special{pa -234 -429}%
+\special{fp}%
+\special{pa 367 -358}\special{pa 357 -311}\special{pa 346 -267}\special{pa 335 -223}%
+\special{pa 324 -182}\special{pa 314 -143}\special{pa 303 -105}\special{pa 292 -69}%
+\special{pa 282 -35}\special{pa 271 -2}\special{pa 260 29}\special{pa 250 57}\special{pa 239 85}%
+\special{pa 228 110}\special{pa 218 134}\special{pa 207 155}\special{pa 196 175}\special{pa 185 194}%
+\special{pa 175 210}\special{pa 164 225}\special{pa 153 238}\special{pa 143 249}\special{pa 132 258}%
+\special{pa 121 266}\special{pa 111 272}\special{pa 100 276}\special{pa 89 278}\special{pa 79 278}%
+\special{pa 68 277}\special{pa 57 274}\special{pa 46 269}\special{pa 36 263}\special{pa 25 254}%
+\special{pa 14 244}\special{pa 4 232}\special{pa -7 218}\special{pa -18 203}\special{pa -28 186}%
+\special{pa -39 166}\special{pa -50 146}\special{pa -60 123}\special{pa -71 99}\special{pa -82 73}%
+\special{pa -93 45}\special{pa -103 15}\special{pa -114 -17}\special{pa -125 -50}%
+\special{pa -135 -85}\special{pa -146 -122}\special{pa -157 -160}\special{pa -167 -201}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex
new file mode 100644
index 00000000..7f2d41c4
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara2.tex
@@ -0,0 +1,179 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-13 20:26
+%%% template.sce 2016-8-13 20:26
+{\unitlength=4mm%
+\begin{picture}%
+( 10.01000, 9.42000)( -5.01000, -4.42000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-4.7181,-1.0387){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2443,-2.2778){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.5961){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 714 -157}\special{pa -714 157}%
+\special{fp}%
+\special{pa -332 -337}\special{pa 332 337}%
+\special{fp}%
+\special{pa 0 694}\special{pa 0 -694}%
+\special{fp}%
+\special{pa 312 -20}\special{pa 306 -42}\special{pa 299 -64}\special{pa 293 -86}\special{pa 286 -107}%
+\special{pa 280 -128}\special{pa 273 -148}\special{pa 267 -167}\special{pa 260 -186}%
+\special{pa 254 -205}\special{pa 247 -223}\special{pa 241 -241}\special{pa 234 -259}%
+\special{pa 227 -275}\special{pa 221 -292}\special{pa 214 -308}\special{pa 208 -323}%
+\special{pa 201 -338}\special{pa 195 -353}\special{pa 188 -367}\special{pa 182 -381}%
+\special{pa 175 -394}\special{pa 170 -403}\special{pa 162 -419}\special{pa 155 -431}%
+\special{pa 148 -442}\special{pa 142 -453}\special{pa 135 -463}\special{pa 128 -473}%
+\special{pa 121 -483}\special{pa 115 -492}\special{pa 108 -499}\special{pa 101 -508}%
+\special{pa 94 -516}\special{pa 87 -523}\special{pa 79 -530}\special{pa 72 -536}\special{pa 64 -542}%
+\special{pa 58 -546}\special{pa 48 -552}\special{pa 45 -554}\special{pa 39 -556}\special{pa 34 -558}%
+\special{pa 29 -560}\special{pa 19 -563}\special{pa 15 -564}\special{pa 7 -565}\special{pa 2 -565}%
+\special{pa -3 -565}\special{pa -9 -565}\special{pa -15 -564}\special{pa -21 -563}%
+\special{pa -29 -561}\special{pa -37 -557}\special{pa -48 -552}\special{pa -57 -547}%
+\special{pa -63 -543}\special{pa -72 -536}\special{pa -79 -530}\special{pa -85 -525}%
+\special{pa -94 -516}\special{pa -101 -508}\special{pa -108 -500}\special{pa -115 -492}%
+\special{pa -121 -483}\special{pa -128 -473}\special{pa -135 -463}\special{pa -142 -453}%
+\special{pa -148 -442}\special{pa -155 -431}\special{pa -162 -419}\special{pa -168 -407}%
+\special{pa -175 -394}\special{pa -182 -381}\special{pa -188 -367}\special{pa -195 -353}%
+\special{pa -201 -338}\special{pa -208 -323}\special{pa -214 -308}\special{pa -221 -292}%
+\special{pa -228 -275}\special{pa -234 -259}\special{pa -241 -241}\special{pa -247 -223}%
+\special{pa -254 -205}\special{pa -260 -186}\special{pa -267 -167}\special{pa -273 -148}%
+\special{pa -280 -128}\special{pa -286 -107}\special{pa -293 -86}\special{pa -299 -64}%
+\special{pa -306 -42}\special{pa -312 -20}%
+\special{fp}%
+\special{pa -286 63}\special{pa -266 80}\special{pa -242 95}\special{pa -215 109}%
+\special{pa -184 121}\special{pa -149 131}\special{pa -113 139}\special{pa -74 145}%
+\special{pa -34 148}\special{pa 6 149}\special{pa 46 147}\special{pa 86 143}\special{pa 124 137}%
+\special{pa 160 128}\special{pa 193 118}\special{pa 223 105}\special{pa 250 91}\special{pa 272 75}%
+\special{pa 290 58}\special{pa 304 40}\special{pa 312 21}\special{pa 315 2}\special{pa 313 -17}%
+\special{pa 306 -36}%
+\special{fp}%
+\special{pa -308 -30}\special{pa -314 -11}\special{pa -315 8}\special{pa -310 27}%
+\special{pa -300 45}\special{pa -286 63}%
+\special{fp}%
+\special{pa -48 -529}\special{pa -44 -526}\special{pa -41 -524}\special{pa -36 -522}%
+\special{pa -31 -520}\special{pa -25 -518}\special{pa -20 -517}\special{pa -13 -516}%
+\special{pa -7 -515}\special{pa 0 -515}\special{pa 6 -515}\special{pa 13 -516}\special{pa 19 -517}%
+\special{pa 25 -518}\special{pa 31 -520}\special{pa 36 -522}\special{pa 40 -524}\special{pa 44 -526}%
+\special{pa 47 -529}\special{pa 52 -535}\special{pa 52 -541}\special{pa 50 -547}\special{pa 44 -553}%
+\special{pa 41 -555}\special{pa 36 -558}\special{pa 31 -560}\special{pa 25 -561}\special{pa 20 -563}%
+\special{pa 13 -564}\special{pa 7 -564}\special{pa 0 -565}\special{pa -6 -564}\special{pa -13 -564}%
+\special{pa -19 -563}\special{pa -25 -561}\special{pa -31 -560}\special{pa -36 -558}%
+\special{pa -40 -556}\special{pa -44 -553}\special{pa -47 -550}\special{pa -52 -544}%
+\special{pa -52 -538}\special{pa -50 -532}\special{pa -48 -529}%
+\special{fp}%
+\special{pa -95 -472}\special{pa -89 -467}\special{pa -81 -462}\special{pa -72 -457}%
+\special{pa -62 -453}\special{pa -51 -450}\special{pa -39 -447}\special{pa -27 -445}%
+\special{pa -14 -444}\special{pa 0 -444}\special{pa 13 -444}\special{pa 26 -445}\special{pa 38 -447}%
+\special{pa 50 -450}\special{pa 61 -453}\special{pa 72 -457}\special{pa 81 -462}\special{pa 88 -467}%
+\special{pa 95 -472}\special{pa 100 -478}\special{pa 103 -484}\special{pa 105 -490}%
+\special{pa 105 -496}\special{pa 103 -503}\special{pa 100 -509}\special{pa 95 -514}%
+\special{pa 89 -520}\special{pa 86 -522}%
+\special{fp}%
+\special{pa -94 -516}\special{pa -95 -515}\special{pa -100 -509}\special{pa -103 -503}%
+\special{pa -105 -497}\special{pa -105 -491}\special{pa -103 -484}\special{pa -100 -478}%
+\special{pa -95 -472}%
+\special{fp}%
+\special{pa -143 -385}\special{pa -133 -377}\special{pa -122 -369}\special{pa -108 -362}%
+\special{pa -93 -356}\special{pa -76 -351}\special{pa -59 -347}\special{pa -40 -344}%
+\special{pa -20 -343}\special{pa -1 -342}\special{pa 19 -342}\special{pa 39 -344}%
+\special{pa 57 -347}\special{pa 75 -351}\special{pa 92 -356}\special{pa 107 -362}%
+\special{pa 121 -369}\special{pa 133 -376}\special{pa 142 -384}\special{pa 150 -393}%
+\special{pa 155 -402}\special{pa 157 -411}\special{pa 157 -421}\special{pa 155 -430}%
+\special{pa 150 -439}%
+\special{fp}%
+\special{pa -148 -442}\special{pa -150 -440}\special{pa -155 -431}\special{pa -157 -421}%
+\special{pa -157 -412}\special{pa -155 -403}\special{pa -150 -394}\special{pa -143 -385}%
+\special{fp}%
+\special{pa -190 -266}\special{pa -178 -256}\special{pa -162 -245}\special{pa -144 -236}%
+\special{pa -124 -228}\special{pa -102 -222}\special{pa -78 -216}\special{pa -53 -212}%
+\special{pa -27 -210}\special{pa -1 -209}\special{pa 25 -210}\special{pa 51 -212}%
+\special{pa 77 -216}\special{pa 100 -221}\special{pa 123 -228}\special{pa 143 -236}%
+\special{pa 161 -245}\special{pa 177 -255}\special{pa 190 -266}\special{pa 199 -277}%
+\special{pa 206 -289}\special{pa 210 -302}\special{pa 210 -314}\special{pa 206 -327}%
+\special{pa 200 -338}%
+\special{fp}%
+\special{pa -199 -339}\special{pa -206 -327}\special{pa -210 -315}\special{pa -210 -303}%
+\special{pa -206 -290}\special{pa -200 -278}\special{pa -190 -266}%
+\special{fp}%
+\special{pa -238 -117}\special{pa -222 -104}\special{pa -203 -91}\special{pa -180 -80}%
+\special{pa -155 -70}\special{pa -127 -61}\special{pa -98 -54}\special{pa -66 -50}%
+\special{pa -34 -47}\special{pa -1 -46}\special{pa 32 -46}\special{pa 64 -49}\special{pa 96 -54}%
+\special{pa 126 -61}\special{pa 153 -69}\special{pa 179 -79}\special{pa 202 -90}\special{pa 221 -103}%
+\special{pa 237 -116}\special{pa 249 -131}\special{pa 258 -146}\special{pa 262 -161}%
+\special{pa 262 -177}\special{pa 258 -192}\special{pa 252 -204}%
+\special{fp}%
+\special{pa -252 -204}\special{pa -258 -193}\special{pa -262 -178}\special{pa -262 -162}%
+\special{pa -258 -147}\special{pa -250 -132}\special{pa -238 -117}%
+\special{fp}%
+\special{pa 0 -555}\special{pa -4 -549}\special{pa -6 -545}\special{pa -9 -540}\special{pa -11 -536}%
+\special{pa -13 -530}\special{pa -15 -525}\special{pa -17 -519}\special{pa -19 -512}%
+\special{pa -22 -505}\special{pa -24 -497}\special{pa -26 -490}\special{pa -28 -481}%
+\special{pa -30 -472}\special{pa -32 -463}\special{pa -35 -453}\special{pa -37 -443}%
+\special{pa -39 -433}\special{pa -41 -422}\special{pa -43 -410}\special{pa -45 -398}%
+\special{pa -47 -386}\special{pa -50 -373}\special{pa -52 -360}\special{pa -54 -346}%
+\special{pa -56 -332}\special{pa -58 -318}\special{pa -60 -303}\special{pa -63 -287}%
+\special{pa -65 -271}\special{pa -67 -255}\special{pa -69 -238}\special{pa -71 -221}%
+\special{pa -73 -203}\special{pa -76 -185}\special{pa -78 -167}\special{pa -80 -148}%
+\special{pa -82 -128}\special{pa -84 -108}\special{pa -86 -88}\special{pa -88 -67}%
+\special{pa -91 -46}\special{pa -93 -24}\special{pa -95 -2}\special{pa -97 20}\special{pa -99 43}%
+\special{pa -101 67}\special{pa -104 91}\special{pa -106 115}\special{pa -108 140}%
+\special{fp}%
+\special{pa 0 -555}\special{pa 3 -552}\special{pa 5 -549}\special{pa 8 -545}\special{pa 11 -541}%
+\special{pa 13 -536}\special{pa 16 -531}\special{pa 19 -525}\special{pa 21 -519}\special{pa 24 -513}%
+\special{pa 27 -506}\special{pa 29 -499}\special{pa 32 -491}\special{pa 35 -482}\special{pa 37 -474}%
+\special{pa 40 -465}\special{pa 43 -455}\special{pa 45 -445}\special{pa 48 -435}\special{pa 51 -424}%
+\special{pa 53 -412}\special{pa 56 -401}\special{pa 59 -388}\special{pa 61 -376}\special{pa 64 -362}%
+\special{pa 66 -349}\special{pa 69 -335}\special{pa 72 -320}\special{pa 74 -305}\special{pa 77 -290}%
+\special{pa 80 -274}\special{pa 82 -258}\special{pa 85 -241}\special{pa 88 -224}\special{pa 90 -207}%
+\special{pa 93 -189}\special{pa 96 -170}\special{pa 98 -151}\special{pa 101 -132}%
+\special{pa 104 -112}\special{pa 106 -92}\special{pa 109 -71}\special{pa 112 -50}%
+\special{pa 114 -28}\special{pa 117 -6}\special{pa 120 16}\special{pa 122 39}\special{pa 125 62}%
+\special{pa 128 86}\special{pa 130 110}\special{pa 133 135}%
+\special{fp}%
+\special{pa 0 -555}\special{pa 6 -554}\special{pa 12 -552}\special{pa 18 -550}\special{pa 24 -547}%
+\special{pa 30 -544}\special{pa 36 -541}\special{pa 41 -537}\special{pa 47 -533}\special{pa 53 -528}%
+\special{pa 59 -523}\special{pa 65 -517}\special{pa 71 -511}\special{pa 77 -504}\special{pa 83 -497}%
+\special{pa 89 -490}\special{pa 95 -482}\special{pa 101 -474}\special{pa 107 -465}%
+\special{pa 112 -456}\special{pa 118 -446}\special{pa 124 -436}\special{pa 130 -425}%
+\special{pa 136 -414}\special{pa 142 -403}\special{pa 148 -391}\special{pa 154 -378}%
+\special{pa 160 -366}\special{pa 166 -352}\special{pa 172 -339}\special{pa 178 -325}%
+\special{pa 183 -310}\special{pa 189 -295}\special{pa 195 -280}\special{pa 201 -264}%
+\special{pa 207 -247}\special{pa 213 -231}\special{pa 219 -213}\special{pa 225 -196}%
+\special{pa 231 -178}\special{pa 237 -159}\special{pa 243 -140}\special{pa 249 -121}%
+\special{pa 254 -101}\special{pa 260 -80}\special{pa 266 -60}\special{pa 272 -38}%
+\special{pa 278 -17}\special{pa 284 5}\special{pa 290 28}\special{pa 296 51}%
+\special{fp}%
+\special{pa 0 -555}\special{pa 6 -556}\special{pa 11 -557}\special{pa 17 -557}\special{pa 23 -557}%
+\special{pa 29 -556}\special{pa 34 -555}\special{pa 40 -553}\special{pa 46 -551}\special{pa 51 -548}%
+\special{pa 57 -545}\special{pa 63 -542}\special{pa 69 -538}\special{pa 74 -534}\special{pa 80 -529}%
+\special{pa 86 -524}\special{pa 91 -518}\special{pa 97 -512}\special{pa 103 -506}%
+\special{pa 108 -499}\special{pa 114 -491}\special{pa 120 -484}\special{pa 126 -475}%
+\special{pa 131 -467}\special{pa 137 -457}\special{pa 143 -448}\special{pa 148 -438}%
+\special{pa 153 -429}%
+\special{fp}%
+\special{pa 0 -555}\special{pa 4 -560}\special{pa 9 -563}\special{pa 13 -564}%
+\special{fp}%
+\special{pa 0 -555}\special{pa -5 -560}\special{pa -11 -562}\special{pa -15 -563}%
+\special{fp}%
+\special{pa 0 -555}\special{pa -6 -556}\special{pa -12 -556}\special{pa -18 -556}%
+\special{pa -24 -556}\special{pa -30 -555}\special{pa -36 -553}\special{pa -41 -551}%
+\special{pa -47 -549}\special{pa -53 -546}\special{pa -59 -543}\special{pa -65 -539}%
+\special{pa -71 -535}\special{pa -77 -531}\special{pa -83 -526}\special{pa -89 -520}%
+\special{pa -95 -515}\special{pa -101 -508}\special{pa -107 -502}\special{pa -112 -494}%
+\special{pa -118 -487}\special{pa -124 -479}\special{pa -130 -470}\special{pa -136 -461}%
+\special{pa -142 -452}\special{pa -148 -442}\special{pa -154 -432}\special{pa -160 -421}%
+\special{pa -166 -410}\special{pa -172 -398}\special{pa -178 -386}\special{pa -183 -373}%
+\special{pa -189 -360}\special{pa -195 -347}\special{pa -201 -333}\special{pa -207 -319}%
+\special{pa -213 -304}\special{pa -218 -291}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex
new file mode 100644
index 00000000..988e49b7
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara3.tex
@@ -0,0 +1,265 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 21:51
+%%% template.sce 2016-8-22 21:51
+{\unitlength=6mm%
+\begin{picture}%
+( 7.17000, 6.03000)( -3.65000, -2.44000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.2384,-1.6002){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.3633,-2.3750){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,2.6107){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 831 -411}\special{pa -725 358}%
+\special{fp}%
+\special{pa -758 -535}\special{pa 758 535}%
+\special{fp}%
+\special{pa 0 576}\special{pa 0 -572}%
+\special{fp}%
+\special{pa -272 386}\special{pa -261 394}\special{pa -226 415}\special{pa -215 421}%
+\special{pa -183 436}\special{pa -156 446}\special{pa -142 451}\special{pa -103 461}%
+\special{pa -66 468}\special{pa -52 470}\special{pa -29 472}\special{pa 7 472}\special{pa 42 471}%
+\special{pa 53 470}\special{pa 79 466}\special{pa 117 458}\special{pa 156 446}\special{pa 198 429}%
+\special{pa 215 421}\special{pa 243 405}\special{pa 261 394}\special{pa 290 373}\special{pa 300 365}%
+\special{pa 333 335}\special{pa 339 330}\special{pa 362 304}\special{pa 387 272}\special{pa 409 237}%
+\special{pa 427 202}\special{pa 442 167}\special{pa 454 130}\special{pa 460 107}\special{pa 463 93}%
+\special{pa 469 56}\special{pa 472 19}\special{pa 472 7}\special{pa 472 -19}\special{pa 469 -56}%
+\special{pa 463 -93}\special{pa 454 -130}\special{pa 442 -167}\special{pa 434 -186}%
+\special{pa 427 -202}\special{pa 409 -237}\special{pa 393 -263}\special{pa 387 -271}%
+\special{pa 362 -304}\special{pa 345 -323}\special{pa 333 -335}\special{pa 300 -365}%
+\special{pa 261 -394}\special{pa 249 -402}\special{pa 215 -421}\special{pa 204 -426}%
+\special{pa 162 -444}\special{pa 156 -446}\special{pa 122 -456}\special{pa 84 -465}%
+\special{pa 53 -469}\special{pa 47 -470}\special{pa 11 -472}\special{pa -24 -472}%
+\special{pa -53 -469}\special{pa -61 -469}\special{pa -98 -462}\special{pa -136 -452}%
+\special{pa -155 -446}\special{pa -177 -438}\special{pa -215 -421}\special{pa -220 -418}%
+\special{pa -261 -394}\special{pa -266 -390}\special{pa -300 -365}\special{pa -314 -353}%
+\special{pa -333 -335}\special{pa -362 -304}\special{pa -387 -271}\special{pa -409 -237}%
+\special{pa -427 -202}\special{pa -442 -167}\special{pa -447 -154}\special{pa -454 -130}%
+\special{pa -463 -94}\special{pa -469 -58}\special{pa -472 -19}\special{pa -472 19}%
+\special{pa -470 44}\special{pa -469 56}\special{pa -463 94}\special{pa -454 130}%
+\special{pa -451 142}\special{pa -442 167}\special{pa -427 202}\special{pa -415 226}%
+\special{pa -409 237}\special{pa -387 271}\special{pa -369 295}\special{pa -362 304}%
+\special{pa -333 335}\special{pa -321 347}\special{pa -300 365}\special{pa -272 386}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -23 -369}\special{pa -45 -356}\special{pa -68 -341}%
+\special{pa -90 -325}\special{pa -112 -307}\special{pa -133 -289}\special{pa -154 -269}%
+\special{pa -175 -248}\special{pa -194 -226}\special{pa -213 -203}\special{pa -231 -180}%
+\special{pa -248 -155}\special{pa -264 -130}\special{pa -279 -105}\special{pa -293 -79}%
+\special{pa -306 -53}\special{pa -318 -27}\special{pa -328 0}\special{pa -337 26}%
+\special{pa -345 52}\special{pa -351 79}\special{pa -356 104}\special{pa -360 130}%
+\special{pa -362 155}\special{pa -362 179}\special{pa -362 203}\special{pa -360 225}%
+\special{pa -356 247}\special{pa -351 268}\special{pa -345 288}\special{pa -337 307}%
+\special{pa -328 324}\special{pa -318 341}\special{pa -306 355}\special{pa -293 369}%
+\special{pa -279 381}\special{pa -264 391}\special{pa -248 400}\special{pa -231 408}%
+\special{fp}%
+\special{pa -87 -327}\special{pa -77 -321}\special{pa -66 -316}\special{pa -54 -311}%
+\special{pa -41 -308}\special{pa -28 -305}\special{pa -14 -304}\special{pa 1 -303}%
+\special{pa 15 -304}\special{pa 29 -306}\special{pa 42 -308}\special{pa 55 -312}\special{pa 67 -316}%
+\special{pa 78 -322}\special{pa 88 -328}\special{pa 96 -335}\special{pa 103 -342}%
+\special{pa 108 -350}\special{pa 111 -358}\special{pa 113 -366}\special{pa 113 -375}%
+\special{pa 111 -383}\special{pa 107 -391}\special{pa 102 -399}\special{pa 95 -406}%
+\special{pa 87 -413}\special{pa 77 -419}\special{pa 66 -424}\special{pa 54 -429}\special{pa 41 -432}%
+\special{pa 28 -435}\special{pa 14 -436}\special{pa -1 -437}\special{pa -15 -436}%
+\special{pa -29 -435}\special{pa -42 -432}\special{pa -55 -428}\special{pa -67 -424}%
+\special{pa -78 -419}\special{pa -88 -412}\special{pa -96 -406}\special{pa -103 -398}%
+\special{pa -108 -390}\special{pa -111 -382}\special{pa -113 -374}\special{pa -113 -366}%
+\special{pa -111 -357}\special{pa -107 -349}\special{pa -102 -341}\special{pa -95 -334}%
+\special{pa -87 -327}%
+\special{fp}%
+\special{pa -168 -254}\special{pa -149 -243}\special{pa -128 -232}\special{pa -105 -224}%
+\special{pa -80 -217}\special{pa -53 -212}\special{pa -26 -209}\special{pa 1 -208}%
+\special{pa 29 -209}\special{pa 56 -212}\special{pa 82 -217}\special{pa 107 -224}%
+\special{pa 130 -233}\special{pa 151 -243}\special{pa 170 -255}\special{pa 186 -269}%
+\special{pa 199 -283}\special{pa 209 -298}\special{pa 216 -314}\special{pa 219 -330}%
+\special{pa 219 -346}\special{pa 215 -363}\special{pa 208 -378}\special{pa 198 -393}%
+\special{pa 185 -408}\special{pa 168 -421}\special{pa 149 -433}\special{pa 128 -443}%
+\special{pa 105 -452}\special{pa 80 -458}\special{pa 53 -463}\special{pa 26 -466}%
+\special{pa -1 -467}\special{pa -29 -466}\special{pa -56 -463}\special{pa -82 -458}%
+\special{pa -107 -451}\special{pa -130 -442}\special{pa -151 -432}\special{pa -170 -420}%
+\special{pa -186 -406}\special{pa -199 -392}\special{pa -209 -377}\special{pa -216 -361}%
+\special{pa -219 -345}\special{pa -219 -329}\special{pa -215 -313}\special{pa -208 -297}%
+\special{pa -198 -282}\special{pa -185 -267}\special{pa -168 -254}%
+\special{fp}%
+\special{pa -240 -167}\special{pa -213 -150}\special{pa -183 -135}\special{pa -149 -123}%
+\special{pa -114 -113}\special{pa -76 -106}\special{pa -38 -102}\special{pa 2 -100}%
+\special{pa 41 -102}\special{pa 80 -106}\special{pa 117 -114}\special{pa 152 -124}%
+\special{pa 186 -136}\special{pa 216 -151}\special{pa 242 -168}\special{pa 265 -187}%
+\special{pa 284 -207}\special{pa 298 -229}\special{pa 308 -252}\special{pa 313 -275}%
+\special{pa 313 -298}\special{pa 307 -321}\special{pa 297 -343}\special{pa 283 -365}%
+\special{pa 264 -385}\special{pa 240 -404}\special{pa 213 -421}\special{pa 183 -436}%
+\special{pa 149 -448}\special{pa 114 -458}\special{pa 76 -465}\special{pa 38 -469}%
+\special{pa -2 -470}\special{pa -41 -469}\special{pa -80 -464}\special{pa -117 -457}%
+\special{pa -152 -447}\special{pa -186 -434}\special{pa -216 -420}\special{pa -242 -403}%
+\special{pa -265 -384}\special{pa -284 -363}\special{pa -298 -342}\special{pa -308 -319}%
+\special{pa -313 -296}\special{pa -313 -273}\special{pa -307 -250}\special{pa -297 -227}%
+\special{pa -283 -206}\special{pa -264 -185}\special{pa -240 -167}%
+\special{fp}%
+\special{pa -298 -69}\special{pa -265 -48}\special{pa -227 -30}\special{pa -185 -15}%
+\special{pa -141 -3}\special{pa -95 6}\special{pa -47 11}\special{pa 2 13}\special{pa 51 11}%
+\special{pa 99 6}\special{pa 145 -3}\special{pa 189 -16}\special{pa 230 -31}\special{pa 268 -50}%
+\special{pa 301 -71}\special{pa 329 -95}\special{pa 353 -120}\special{pa 370 -147}%
+\special{pa 382 -175}\special{pa 388 -203}\special{pa 388 -232}\special{pa 382 -261}%
+\special{pa 369 -289}\special{pa 351 -315}\special{pa 327 -341}\special{pa 298 -364}%
+\special{pa 265 -385}\special{pa 245 -394}%
+\special{fp}%
+\special{pa -258 -388}\special{pa -268 -383}\special{pa -301 -362}\special{pa -329 -339}%
+\special{pa -353 -313}\special{pa -370 -286}\special{pa -382 -258}\special{pa -388 -230}%
+\special{pa -388 -201}\special{pa -382 -172}\special{pa -369 -144}\special{pa -351 -118}%
+\special{pa -327 -92}\special{pa -298 -69}%
+\special{fp}%
+\special{pa -339 32}\special{pa -301 56}\special{pa -258 77}\special{pa -211 94}\special{pa -160 108}%
+\special{pa -108 118}\special{pa -53 124}\special{pa 2 126}\special{pa 58 124}\special{pa 112 117}%
+\special{pa 165 107}\special{pa 215 93}\special{pa 262 75}\special{pa 304 54}\special{pa 342 30}%
+\special{pa 374 3}\special{pa 401 -25}\special{pa 421 -56}\special{pa 434 -88}\special{pa 441 -120}%
+\special{pa 441 -153}\special{pa 433 -185}\special{pa 419 -217}\special{pa 399 -248}%
+\special{pa 388 -259}%
+\special{fp}%
+\special{pa -381 -266}\special{pa -401 -245}\special{pa -421 -214}\special{pa -434 -183}%
+\special{pa -441 -150}\special{pa -441 -117}\special{pa -433 -85}\special{pa -419 -53}%
+\special{pa -399 -23}\special{pa -372 6}\special{pa -339 32}%
+\special{fp}%
+\special{pa -360 132}\special{pa -319 157}\special{pa -274 179}\special{pa -224 198}%
+\special{pa -170 212}\special{pa -114 223}\special{pa -56 229}\special{pa 3 231}\special{pa 61 229}%
+\special{pa 119 222}\special{pa 175 211}\special{pa 228 196}\special{pa 278 177}\special{pa 323 155}%
+\special{pa 363 129}\special{pa 397 101}\special{pa 425 71}\special{pa 447 38}\special{pa 461 4}%
+\special{pa 468 -30}\special{pa 468 -65}\special{pa 462 -93}%
+\special{fp}%
+\special{pa -461 -96}\special{pa -468 -62}\special{pa -468 -27}\special{pa -460 7}%
+\special{pa -445 41}\special{pa -423 73}\special{pa -395 104}\special{pa -360 132}%
+\special{fp}%
+\special{pa -360 224}\special{pa -319 249}\special{pa -274 271}\special{pa -224 289}%
+\special{pa -170 304}\special{pa -114 315}\special{pa -56 321}\special{pa 3 323}\special{pa 61 321}%
+\special{pa 119 314}\special{pa 175 303}\special{pa 228 288}\special{pa 278 269}\special{pa 323 247}%
+\special{pa 363 221}\special{pa 397 193}\special{pa 425 163}\special{pa 447 130}%
+\special{fp}%
+\special{pa 457 106}\special{pa 461 96}\special{pa 468 63}%
+\special{fp}%
+\special{pa -468 56}\special{pa -468 65}\special{pa -460 99}\special{pa -445 133}%
+\special{pa -423 165}\special{pa -395 196}\special{pa -360 224}%
+\special{fp}%
+\special{pa -339 303}\special{pa -301 326}\special{pa -258 347}\special{pa -211 365}%
+\special{pa -160 378}\special{pa -108 388}\special{pa -53 394}\special{pa 2 396}\special{pa 58 394}%
+\special{pa 112 388}\special{pa 165 377}\special{pa 215 363}\special{pa 262 345}\special{pa 304 324}%
+\special{pa 342 300}\special{pa 374 274}\special{pa 401 245}\special{pa 421 214}\special{pa 434 183}%
+\special{pa 438 166}%
+\special{fp}%
+\special{pa -433 185}\special{pa -419 217}\special{pa -399 248}\special{pa -372 276}%
+\special{pa -339 303}%
+\special{fp}%
+\special{pa -298 364}\special{pa -265 385}\special{pa -227 403}\special{pa -185 418}%
+\special{pa -141 431}\special{pa -95 439}\special{pa -47 445}\special{pa 2 446}\special{pa 51 444}%
+\special{pa 99 439}\special{pa 145 430}\special{pa 189 417}\special{pa 230 402}\special{pa 268 383}%
+\special{pa 301 362}\special{pa 329 339}\special{pa 353 313}\special{pa 360 302}%
+\special{fp}%
+\special{pa -369 289}\special{pa -351 315}\special{pa -327 341}\special{pa -298 364}%
+\special{fp}%
+\special{pa -240 404}\special{pa -213 421}\special{pa -183 436}\special{pa -149 448}%
+\special{pa -114 458}\special{pa -76 465}\special{pa -38 469}\special{pa 2 470}\special{pa 41 469}%
+\special{pa 80 464}\special{pa 117 457}\special{pa 152 447}\special{pa 186 434}\special{pa 216 420}%
+\special{pa 242 403}\special{pa 258 390}%
+\special{fp}%
+\special{pa -264 385}\special{pa -240 404}%
+\special{fp}%
+\special{pa -26 466}\special{pa 1 467}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -11 -364}\special{pa -23 -346}\special{pa -34 -326}%
+\special{pa -45 -305}\special{pa -56 -283}\special{pa -66 -259}\special{pa -77 -235}%
+\special{pa -87 -210}\special{pa -96 -184}\special{pa -106 -157}\special{pa -115 -129}%
+\special{pa -123 -101}\special{pa -131 -73}\special{pa -139 -44}\special{pa -146 -15}%
+\special{pa -152 14}\special{pa -158 42}\special{pa -163 71}\special{pa -167 100}%
+\special{pa -171 128}\special{pa -174 155}\special{pa -177 182}\special{pa -179 208}%
+\special{pa -180 234}\special{pa -180 258}\special{pa -180 281}\special{pa -179 304}%
+\special{pa -177 325}\special{pa -174 345}\special{pa -171 363}\special{pa -167 380}%
+\special{pa -163 396}\special{pa -158 410}\special{pa -152 422}\special{pa -146 433}%
+\special{pa -139 442}\special{pa -131 449}\special{pa -123 455}\special{pa -115 458}%
+\special{pa -106 460}\special{pa -103 460}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 3 -363}\special{pa 5 -343}\special{pa 8 -322}\special{pa 11 -300}%
+\special{pa 13 -277}\special{pa 16 -252}\special{pa 19 -227}\special{pa 21 -200}\special{pa 23 -173}%
+\special{pa 26 -145}\special{pa 28 -117}\special{pa 30 -88}\special{pa 32 -58}\special{pa 34 -29}%
+\special{pa 35 1}\special{pa 37 30}\special{pa 38 60}\special{pa 39 89}\special{pa 41 118}%
+\special{pa 41 146}\special{pa 42 174}\special{pa 43 202}\special{pa 43 228}\special{pa 44 253}%
+\special{pa 44 278}\special{pa 44 301}\special{pa 43 323}\special{pa 43 344}\special{pa 42 364}%
+\special{pa 41 382}\special{pa 41 399}\special{pa 39 414}\special{pa 38 427}\special{pa 37 439}%
+\special{pa 35 449}\special{pa 34 457}\special{pa 32 464}\special{pa 28 471}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 16 -366}\special{pa 32 -349}\special{pa 48 -331}\special{pa 64 -311}%
+\special{pa 79 -290}\special{pa 95 -268}\special{pa 110 -245}\special{pa 124 -221}%
+\special{pa 138 -196}\special{pa 151 -171}\special{pa 164 -145}\special{pa 176 -118}%
+\special{pa 188 -90}\special{pa 198 -63}\special{pa 208 -35}\special{pa 217 -7}\special{pa 225 21}%
+\special{pa 233 49}\special{pa 239 77}\special{pa 245 105}\special{pa 249 132}\special{pa 253 159}%
+\special{pa 255 184}\special{pa 257 210}\special{pa 257 234}\special{pa 257 258}\special{pa 255 280}%
+\special{pa 253 301}\special{pa 249 322}\special{pa 245 340}\special{pa 239 358}\special{pa 233 374}%
+\special{pa 225 389}\special{pa 217 402}\special{pa 208 413}\special{pa 198 423}\special{pa 188 432}%
+\special{pa 176 438}\special{pa 164 443}\special{pa 163 443}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 26 -372}\special{pa 52 -361}\special{pa 77 -349}\special{pa 102 -335}%
+\special{pa 127 -320}\special{pa 152 -304}\special{pa 175 -287}\special{pa 198 -268}%
+\special{pa 221 -249}\special{pa 242 -228}\special{pa 263 -207}\special{pa 282 -184}%
+\special{pa 300 -161}\special{pa 317 -138}\special{pa 333 -114}\special{pa 348 -89}%
+\special{pa 361 -64}\special{pa 373 -39}\special{pa 383 -13}\special{pa 392 12}\special{pa 399 38}%
+\special{pa 405 63}\special{pa 409 88}\special{pa 411 112}\special{pa 412 137}\special{pa 411 160}%
+\special{pa 409 183}\special{pa 405 206}\special{pa 399 227}\special{pa 392 248}\special{pa 383 267}%
+\special{pa 373 286}\special{pa 361 303}\special{pa 348 320}\special{pa 333 335}\special{pa 317 348}%
+\special{pa 300 361}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 30 -380}\special{pa 59 -377}\special{pa 88 -373}\special{pa 117 -367}%
+\special{pa 146 -360}\special{pa 174 -352}\special{pa 201 -342}\special{pa 228 -330}%
+\special{pa 253 -318}\special{pa 278 -304}\special{pa 301 -289}\special{pa 323 -272}%
+\special{pa 344 -255}\special{pa 364 -237}\special{pa 382 -218}\special{pa 399 -198}%
+\special{pa 414 -177}\special{pa 427 -155}\special{pa 439 -133}\special{pa 449 -110}%
+\special{pa 457 -87}\special{pa 464 -64}\special{pa 469 -40}\special{pa 471 -16}\special{pa 472 8}%
+\special{pa 471 32}\special{pa 469 56}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 27 -388}\special{pa 53 -394}\special{pa 80 -397}\special{pa 106 -400}%
+\special{pa 131 -400}\special{pa 156 -400}\special{pa 181 -397}\special{pa 204 -393}%
+\special{pa 227 -388}\special{pa 249 -380}\special{pa 271 -372}\special{pa 291 -362}%
+\special{pa 309 -350}\special{pa 327 -337}\special{pa 343 -323}\special{pa 358 -308}%
+\special{pa 372 -291}\special{pa 384 -273}\special{pa 391 -261}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 18 -395}\special{pa 35 -406}\special{pa 52 -417}\special{pa 69 -425}%
+\special{pa 86 -432}\special{pa 103 -437}\special{pa 119 -441}\special{pa 135 -442}%
+\special{pa 150 -442}\special{pa 164 -441}\special{pa 178 -437}\special{pa 191 -432}%
+\special{pa 195 -430}%
+\special{fp}%
+\special{pa 0 -381}\special{pa 4 -398}\special{pa 9 -413}\special{pa 13 -426}\special{pa 17 -438}%
+\special{pa 22 -448}\special{pa 26 -456}\special{pa 30 -462}\special{pa 34 -467}\special{pa 41 -471}%
+\special{pa 45 -470}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -10 -397}\special{pa -19 -411}\special{pa -29 -424}%
+\special{pa -39 -435}\special{pa -48 -444}\special{pa -57 -451}\special{pa -66 -457}%
+\special{pa -75 -461}\special{pa -83 -463}\special{pa -91 -463}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -22 -392}\special{pa -43 -402}\special{pa -65 -410}%
+\special{pa -86 -417}\special{pa -106 -422}\special{pa -127 -425}\special{pa -147 -426}%
+\special{pa -166 -426}\special{pa -185 -424}\special{pa -203 -421}\special{pa -220 -415}%
+\special{pa -236 -409}\special{pa -251 -400}\special{pa -266 -390}\special{pa -266 -390}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -29 -385}\special{pa -57 -388}\special{pa -85 -388}%
+\special{pa -113 -388}\special{pa -141 -386}\special{pa -168 -382}\special{pa -194 -377}%
+\special{pa -219 -370}\special{pa -244 -362}\special{pa -268 -352}\special{pa -290 -341}%
+\special{pa -312 -329}\special{pa -332 -315}\special{pa -351 -300}\special{pa -368 -284}%
+\special{pa -384 -267}\special{pa -399 -249}\special{pa -412 -230}\special{pa -423 -210}%
+\special{pa -433 -189}\special{pa -441 -167}%
+\special{fp}%
+\special{pa 0 -381}\special{pa -29 -377}\special{pa -58 -371}\special{pa -87 -363}%
+\special{pa -115 -355}\special{pa -143 -344}\special{pa -170 -333}\special{pa -197 -320}%
+\special{pa -222 -306}\special{pa -247 -290}\special{pa -271 -274}\special{pa -294 -256}%
+\special{pa -316 -237}\special{pa -337 -218}\special{pa -356 -197}\special{pa -374 -176}%
+\special{pa -390 -154}\special{pa -405 -132}\special{pa -418 -109}\special{pa -429 -85}%
+\special{pa -439 -62}\special{pa -447 -38}\special{pa -454 -13}\special{pa -458 11}%
+\special{pa -461 35}\special{pa -462 59}\special{pa -461 83}\special{pa -458 106}%
+\special{pa -454 129}\special{pa -447 152}\special{pa -439 174}\special{pa -429 195}%
+\special{pa -418 216}\special{pa -405 235}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex
new file mode 100644
index 00000000..82c5a44e
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara4.tex
@@ -0,0 +1,320 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-22 22:0
+%%% template.sce 2016-8-22 22:0
+{\unitlength=8mm%
+\begin{picture}%
+( 7.17000, 6.03000)( -3.65000, -2.44000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.2384,-1.6002){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(3.3633,-2.3750){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,2.6107){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa -363 515}\special{pa -348 525}\special{pa -302 553}\special{pa -286 561}%
+\special{pa -243 581}\special{pa -207 595}\special{pa -189 601}\special{pa -137 615}%
+\special{pa -87 624}\special{pa -70 626}\special{pa -39 629}\special{pa 9 630}\special{pa 57 627}%
+\special{pa 70 626}\special{pa 105 621}\special{pa 156 610}\special{pa 208 594}\special{pa 264 572}%
+\special{pa 286 561}\special{pa 324 540}\special{pa 348 525}\special{pa 386 498}\special{pa 400 487}%
+\special{pa 444 447}\special{pa 451 439}\special{pa 482 405}\special{pa 515 362}\special{pa 545 316}%
+\special{pa 569 270}\special{pa 589 222}\special{pa 605 174}\special{pa 613 143}\special{pa 617 125}%
+\special{pa 625 75}\special{pa 629 25}\special{pa 630 9}\special{pa 629 -25}\special{pa 625 -75}%
+\special{pa 617 -125}\special{pa 605 -174}\special{pa 589 -222}\special{pa 579 -248}%
+\special{pa 569 -270}\special{pa 545 -316}\special{pa 524 -350}\special{pa 516 -361}%
+\special{pa 483 -405}\special{pa 460 -430}\special{pa 444 -447}\special{pa 400 -487}%
+\special{pa 348 -525}\special{pa 332 -535}\special{pa 286 -561}\special{pa 272 -568}%
+\special{pa 216 -592}\special{pa 208 -595}\special{pa 163 -609}\special{pa 112 -620}%
+\special{pa 71 -626}\special{pa 63 -627}\special{pa 15 -630}\special{pa -33 -629}%
+\special{pa -71 -626}\special{pa -81 -625}\special{pa -130 -616}\special{pa -182 -603}%
+\special{pa -207 -595}\special{pa -236 -584}\special{pa -287 -561}\special{pa -294 -557}%
+\special{pa -348 -525}\special{pa -355 -521}\special{pa -399 -487}\special{pa -419 -471}%
+\special{pa -444 -447}\special{pa -483 -405}\special{pa -516 -361}\special{pa -545 -316}%
+\special{pa -569 -270}\special{pa -589 -222}\special{pa -595 -206}\special{pa -605 -174}%
+\special{pa -617 -125}\special{pa -625 -77}\special{pa -629 -25}\special{pa -629 25}%
+\special{pa -627 59}\special{pa -625 75}\special{pa -617 125}\special{pa -605 174}%
+\special{pa -601 189}\special{pa -589 222}\special{pa -569 270}\special{pa -553 302}%
+\special{pa -545 316}\special{pa -516 361}\special{pa -492 393}\special{pa -483 405}%
+\special{pa -444 447}\special{pa -427 463}\special{pa -399 487}\special{pa -363 515}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -30 -492}\special{pa -61 -474}\special{pa -91 -455}%
+\special{pa -120 -433}\special{pa -149 -410}\special{pa -178 -385}\special{pa -206 -358}%
+\special{pa -233 -330}\special{pa -259 -301}\special{pa -284 -271}\special{pa -308 -239}%
+\special{pa -331 -207}\special{pa -352 -174}\special{pa -372 -140}\special{pa -391 -106}%
+\special{pa -408 -71}\special{pa -423 -36}\special{pa -437 0}\special{pa -449 35}%
+\special{pa -460 70}\special{pa -468 105}\special{pa -475 139}\special{pa -479 173}%
+\special{pa -482 206}\special{pa -483 239}\special{pa -482 270}\special{pa -479 301}%
+\special{pa -475 330}\special{pa -468 358}\special{pa -460 384}\special{pa -449 409}%
+\special{pa -437 432}\special{pa -423 454}\special{pa -408 474}\special{pa -391 492}%
+\special{pa -372 508}\special{pa -352 522}\special{pa -331 534}\special{pa -308 544}%
+\special{fp}%
+\special{pa -116 -436}\special{pa -103 -428}\special{pa -88 -421}\special{pa -72 -415}%
+\special{pa -55 -411}\special{pa -37 -407}\special{pa -18 -405}\special{pa 1 -404}%
+\special{pa 20 -405}\special{pa 38 -407}\special{pa 56 -411}\special{pa 73 -416}\special{pa 89 -422}%
+\special{pa 104 -429}\special{pa 117 -437}\special{pa 128 -446}\special{pa 137 -456}%
+\special{pa 144 -466}\special{pa 148 -477}\special{pa 150 -488}\special{pa 150 -500}%
+\special{pa 148 -511}\special{pa 143 -521}\special{pa 136 -532}\special{pa 127 -542}%
+\special{pa 116 -551}\special{pa 103 -559}\special{pa 88 -566}\special{pa 72 -572}%
+\special{pa 55 -576}\special{pa 37 -580}\special{pa 18 -582}\special{pa -1 -583}\special{pa -20 -582}%
+\special{pa -38 -580}\special{pa -56 -576}\special{pa -73 -571}\special{pa -89 -565}%
+\special{pa -104 -558}\special{pa -117 -550}\special{pa -128 -541}\special{pa -137 -531}%
+\special{pa -144 -521}\special{pa -148 -510}\special{pa -150 -499}\special{pa -150 -487}%
+\special{pa -148 -476}\special{pa -143 -466}\special{pa -136 -455}\special{pa -127 -445}%
+\special{pa -116 -436}%
+\special{fp}%
+\special{pa -225 -339}\special{pa -199 -323}\special{pa -171 -310}\special{pa -140 -298}%
+\special{pa -106 -289}\special{pa -71 -282}\special{pa -35 -278}\special{pa 2 -277}%
+\special{pa 38 -279}\special{pa 74 -283}\special{pa 109 -290}\special{pa 142 -299}%
+\special{pa 173 -311}\special{pa 202 -325}\special{pa 227 -341}\special{pa 248 -358}%
+\special{pa 266 -377}\special{pa 279 -398}\special{pa 288 -419}\special{pa 292 -440}%
+\special{pa 292 -462}\special{pa 287 -483}\special{pa 278 -504}\special{pa 264 -525}%
+\special{pa 246 -544}\special{pa 225 -561}\special{pa 199 -577}\special{pa 171 -591}%
+\special{pa 140 -602}\special{pa 106 -611}\special{pa 71 -618}\special{pa 35 -622}%
+\special{pa -2 -623}\special{pa -38 -621}\special{pa -74 -617}\special{pa -109 -610}%
+\special{pa -142 -601}\special{pa -173 -589}\special{pa -202 -575}\special{pa -227 -560}%
+\special{pa -248 -542}\special{pa -266 -523}\special{pa -279 -503}\special{pa -288 -482}%
+\special{pa -292 -460}\special{pa -292 -438}\special{pa -287 -417}\special{pa -278 -396}%
+\special{pa -264 -376}\special{pa -246 -357}\special{pa -225 -339}%
+\special{fp}%
+\special{pa -320 -222}\special{pa -284 -200}\special{pa -244 -180}\special{pa -199 -164}%
+\special{pa -152 -151}\special{pa -102 -141}\special{pa -50 -135}\special{pa 2 -134}%
+\special{pa 55 -136}\special{pa 106 -142}\special{pa 156 -152}\special{pa 203 -165}%
+\special{pa 247 -182}\special{pa 288 -202}\special{pa 323 -224}\special{pa 354 -249}%
+\special{pa 379 -277}\special{pa 398 -305}\special{pa 411 -336}\special{pa 417 -366}%
+\special{pa 417 -397}\special{pa 410 -428}\special{pa 397 -458}\special{pa 377 -487}%
+\special{pa 351 -514}\special{pa 320 -539}\special{pa 284 -561}\special{pa 244 -581}%
+\special{pa 199 -597}\special{pa 152 -610}\special{pa 102 -620}\special{pa 50 -625}%
+\special{pa -2 -627}\special{pa -55 -625}\special{pa -106 -619}\special{pa -156 -609}%
+\special{pa -203 -596}\special{pa -247 -579}\special{pa -288 -559}\special{pa -323 -537}%
+\special{pa -354 -512}\special{pa -379 -484}\special{pa -398 -455}\special{pa -411 -425}%
+\special{pa -417 -395}\special{pa -417 -364}\special{pa -410 -333}\special{pa -397 -303}%
+\special{pa -377 -274}\special{pa -351 -247}\special{pa -320 -222}%
+\special{fp}%
+\special{pa -398 -92}\special{pa -353 -64}\special{pa -302 -40}\special{pa -247 -20}%
+\special{pa -188 -3}\special{pa -126 8}\special{pa -62 15}\special{pa 3 17}\special{pa 68 15}%
+\special{pa 132 7}\special{pa 193 -5}\special{pa 252 -21}\special{pa 307 -42}\special{pa 357 -67}%
+\special{pa 401 -95}\special{pa 439 -126}\special{pa 470 -160}\special{pa 494 -196}%
+\special{pa 510 -233}\special{pa 518 -271}\special{pa 517 -310}\special{pa 509 -348}%
+\special{pa 492 -385}\special{pa 468 -421}\special{pa 436 -454}\special{pa 398 -485}%
+\special{pa 353 -513}\special{pa 327 -526}%
+\special{fp}%
+\special{pa -344 -517}\special{pa -357 -511}\special{pa -401 -483}\special{pa -439 -451}%
+\special{pa -470 -418}\special{pa -494 -382}\special{pa -510 -344}\special{pa -518 -306}%
+\special{pa -517 -268}\special{pa -509 -230}\special{pa -492 -193}\special{pa -468 -157}%
+\special{pa -436 -123}\special{pa -398 -92}%
+\special{fp}%
+\special{pa -452 43}\special{pa -401 75}\special{pa -344 102}\special{pa -281 126}%
+\special{pa -214 144}\special{pa -143 157}\special{pa -71 165}\special{pa 3 168}\special{pa 77 165}%
+\special{pa 150 156}\special{pa 220 143}\special{pa 287 124}\special{pa 349 100}\special{pa 406 72}%
+\special{pa 456 40}\special{pa 499 5}\special{pa 534 -34}\special{pa 561 -75}\special{pa 579 -117}%
+\special{pa 588 -160}\special{pa 588 -204}\special{pa 578 -247}\special{pa 559 -290}%
+\special{pa 532 -330}\special{pa 518 -345}%
+\special{fp}%
+\special{pa -509 -355}\special{pa -534 -327}\special{pa -561 -286}\special{pa -579 -244}%
+\special{pa -588 -200}\special{pa -588 -157}\special{pa -578 -113}\special{pa -559 -71}%
+\special{pa -532 -30}\special{pa -496 8}\special{pa -452 43}%
+\special{fp}%
+\special{pa -480 176}\special{pa -426 209}\special{pa -365 239}\special{pa -298 263}%
+\special{pa -227 283}\special{pa -152 297}\special{pa -75 305}\special{pa 3 308}\special{pa 82 305}%
+\special{pa 159 296}\special{pa 233 281}\special{pa 304 261}\special{pa 370 236}\special{pa 431 207}%
+\special{pa 484 173}\special{pa 530 135}\special{pa 567 94}\special{pa 596 51}\special{pa 615 6}%
+\special{pa 624 -40}\special{pa 624 -86}\special{pa 615 -124}%
+\special{fp}%
+\special{pa -615 -129}\special{pa -624 -82}\special{pa -624 -36}\special{pa -614 10}%
+\special{pa -594 55}\special{pa -564 98}\special{pa -526 138}\special{pa -480 176}%
+\special{fp}%
+\special{pa -480 298}\special{pa -426 332}\special{pa -365 361}\special{pa -298 386}%
+\special{pa -227 405}\special{pa -152 420}\special{pa -75 428}\special{pa 3 431}\special{pa 82 427}%
+\special{pa 159 419}\special{pa 233 404}\special{pa 304 384}\special{pa 370 359}\special{pa 431 329}%
+\special{pa 484 295}\special{pa 530 257}\special{pa 567 217}\special{pa 596 173}%
+\special{fp}%
+\special{pa 609 141}\special{pa 615 129}\special{pa 624 84}%
+\special{fp}%
+\special{pa -624 75}\special{pa -624 86}\special{pa -614 132}\special{pa -594 177}%
+\special{pa -564 220}\special{pa -526 261}\special{pa -480 298}%
+\special{fp}%
+\special{pa -452 403}\special{pa -401 435}\special{pa -344 463}\special{pa -281 486}%
+\special{pa -214 504}\special{pa -143 518}\special{pa -71 526}\special{pa 3 528}\special{pa 77 525}%
+\special{pa 150 517}\special{pa 220 503}\special{pa 287 484}\special{pa 349 461}\special{pa 406 433}%
+\special{pa 456 401}\special{pa 499 365}\special{pa 534 327}\special{pa 561 286}\special{pa 579 244}%
+\special{pa 584 221}%
+\special{fp}%
+\special{pa -578 247}\special{pa -559 290}\special{pa -532 330}\special{pa -496 368}%
+\special{pa -452 403}%
+\special{fp}%
+\special{pa -398 485}\special{pa -353 513}\special{pa -302 537}\special{pa -247 558}%
+\special{pa -188 574}\special{pa -126 586}\special{pa -62 593}\special{pa 3 595}\special{pa 68 592}%
+\special{pa 132 585}\special{pa 193 573}\special{pa 252 556}\special{pa 307 535}\special{pa 357 511}%
+\special{pa 401 483}\special{pa 439 451}\special{pa 470 418}\special{pa 480 403}%
+\special{fp}%
+\special{pa -492 385}\special{pa -468 421}\special{pa -436 454}\special{pa -398 485}%
+\special{fp}%
+\special{pa -320 539}\special{pa -284 561}\special{pa -244 581}\special{pa -199 597}%
+\special{pa -152 610}\special{pa -102 620}\special{pa -50 625}\special{pa 2 627}\special{pa 55 625}%
+\special{pa 106 619}\special{pa 156 609}\special{pa 203 596}\special{pa 247 579}\special{pa 288 559}%
+\special{pa 323 537}\special{pa 344 520}%
+\special{fp}%
+\special{pa -351 514}\special{pa -320 539}%
+\special{fp}%
+\special{pa -35 622}\special{pa 2 623}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -15 -486}\special{pa -30 -461}\special{pa -45 -435}%
+\special{pa -60 -407}\special{pa -74 -377}\special{pa -88 -346}\special{pa -102 -313}%
+\special{pa -116 -280}\special{pa -129 -245}\special{pa -141 -209}\special{pa -153 -172}%
+\special{pa -164 -135}\special{pa -175 -97}\special{pa -185 -59}\special{pa -194 -20}%
+\special{pa -203 18}\special{pa -210 57}\special{pa -217 95}\special{pa -223 133}%
+\special{pa -228 170}\special{pa -232 207}\special{pa -236 243}\special{pa -238 278}%
+\special{pa -240 311}\special{pa -240 344}\special{pa -240 375}\special{pa -238 405}%
+\special{pa -236 433}\special{pa -232 460}\special{pa -228 484}\special{pa -223 507}%
+\special{pa -217 528}\special{pa -210 546}\special{pa -203 563}\special{pa -194 577}%
+\special{pa -185 589}\special{pa -175 599}\special{pa -164 606}\special{pa -153 611}%
+\special{pa -141 613}\special{pa -137 613}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 4 -484}\special{pa 7 -458}\special{pa 11 -430}\special{pa 14 -400}%
+\special{pa 18 -369}\special{pa 21 -336}\special{pa 25 -302}\special{pa 28 -267}\special{pa 31 -231}%
+\special{pa 34 -193}\special{pa 37 -155}\special{pa 40 -117}\special{pa 42 -78}\special{pa 45 -39}%
+\special{pa 47 1}\special{pa 49 40}\special{pa 51 80}\special{pa 53 119}\special{pa 54 157}%
+\special{pa 55 195}\special{pa 56 232}\special{pa 57 269}\special{pa 58 304}\special{pa 58 338}%
+\special{pa 58 370}\special{pa 58 402}\special{pa 58 431}\special{pa 57 459}\special{pa 56 485}%
+\special{pa 55 509}\special{pa 54 532}\special{pa 53 552}\special{pa 51 570}\special{pa 49 585}%
+\special{pa 47 598}\special{pa 45 609}\special{pa 42 618}\special{pa 37 628}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 22 -488}\special{pa 43 -465}\special{pa 64 -441}\special{pa 85 -415}%
+\special{pa 106 -387}\special{pa 126 -358}\special{pa 146 -327}\special{pa 165 -295}%
+\special{pa 184 -262}\special{pa 202 -228}\special{pa 219 -193}\special{pa 235 -157}%
+\special{pa 250 -120}\special{pa 264 -84}\special{pa 277 -46}\special{pa 290 -9}\special{pa 301 29}%
+\special{pa 310 66}\special{pa 319 103}\special{pa 326 140}\special{pa 332 176}\special{pa 337 211}%
+\special{pa 340 246}\special{pa 342 280}\special{pa 343 312}\special{pa 342 343}\special{pa 340 373}%
+\special{pa 337 402}\special{pa 332 429}\special{pa 326 454}\special{pa 319 477}\special{pa 310 499}%
+\special{pa 301 518}\special{pa 290 536}\special{pa 277 551}\special{pa 264 564}\special{pa 250 575}%
+\special{pa 235 584}\special{pa 219 591}\special{pa 217 591}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 34 -496}\special{pa 69 -481}\special{pa 103 -465}\special{pa 137 -447}%
+\special{pa 170 -427}\special{pa 202 -406}\special{pa 234 -382}\special{pa 265 -358}%
+\special{pa 294 -332}\special{pa 323 -304}\special{pa 350 -275}\special{pa 376 -246}%
+\special{pa 400 -215}\special{pa 423 -184}\special{pa 444 -151}\special{pa 464 -119}%
+\special{pa 481 -85}\special{pa 497 -52}\special{pa 511 -18}\special{pa 522 16}\special{pa 532 50}%
+\special{pa 540 84}\special{pa 545 117}\special{pa 548 150}\special{pa 549 182}\special{pa 548 214}%
+\special{pa 545 244}\special{pa 540 274}\special{pa 532 303}\special{pa 522 330}\special{pa 511 357}%
+\special{pa 497 381}\special{pa 481 405}\special{pa 464 426}\special{pa 444 446}\special{pa 423 464}%
+\special{pa 400 481}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 40 -507}\special{pa 79 -503}\special{pa 118 -497}\special{pa 157 -490}%
+\special{pa 195 -480}\special{pa 232 -469}\special{pa 268 -455}\special{pa 303 -440}%
+\special{pa 337 -423}\special{pa 370 -405}\special{pa 401 -385}\special{pa 431 -363}%
+\special{pa 459 -340}\special{pa 485 -316}\special{pa 509 -290}\special{pa 532 -263}%
+\special{pa 552 -236}\special{pa 570 -207}\special{pa 585 -177}\special{pa 599 -147}%
+\special{pa 610 -116}\special{pa 619 -85}\special{pa 625 -53}\special{pa 628 -21}%
+\special{pa 630 11}\special{pa 628 42}\special{pa 625 74}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 36 -518}\special{pa 71 -525}\special{pa 106 -530}\special{pa 141 -533}%
+\special{pa 175 -534}\special{pa 208 -533}\special{pa 241 -530}\special{pa 273 -524}%
+\special{pa 303 -517}\special{pa 333 -507}\special{pa 361 -496}\special{pa 387 -482}%
+\special{pa 412 -467}\special{pa 436 -450}\special{pa 458 -431}\special{pa 478 -410}%
+\special{pa 496 -388}\special{pa 512 -364}\special{pa 521 -349}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 23 -526}\special{pa 47 -542}\special{pa 70 -556}\special{pa 93 -567}%
+\special{pa 115 -576}\special{pa 137 -583}\special{pa 159 -588}\special{pa 179 -590}%
+\special{pa 200 -590}\special{pa 219 -588}\special{pa 237 -583}\special{pa 255 -576}%
+\special{pa 259 -573}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 6 -530}\special{pa 12 -550}\special{pa 18 -568}\special{pa 23 -584}%
+\special{pa 29 -597}\special{pa 34 -608}\special{pa 40 -617}\special{pa 45 -623}\special{pa 55 -627}%
+\special{pa 60 -626}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -13 -529}\special{pa -26 -548}\special{pa -39 -565}%
+\special{pa -51 -580}\special{pa -64 -592}\special{pa -76 -602}\special{pa -88 -610}%
+\special{pa -100 -615}\special{pa -111 -618}\special{pa -121 -618}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -29 -523}\special{pa -58 -536}\special{pa -86 -547}%
+\special{pa -114 -556}\special{pa -142 -562}\special{pa -169 -566}\special{pa -196 -568}%
+\special{pa -221 -568}\special{pa -246 -566}\special{pa -270 -561}\special{pa -293 -554}%
+\special{pa -315 -545}\special{pa -335 -533}\special{pa -354 -520}\special{pa -354 -520}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -38 -514}\special{pa -76 -517}\special{pa -114 -518}%
+\special{pa -151 -517}\special{pa -188 -514}\special{pa -223 -509}\special{pa -258 -502}%
+\special{pa -292 -493}\special{pa -325 -482}\special{pa -357 -470}\special{pa -387 -455}%
+\special{pa -416 -438}\special{pa -443 -420}\special{pa -468 -400}\special{pa -491 -379}%
+\special{pa -513 -356}\special{pa -532 -332}\special{pa -549 -306}\special{pa -564 -279}%
+\special{pa -577 -251}\special{pa -588 -223}%
+\special{fp}%
+\special{pa 0 -508}\special{pa -39 -502}\special{pa -77 -494}\special{pa -115 -485}%
+\special{pa -153 -473}\special{pa -190 -459}\special{pa -227 -444}\special{pa -262 -426}%
+\special{pa -297 -407}\special{pa -330 -387}\special{pa -362 -365}\special{pa -392 -341}%
+\special{pa -421 -317}\special{pa -449 -291}\special{pa -474 -263}\special{pa -498 -235}%
+\special{pa -520 -206}\special{pa -539 -176}\special{pa -557 -145}\special{pa -572 -114}%
+\special{pa -586 -82}\special{pa -596 -50}\special{pa -605 -18}\special{pa -611 14}%
+\special{pa -614 47}\special{pa -616 79}\special{pa -614 111}\special{pa -611 142}%
+\special{pa -605 173}\special{pa -596 203}\special{pa -586 232}\special{pa -572 260}%
+\special{pa -557 288}\special{pa -540 313}%
+\special{fp}%
+\special{pa 1109 -548}\special{pa 565 -279}%
+\special{fp}%
+\special{pa -483 239}\special{pa -966 477}%
+\special{fp}%
+\special{pa -1010 -714}\special{pa -515 -363}%
+\special{fp}%
+\special{pa 404 285}\special{pa 1010 714}%
+\special{fp}%
+\special{pa 0 769}\special{pa 0 630}%
+\special{fp}%
+\special{pa 0 -508}\special{pa 0 -762}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 568 -281}\special{pa 561 -277}\special{fp}\special{pa 533 -264}\special{pa 526 -260}\special{fp}%
+\special{pa 498 -246}\special{pa 491 -243}\special{fp}\special{pa 463 -229}\special{pa 456 -225}\special{fp}%
+\special{pa 429 -212}\special{pa 421 -208}\special{fp}\special{pa 394 -195}\special{pa 386 -191}\special{fp}%
+\special{pa 359 -177}\special{pa 352 -174}\special{fp}\special{pa 324 -160}\special{pa 317 -156}\special{fp}%
+\special{pa 289 -143}\special{pa 282 -139}\special{fp}\special{pa 254 -125}\special{pa 247 -122}\special{fp}%
+\special{pa 219 -108}\special{pa 212 -105}\special{fp}\special{pa 184 -91}\special{pa 177 -87}\special{fp}%
+\special{pa 149 -74}\special{pa 142 -70}\special{fp}\special{pa 114 -56}\special{pa 107 -53}\special{fp}%
+\special{pa 79 -39}\special{pa 72 -36}\special{fp}\special{pa 44 -22}\special{pa 37 -18}\special{fp}%
+\special{pa 9 -5}\special{pa 2 -1}\special{fp}\special{pa -26 13}\special{pa -33 16}\special{fp}%
+\special{pa -60 30}\special{pa -68 33}\special{fp}\special{pa -95 47}\special{pa -103 51}\special{fp}%
+\special{pa -130 64}\special{pa -137 68}\special{fp}\special{pa -165 82}\special{pa -172 85}\special{fp}%
+\special{pa -200 99}\special{pa -207 102}\special{fp}\special{pa -235 116}\special{pa -242 120}\special{fp}%
+\special{pa -270 133}\special{pa -277 137}\special{fp}\special{pa -305 151}\special{pa -312 154}\special{fp}%
+\special{pa -340 168}\special{pa -347 171}\special{fp}\special{pa -375 185}\special{pa -382 189}\special{fp}%
+\special{pa -410 202}\special{pa -417 206}\special{fp}\special{pa -445 220}\special{pa -452 223}\special{fp}%
+\special{pa -480 237}\special{pa -487 241}\special{fp}\special{pn 8}%
+\special{pa -518 -366}\special{pa -511 -361}\special{fp}\special{pa -486 -343}\special{pa -480 -339}\special{fp}%
+\special{pa -454 -321}\special{pa -448 -316}\special{fp}\special{pa -423 -299}\special{pa -416 -294}\special{fp}%
+\special{pa -391 -276}\special{pa -385 -272}\special{fp}\special{pa -359 -254}\special{pa -353 -249}\special{fp}%
+\special{pa -328 -231}\special{pa -321 -227}\special{fp}\special{pa -296 -209}\special{pa -290 -204}\special{fp}%
+\special{pa -264 -187}\special{pa -258 -182}\special{fp}\special{pa -233 -164}\special{pa -226 -160}\special{fp}%
+\special{pa -201 -142}\special{pa -195 -137}\special{fp}\special{pa -169 -120}\special{pa -163 -115}\special{fp}%
+\special{pa -138 -97}\special{pa -131 -93}\special{fp}\special{pa -106 -75}\special{pa -100 -70}\special{fp}%
+\special{pa -74 -53}\special{pa -68 -48}\special{fp}\special{pa -43 -30}\special{pa -36 -26}\special{fp}%
+\special{pa -11 -8}\special{pa -5 -3}\special{fp}\special{pa 21 15}\special{pa 27 19}\special{fp}%
+\special{pa 52 37}\special{pa 59 42}\special{fp}\special{pa 84 59}\special{pa 91 64}\special{fp}%
+\special{pa 116 82}\special{pa 122 86}\special{fp}\special{pa 147 104}\special{pa 154 109}\special{fp}%
+\special{pa 179 126}\special{pa 186 131}\special{fp}\special{pa 211 149}\special{pa 217 153}\special{fp}%
+\special{pa 242 171}\special{pa 249 176}\special{fp}\special{pa 274 193}\special{pa 281 198}\special{fp}%
+\special{pa 306 216}\special{pa 312 220}\special{fp}\special{pa 337 238}\special{pa 344 243}\special{fp}%
+\special{pa 369 261}\special{pa 376 265}\special{fp}\special{pa 401 283}\special{pa 407 288}\special{fp}%
+\special{pn 8}%
+\special{pa 0 634}\special{pa 0 626}\special{fp}\special{pa 0 595}\special{pa 0 587}\special{fp}%
+\special{pa 0 555}\special{pa 0 547}\special{fp}\special{pa 0 516}\special{pa 0 508}\special{fp}%
+\special{pa 0 477}\special{pa 0 469}\special{fp}\special{pa 0 438}\special{pa 0 430}\special{fp}%
+\special{pa 0 398}\special{pa 0 390}\special{fp}\special{pa 0 359}\special{pa 0 351}\special{fp}%
+\special{pa 0 320}\special{pa 0 312}\special{fp}\special{pa 0 281}\special{pa 0 273}\special{fp}%
+\special{pa 0 241}\special{pa 0 233}\special{fp}\special{pa 0 202}\special{pa 0 194}\special{fp}%
+\special{pa 0 163}\special{pa 0 155}\special{fp}\special{pa 0 124}\special{pa 0 116}\special{fp}%
+\special{pa 0 84}\special{pa 0 76}\special{fp}\special{pa 0 45}\special{pa 0 37}\special{fp}%
+\special{pa 0 6}\special{pa 0 -2}\special{fp}\special{pa 0 -33}\special{pa 0 -41}\special{fp}%
+\special{pa 0 -73}\special{pa 0 -81}\special{fp}\special{pa 0 -112}\special{pa 0 -120}\special{fp}%
+\special{pa 0 -151}\special{pa 0 -159}\special{fp}\special{pa 0 -190}\special{pa 0 -198}\special{fp}%
+\special{pa 0 -230}\special{pa 0 -238}\special{fp}\special{pa 0 -269}\special{pa 0 -277}\special{fp}%
+\special{pa 0 -308}\special{pa 0 -316}\special{fp}\special{pa 0 -347}\special{pa 0 -355}\special{fp}%
+\special{pa 0 -387}\special{pa 0 -395}\special{fp}\special{pa 0 -426}\special{pa 0 -434}\special{fp}%
+\special{pa 0 -465}\special{pa 0 -473}\special{fp}\special{pa 0 -504}\special{pa 0 -512}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex
new file mode 100644
index 00000000..990f901f
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig3d/wirepara5.tex
@@ -0,0 +1,253 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-23 7:29
+%%% template.sce 2016-8-23 7:29
+{\unitlength=8mm%
+\begin{picture}%
+( 7.17000, 6.03000)( -3.65000, -2.44000)%
+\special{pn 8}%
+%
+\special{pa 270 0}\special{pa 261 -5}\special{pa 247 -11}\special{pa 223 -21}\special{pa 178 -35}%
+\special{pa 128 -46}\special{pa 74 -53}\special{pa 18 -57}\special{pa -39 -56}\special{pa -94 -51}%
+\special{pa -147 -42}\special{pa -195 -30}\special{pa -238 -15}\special{pa -247 -11}%
+\special{pa -270 0}%
+\special{fp}%
+\special{pa -324 -38}\special{pa -317 -31}\special{pa -305 -21}\special{pa -276 -3}%
+\special{pa -247 11}\special{pa -201 28}\special{pa -154 41}\special{pa -102 50}\special{pa -46 56}%
+\special{pa 10 57}\special{pa 67 54}\special{pa 121 47}\special{pa 172 36}\special{pa 217 23}%
+\special{pa 247 11}\special{pa 256 7}\special{pa 286 -9}\special{pa 305 -21}\special{pa 320 -34}%
+\special{pa 324 -38}%
+\special{fp}%
+\special{pa -665 496}\special{pa -603 536}\special{pa -578 550}\special{pa -487 594}%
+\special{pa -391 629}\special{pa -325 648}\special{pa -291 655}\special{pa -189 674}%
+\special{pa -85 684}\special{pa 19 687}\special{pa 123 682}\special{pa 227 668}\special{pa 328 647}%
+\special{pa 426 617}\special{pa 521 579}\special{pa 603 536}\special{pa 611 531}\special{pa 695 474}%
+\special{pa 738 437}\special{pa 772 405}\special{pa 824 345}\special{pa 839 324}\special{pa 880 257}%
+\special{pa 894 229}\special{pa 917 171}\special{pa 931 122}\special{pa 938 85}\special{pa 945 8}%
+\special{pa 945 0}%
+\special{fp}%
+\special{pa -945 0}\special{pa -941 -66}\special{pa -938 -85}\special{pa -917 -170}%
+\special{pa -880 -257}\special{pa -869 -278}\special{pa -824 -345}\special{pa -807 -366}%
+\special{pa -739 -437}\special{pa -653 -504}\special{pa -603 -536}\special{pa -566 -556}%
+\special{pa -474 -599}\special{pa -377 -633}\special{pa -324 -648}\special{pa -278 -658}%
+\special{pa -175 -676}\special{pa -71 -685}\special{pa 33 -687}\special{pa 137 -680}%
+\special{pa 240 -666}\special{pa 326 -647}\special{pa 341 -643}\special{pa 439 -612}%
+\special{pa 533 -573}\special{pa 603 -536}\special{pa 622 -524}\special{pa 706 -465}%
+\special{pa 738 -437}\special{pa 782 -395}\special{pa 824 -345}\special{pa 848 -312}%
+\special{pa 880 -257}\special{pa 900 -215}\special{pa 917 -171}\special{pa 934 -107}%
+\special{pa 938 -85}\special{pa 945 0}%
+\special{fp}%
+\special{pa -945 0}\special{pa -943 50}\special{pa -938 85}\special{pa -920 162}\special{pa -917 171}%
+\special{pa -880 257}\special{pa -876 265}\special{pa -824 345}\special{pa -816 355}%
+\special{pa -745 432}\special{pa -739 437}\special{pa -679 485}%
+\special{fp}%
+\special{pa -725 358}\special{pa -723 325}\special{pa -717 291}\special{pa -708 256}%
+\special{pa -695 221}\special{pa -679 186}\special{pa -659 152}\special{pa -637 119}%
+\special{pa -613 88}\special{pa -586 60}\special{pa -558 34}\special{pa -528 11}\special{pa -498 -7}%
+\special{pa -468 -22}\special{pa -438 -33}\special{pa -409 -40}\special{pa -380 -42}%
+\special{pa -354 -40}\special{pa -329 -33}\special{pa -307 -22}\special{pa -288 -7}%
+\special{fp}%
+\special{pa -613 517}\special{pa -637 511}\special{pa -659 500}\special{pa -679 485}%
+\special{pa -695 466}\special{pa -708 443}\special{pa -717 418}\special{pa -723 389}%
+\special{pa -725 358}%
+\special{fp}%
+\special{pa -697 226}\special{pa -618 275}\special{pa -530 318}\special{pa -433 354}%
+\special{pa -330 382}\special{pa -221 403}\special{pa -109 415}\special{pa 5 419}%
+\special{pa 119 414}\special{pa 231 401}\special{pa 339 380}\special{pa 442 351}\special{pa 538 314}%
+\special{pa 626 271}\special{pa 703 222}\special{pa 770 167}\special{pa 824 108}\special{pa 866 45}%
+\special{pa 894 -20}\special{pa 907 -87}\special{pa 907 -155}\special{pa 892 -222}%
+\special{pa 863 -287}\special{pa 820 -349}\special{pa 765 -408}\special{pa 701 -459}%
+\special{fp}%
+\special{pa -647 -494}\special{pa -703 -458}\special{pa -770 -403}\special{pa -824 -344}%
+\special{pa -866 -281}\special{pa -894 -216}\special{pa -907 -149}\special{pa -907 -81}%
+\special{pa -892 -15}\special{pa -863 51}\special{pa -820 113}\special{pa -765 172}%
+\special{pa -697 226}%
+\special{fp}%
+\special{pa -620 97}\special{pa -550 141}\special{pa -472 179}\special{pa -386 211}%
+\special{pa -294 236}\special{pa -197 254}\special{pa -97 265}\special{pa 4 269}\special{pa 106 265}%
+\special{pa 205 253}\special{pa 302 234}\special{pa 394 208}\special{pa 479 176}\special{pa 557 137}%
+\special{pa 626 93}\special{pa 685 45}\special{pa 734 -8}\special{pa 771 -64}\special{pa 795 -122}%
+\special{pa 807 -182}\special{pa 807 -242}\special{pa 794 -301}\special{pa 768 -359}%
+\special{pa 730 -415}\special{pa 681 -467}\special{pa 620 -516}\special{pa 550 -559}%
+\special{pa 472 -597}\special{pa 386 -629}\special{pa 294 -654}\special{pa 197 -673}%
+\special{pa 97 -683}\special{pa -4 -687}\special{pa -106 -683}\special{pa -205 -671}%
+\special{pa -302 -652}\special{pa -394 -627}\special{pa -479 -594}\special{pa -557 -556}%
+\special{pa -626 -512}\special{pa -685 -463}\special{pa -734 -410}\special{pa -771 -354}%
+\special{pa -795 -296}\special{pa -807 -237}\special{pa -807 -177}\special{pa -794 -117}%
+\special{pa -768 -59}\special{pa -730 -3}\special{pa -681 49}\special{pa -620 97}%
+\special{fp}%
+\special{pa -512 1}\special{pa -455 37}\special{pa -390 68}\special{pa -319 94}\special{pa -242 115}%
+\special{pa -163 130}\special{pa -80 139}\special{pa 4 142}\special{pa 87 139}\special{pa 170 129}%
+\special{pa 249 114}\special{pa 325 92}\special{pa 396 66}\special{pa 460 34}\special{pa 517 -2}%
+\special{pa 566 -43}\special{pa 606 -86}\special{pa 636 -132}\special{pa 657 -180}%
+\special{pa 667 -230}\special{pa 666 -279}\special{pa 655 -328}\special{pa 634 -376}%
+\special{pa 603 -422}\special{pa 562 -466}\special{pa 512 -505}\special{pa 455 -541}%
+\special{pa 390 -573}\special{pa 319 -599}\special{pa 242 -620}\special{pa 163 -635}%
+\special{pa 80 -644}\special{pa -4 -647}\special{pa -87 -643}\special{pa -170 -634}%
+\special{pa -249 -618}\special{pa -325 -597}\special{pa -396 -570}\special{pa -460 -538}%
+\special{pa -517 -502}\special{pa -566 -462}\special{pa -606 -418}\special{pa -636 -372}%
+\special{pa -657 -324}\special{pa -667 -275}\special{pa -666 -225}\special{pa -655 -176}%
+\special{pa -634 -128}\special{pa -603 -82}\special{pa -562 -39}\special{pa -512 1}%
+\special{fp}%
+\special{pa -397 -41}\special{pa -353 -13}\special{pa -302 11}\special{pa -247 31}%
+\special{pa -188 48}\special{pa -126 59}\special{pa -62 66}\special{pa 3 68}\special{pa 68 66}%
+\special{pa 132 58}\special{pa 193 46}\special{pa 252 30}\special{pa 307 9}\special{pa 357 -16}%
+\special{pa 401 -44}\special{pa 439 -75}\special{pa 470 -109}\special{pa 494 -145}%
+\special{pa 510 -182}\special{pa 517 -220}\special{pa 517 -259}\special{pa 509 -297}%
+\special{pa 492 -334}\special{pa 468 -369}\special{pa 436 -403}\special{pa 397 -434}%
+\special{pa 353 -462}\special{pa 302 -486}\special{pa 247 -507}\special{pa 188 -523}%
+\special{pa 126 -535}\special{pa 62 -542}\special{pa -3 -544}\special{pa -68 -541}%
+\special{pa -132 -534}\special{pa -193 -522}\special{pa -252 -505}\special{pa -307 -484}%
+\special{pa -357 -460}\special{pa -401 -431}\special{pa -439 -400}\special{pa -470 -366}%
+\special{pa -494 -331}\special{pa -510 -293}\special{pa -517 -255}\special{pa -517 -217}%
+\special{pa -509 -179}\special{pa -492 -141}\special{pa -468 -106}\special{pa -436 -72}%
+\special{pa -397 -41}%
+\special{fp}%
+\special{pa -302 -19}\special{pa -268 2}\special{pa -230 21}\special{pa -188 36}\special{pa -143 48}%
+\special{pa -96 57}\special{pa -47 63}\special{pa 2 64}\special{pa 52 62}\special{pa 100 57}%
+\special{pa 147 47}\special{pa 192 35}\special{pa 233 19}\special{pa 271 0}\special{pa 305 -21}%
+\special{pa 334 -45}\special{pa 358 -71}\special{pa 376 -98}\special{pa 388 -126}%
+\special{pa 394 -155}\special{pa 393 -184}\special{pa 387 -213}\special{pa 374 -242}%
+\special{pa 356 -269}\special{pa 332 -294}\special{pa 302 -318}\special{pa 268 -339}%
+\special{pa 230 -358}\special{pa 188 -373}\special{pa 143 -385}\special{pa 96 -394}%
+\special{pa 47 -400}\special{pa -2 -401}\special{pa -52 -399}\special{pa -100 -394}%
+\special{pa -147 -385}\special{pa -192 -372}\special{pa -233 -356}\special{pa -271 -337}%
+\special{pa -305 -316}\special{pa -334 -292}\special{pa -358 -267}\special{pa -376 -239}%
+\special{pa -388 -211}\special{pa -394 -182}\special{pa -393 -153}\special{pa -387 -124}%
+\special{pa -374 -95}\special{pa -356 -68}\special{pa -332 -43}\special{pa -302 -19}%
+\special{fp}%
+\special{pa 320 -34}\special{pa 324 -50}\special{pa 323 -74}\special{pa 318 -98}\special{pa 308 -121}%
+\special{pa 293 -143}\special{pa 273 -164}\special{pa 249 -184}\special{pa 221 -201}%
+\special{pa 189 -216}\special{pa 155 -229}\special{pa 118 -239}\special{pa 79 -247}%
+\special{pa 39 -251}\special{pa -2 -252}\special{pa -42 -251}\special{pa -82 -246}%
+\special{pa -121 -238}\special{pa -158 -228}\special{pa -192 -215}\special{pa -223 -200}%
+\special{pa -251 -182}\special{pa -275 -163}\special{pa -294 -141}\special{pa -309 -119}%
+\special{pa -319 -96}\special{pa -324 -72}\special{pa -323 -48}\special{pa -320 -34}%
+\special{fp}%
+\special{pa 297 -16}\special{pa 293 -22}\special{pa 273 -43}\special{pa 249 -62}\special{pa 221 -79}%
+\special{pa 189 -95}\special{pa 155 -107}\special{pa 118 -118}\special{pa 79 -125}%
+\special{pa 39 -129}\special{pa -2 -131}\special{pa -42 -129}\special{pa -82 -124}%
+\special{pa -121 -117}\special{pa -158 -106}\special{pa -192 -93}\special{pa -223 -78}%
+\special{pa -251 -60}\special{pa -275 -41}\special{pa -294 -20}%
+\special{fp}%
+\special{pa 271 -1}\special{pa 268 -2}\special{pa 230 -21}\special{pa 188 -36}\special{pa 143 -48}%
+\special{pa 96 -57}\special{pa 47 -63}\special{pa -2 -64}\special{pa -52 -62}\special{pa -100 -57}%
+\special{pa -147 -47}\special{pa -192 -35}\special{pa -233 -19}\special{pa -271 -1}%
+\special{fp}%
+\special{pa 75 -65}\special{pa 62 -66}\special{pa -3 -68}\special{pa -39 -67}%
+\special{fp}%
+\special{pa -620 516}\special{pa -550 559}\special{pa -472 597}\special{pa -386 629}%
+\special{pa -294 654}\special{pa -197 673}\special{pa -97 683}\special{pa 4 687}\special{pa 106 683}%
+\special{pa 205 671}\special{pa 302 652}\special{pa 394 627}\special{pa 479 594}\special{pa 557 556}%
+\special{pa 599 529}%
+\special{fp}%
+\special{pa -633 506}\special{pa -620 516}%
+\special{fp}%
+\special{pa -697 463}\special{pa -618 511}\special{pa -530 554}\special{pa -433 590}%
+\special{pa -330 618}\special{pa -221 639}\special{pa -109 651}\special{pa 5 655}%
+\special{pa 119 650}\special{pa 231 637}\special{pa 339 616}\special{pa 442 587}\special{pa 538 551}%
+\special{pa 626 507}\special{pa 703 458}\special{pa 770 403}\special{pa 824 344}\special{pa 866 281}%
+\special{pa 889 227}%
+\special{fp}%
+\special{pa -877 255}\special{pa -863 287}\special{pa -820 349}\special{pa -765 408}%
+\special{pa -697 463}%
+\special{fp}%
+\special{pa -360 516}\special{pa -359 483}\special{pa -356 447}\special{pa -352 410}%
+\special{pa -345 372}\special{pa -337 334}\special{pa -327 295}\special{pa -316 258}%
+\special{pa -304 222}\special{pa -291 187}\special{pa -277 155}\special{pa -262 127}%
+\special{pa -248 101}\special{pa -232 80}\special{pa -218 62}\special{pa -203 49}%
+\special{pa -189 41}\special{pa -176 37}\special{pa -163 39}%
+\special{fp}%
+\special{pa -316 650}\special{pa -316 649}\special{pa -327 643}\special{pa -337 633}%
+\special{pa -345 617}\special{pa -352 598}\special{pa -356 574}\special{pa -359 547}%
+\special{pa -360 516}%
+\special{fp}%
+\special{pa 74 684}\special{pa 82 670}\special{pa 84 655}\special{pa 85 636}\special{pa 86 613}%
+\special{pa 87 586}\special{pa 87 556}\special{pa 87 522}\special{pa 86 487}\special{pa 85 449}%
+\special{pa 84 410}\special{pa 82 371}\special{pa 79 332}\special{pa 77 293}\special{pa 74 255}%
+\special{pa 71 219}\special{pa 67 186}\special{pa 64 156}\special{pa 60 129}\special{pa 56 105}%
+\special{pa 53 86}\special{pa 49 72}\special{pa 46 62}\special{pa 43 57}%
+\special{fp}%
+\special{pa 514 468}\special{pa 513 435}\special{pa 509 400}\special{pa 502 364}\special{pa 493 326}%
+\special{pa 482 289}\special{pa 468 252}\special{pa 452 216}\special{pa 435 181}\special{pa 416 149}%
+\special{pa 396 119}\special{pa 375 92}\special{pa 354 68}\special{pa 332 49}\special{pa 311 33}%
+\special{pa 290 22}\special{pa 270 16}\special{pa 251 14}\special{pa 234 17}\special{pa 218 24}%
+\special{fp}%
+\special{pa 448 608}\special{pa 452 607}\special{pa 468 600}\special{pa 482 588}\special{pa 493 571}%
+\special{pa 502 551}\special{pa 509 526}\special{pa 513 499}\special{pa 514 468}%
+\special{fp}%
+\special{pa 824 273}\special{pa 822 241}\special{pa 815 207}\special{pa 805 173}\special{pa 790 140}%
+\special{pa 771 107}\special{pa 749 75}\special{pa 724 44}\special{pa 696 16}\special{pa 666 -9}%
+\special{pa 634 -31}\special{pa 601 -50}\special{pa 566 -66}\special{pa 532 -77}\special{pa 498 -85}%
+\special{pa 464 -88}\special{pa 432 -87}\special{pa 402 -81}\special{pa 374 -72}\special{pa 349 -58}%
+\special{pa 327 -41}\special{pa 309 -20}%
+\special{fp}%
+\special{pa 771 405}\special{pa 790 384}\special{pa 805 360}\special{pa 815 334}\special{pa 822 304}%
+\special{pa 824 273}%
+\special{fp}%
+\special{pa 945 16}\special{pa 942 -16}\special{pa 935 -48}\special{pa 922 -78}\special{pa 906 -107}%
+\special{pa 884 -135}\special{pa 859 -160}\special{pa 830 -182}\special{pa 798 -201}%
+\special{pa 764 -217}\special{pa 727 -230}\special{pa 689 -238}\special{pa 649 -243}%
+\special{pa 610 -243}\special{pa 571 -240}\special{pa 532 -233}\special{pa 496 -222}%
+\special{pa 461 -207}\special{pa 429 -189}\special{pa 400 -167}\special{pa 375 -143}%
+\special{pa 354 -117}\special{pa 337 -88}\special{pa 325 -58}\special{pa 319 -34}%
+\special{fp}%
+\special{pa 941 52}\special{pa 942 48}\special{pa 945 16}%
+\special{fp}%
+\special{pa 822 -344}\special{pa 814 -358}\special{pa 795 -379}\special{pa 772 -397}%
+\special{pa 746 -411}\special{pa 717 -422}\special{pa 686 -428}\special{pa 653 -430}%
+\special{pa 619 -428}\special{pa 584 -422}\special{pa 548 -412}\special{pa 513 -398}%
+\special{pa 478 -380}\special{pa 445 -359}\special{pa 414 -334}\special{pa 386 -307}%
+\special{pa 360 -278}\special{pa 337 -247}\special{pa 318 -214}\special{pa 303 -181}%
+\special{pa 292 -148}\special{pa 285 -114}\special{pa 283 -82}\special{pa 285 -51}%
+\special{pa 292 -21}\special{pa 295 -14}%
+\special{fp}%
+\special{pa 508 -583}\special{pa 508 -583}\special{pa 491 -592}\special{pa 472 -595}%
+\special{pa 452 -594}\special{pa 430 -588}\special{pa 407 -578}\special{pa 384 -563}%
+\special{pa 361 -544}\special{pa 338 -522}\special{pa 315 -495}\special{pa 293 -466}%
+\special{pa 273 -434}\special{pa 254 -400}\special{pa 237 -365}\special{pa 222 -328}%
+\special{pa 209 -291}\special{pa 199 -254}\special{pa 192 -218}\special{pa 188 -183}%
+\special{pa 186 -150}\special{pa 188 -119}\special{pa 192 -92}\special{pa 199 -67}%
+\special{pa 209 -46}\special{pa 222 -29}\special{pa 237 -17}\special{pa 254 -9}\special{pa 273 -5}%
+\special{pa 280 -6}%
+\special{fp}%
+\special{pa 123 -681}\special{pa 114 -676}\special{pa 108 -667}\special{pa 102 -652}%
+\special{pa 97 -633}\special{pa 91 -610}\special{pa 85 -583}\special{pa 79 -553}\special{pa 74 -520}%
+\special{pa 69 -484}\special{pa 64 -446}\special{pa 59 -408}\special{pa 56 -369}\special{pa 53 -329}%
+\special{pa 50 -290}\special{pa 48 -253}\special{pa 47 -217}\special{pa 47 -184}\special{pa 47 -154}%
+\special{pa 48 -127}\special{pa 50 -103}\special{pa 53 -84}\special{pa 56 -70}\special{pa 59 -60}%
+\special{pa 64 -55}%
+\special{fp}%
+\special{pa -277 -657}\special{pa -272 -659}\special{pa -262 -660}\special{pa -251 -656}%
+\special{pa -238 -648}\special{pa -226 -634}\special{pa -213 -616}\special{pa -200 -594}%
+\special{pa -187 -568}\special{pa -175 -539}\special{pa -163 -507}\special{pa -151 -472}%
+\special{pa -141 -435}\special{pa -131 -397}\special{pa -123 -359}\special{pa -116 -320}%
+\special{pa -111 -282}\special{pa -107 -244}\special{pa -104 -209}\special{pa -103 -176}%
+\special{pa -104 -145}\special{pa -107 -118}\special{pa -111 -95}\special{pa -116 -75}%
+\special{pa -123 -60}\special{pa -131 -49}\special{pa -141 -44}%
+\special{fp}%
+\special{pa -650 -501}\special{pa -645 -507}\special{pa -627 -521}\special{pa -606 -531}%
+\special{pa -583 -537}\special{pa -557 -539}\special{pa -530 -536}\special{pa -503 -528}%
+\special{pa -474 -516}\special{pa -445 -500}\special{pa -416 -480}\special{pa -388 -457}%
+\special{pa -362 -430}\special{pa -336 -401}\special{pa -313 -369}\special{pa -292 -336}%
+\special{pa -274 -301}\special{pa -258 -265}\special{pa -246 -230}\special{pa -237 -194}%
+\special{pa -232 -160}\special{pa -230 -127}\special{pa -232 -96}\special{pa -237 -68}%
+\special{pa -246 -43}\special{pa -258 -21}\special{pa -273 -3}%
+\special{fp}%
+\special{pa -902 -205}\special{pa -901 -211}\special{pa -889 -239}\special{pa -873 -265}%
+\special{pa -853 -289}\special{pa -828 -309}\special{pa -801 -327}\special{pa -770 -340}%
+\special{pa -736 -350}\special{pa -701 -356}\special{pa -664 -358}\special{pa -626 -356}%
+\special{pa -588 -350}\special{pa -550 -340}\special{pa -513 -326}\special{pa -478 -308}%
+\special{pa -444 -287}\special{pa -414 -263}\special{pa -386 -237}\special{pa -362 -208}%
+\special{pa -341 -178}\special{pa -325 -147}\special{pa -313 -114}\special{pa -306 -82}%
+\special{pa -304 -50}\special{pa -306 -22}%
+\special{fp}%
+\special{pa -923 118}\special{pa -921 86}\special{pa -914 54}\special{pa -902 22}%
+\special{pa -885 -9}\special{pa -865 -39}\special{pa -840 -66}\special{pa -812 -92}%
+\special{pa -781 -115}\special{pa -747 -134}\special{pa -711 -151}\special{pa -673 -163}%
+\special{pa -635 -172}\special{pa -596 -177}\special{pa -558 -178}\special{pa -521 -175}%
+\special{pa -485 -168}\special{pa -451 -157}\special{pa -419 -142}\special{pa -391 -124}%
+\special{pa -367 -102}\special{pa -346 -78}\special{pa -329 -51}\special{pa -317 -23}%
+\special{fp}%
+\special{pa -898 214}\special{pa -902 209}\special{pa -914 180}\special{pa -921 150}%
+\special{pa -923 118}%
+\special{fp}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex
new file mode 100644
index 00000000..6c2c54f0
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/Gfig/oresenex01.tex
@@ -0,0 +1,83 @@
+%%% /Users/Hannya/ketcindy/ketwork/template.tex 2016-8-16 19:45
+%%% template.sce 2016-8-16 19:45
+{\unitlength=8mm%
+\begin{picture}%
+( 7.77000, 5.78000)( -4.42000, -1.51000)%
+\special{pn 8}%
+%
+\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-3.5455,-0.5866){\hspace*{\Width}\raisebox{\Height}{$x$}}%
+%
+%
+\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.8935,-1.1428){\hspace*{\Width}\raisebox{\Height}{$y$}}%
+%
+%
+\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.0000,4.0571){\hspace*{\Width}\raisebox{\Height}{$z$}}%
+%
+%
+\special{pa 1055 -175}\special{pa -1058 175}%
+\special{fp}%
+\special{pa -856 -338}\special{pa 856 338}%
+\special{fp}%
+\special{pa 0 476}\special{pa 0 -1218}%
+\special{fp}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa -988 139}\special{pa -1058 175}\special{pa -980 187}\special{pa -984 163}%
+\special{pa -988 139}\special{pa -1058 175}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 777 333}\special{pa 856 338}\special{pa 795 288}\special{pa 786 310}\special{pa 777 333}%
+\special{pa 856 338}%
+\special{fp}%
+\special{pn 8}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 24 -1143}\special{pa 0 -1218}\special{pa -24 -1143}\special{pa 0 -1143}%
+\special{pa 24 -1143}\special{pa 0 -1218}%
+\special{fp}%
+\special{pn 8}%
+\settowidth{\Width}{O}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{O}\settodepth{\Depth}{O}\setlength{\Height}{-\Height}%
+\put(-0.0500,-0.0500){\hspace*{\Width}\raisebox{\Height}{O}}%
+%
+%
+\special{pa -529 87}\special{pa -529 -521}\special{pa -187 -386}\special{pa 342 -474}%
+\special{pa 685 -339}\special{pa 685 -948}%
+\special{fp}%
+\special{pn 4}%
+\special{pa -518 76}\special{pa -525 72}\special{pa -533 72}\special{pa -540 76}\special{pa -544 83}%
+\special{pa -544 92}\special{pa -540 99}\special{pa -533 103}\special{pa -525 103}%
+\special{pa -518 99}\special{pa -514 92}\special{pa -514 83}\special{pa -518 76}\special{sh 1}\special{fp}%
+\special{pa -518 -533}\special{pa -525 -537}\special{pa -533 -537}\special{pa -540 -533}%
+\special{pa -544 -526}\special{pa -544 -517}\special{pa -540 -510}\special{pa -533 -506}%
+\special{pa -525 -506}\special{pa -518 -510}\special{pa -514 -517}\special{pa -514 -526}%
+\special{pa -518 -533}\special{sh 1}\special{fp}%
+\special{pa -175 -397}\special{pa -182 -402}\special{pa -191 -402}\special{pa -198 -397}%
+\special{pa -202 -390}\special{pa -202 -382}\special{pa -198 -375}\special{pa -191 -371}%
+\special{pa -182 -371}\special{pa -175 -375}\special{pa -171 -382}\special{pa -171 -390}%
+\special{pa -175 -397}\special{sh 1}\special{fp}%
+\special{pa 353 -485}\special{pa 346 -489}\special{pa 338 -489}\special{pa 331 -485}%
+\special{pa 327 -478}\special{pa 327 -470}\special{pa 331 -463}\special{pa 338 -459}%
+\special{pa 346 -459}\special{pa 353 -463}\special{pa 357 -470}\special{pa 357 -478}%
+\special{pa 353 -485}\special{sh 1}\special{fp}%
+\special{pa 696 -350}\special{pa 689 -354}\special{pa 680 -354}\special{pa 673 -350}%
+\special{pa 669 -343}\special{pa 669 -335}\special{pa 673 -327}\special{pa 680 -323}%
+\special{pa 689 -323}\special{pa 696 -327}\special{pa 700 -335}\special{pa 700 -343}%
+\special{pa 696 -350}\special{sh 1}\special{fp}%
+\special{pa 696 -959}\special{pa 689 -963}\special{pa 680 -963}\special{pa 673 -959}%
+\special{pa 669 -952}\special{pa 669 -944}\special{pa 673 -936}\special{pa 680 -932}%
+\special{pa 689 -932}\special{pa 696 -936}\special{pa 700 -944}\special{pa 700 -952}%
+\special{pa 696 -959}\special{sh 1}\special{fp}%
+\special{pn 8}%
+\end{picture}}% \ No newline at end of file
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf
new file mode 100644
index 00000000..9915d80d
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.pdf
Binary files differ
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
index e004a0ea..7c2eb756 100644
--- a/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
@@ -1,6 +1,7 @@
\documentclass[papersize,a4paper,12pt,uplatex]{jsarticle}
\usepackage{ketpic,ketlayer}
-\usepackage{amsmath,newtxmath}
+\usepackage{amsmath}
+\usepackage{newtxmath}
\usepackage[dvipdfmx]{graphicx,color}
\usepackage{wrapfig}
\usepackage[dvipdfmx,bookmarks=false,colorlinks=true,linkcolor=blue]{hyperref}
diff --git a/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf
new file mode 100644
index 00000000..ba47aa36
--- /dev/null
+++ b/texmf-dist/doc/support/ketcindy/source/ketmanual/refketpic161211J.pdf
Binary files differ