diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-20 22:30:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-20 22:30:53 +0000 |
commit | 8e508e8b0218f17eb318645073096f2cf645cc78 (patch) | |
tree | 3e7a05382ab52c0fb47456f98aee6ed1d168ece0 /Master/texmf-dist | |
parent | c03bf39f7b8b76e13cd139bc0a100a8115bc0b15 (diff) |
ketcindy (20mar19)
git-svn-id: svn://tug.org/texlive/trunk@50488 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
83 files changed, 8631 insertions, 4859 deletions
diff --git a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf Binary files differindex 893496815f3..a814b48acc2 100644 --- a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/README b/Master/texmf-dist/doc/support/ketcindy/README index d56ec8ca7fd..920b02ab19b 100644 --- a/Master/texmf-dist/doc/support/ketcindy/README +++ b/Master/texmf-dist/doc/support/ketcindy/README @@ -1,7 +1,7 @@ KeTCindy ======== -Version: 20190203.0 +Version: 20190320.0 KeTCindy combines a plugin to Cinderella with free mathematical software (R, Maxima, ...) to produce high-quality LaTeX graphics. diff --git a/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxE.pdf b/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxE.pdf Binary files differnew file mode 100644 index 00000000000..833008329da --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxJ.pdf b/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxJ.pdf Binary files differnew file mode 100644 index 00000000000..d862929646c --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forLinux/ReadmeLinuxJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forLinux/setcindyetc.sh b/Master/texmf-dist/doc/support/ketcindy/forLinux/setcindyetc.sh new file mode 100644 index 00000000000..bd138a9ff14 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forLinux/setcindyetc.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# 20180313 + +#Edit followings if necessay +cindyinstall=~/ +sudo apt install openjdk-8-jre +sudo update-alternatives --config java +sudo bash ${cindyinstall}Cinderella_unix_2_8.sh +sudo apt install r-base maxima +sudo apt install evince +sleep 1 +exit 0
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/forLinux/setketcindy.sh b/Master/texmf-dist/doc/support/ketcindy/forLinux/setketcindy.sh new file mode 100644 index 00000000000..a7f42a76713 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forLinux/setketcindy.sh @@ -0,0 +1,78 @@ +#!/bin/sh +# 20180310 + +# Edit and uncomment the following lines if necessary +texpath=/usr/share/texlive +texbinpath=/usr/bin + +kettex=0 +if [ ${kettex} -eq 0 ]; then + texpath=/opt/kettex/texlive + texbinpath=/opt/kettex/texlive/bin/x86_64-linux +fi + +#ketsrc=~/Desktop/ketcindyfolder +cindyplug=/usr/local/cinderella/Plugins +homehead=/home + +ketcindyscripts=${texpath}/texmf-dist/scripts/ketcindy +ketcindydoc=${texpath}/texmf-dist/doc/support/ketcindy +ketcindystyle=${texpath}/texmf-dist/tex/latex/ketcindy + +cd `dirname $0` +if [ -e ../ketcindyfolder ]; then + cd ../ketcindyfolder +fi + +echo texpath=${texpath} +echo texbinpath=${texbinpath} +echo cinderella plugin=${cindyplug} +echo home=${homehead} +read -p 'Are the above paths OK? (y/n) : ' ans +if [ ${ans} = "n" ]; then + echo Edit paths + sleep 2 + exit 0 +fi + +echo copying scripts +sudo cp -r -p scripts/ ${ketcindyscripts}/ +if [ $? -gt 0 ]; then + echo Error $? + sleep 5 +else + echo "scripts copied to "${ketcindyscripts} +fi +sudo cp -r -p doc/ ${ketcindydoc}/ +if [ $? -gt 0 ]; then + echo Error $? + sleep 5 +else + echo "doc copied to "${ketcindydoc} +fi +sudo cp -r -p style/ ${ketcindystyle}/ +if [ $? -gt 0 ]; then + echo Error $? + sleep 5 +else + echo "styles copied to "${ketcindystyle} + sudo ${texbinpath}/mktexlsr +fi +cd ${cindyplug} +if [ -e KetCindyPlugin.jar ]; then + sudo rm ${cindyplug}/KetCindyPlugin.jar +fi +if [ -e ketcindy.ini ]; then + sudo rm ${cindyplug}/ketcindy.ini +fi +cd ${ketcindyscripts} +cp -p ketjava/KetCindyPlugin.jar ${cindyplug} +echo "PathThead=\"${texbinpath}/\";" > ${cindyplug}/ketcindy.ini +echo "Dirhead=\"${ketcindyscripts}\";" >> ${cindyplug}/ketcindy.ini +echo "Homehead=\"${homehead}\";" >> ${cindyplug}/ketcindy.ini +echo "setdirectory(Dirhead);" >> ${cindyplug}/ketcindy.ini +echo "import(\"setketcindy.txt\");" >> ${cindyplug}/ketcindy.ini +echo "import(\"ketoutset.txt\");" >> ${cindyplug}/ketcindy.ini +echo "KetCindyPlugin and others copied to Cinderella" +sleep 1 +exit 0 diff --git a/Master/texmf-dist/doc/support/ketcindy/forLinux/setwork.sh b/Master/texmf-dist/doc/support/ketcindy/forLinux/setwork.sh new file mode 100755 index 00000000000..9dd91b533c3 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forLinux/setwork.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# 20190223 + +# Edit and uncomment the following line if necessary +pathpdf=evince +home=~ +dist=${home}/ketcindywork # work folder of ketcindy + +cd `dirname $0` +if [ -e ../ketcindyfolder ]; then + cd ../ketcindyfolder +fi +echo `pwd`/work will be copied +changesetting=/.ketcindy.conf #181017 +cp -r -p work/ ${dist}/ +if [ $? -gt 0 ]; then + echo Error:$? + sleep 5 +else + echo Workfolder has been generated as ${dist} + echo "This folder can be moved to any place" ##180913 +fi +cd doc/ketmanual +read -p 'Choose platex(p),uplatex(u),latex(l),xelatex(x),pdflatex(pd),lualatex(lu):' tex +if [ ${tex} = "p" ]; then + tex="platex" + cp -p KeTCindyReferenceJ.pdf ${dist} + cp -p KeTCindyGuideJ.pdf ${dist} + cp -p KeTPicStyleJ.pdf ${dist} +fi +if [ ${tex} = "u" ]; then + tex="uplatex" + cp -p KeTCindyReferenceJ.pdf ${dist} + cp -p KeTCindyGuideJ.pdf ${dist} + cp -p KeTPicStyleJ.pdf ${dist} +fi +if [ ${tex} = "l" ]; then + tex="latex" + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTPicStyleE.pdf ${dist} +fi +if [ ${tex} = "x" ]; then + tex="xelatex" + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTPicStyleE.pdf ${dist} +fi +if [ ${tex} = "pd" ]; then + tex="pdflatex" + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTPicStyleE.pdf ${dist} +fi +if [ ${tex} = "lu" ]; then + tex="lualatex" + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTPicStyleE.pdf ${dist} +fi +echo generating ${home}/${changesetting} +echo // Re-setting PathT,PathR,Pathpdf,PathM,PathAd >${home}${changesetting} +echo "PathT=PathThead+\"${tex}\";" >>${home}${changesetting} +echo "Pathpdf=\"${pathpdf}\";" >> ${home}${changesetting} +echo "Mackc=\"bash\";" >>${home}${changesetting} +sleep 1 +exit 0
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.conf b/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.conf new file mode 100644 index 00000000000..376bb364135 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.conf @@ -0,0 +1,4 @@ +// Re-setting PathT,PathR,Pathpdf,PathM,PathAd,Mackc +PathT=PathThead+"uplatex"; +Pathpdf="preview"; +Mackc="open"; diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.ini b/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.ini new file mode 100644 index 00000000000..c65e2204756 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/Forsettingmanually/ketcindy.ini @@ -0,0 +1,6 @@ +PathThead="/Applications/kettex/texlive/bin/x86_64-darwin/"; +Dirhead="/Applications/kettex/texlive/texmf-dist/scripts/ketcindy"; +Homehead="/Users"; +setdirectory(Dirhead); +import("setketcindy.txt"); +import("ketoutset.txt"); diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacE.pdf b/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacE.pdf Binary files differnew file mode 100644 index 00000000000..7c5d7188785 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacJ.pdf b/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacJ.pdf Binary files differnew file mode 100644 index 00000000000..af7810ee309 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/ReadmeMacJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/setketcindy.command b/Master/texmf-dist/doc/support/ketcindy/forMac/setketcindy.command new file mode 100755 index 00000000000..174300cf88d --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/setketcindy.command @@ -0,0 +1,93 @@ +#!/bin/sh +# 20181207 + +# Edit and uncomment the following lines if necessary +#texpath=/Applications/kettex/texlive +#texbinpath=${texpath}/bin/x86_64-darwin +#ketcindyscripts=${texpath}/texmf-dist/scripts/ketcindy +#ketcindydoc=${texpath}/texmf-dist/doc/support/ketcindy +#ketcindystyle=${texpath}/texmf-dist/tex/latex/ketcindy +homehead=/Users +cindyplug=/Applications/Cinderella2.app/Contents/PlugIns + +echo Plugins of Cinderella +read -p ' '${cindyplug}?' (y/n): ' ans +if [ ${ans} != "y" ]; then + echo Edit cindyplug in this file + sleep 2 + exit 0 +fi +echo Cinderella Plugins=${cindyplug} + +cd `dirname $0` +if [ -e ../ketcindyfolder ]; then + cd ../ketcindyfolder +fi + +echo `pwd ` will be used +echo 1. "/Applications/kettex/texlive". +echo 2. "/Applications/kettex.app/texlive" +echo 3. "/Library/TeX (TeXLive)" +echo 4. Modification of this file is finished +read -p 'Choose path of TeX from the above (number) : ' ans +if [ ${ans} = "1" ]; then + texpath=/Applications/kettex/texlive + texbinpath=${texpath}/bin/x86_64-darwin + ketcindyscripts=${texpath}/texmf-dist/scripts/ketcindy + ketcindydoc=${texpath}/texmf-dist/doc/support/ketcindy + ketcindystyle=${texpath}/texmf-dist/tex/latex/ketcindy +fi +if [ ${ans} = "2" ]; then + texpath=/Applications/kettex.app/texlive + texbinpath=${texpath}/bin/x86_64-darwin + ketcindyscripts=${texpath}/texmf-dist/scripts/ketcindy + ketcindydoc=${texpath}/texmf-dist/doc/support/ketcindy + ketcindystyle=${texpath}/texmf-dist/tex/latex/ketcindy +fi +if [ ${ans} = "3" ]; then + texpath=/Library/TeX/Root + texbinpath=/Library/TeX/texbin + ketcindyscripts=${texpath}/texmf-dist/scripts/ketcindy + ketcindydoc=${texpath}/texmf-dist/doc/support/ketcindy + ketcindystyle=${texpath}/texmf-dist/tex/latex/ketcindy +fi +echo texpath=${texpath} +echo texbinpath=${texbinpath} +#read -p 'Do you really copy ketcindyscripts? (y,n): ' ans +#if [ ${ans} = "y" ]; then + echo copying scripts + sudo cp -r -p scripts/ ${ketcindyscripts}/ + if [ $? -gt 0 ]; then + echo Error $? + sleep 5 + else + echo "scripts copied to "${ketcindyscripts} + fi +#fi +sudo cp -r -p doc/ ${ketcindydoc}/ +if [ $? -gt 0 ]; then + echo Error $? + sleep 5 +else + echo "doc copied to "${ketcindydoc} +fi +sudo cp -r -p style/ ${ketcindystyle}/ +if [ $? -gt 0 ]; then + echo Error $? + sleep 5 +else + echo "styles copied to "${ketcindystyle} + sudo ${texbinpath}/mktexlsr +fi + +cd ${ketcindyscripts} +cp -p ketjava/KetCindyPlugin.jar ${cindyplug} +echo "PathThead=\"${texbinpath}/\";" > ${cindyplug}/ketcindy.ini +echo "Dirhead=\"${ketcindyscripts}\";" >> ${cindyplug}/ketcindy.ini +echo "Homehead=\"${homehead}\";" >> ${cindyplug}/ketcindy.ini +echo "setdirectory(Dirhead);" >> ${cindyplug}/ketcindy.ini +echo "import(\"setketcindy.txt\");" >> ${cindyplug}/ketcindy.ini +echo "import(\"ketoutset.txt\");" >> ${cindyplug}/ketcindy.ini +echo "KetCindyPlugin and others copied to Cinderella" +sleep 1 +exit 0
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/forMac/setwork.command b/Master/texmf-dist/doc/support/ketcindy/forMac/setwork.command new file mode 100755 index 00000000000..b664316cda6 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forMac/setwork.command @@ -0,0 +1,85 @@ +#!/bin/sh +# 20190217 +# 190217from +pathM="/Applications/Maxima.app/Contents/Resources/maxima.sh" +pathMn="/Applications/Maxima.app/Contents/Resources/opt/bin/maxima" +# 109217to +cd `dirname $0` +if [ -e ../ketcindyfolder ]; then + cd ../ketcindyfolder +fi +echo Files will be copied from +echo " "`pwd`/work +changesetting=/.ketcindy.conf #181017 +dist=~/ketcindy #180913 +cp -r -p work/ ${dist}/ +if [ $? -gt 0 ]; then + echo Error:$? + sleep 5 +else + echo Workfolder has been generated as ${dist} + echo " "This folder can be moved to any place ##180913 +fi +echo "Choose TeX with the 1st(+2nd) character" +read -p 'p=platex, u=uplatex, l=latex, x=xelatex, pd=pdflatex, lu=lualatex:' tex +if [ ${tex} = "p" ]; then + tex="platex" + cd doc/ketmanual + cp -p KeTCindyReferenceJ.pdf ${dist} + cp -p KeTCindyGuideJ.pdf ${dist} + cp -p KeTpicStyleJ.pdf ${dist} +fi +if [ ${tex} = "u" ]; then + tex="uplatex" + cd doc/ketmanual + cp -p KeTCindyReferenceJ.pdf ${dist} + cp -p KeTCindyGuideJ.pdf ${dist} + cp -p KeTpicStyleJ.pdf ${dist} +fi +if [ ${tex} = "l" ]; then + tex="latex" + cd doc/ketmanual + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTpicStyleE.pdf ${dist} +fi +if [ ${tex} = "x" ]; then + tex="xelatex" + cd ketmanual + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTpicStyleE.pdf ${dist} +fi +if [ ${tex} = "pd" ]; then + tex="pdflatex" + cd doc/ketmanual + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTpicStyleE.pdf ${dist} +fi +if [ ${tex} = "lu" ]; then + tex="lualatex" + cd doc/ketmanual + cp -p KeTCindyReferenceE.pdf ${dist} + cp -p KeTCindyGuideE.pdf ${dist} + cp -p KeTpicStyleE.pdf ${dist} +fi +dist=~ #180913 +echo generating ${dist}/${changesetting} +echo // Re-setting PathT,PathR,Pathpdf,PathM,PathAd,Mackc >${dist}${changesetting} +echo "PathT=PathThead+\"${tex}\";" >>${dist}${changesetting} +read -p 'Choose pdfviewer from preview(p),skim(s): ' ans +if [ ${ans} = "s" ]; then + echo "Pathpdf=\"skim\";" >> ${dist}${changesetting} +else + echo "Pathpdf=\"preview\";" >> ${dist}${changesetting} +fi +# 190217from +find -f ${pathM} +if [ $? -gt 0 ]; then + echo "PathM=\"${pathMn}\";" >> ${dist}${changesetting} +fi +# 190217to +echo "Mackc=\"open\";" >>${dist}${changesetting} +sleep 1 +exit 0
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.conf b/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.conf new file mode 100644 index 00000000000..93d46939a21 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.conf @@ -0,0 +1,5 @@ + // Re-setting PathT,Pathpdf,PathAd +PathT=PathThead+"uplatex"; +Pathpdf="C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe"; +PathR="C:\Program Files\R\R-3.4.2\bin"; +PathM="C:\maxima-5.37.3\bin\maxima.bat"; diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.ini b/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.ini new file mode 100644 index 00000000000..7aac11b1c2c --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/Forsettingmanually/ketcindy.ini @@ -0,0 +1,6 @@ +PathThead="C:\kettex\texlive\bin\win32\"; +Homehead="C:\Users"; +Dirhead="C:\kettex\texlive\texmf-dist\scripts\ketcindy"; +setdirectory(Dirhead); +import("setketcindy.txt"); +import("ketoutset.txt"); diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinE.pdf b/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinE.pdf Binary files differnew file mode 100644 index 00000000000..92eac65ecb0 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinJ.pdf b/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinJ.pdf Binary files differnew file mode 100644 index 00000000000..6697753dce0 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/ReadmeWinJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindy.bat b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindy.bat new file mode 100755 index 00000000000..d4bec341469 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindy.bat @@ -0,0 +1,82 @@ +REM 20181207 +echo off + +rem Edit the followings if necessary +set pathT=C:\kettex\texlive +set bin=\bin\win32 +set scripts=\texmf-dist\scripts\ketcindy +set style=\texmf-dist\tex\latex\ketcindy +set doc=\texmf-dist\doc\support\ketcindy +set homehead=C:\Users + +set prgcin=C:\Program Files (x86) +set xcp="\Windows\System32\xcopy" +if not exist "%prgcin%\Cinderella" ( + set prgcin=C:\Program Files +) +NET SESSION > NUL 2>&1 +if %ERRORLEVEL% == 0 ( + echo Running as administator + set admin="y" +) else ( + echo Not running as administator, so will quit + echo Right-click and rerun as adminstrator + set admin="n" + pause + exit +) +echo Path of TeX ; %pathT% +echo bin : %bin% +echo scripts : %scripts% +echo style : %style% +echo doc : %doc% +echo Head of home : %homehead% +set /P ans="Are the above paths OK (y/n): " +if "%ans%" == "n" ( + echo Edit paths + pause + exit +) + +cd %~dp0 +if not exist "ketcindyfolder" ( + cd ../ketcindyfolder +) +echo ketcindyfolder is +cd + +if exist "%pathT%%scripts%\." ( + echo Deleting "%pathT%%scripts%" + rd /s "%pathT%%scripts%" +) +echo Copying ketcindy to "%pathT%%scripts%" +%xcp% /Y /Q /S /E /R "scripts\*.*" "%pathT%%scripts%\" +if exist "%pathT%%doc%\." ( + echo Deleting docs to "%pathT%%doc%" + rd /s "%pathT%%doc%" +) +echo Copying doc to "%pathT%%doc%" +set docsrc=doc +%xcp% /Y /Q /S /E /R "%docsrc%\*.*" "%pathT%%doc%\" +if exist "%pathT%%style%\." ( + echo Deleting "%pathT%%style%" + rd /s "%pathT%%style%" +) +echo Copying ketcindy styles to "%pathT%%style%" +set stylesrc=style +%xcp% /Y /Q /S /E /R "%stylesrc%\*.*" "%pathT%%style%\" +"%pathT%%bin%\mktexlsr" + +set cindyplug=%prgcin%\Cinderella\Plugins +echo Setting of "%cindyplug%\" +cd "%pathT%%scripts%" +copy /Y "ketjava\KetCindyPlugin.jar" "%cindyplug%\" +cd "%cindyplug%" +echo PathThead="%pathT%%bin%\"; > ketcindy.ini +echo Homehead="%homehead%"; >> ketcindy.ini +echo Dirhead="%pathT%%scripts%"; >> ketcindy.ini +echo setdirectory(Dirhead); >> ketcindy.ini +echo import("setketcindy.txt"); >> ketcindy.ini +echo import("ketoutset.txt"); >> ketcindy.ini +echo "Plugins of Cindy has been set" +pause diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindytexlive.bat b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindytexlive.bat new file mode 100755 index 00000000000..5e8039cba81 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindytexlive.bat @@ -0,0 +1,85 @@ +REM 20181222 +echo off + +rem Edit the followings if necessary +set pathT=C:\texlive +set bin=\bin\win32 +set scripts=\texmf-dist\scripts\ketcindy +set style=\texmf-dist\tex\latex\ketcindy +set doc=\texmf-dist\doc\support\ketcindy +set homehead=C:\Users + +set prgcin=C:\Program Files (x86) +set xcp="\Windows\System32\xcopy" +if not exist "%prgcin%\Cinderella" ( + set prgcin=C:\Program Files +) +NET SESSION > NUL 2>&1 +if %ERRORLEVEL% == 0 ( + echo Running as administator + set admin="y" +) else ( + echo Not running as administator, so will quit + echo Right-click and rerun as adminstrator + set admin="n" + pause + exit +) + +set /P year="Year of TeXLive (YYYY): " + +echo Path of TeX ; %pathT%\%year% +echo bin : %bin% +echo scripts : %scripts% +echo style : %style% +echo doc : %doc% +echo Head of home : %homehead% +set /P ans="Are the above paths OK (y/n): " +if "%ans%" == "n" ( + echo Edit paths + pause + exit +) + +cd %~dp0 +if not exist "ketcindyfolder" ( + cd ../ketcindyfolder +) +echo ketcindyfolder is +cd + +if exist "%pathT%\%year%%scripts%\." ( + echo Deleting "%pathT%\%year%%scripts%" + rd /s "%pathT%\%year%%scripts%" +) +echo Copying ketcindy to "%pathT%\%year%%scripts%" +%xcp% /Y /Q /S /E /R "scripts\*.*" "%pathT%\%year%%scripts%\" +if exist "%pathT%\%year%%doc%\." ( + echo Deleting docs to "%pathT%\%year%%doc%" + rd /s "%pathT%\%year%%doc%" +) +echo Copying doc to "%pathT%\%year%%doc%" +set docsrc=doc +%xcp% /Y /Q /S /E /R "%docsrc%\*.*" "%pathT%\%year%%doc%\" +if exist "%pathT%\%year%%style%\." ( + echo Deleting "%pathT%\%year%%style%" + rd /s "%pathT%\%year%%style%" +) +echo Copying ketcindy styles to "%pathT%\%year%%style%" +set stylesrc=style +%xcp% /Y /Q /S /E /R "%stylesrc%\*.*" "%pathT%\%year%%style%\" +"%pathT%\%year%%bin%\mktexlsr" + +set cindyplug=%prgcin%\Cinderella\Plugins +echo Setting of "%cindyplug%\" +cd "%pathT%\%year%%scripts%" +copy /Y "ketjava\KetCindyPlugin.jar" "%cindyplug%\" +cd "%cindyplug%" +echo PathThead="%pathT%\%year%%bin%\"; > ketcindy.ini +echo Homehead="%homehead%"; >> ketcindy.ini +echo Dirhead="%pathT%\%year%%scripts%"; >> ketcindy.ini +echo setdirectory(Dirhead); >> ketcindy.ini +echo import("setketcindy.txt"); >> ketcindy.ini +echo import("ketoutset.txt"); >> ketcindy.ini +echo "Plugins of Cindy has been set" +pause diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindyw32J.bat b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindyw32J.bat new file mode 100755 index 00000000000..f385abcc0a3 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/setketcindyw32J.bat @@ -0,0 +1,91 @@ +REM 20181222 +echo off + +rem Edit the followings if necessary +set pathT=C:\w32tex +set bin=\bin +set scripts=\share\texmf-dist\scripts\ketcindy +set style=\share\texmf-dist\tex\latex\ketcindy +set doc=\share\texmf-dist\doc\support\ketcindy +set homehead=C:\Users + +set prgcin=C:\Program Files (x86) +set xcp="\Windows\System32\xcopy" +if not exist "%prgcin%\Cinderella" ( + set prgcin=C:\Program Files +) +NET SESSION > NUL 2>&1 +if %ERRORLEVEL% == 0 ( + echo Running as administator + set admin="y" +) else ( + echo Not running as administator, so will quit + echo Right-click and rerun as adminstrator + set admin="n" + pause + exit +) +echo Path of TeX ; %pathT% +echo bin : %bin% +echo scripts : %scripts% +echo style : %style% +echo doc : %doc% +echo Head of home : %homehead% +set /P ans="Are the above paths OK (y/n): " +if "%ans%" == "n" ( + echo Edit paths + pause + exit +) + +cd %~dp0 +if not exist "ketcindyfolder" ( + cd ../ketcindyfolder +) +echo ketcindyfolder is +cd + +if exist "%pathT%%scripts%\." ( + echo Deleting "%pathT%%scripts%" + rd /s "%pathT%%scripts%" +) +echo Copying ketcindy to "%pathT%%scripts%" +%xcp% /Y /Q /S /E /R "scripts\*.*" "%pathT%%scripts%\" +if exist "%pathT%%doc%\." ( + echo Deleting docs to "%pathT%%doc%" + rd /s "%pathT%%doc%" +) +echo Copying doc to "%pathT%%doc%" +set docsrc=doc +%xcp% /Y /Q /S /E /R "%docsrc%\*.*" "%pathT%%doc%\" +if exist "%pathT%%style%\." ( + echo Deleting "%pathT%%style%" + rd /s "%pathT%%style%" +) + +rem For kettexbasic 181222 +set scriptsold=\share\texmf-dist\tex\platex\ketcindy +if exist "%pathT%%scriptsold%\." ( + echo Deleting "%pathT%%scriptsold%" + rd /s "%pathT%%scriptsold%" +) +rem For kettexbasic end + +echo Copying ketcindy styles to "%pathT%%style%" +set stylesrc=style +%xcp% /Y /Q /S /E /R "%stylesrc%\*.*" "%pathT%%style%\" +"%pathT%%bin%\mktexlsr" + +set cindyplug=%prgcin%\Cinderella\Plugins +echo Setting of "%cindyplug%\" +cd "%pathT%%scripts%" +copy /Y "ketjava\KetCindyPlugin.jar" "%cindyplug%\" +cd "%cindyplug%" +echo PathThead="%pathT%%bin%\"; > ketcindy.ini +echo Homehead="%homehead%"; >> ketcindy.ini +echo Dirhead="%pathT%%scripts%"; >> ketcindy.ini +echo setdirectory(Dirhead); >> ketcindy.ini +echo import("setketcindy.txt"); >> ketcindy.ini +echo import("ketoutset.txt"); >> ketcindy.ini +echo "Plugins of Cindy has been set" +pause diff --git a/Master/texmf-dist/doc/support/ketcindy/forWindows/setwork.bat b/Master/texmf-dist/doc/support/ketcindy/forWindows/setwork.bat new file mode 100755 index 00000000000..9ea13564669 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/forWindows/setwork.bat @@ -0,0 +1,99 @@ +REM 20181212 +echo off + +REM Edit the followings if necessary. +set verR=3.4.2 +set verM=5.37.3 + +cd %~dp0 +if not exist "ketcindyfolder" ( + cd ../ketcindyfolder +) +echo ketcindyfolder is +cd + +set xcp="\Windows\System32\xcopy" + +set change=\.ketcindy.conf +set dist=%HOMEPATH%\ketcindy +if exist "%dist%\." ( + echo Deleting "%dist%" + rd /s "%dist%" +) +%xcp% /Y /Q /S /E /R "work\*.*" "%dist%\" +echo Workfolder has been generated as %dist% +echo This folder can be moved to any place +echo p=platex u=uplatex l=latex x=xelatex pd=pdflatex lu=lualatex +set /P STR_INPUT="---- Choose TeX from above with 1st(+2nd) character :" +if "%STR_INPUT%" == "p" ( + set tex=platex + copy /Y "doc\ketmanual\KeTCindyReferenceJ.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideJ.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleJ.pdf" "%dist%\" +) +if "%STR_INPUT%" == "u" ( + set tex=uplatex + copy /Y "doc\ketmanual\KeTCindyReferenceJ.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideJ.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleJ.pdf" "%dist%\" +) +if "%STR_INPUT%" == "l" ( + set tex=latex + copy /Y "doc\ketmanual\KeTCindyReferenceE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleE.pdf" "%dist%\" +) +if "%STR_INPUT%" == "x" ( + set tex=xelatex + copy /Y "doc\ketmanual\KeTCindyReferenceE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleE.pdf" "%dist%\" +) +if "%STR_INPUT%" == "pd" ( + set tex=pdflatex + copy /Y "doc\ketmanual\KeTCindyReferenceE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleE.pdf" "%dist%\" +) +if "%STR_INPUT%" == "lu" ( + set tex=lualatex + copy /Y "doc\ketmanual\KeTCindyReferenceE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTCindyGuideE.pdf" "%dist%\" + copy /Y "doc\ketmanual\KeTpicStyleE.pdf" "%dist%\" +) +set dist=%HOMEPATH% +echo generating %dist%\%changesetting% +echo // Re-setting PathT,Pathpdf,PathAd > "%dist%%change%" +echo PathT=PathThead+"%tex%"; >> "%dist%%change%" +set prgSm=C:\Program Files (x86)\SumatraPDF\SumatraPDF.exe +if not exist "%prgSm%" ( + set prgSm=C:\Program Files\SumatraPDF\SumatraPDF.exe +) +echo Pathpdf="%prgSm%"; >> "%dist%%change%" +set /P STR_INPUT="Input version of R (ex)%verR% :" +if not "%STR_INPUT:~0,1%" == "d" ( + set verR=%STR_INPUT% +) +set prg=C:\Program Files +if exist "%prg%\R\R-%verR%\bin\" ( + echo PathR="%prg%\R\R-%verR%\bin"; >> "%dist%%change%" +) else ( + if exist "%prg% (x86)\R\R-%verR%\bin\" ( + echo "%prg% (x86)\R\R-%verR%\bin"; >> "%dist%%change%" + ) else ( + echo "R-%verR% not found" + ) +) +set /P STR_INPUT="Input version of Maxima (ex)%verM% :" +if not "%STR_INPUT:~0,1%" == "d" ( + set verM=%STR_INPUT% +) +echo %verM% +set prg=C:\maxima-%verM%\bin\maxima.bat +if exist "%prg%" ( + echo PathM="%prg%"; >> "%dist%%change%" +) else ( + echo "Maxima-%verM% not found" + ) +) +pause diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/3dlist.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/3dlist.txt new file mode 100644 index 00000000000..417623d8882 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/3dlist.txt @@ -0,0 +1,83 @@ +Ketinit3d,3d,22,81,Setwindow,Listplot,PutonCurve,Sprintf,Setangle,Addax +Start3d,3d,85,164,Setfiles,Setwindow,Slider,Sprintf,Setangle,Ptseg3data +Setangle,3d,168,239,Parapt,Xyzcoord,Defvar,Datalist3d,Projpara,textformat,Ptseg3data +Getangle,3d,243,261,getangle,divoptions,Strsplit,181111,Toupper,textformat +Angleselected,3d,265,266,IsAngle +Isangle,3d,270,270 +Changestyle3d,3d,274,293,Changestyle +Dist3d,3d,297,316 +Findangle,3d,320,337 +Cancoordpara,3d,341,349 +Zparapt,3d,353,357 +Projcoordpara,3d,361,366,Parapt,Zparapt +Parapt,3d,370,376 +Parasubpt,3d,380,386 +Parasubptlog,3d,390,395 +Mainsubpt3d,3d,399,417 +ProjCurve,3d,421,471,Measuredepth +Projpara,3d,475,544,Divoptions,Strsplit,Toupper,Projcurve,textformat,Com2nd,Setcolor,GetLinestyle,Texcom +InvparaptPp,3d,548,603,textformat,Projpara,Nearestpt,Crossprod,Dotprod,Ptend,Numptcrv,Ptcrv +Invparapt,3d,607,611,InvparaptPp +Subgraph,3d,615,632,Measuredepth,Parasubpt,Textformat +Spaceline,3d,636,728,Divoptions,Toupper,textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Spacecurve,3d,732,898,Divoptions,Toupper,tmpfn,textformat,Assign,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Partcrv3d,3d,902,938,parapt,partcrv,Xyzcoord,Spaceline +Joincrvs3d(,3d,942,1037,Joincrvs3d,Divoptions,Norm,textformat,Joincrvs,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Xyzax3data,3d,1041,1145,Divoptions,Toupper,Xyzaxparaname,textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Arrowhead,Letter,Parapt,Subgraph +Xyzax3paraname,3d,1149,1191,Xyzaxparaname,Strsplit,Dqq,Parapt,Expr +Datalist3d,3d,1195,1203 +Datalist2d,3d,1207,1215 +Embed,3d,1219,1307,Measuredepth,Divoptions,Assign,textformat,list,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Rotatepoint3d,3d,1311,1397,Rotate3pt,Measuredepth +Rotatedata3d,3d,1401,1471,Divoptions,Rotatepoint3d,Flattenlist,textformat,RSform,Rotate3data,Textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Translatepoint3d,3d,1475,1502,Translate3pt,Measuredepth +Translatedata3d,3d,1506,1568,Divoptions,Measuredepth,Translatepoint3d,Flattenlist,RSform,Translate3data,textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Reflectpoint3d,3d,1572,1596,Reflect3pt,Crossprod,Dotprod +Reflectdata3d,3d,1600,1665,Divoptions,Reflectpoint3d,Flattenlist,textformat,Reflect3data,RSform,Textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Scalepoint3d,3d,1670,1687,Scale3pt +Scaledata3d,3d,1692,1761,Divoptions,Scalepoint3d,Flattenlist,textformat,RSform,Scale3data,Textformat,Projpara,Com2nd,Setcolor,GetLinestyle,Texcom,Subgraph +Xyzcoord,3d,1765,1771,Mainsubpt3d +PutonCurve3d,3d,1775,1791,PutonCurve,Nearestpt,Paramoncurve,PointonCurve,Xyzcoord,textformat,Defvar +Mkpointlist,3d,1795,1912,Workprocess,Finddef,Norm,Parapt,Parasubpt,Putpoint,Mainsubpt3d,Defvar +Mkseg3d,3d,1916,1958,list,Divoptions,Finddef,Spaceline +Ptseg3data,3d,1962,1996,Parapt,Textformat,Parasubpt,Mainsubpt3d,Defvar,Mkpointlist,Mkseg3d +Putonseg3d,3d,2000,2052,divoptions,Putonseg,Putpoint,Parapt,Norm,Textformat,Parasubpt,Xyzcoord,Defvar +Putpoint3d,3d,2056,2114,Toupper,Xyzcoord,Defvar,Parapt,Putpoint,Parasubpt,Fixpoint3d +Fixpoint3d,3d,2118,2135,Defvar,Parapt,textformat +Letter3d,3d,2139,2159,Parapt,Letter +Expr3d,3d,2163,2183,Parapt,Expr +Perppt,3d,2187,2243,Putperp,Crossprod,IntersectsgpL,Dotprod,Defvar,Putpoint3d,Fixpoint3d,Drawpoint3d +Perpplane,3d,2247,2288,findangle,Cancoordpara,Toupper,Putpoint3d,Defvar,Drawpoint3d +Drawpoint3d,3d,2292,2308,Divoptions,Measuredepth,Parapt,Textformat,Parasubpt +Pointdata3d,3d,2312,2321,Measuredepth,Parapt,Pointdata +Putaxes3d,3d,2325,2336,Putpoint3d +IntersectsgpL,3d,2340,2452,Divoptions,Strsplit,Toupper,Crossprod,Reflectpoint3d,Dotprod,Putpoint3d,Drawpoint3d +Bezier3d,3d,2456,2553,Measuredepth,Bezier3,Divoptions,Toupper,Bezierpt,Assign,Spacecurve,textformat,RSform,Bezier,Projpara,GetLinestyle,Com2nd,Setcolor,Subgraph +Putbezier3data,3d,2557,2595,Divoptions,Putpoint3d +Mkbezierptcrv3d,3d,2599,2619,Mkbezierptcrv3,Putbezier3data,Bezier3 +Readobj,3d,2657,2759,Divoptions,Toupper,Removespace +Concatobj,3d,2763,2833,divoptions,Toupper,dist3d +VertexEdgeFace,3d,2870,3041,Divoptions,Strsplit,Toupper,Putpoint3d,Parapt,Defvar,Changestyle3d,Spaceline,list +Phparadata,3d,3045,3147,Divoptions,list,PhHiddenData,Projpara,GetLinestyle,Com2nd,Setcolor,Changestyle3d,Drawlinetype,Toupper +Nohiddenseg,3d,3151,3280,Parapt,Dotprod,Cancoordpara,IntersectsgpL,Projcoordpara,IntersectcrvsPp,Crossprod +Nohiddensegs,3d,3284,3321,Nohiddenseg +Nohiddenbyfaces,3d,3325,3495,Datalist3d,Changestyle3d,Flattenlist,Divoptions,Strsplit,Toupper,Nohiddensegs,Spaceline +Faceremovaldata,3d,3499,3582,Divoptions,list,PhHiddenData,Projpara,GetLinestyle,Com2nd,Setcolor,Measuredepth,Changestyle3d,Drawlinetype,Toupper +Fullformfunc,3d,3586,3668,Removespace +Surffun,3d,3672,3688,Fullformfunc,Deffun +Sf3data,3d,3692,3776,Surffun,Divoptions,Toupper,textformat,Spacecurve +SfbdparadataR,3d,3780,3866,ConvertFdtoC,Divoptions,Toupper,Select,MkprecommandR,textformat,RSform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara +Addpoints,3d,3870,3885,list,RSform,textformat +CrvsfparadataR,3d,3889,3991,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,Addpoints,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara +Crv3onsfparadataR,3d,3995,4095,Crvs3onfparadataR,Changestyle3d,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara +Crv2onsfparadataR,3d,4099,4200,Crvs2onfparadataR,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara +WireparadataR,3d,4204,4305,Divoptions,Toupper,Select,MkprecommandR,RSform,textformat,Rsform,Dqq,Addpoints,CalcbyR,ReadOutData,Extractdata,Projpara +IntersectcrvsfR,3d,4309,4397,Divoptions,Toupper,RSform,textformat,Rsform,Dqq,Intersectcrvsf,c,for,Looprange,Appendrow,CalcbyR,ReadOutData +SfcutparadataR,3d,4401,4498,Strsplit,Changestyle,Divoptions,Toupper,RSform,Select,MkprecommandR,textformat,Rsform,Dqq,CalcbyR,ReadOutData,Extractdata,Projpara +Skeletonparadata,3d,4502,4506,Skeletondatacindy +Skeletonparadata,3d,4711,4898,Datalist3d,Skeletondatacindy,Divoptions,Strsplit,Toupper,Anyselected,Flattenlist,isexists,Textformat,ProjcoordCurve,Makeskeletondata,Norm,Ptcrv,Invparapt,textformat,Projcurve,Changestyle3d,list,Skeletonpara3data,Projpara,ReadOutData,GetLinestyle,Com2nd,Setcolor,Subgraph,WriteOutData +Makeskeletondata,3d,4902,5103,Columnlist,IntersectcrvsPp,Op,column,Dotprod,Norm,Kukannozoku,PointonCurve,Listplot +Kukannozoku,3d,5107,5158 +ProjcoordCurve,3d,5164,5178 +Divnohidhid,3d,5182,5245,Divoptions,Toupper,assign,Dotprod,Changestyle3d,Spaceline,textformat +Beziersurf,3d,5249,5304,factorial,Comb,Deffun,Op,Bterm,Defvar,Ball diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt index 6061a5db6ce..efbab6fcf3a 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt @@ -1,163 +1,164 @@ -Ketinit,basic1,41,182,Fillstore,Cindyname,Indexall,getname,Changesetting,Changework,pathsep,iswindows,ismacosx,isexists,iskcexists,setexec,Setwindow -Fillstore,basic1,186,216 -Fillblack,basic1,220,234,Fillstore -Fillrestore,basic1,238,250 -Readlines,basic1,254,265,readfile2str -Changesetting,basic1,269,284,pathsep,getname,isexists -Cindyname,basic1,288,295,Cdyname,Getcdyname -Setwindow,basic1,299,336,Toupper,Lcrd,Pcrd,Putpoint -Setfiles,basic1,340,353,Dqq -Setparent,basic1,357,369,Dqq -Dqq,basic1,373,373,DqDq -DqDq,basic1,376,379 -PPa,basic1,383,384 -PaO,basic1,388,400 -PaC,basic1,404,416 -PPa,basic1,420,420 -Tab2list,basic1,424,486,Divoptions,Toupper,Indexall -Columnlist,basic1,490,493 -Dispmat,basic1,497,519 -Sep1000,basic1,523,541 -Acos,basic1,545,548 -Asin,basic1,552,555 -Atan,basic1,559,562 -Sqr,basic1,566,569 -Factorial,basic1,573,581 -Norm,basic1,585,597 -Removespace,basic1,602,627 -Indexall,basic1,631,649 -Strsplit,basic1,653,664,Indexall -Parlevel,basic1,668,668,Bracket -Bracket,basic1,671,693,Indexall -Pardiagram,basic1,697,793,Divoptions,Toupper,Bracket,Listplot,Letter,Expr -Changework,basic1,797,858,Divoptions,Strsplit,Toupper,Indexall,isexists,Dqq,makedir,pathsep,iswindows,iskcexists,setexec -Changestyle,basic1,862,894,Divoptions,Com2nd,Setcolor,GetLinestyle,Texcom -Op,basic1,898,910 -Ptselected,basic1,914,928,Isptselected -Finddef,basic1,932,951 -Findgeoinfo,basic1,955,980,Finddef -Dependgeo,basic1,984,1004,Finddef -Workprocess,basic1,1008,1012,Drawprocess -Drawprocess,basic1,1015,1060,Divoptions,Strsplit,Toupper,Dependgeo -Sortpointlist,basic1,1064,1096 -Toupper,basic1,1100,1115 -Textformat,basic1,1119,1143 -Sprintf,basic1,1147,1164,Textformat -Assign,basic1,1168,1225,Textformat -MeasureDepth,basic1,1229,1254 -Flattenlist,basic1,1258,1278,MeasureDepth -Divoptions,basic1,1282,1385,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb -Dotprod,basic1,1389,1395 -Crossprod,basic1,1399,1411 -Mvprod,basic1,1415,1433,MeasureDepth -Ptstart,basic1,1437,1442 -Ptend,basic1,1446,1451 -Numptcrv,basic1,1455,1460 -Ptcrv,basic1,1464,1469 -Invert,basic1,1473,1486,Listplot -Paramoncrv,basic1,1490,1490,Paramoncurve -ParamonCurve,basic1,1493,1519,Nearestpt,LLcrd -Pointoncrv,basic1,1523,1523,PointonCurve -PointonCurve,basic1,1526,1544 -Koutenseg,basic1,1548,1656 -IntersectcrvsPp,basic1,1662,1805,Divoptions,MeasureDepth,LLcrd,Koutenseg -Intersectcrvs,basic1,1809,1815,IntersectcrvsPp -Intersectline,basic1,1823,1845,Dotprod,Crossprod -Intersectseg,basic1,1849,1949,Op,Intersectline,Nearestpt -Osplineseg,basic1,1953,1970,Dotprod,Bezier -Intersectpartseg,basic1,1974,2076,Crossprod,Norm,Reflectpoint,Osplineseg,Intersectseg,Op,Intersectline -Collectsameseg,basic1,2080,2122 -IntersectcurvesPp,basic1,2126,2229,LLcrd,Intersectpartseg,Collectsameseg,Nearestpt -Intersectcurves,basic1,2233,2240,IntersectcurvesPp -NearestptcrvPhy,basic1,2246,2255,Pcrd,MeasureDepth,Nearestpt -Nearestptcrv,basic1,2259,2265,Nearestpt -Nearestpt,basic1,2269,2322,MeasureDepth,ParamonCurve -Derivative,basic1,2326,2417,Strsplit,Lineplot,IntersectcurvesPp,Pointoncurve,Dotprod,Divoptions,Toupper,PaO,Pcrd,Assign -Tangentplot,basic1,2421,2468,Divoptions,Strsplit,Toupper,IntersectcurvesPp,Derivative,Lineplot -Integrate,basic1,2472,2485,Integratefn,Integratedt -Integratedt,basic1,2489,2521,Divoptions,Toupper,IntegrateO,MeasureDepth,MeetCurve,LLcrd -Integratefn,basic1,2525,2585,Divoptions,Toupper,Strsplit,Assign,IntegrateO,Textformat -IntegrateO,basic1,2589,2668,MeasureDepth,MeetCurve,LLcrd,Dotprod -FindareaP,basic1,2672,2685,Lcrd -FindareaO,basic1,2689,2710,Dist,IntegrateO -Findarea,basic1,2714,2740,Divoptions,Strsplit,Toupper,FindareaO,FindareaP -Findlength,basic1,2744,2756,Lcrd -Inversefun,basic1,2760,2783,Textformat -Com0th,basic1,2787,2791 -Com1st,basic1,2795,2800 -Com2nd,basic1,2804,2815,Toupper -Com2ndpre,basic1,2819,2823 -Texcom,basic1,2827,2834,Com2nd -Ketcindylogo,basic1,2838,2842,Com2nd,Texcom -Drwline,basic1,2846,2849,Textformat,Com2nd -Dashline,basic1,2854,2856,Com2nd -Invdashline,basic1,2860,2862,Com2nd -Dottedline,basic1,2866,2868,Com2nd -SetEnglish,basic1,2872,2875,Com0th,setlanguage -Drawlinetype,basic1,2879,2900,Toupper,Drwline,Dashline,Invdashline,Dottedline -Setunitlen,basic1,2904,2956 -Setmarklen,basic1,2960,2964,Com2nd,Textformat -Setorigin,basic1,2968,2972,Com2nd,Textformat -Fontsize,basic1,2976,2979,Com2nd -Setpen,basic1,2983,2987,Com2nd -Setscaling,basic1,2991,3005,Com0th,Setwindow -Lcrd,basic1,3009,3017 -Pcrd,basic1,3021,3029 -LLcrd,basic1,3033,3042 -Doscaling,basic1,3046,3073,Lcrd,LLcrd -Unscaling,basic1,3077,3104,Lcrd,LLcrd -Setpt,basic1,3108,3114,Ptsize,Com2nd -Definecolor,basic1,3118,3126,Texcom -Setcolor,basic1,3130,3157,Texcom,Colorcmyk2rgb,Com2nd -Colorrgb2cmyk,basic1,3161,3173 -Colorcmyk2rgb,basic1,3177,3184 -Colorrgbhsv,basic1,3188,3220 -Colorhsvrgb,basic1,3224,3238 -Colorrgbhsl,basic1,3242,3278 -Colorhslrgb,basic1,3282,3303,Hue2rgb -Hue2rgb,basic1,3307,3325 -Colorrgbhwb,basic1,3329,3335,Colorrgbhsl,Colorcode -Colorhwbrgb,basic1,3339,3364 -Colorcode,basic1,3368,3381,Colorrgb2cmyk,Colorcmyk2rgb,Colorrgbhsv,Colorrgbhsl,Colorrgbhwb,Colorhsvrgb,Colorhslrgb,Colorhwbrgb -Colorname2rgb,basic1,3385,3433,Colorcmyk2rgb -GetLinestyle,basic1,3437,3503,Drwline,Dashline,Invdashline,Dottedline,Textformat,Drwpt -Chunderscore,basic1,3507,3542,PaO -AddGraph,basic1,3546,3646,Divoptions,Flattenlist,Pcrd,MeasureDepth,PaO,Listplot,Pointdata,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Joincrvs,basic1,3650,3746,LLcrd,Divoptions,Numptcrv,Ptstart,Ptend,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Partcrv,basic1,3750,3839,MeasureDepth,Divoptions,Numptcrv,Ptstart,Ptend,Joincrvs,Nearestpt,LLcrd,Pcrd,Textformat,Lcrd,Com2nd,Setcolor,GetLinestyle,Texcom -Opcrvs,basic1,3843,3851,Listplot -Pointdata,basic1,3855,3971,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb,MeasureDepth,Pcrd,Setcolor,PaO,Texcom,Setpen,Textformat,Com2nd,Setpt -Listplot,basic1,3975,4060,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,Lcrd -Lineplot,basic1,4064,4132,Divoptions,Lcrd,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Plotdata,basic1,4136,4331,Divoptions,PaO,Dqq,Assign,Norm,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Paramplot,basic1,4335,4501,Divoptions,PaO,Dqq, differs from Scilab ,Assign,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Polarplot,basic1,4505,4514,Strsplit,Paramplot -Connectseg,basic1,4518,4580,Norm -Implicitplot,basic1,4584,4722,Divoptions,Strsplit,Toupper,Impfun,Connectseg,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Circledata,basic1,4726,4835,Divoptions,Lcrd,Defvar,Pcrd,Textformat,Lineplot,Com2nd,Setcolor,GetLinestyle,Texcom -Framedata,basic1,4839,4964,MeasureDepth,LLcrd,Toupper,Framedata2,Lcrd,Divoptions,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Framedata2,basic1,4968,4975,Lcrd,Framedata -Ovaldata,basic1,4979,5049,Divoptions,Lcrd,Listplot,Circledata,Reflectdata,Joincrvs,Com2nd,Setcolor,GetLinestyle,Texcom,Pcrd,Textformat -Segmark,basic1,5053,5113,Drawsegmark,Divoptions,Toupper,Circledata,Listplot -Parabolaplot,basic1,5117,5157,Lcrd,Rotatepoint,Textformat,Plotdata,Rotatedata -Ellipseplot,basic1,5161,5204,Lcrd,Rotatepoint,Paramplot,Rotatedata -Hyperbolaplot,basic1,5208,5272,Divoptions,Toupper,Lcrd,Rotatepoint,Paramplot,Lineplot,Rotatedata -Polygonplot,basic1,5276,5322,Divoptions,Strsplit,Toupper,Lcrd,Putpoint,Listplot -Putintersect,basic1,5326,5354,Intersectcrvs,Putpoint -Setarrow,basic1,5358,5384 -Arrowheaddata,basic1,5389,5482,Divoptions,Strsplit,Toupper,Touppera,MeasureDepth,Nearestpt,|Ptend,Ptstart,Numptcrv,Ptcrv,LLcrd,IntersectcrvsPp,Pcrd -Arrowhead,basic1,5486,5578,Strsplit,Toupper,MeasureDepth,Pcrd,Arrowheaddata,Inwindow,Listplot,Divoptions,Dqq,Textformat,LLcrd,Setcolor,Com2nd,Texcom -Arrowdata,basic1,5582,5685,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Listplot,LLcrd,Arrowhead,Lcrd -Anglemark,basic1,5689,5795,Divoptions,Letter,Expr,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Paramark,basic1,5799,5885,Divoptions,Letter,Expr,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -MakeBowdata,basic1,5889,5902,Lcrd,Rotatepoint -Bowdata,basic1,5906,6071,Divoptions,Lcrd,Letterrot,Letter,Exprrot,Expr,MakeBowdata,Defvar,Norm,LLcrd,MeasureDepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Bowname,basic1,6075,6078,Expr -Bownamerot,basic1,6082,6096,MeasureDepth,Ptend,Ptstart,Exprrot -Deqdata,basic1,6100,6158,funP,Lcrd,funN -Deqplot,basic1,6162,6287,Lcrd,Divoptions,Toupper,Indexall,Deqdata,Pcrd,Assign,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom -Enclosing,basic1,6455,6621,Divoptions,isList,Lcrd,Listplot,IntersectcurvesPp,Prepend,Op,Length,Partcrv,Pointoncurve,Pcrd,Enclosing2,PaO,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,LLcrd -Makehatch,basic1,6629,6731,Lineplot,Intersectseg,Norm,Listplot -Anyselected,basic1,6735,6743 -Hatchdata,basic1,6747,7043,HatchdataR,Hatchdatacindy,Listplot,Joincrvs,Enclosing2,Divoptions,Strsplit,Toupper,Anyselected,Bracket,isexists,Makehatch,Textformat,PaO,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom,WriteOutData,LLcrd -Shade,basic1,7047,7157,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Enclosing,Joincrvs,Pcrd,PaO,Listplot,Textformat,Setcolor,Com2nd,Texcom,Dqq +Ketinit,basic1,41,170,Fillstore,Cindyname,Indexall,getname,iswindows,ismacosx,Changesetting,Changework,pathsep,Setwindow +Fillstore,basic1,174,204 +Fillblack,basic1,208,222,Fillstore +Fillrestore,basic1,226,238 +Readlines,basic1,242,253,readfile2str +Changesetting,basic1,257,272,pathsep,getname,isexists +Cindyname,basic1,276,283,Cdyname,Getcdyname +Setwindow,basic1,287,324,Toupper,Lcrd,Pcrd,Putpoint +Setfiles,basic1,328,341,Dqq +Setparent,basic1,345,357,Dqq +Dqq,basic1,361,361,DqDq +DqDq,basic1,364,367 +PPa,basic1,371,372 +PaO,basic1,376,388 +PaC,basic1,392,404 +PPa,basic1,408,408 +Tab2list,basic1,412,474,Divoptions,Toupper,Indexall +Columnlist,basic1,478,481 +Dispmat,basic1,485,507 +Sep1000,basic1,511,529 +Acos,basic1,533,536 +Asin,basic1,540,543 +Atan,basic1,547,550 +Sqr,basic1,554,557 +Factorial,basic1,561,569 +Norm,basic1,573,585 +Removespace,basic1,590,615 +Indexall,basic1,619,637 +Strsplit,basic1,641,652,Indexall +Parlevel,basic1,656,656,Bracket +Bracket,basic1,659,681,Indexall +Pardiagram,basic1,685,781,Divoptions,Toupper,Bracket,Listplot,Letter,Expr +Changework,basic1,785,843,Divoptions,Strsplit,Toupper,Indexall,isexists,Dqq,makedir,pathsep,iswindows,iskcexists,setexec +Changestyle,basic1,847,879,Divoptions,Com2nd,Setcolor,GetLinestyle,Texcom +Op,basic1,883,895 +Ptselected,basic1,899,913,Isptselected +Finddef,basic1,917,936 +Findgeoinfo,basic1,940,965,Finddef +Dependgeo,basic1,969,989,Finddef +Workprocess,basic1,993,997,Drawprocess +Drawprocess,basic1,1000,1045,Divoptions,Strsplit,Toupper,Dependgeo +Sortpointlist,basic1,1049,1081 +Toupper,basic1,1085,1100 +Textformat,basic1,1104,1128 +Sprintf,basic1,1132,1149,Textformat +Assign,basic1,1153,1210,Textformat +Measuredepth,basic1,1214,1239 +Flattenlist,basic1,1243,1263,Measuredepth +Divoptions,basic1,1267,1370,Strsplit,Toupper,Colorcmyk2rgb,Colorname2rgb +Dotprod,basic1,1374,1380 +Crossprod,basic1,1384,1396 +Mvprod,basic1,1400,1418,Measuredepth +Ptstart,basic1,1422,1427 +Ptend,basic1,1431,1436 +Numptcrv,basic1,1440,1445 +Ptcrv,basic1,1449,1454 +Invert,basic1,1458,1471,Listplot +Paramoncrv,basic1,1475,1475,Paramoncurve +Paramoncurve,basic1,1478,1504,Nearestpt,LLcrd +Pointoncrv,basic1,1508,1508,Pointoncurve +Pointoncurve,basic1,1511,1529 +Koutenseg,basic1,1533,1641 +IntersectcrvsPp,basic1,1647,1790,Divoptions,Measuredepth,LLcrd,Koutenseg +Intersectcrvs,basic1,1794,1800,IntersectcrvsPp +Intersectline,basic1,1808,1830,Dotprod,Crossprod +Intersectseg,basic1,1834,1934,Op,Intersectline,Nearestpt +Osplineseg,basic1,1938,1955,Dotprod,Bezier +Intersectpartseg,basic1,1959,2061,Crossprod,Norm,Reflectpoint,Osplineseg,Intersectseg,Op,Intersectline +Collectsameseg,basic1,2065,2107 +IntersectcurvesPp,basic1,2111,2217,LLcrd,Intersectpartseg,Collectsameseg,Nearestpt +Intersectcurves,basic1,2221,2228,IntersectcurvesPp +NearestptcrvPhy,basic1,2234,2243,Pcrd,Measuredepth,Nearestpt +Nearestptcrv,basic1,2247,2253,Nearestpt +Nearestpt,basic1,2257,2310,Measuredepth,Paramoncurve +Derivative,basic1,2314,2405,Strsplit,Lineplot,IntersectcurvesPp,Pointoncurve,Dotprod,Divoptions,Toupper,PaO,Pcrd,Assign +Tangentplot,basic1,2409,2456,Divoptions,Strsplit,Toupper,IntersectcurvesPp,Derivative,Lineplot +Integrate,basic1,2460,2473,Integratefn,Integratedt +Integratedt,basic1,2477,2509,Divoptions,Toupper,IntegrateO,Measuredepth,MeetCurve,LLcrd +Integratefn,basic1,2513,2573,Divoptions,Toupper,Strsplit,Assign,IntegrateO,Textformat +IntegrateO,basic1,2577,2656,Measuredepth,MeetCurve,LLcrd,Dotprod +FindareaP,basic1,2660,2673,Lcrd +FindareaO,basic1,2677,2698,Dist,IntegrateO +Findarea,basic1,2702,2728,Divoptions,Strsplit,Toupper,FindareaO,FindareaP +Findlength,basic1,2732,2744,Lcrd +Inversefun,basic1,2748,2771,Textformat +Com0th,basic1,2775,2779 +Com1st,basic1,2783,2788 +Com2nd,basic1,2792,2797 +Com2ndpre,basic1,2801,2805 +Texcom,basic1,2809,2816,Com2nd +Ketcindylogo,basic1,2820,2824,Com2nd,Texcom +Drwline,basic1,2828,2831,Textformat,Com2nd +Dashline,basic1,2836,2838,Com2nd +Invdashline,basic1,2842,2844,Com2nd +Dottedline,basic1,2848,2850,Com2nd +SetEnglish,basic1,2854,2857,Com0th,setlanguage +Drawlinetype,basic1,2861,2882,Toupper,Drwline,Dashline,Invdashline,Dottedline +Setunitlen,basic1,2886,2938 +Setmarklen,basic1,2942,2946,Com2nd,Textformat +Setorigin,basic1,2950,2954,Com2nd,Textformat +Fontsize,basic1,2958,2961,Com2nd +Setpen,basic1,2965,2969,Com2nd +Setscaling,basic1,2973,2987,Com0th,Setwindow +Lcrd,basic1,2991,2999 +Pcrd,basic1,3003,3011 +LLcrd,basic1,3015,3024 +Doscaling,basic1,3028,3055,Lcrd,LLcrd +Unscaling,basic1,3059,3086,Lcrd,LLcrd +Setpt,basic1,3090,3096,Ptsize,Com2nd +Definecolor,basic1,3100,3108,Texcom +Setcolor,basic1,3112,3139,Texcom,Colorcmyk2rgb,Com2nd +Colorrgb2cmyk,basic1,3143,3155 +Colorcmyk2rgb,basic1,3159,3166 +Colorrgbhsv,basic1,3170,3202 +Colorhsvrgb,basic1,3206,3220 +Colorrgbhsl,basic1,3224,3260 +Colorhslrgb,basic1,3264,3285,Hue2rgb +Hue2rgb,basic1,3289,3307 +Colorrgbhwb,basic1,3311,3317,Colorrgbhsl,Colorcode +Colorhwbrgb,basic1,3321,3346 +Colorcode,basic1,3350,3363,Colorrgb2cmyk,Colorcmyk2rgb,Colorrgbhsv,Colorrgbhsl,Colorrgbhwb,Colorhsvrgb,Colorhslrgb,Colorhwbrgb +Colorname2rgb,basic1,3367,3415,Colorcmyk2rgb +GetLinestyle,basic1,3419,3485,Drwline,Dashline,Invdashline,Dottedline,Textformat,Drwpt +Chunderscore,basic1,3489,3524,PaO +AddGraph,basic1,3528,3628,Divoptions,Flattenlist,Pcrd,Measuredepth,PaO,Listplot,Pointdata,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Joincrvs,basic1,3632,3728,LLcrd,Divoptions,Numptcrv,Ptstart,Ptend,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Partcrv,basic1,3732,3821,Measuredepth,Divoptions,Numptcrv,Ptstart,Ptend,Joincrvs,Nearestpt,LLcrd,Pcrd,Textformat,Lcrd,Com2nd,Setcolor,GetLinestyle,Texcom +Opcrvs,basic1,3825,3833,Listplot +Pointdata,basic1,3837,3963,Divoptions,Strsplit,Colorcmyk2rgb,Colorname2rgb,Toupper,Measuredepth,Pcrd,Setcolor,PaO,Texcom,Setpen,Textformat,Com2nd,Setpt +Listplot,basic1,3967,4048,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,Lcrd +Lineplot,basic1,4052,4135,Strsplit,Toupper,Divoptions,Lcrd,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Plotdata,basic1,4139,4340,Divoptions,Strsplit,PaO,Dqq,Toupper,Assign,Norm,Measuredepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Paramplot,basic1,4344,4515,Divoptions,Strsplit,PaO,Dqq,Toupper, differs from Scilab ,Assign,Measuredepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Polarplot,basic1,4519,4528,Strsplit,Paramplot +Connectseg,basic1,4532,4594,Norm +Implicitplot,basic1,4598,4735,Divoptions,Strsplit,Toupper,Impfun,Connectseg,Measuredepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Circledata,basic1,4739,4855,Divoptions,Strsplit,Toupper,Lcrd,Defvar,Pcrd,Textformat,Lineplot,Com2nd,Setcolor,GetLinestyle,Texcom +Framedata,basic1,4859,4984,Measuredepth,LLcrd,Toupper,Framedata2,Lcrd,Divoptions,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Framedata2,basic1,4988,4995,Lcrd,Framedata +Ovaldata,basic1,4999,5069,Divoptions,Lcrd,Listplot,Circledata,Reflectdata,Joincrvs,Com2nd,Setcolor,GetLinestyle,Texcom,Pcrd,Textformat +Segmark,basic1,5073,5133,Drawsegmark,Divoptions,Toupper,Circledata,Listplot +Parabolaplot,basic1,5137,5177,Lcrd,Rotatepoint,Textformat,Plotdata,Rotatedata +Ellipseplot,basic1,5181,5224,Lcrd,Rotatepoint,Paramplot,Rotatedata +Hyperbolaplot,basic1,5228,5292,Divoptions,Toupper,Lcrd,Rotatepoint,Paramplot,Lineplot,Rotatedata +Polygonplot,basic1,5296,5342,Divoptions,Strsplit,Toupper,Lcrd,Putpoint,Listplot +Putintersect,basic1,5346,5374,Intersectcrvs,Putpoint +Setarrow,basic1,5378,5404 +Arrowheaddata,basic1,5409,5502,Divoptions,Strsplit,Toupper,Touppera,Measuredepth,Nearestpt,|Ptend,Ptstart,Numptcrv,Ptcrv,LLcrd,IntersectcrvsPp,Pcrd +Arrowhead,basic1,5506,5598,Strsplit,Toupper,Measuredepth,Pcrd,Arrowheaddata,Inwindow,Listplot,Divoptions,Dqq,Textformat,LLcrd,Setcolor,Com2nd,Texcom +Arrowdata,basic1,5602,5705,Divoptions,Strsplit,Toupper,Pcrd,Textformat,Listplot,LLcrd,Arrowhead,Lcrd +Anglemark,basic1,5709,5823,Divoptions,Strsplit,Letter,Expr,Toupper,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Paramark,basic1,5827,5913,Divoptions,Letter,Expr,Lcrd,Defvar,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +MakeBowdata,basic1,5917,5930,Lcrd,Rotatepoint +Bowdata,basic1,5934,6106,Divoptions,Lcrd,Strsplit,Letterrot,Letter,Exprrot,Expr,Toupper,MakeBowdata,Defvar,Norm,LLcrd,Measuredepth,Pcrd,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Bowname,basic1,6110,6113,Expr +Bownamerot,basic1,6117,6131,Measuredepth,Ptend,Ptstart,Exprrot +Deqdata,basic1,6135,6193,funP,Lcrd,funN +Deqplot,basic1,6197,6341,Lcrd,Divoptions,Toupper,Indexall,Deqdata,Pcrd,Assign,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom +Enclosing,basic1,6509,6675,Divoptions,isList,Lcrd,Listplot,IntersectcurvesPp,Prepend,Op,Length,Partcrv,Pointoncurve,Pcrd,Enclosing2,PaO,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom,LLcrd +Makehatch,basic1,6683,6785,Lineplot,Intersectseg,Norm,Listplot +Anyselected,basic1,6789,6797 +Hatchdata,basic1,6801,7097,HatchdataR,Hatchdatacindy,Listplot,Joincrvs,Enclosing2,Divoptions,Strsplit,Toupper,Anyselected,Bracket,isexists,Makehatch,Textformat,PaO,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom,WriteOutData,LLcrd +Shadein,basic1,7101,7188,Framedata,Partcrv,Paramoncrv,Listplot,IntersectcurvesPp,Pointoncrv,Joincrvs,Inwindow +Shade,basic1,7192,7320,Divoptions,Strsplit,Toupper,Colorcmyk2rgb,Enclosing,Shadein,Joincrvs,Pcrd,PaO,Listplot,Textformat,Texcom,Dqq,Setcolor diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt index 0b2d9d40f7d..8a676d6c07f 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt @@ -4,10 +4,10 @@ Rotatepoint,basic2,46,56,Lcrd Translatepoint,basic2,60,70,Lcrd Scalepoint,basic2,74,84,Lcrd Reflectpoint,basic2,88,113,Lcrd -Rotatedata,basic2,117,190,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom -Translatedata,basic2,194,259,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom -Scaledata,basic2,263,352,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom -Reflectdata,basic2,356,437,Divoptions,Lcrd,MeasureDepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Rotatedata,basic2,117,190,Divoptions,Lcrd,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom +Translatedata,basic2,194,259,Divoptions,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom +Scaledata,basic2,263,352,Divoptions,Lcrd,Measuredepth,LLcrd,Pcrd,Textformat,RSform,Com2nd,Setcolor,GetLinestyle,Texcom +Reflectdata,basic2,356,437,Divoptions,Lcrd,Measuredepth,LLcrd,Pcrd,RSform,Textformat,Com2nd,Setcolor,GetLinestyle,Texcom Mksegments,basic2,442,457,Listplot Mkcircles,basic2,462,482,Strsplit,Circledata MakeRarg,basic2,486,499,RSslash,Textformat @@ -18,101 +18,102 @@ Htick,basic2,569,581,LLcrd,Listplot Setax,basic2,585,602 Drwxy,basic2,606,699,Divoptions,Strsplit,Toupper,Arrowdata,Listplot,Expr,Letter,Addax Drwpt,basic2,703,712,Pointdata -Drawpoint,basic2,715,743,MeasureDepth,Textformat,Com2nd,Drwpt,Setpen +Drawpoint,basic2,715,743,Measuredepth,Textformat,Com2nd,Drwpt,Setpen Addax,basic2,747,750 Expr,basic2,754,768,Letter -Letter,basic2,772,860,Divoptions,Removespace,RSslash,Setcolor,Com2nd,Lcrd,Texcom,Pcrd -Letterrot,basic2,864,906,Divoptions,Letter,Setcolor,Com2nd,Dqq,Texcom -Exprrot,basic2,910,953,Divoptions,Expr,Setcolor,Com2nd,Dqq,Texcom -Slider,basic2,957,997,Toupper,Strsplit,Indexall,Putpoint,Listplot,Putonseg -Putpoint,basic2,1001,1012,Textformat,Pcrd -Putpoint,basic2,1016,1027,Textformat,Pcrd -Bezierpt,basic2,1031,1056,Lcrd -Bezier,basic2,1060,1072,BezierCurve -BezierCurve,basic2,1075,1152,Divoptions,MeasureDepth,Lcrd,Bezierpt,Pcrd,Textformat,RSform,Bezier,Com2nd,Setcolor,GetLinestyle,Texcom -Readcsvsla,basic2,1156,1204,Readplotdigdata,Divoptions,Translatedata -Putbezierdata,basic2,1208,1270,Divoptions,Putpoint,Lcrd,Letter -Bezierstart,basic2,1274,1276 -Mkbezierptcrv,basic2,1280,1306,Readcsvsla,MeasureDepth,Putbezierdata,Bezier -Mkbeziercrv,basic2,1310,1321,MeasureDepth,Bezier -Writebezier,basic2,1325,1367,Bezier,PaO,WriteOutData -Readbezier,basic2,1371,1423,Divoptions,Toupper,ReadOutData,MeasureDepth,Putpoint,Bezier -Ospline,basic2,1427,1486,Dotprod,Lcrd,Bezier -CRspline,basic2,1490,1536,Lcrd,Reflectpoint,Bezier -Beziersmooth,basic2,1540,1601,Bzspline,Putpoint,Lcrd,Bezier -Beziersym,basic2,1605,1654,Bzsspline,Lcrd,Putpoint,Bezier -Listbspline2bz,basic2,1658,1673,Lcrd -Bspline,basic2,1677,1685,Listbspline2bz,BezierCurve -MeetCurve,basic2,1689,1749,MeasureDepth,LLcrd,Lcrd -Putonline,basic2,1753,1782,PutonLine,Divoptions,Lcrd,Putpoint -Putonseg,basic2,1786,1823,LLcrd,Divoptions,Lcrd,Putonline,Pcrd,Textformat -Putoncurve,basic2,1827,1869,Toupper,MeetCurve,Textformat,Pcrd -CrossPoint,basic2,1873,1891,MeetCurve,Putpoint -Periodfun,basic2,1895,1981,Toupper,Op,Plotdata,Textformat,Translatedata,Listplot -Fourierseries,basic2,1985,2010,Assign,Plotdata -Tabledatalight,basic2,2014,2095,Divoptions,Toupper,Tlistplot,Tsegrmv,Addax,Setwindow -Tabledata,basic2,2099,2229,Divoptions,Toupper,Putpoint,Tgrid,Tlistplot,Tsegrmv,Addax,Setwindow -Tseginfo,basic2,2233,2253 -Tsegrmv,basic2,2257,2299,Tseginfo,Changestyle,Tlistplot -Tgrid,basic2,2303,2317 -Tlistplot,basic2,2321,2350,divoptions,Toupper,Tgrid,Listplot -ChangeTablestyle,basic2,2354,2407,Indexall,Changestyle,Tlistplot -Findcell,basic2,2411,2437,Tgrid -Putcell,basic2,2441,2475,Findcell,Letter,Putcellexpr -Putrow,basic2,2479,2487,Putcell -Putrowexpr,basic2,2491,2497,Putrow -PutcoL,basic2,2501,2509,Putcell -PutcoLexpr,basic2,2513,2519,PutcoL -Setrange,basic2,2523,2529,Pcrd -RSform,basic2,2533,2567,PaO,Bracket,PPa -RSslash,basic2,2571,2576 -Rform,basic2,2580,2590,PaO -Defvar,basic2,2594,2638 -IftoR,basic2,2642,2681,PaO,Indexall,Bracket -FortoR,basic2,2685,2714,PaO,Bracket -Deffun,basic2,2718,2765,Bracket,Indexall,FortoR,IftoR,RSform,PaO -Inwindow,basic2,2769,2781 -Dashlinedata,basic2,2785,2858 -Windispg,basic2,2862,2925,Drwxy,MeasureDepth,Dashlinedata,Textformat -WritetoRS,basic2,2929,3162,WritetoSci,Lcrd,c,Assignadd,Datetime,source,Setwindow,Textformat,Openfile,Cindyname,RSform,PPa,iswindows,Indexall,Dqq,PaO -Extractdata,basic2,3166,3222,Divoptions,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom -RemoveOut,basic2,3226,3236 -ReadOutData,basic2,3240,3353,Divoptions,Strsplit,Toupper,Pcrd,Textformat -WriteOutData,basic2,3357,3419,Flattenlist,MeasureDepth -Makeshell,basic2,3423,3526,kc -Convsjiswin,basic2,3530,3554,nkfwin,nkfcpdel,isexists,pathsep -Makebat,basic2,3558,3698,kc,iswindows,isincludefull,isexists,Indexall -Addpackage,basic2,3702,3720 -Usegraphics,basic2,3724,3734,Addpackage -Viewtex,basic2,3738,3811,iswindows,Makebat,kc,Makeshell,WritetoRS -Viewparent,basic2,3815,3833,isexists,iswindows,Makebat,Makeshell,WritetoRS,kc -Makecmdlist,basic2,3837,3867 -Savecmdlist,basic2,3871,3877 -Quicksort,basic2,3881,3901 -Lessstr,basic2,3905,3932 -Figpdf,basic2,3936,4053,Removespace,isexists -Makehelplist,basic2,4057,4101,PPa -Helplist,basic2,4105,4159,Makehelplist -Help,basic2,4163,4214 -Helpkey,basic2,4218,4236,Help -Slidework,basic2,4240,4259,isexists,makedir,pathsep,Changework -Setslidemargin,basic2,4263,4266 -Setslidepage,basic2,4270,4295 -Setslidemain,basic2,4299,4323 -Setslidebody,basic2,4327,4364 -Setslidehyper,basic2,4368,4446,Divoptions,Addpackage,Indexall,Toupper -Settitle,basic2,4450,4521,Toupper,Indexall -Maketitle,basic2,4525,4620,iswindows,Makebat,Makeshell,kc,Cindyname,isexists,PaO -Repeatsameslide,basic2,4624,4779,Indexall -Presentation,basic2,4783,5448,readfile2str,isexists,Removespace,fileslist,Repeatsameslide -Mkslides,basic2,5452,5516,Fillblack,Changework,Setdirectory,setexec,isexists,Presentation,iswindows,Makebat,Makeshell,kc,pathsep,Fillrestore -Mkslidesummary,basic2,5520,5585,Fillblack,pathsep,ismacosx,setexec,PPa,PaO,CalcbyR,iswindows,Makebat,Makeshell,kc,Changework,Fillstore -Example,basic2,5589,5613 -BBdata,basic2,5617,5760,Divoptions,Toupper,ismacosx,iswindows,kc,Sprintf,Removespace -Findfun,basic2,5764,5827,Removespace,Indexall -Extractfun,basic2,5831,5848,Indexall,Findfun -Extractall,basic2,5857,5884 -Copyketcindyjs,basic2,5888,5938,iswindows,Dqq,kc -Ketjsoption,basic2,5942,5943,Setketcindyjs -Setketcindyjs,basic2,5947,5964,Divoptions -Mkketcindyjs,basic2,5968,6283,Strsplit,Toupper,Copyketcindyjs,isexists,Extractfun,Readcsv,Extractall,pathsep,Readlines,use,Removespace,Dqq,Indexall,rgb +Letter,basic2,772,867,Divoptions,Removespace,Strsplit,Toupper,RSslash,Setcolor,Com2nd,Lcrd,Texcom,Pcrd +Letterrot,basic2,871,913,Divoptions,Letter,Setcolor,Com2nd,Dqq,Texcom +Exprrot,basic2,917,960,Divoptions,Expr,Setcolor,Com2nd,Dqq,Texcom +Slider,basic2,964,1011,Toupper,Strsplit,Indexall,Putpoint,Listplot,Putonseg +Putpoint,basic2,1015,1026,Textformat,Pcrd +Putpoint,basic2,1030,1041,Textformat,Pcrd +Bezierpt,basic2,1045,1070,Lcrd +Bezier,basic2,1074,1086,BezierCurve +BezierCurve,basic2,1089,1166,Divoptions,Measuredepth,Lcrd,Bezierpt,Pcrd,Textformat,RSform,Bezier,Com2nd,Setcolor,GetLinestyle,Texcom +Readcsvsla,basic2,1170,1218,Readplotdigdata,Divoptions,Translatedata +Putbezierdata,basic2,1222,1284,Divoptions,Putpoint,Lcrd,Letter +Bezierstart,basic2,1288,1290 +Mkbezierptcrv,basic2,1294,1320,Readcsvsla,Measuredepth,Putbezierdata,Bezier +Mkbeziercrv,basic2,1324,1335,Measuredepth,Bezier +Writebezier,basic2,1339,1381,Bezier,PaO,WriteOutData +Readbezier,basic2,1385,1437,Divoptions,Toupper,ReadOutData,Measuredepth,Putpoint,Bezier +Ospline,basic2,1441,1500,Dotprod,Lcrd,Bezier +CRspline,basic2,1504,1550,Lcrd,Reflectpoint,Bezier +Beziersmooth,basic2,1554,1615,Bzspline,Putpoint,Lcrd,Bezier +Beziersym,basic2,1619,1668,Bzsspline,Lcrd,Putpoint,Bezier +Listbspline2bz,basic2,1672,1687,Lcrd +Bspline,basic2,1691,1699,Listbspline2bz,BezierCurve +MeetCurve,basic2,1703,1763,Measuredepth,LLcrd,Lcrd +Putonline,basic2,1767,1787,LLcrd,Lineplot,Putonseg +Putonseg,basic2,1791,1827,LLcrd,Divoptions,Lcrd,Putpoint,Pcrd,Textformat +Putoncurve,basic2,1831,1860,putoncurve,Putpoint,Paramoncurve,Putonseg,Textformat,Ptend +CrossPoint,basic2,1864,1882,MeetCurve,Putpoint +Periodfun,basic2,1886,1972,Toupper,Op,Plotdata,Textformat,Translatedata,Listplot +Fourierseries,basic2,1976,2001,Assign,Plotdata +Tabledatalight,basic2,2005,2086,Divoptions,Toupper,Tlistplot,Tsegrmv,Addax,Setwindow +Tabledata,basic2,2090,2220,Divoptions,Toupper,Putpoint,Tgrid,Tlistplot,Tsegrmv,Addax,Setwindow +Tseginfo,basic2,2224,2244 +Tsegrmv,basic2,2248,2290,Tseginfo,Changestyle,Tlistplot +Tgrid,basic2,2294,2308 +Tlistplot,basic2,2312,2341,divoptions,Toupper,Tgrid,Listplot +ChangeTablestyle,basic2,2345,2398,Indexall,Changestyle,Tlistplot +Findcell,basic2,2402,2428,Tgrid +Putcell,basic2,2432,2467,Findcell,Letter +Putcellexpr,basic2,2471,2483,Putcell +Putrow,basic2,2487,2502,Putcellrow,Putcell +Putrowexpr,basic2,2506,2519,Putrow +PutcoL,basic2,2523,2538,Putcellexpr,Putcell +PutcoLexpr,basic2,2542,2555,Putcellexpr,PutcoL +Setrange,basic2,2559,2565,Pcrd +RSform,basic2,2569,2603,PaO,Bracket,PPa +RSslash,basic2,2607,2612 +Rform,basic2,2616,2626,PaO +Defvar,basic2,2630,2674 +IftoR,basic2,2678,2717,PaO,Indexall,Bracket +FortoR,basic2,2721,2750,PaO,Bracket +Deffun,basic2,2754,2801,Bracket,Indexall,FortoR,IftoR,RSform,PaO +Inwindow,basic2,2805,2817 +Dashlinedata,basic2,2821,2894 +Windispg,basic2,2898,2961,Drwxy,Measuredepth,Dashlinedata,Textformat +WritetoRS,basic2,2965,3198,WritetoSci,Lcrd,c,Assignadd,Datetime,source,Setwindow,Textformat,Openfile,Cindyname,RSform,PPa,iswindows,Indexall,Dqq,PaO +Extractdata,basic2,3202,3258,Divoptions,ReadOutData,Com2nd,Setcolor,GetLinestyle,Texcom +RemoveOut,basic2,3262,3272 +ReadOutData,basic2,3276,3389,Divoptions,Strsplit,Toupper,Pcrd,Textformat +WriteOutData,basic2,3393,3455,Flattenlist,Measuredepth +Makeshell,basic2,3459,3562,kc +Convsjiswin,basic2,3566,3590,nkfwin,nkfcpdel,isexists,pathsep +Makebat,basic2,3594,3734,kc,iswindows,isincludefull,isexists,Indexall +Addpackage,basic2,3738,3756 +Usegraphics,basic2,3760,3770,Addpackage +Viewtex,basic2,3774,3847,iswindows,Makebat,kc,Makeshell,WritetoRS +Viewparent,basic2,3851,3869,isexists,iswindows,Makebat,Makeshell,WritetoRS,kc +Makecmdlist,basic2,3873,3903 +Savecmdlist,basic2,3907,3913 +Quicksort,basic2,3917,3937 +Lessstr,basic2,3941,3968 +Figpdf,basic2,3972,4089,Removespace,isexists +Makehelplist,basic2,4093,4137,PPa +Helplist,basic2,4141,4195,Makehelplist +Help,basic2,4199,4250 +Helpkey,basic2,4254,4272,Help +Slidework,basic2,4276,4295,isexists,makedir,pathsep,Changework +Setslidemargin,basic2,4299,4302 +Setslidepage,basic2,4306,4331 +Setslidemain,basic2,4335,4359 +Setslidebody,basic2,4363,4400 +Setslidehyper,basic2,4404,4482,Divoptions,Addpackage,Indexall,Toupper +Settitle,basic2,4486,4557,Toupper,Indexall +Maketitle,basic2,4561,4656,iswindows,Makebat,Makeshell,kc,Cindyname,isexists,PaO +Repeatsameslide,basic2,4660,4815,Indexall +Presentation,basic2,4819,5484,readfile2str,isexists,Removespace,fileslist,Repeatsameslide +Mkslides,basic2,5488,5552,Fillblack,Changework,Setdirectory,setexec,isexists,Presentation,iswindows,Makebat,Makeshell,kc,pathsep,Fillrestore +Mkslidesummary,basic2,5556,5621,Fillblack,pathsep,ismacosx,setexec,PPa,PaO,CalcbyR,iswindows,Makebat,Makeshell,kc,Changework,Fillstore +Example,basic2,5625,5649 +BBdata,basic2,5653,5796,Divoptions,Toupper,ismacosx,iswindows,kc,Sprintf,Removespace +Findfun,basic2,5800,5863,Removespace,Indexall +Extractfun,basic2,5867,5884,Indexall,Findfun +Extractall,basic2,5893,5920 +Copyketcindyjs,basic2,5924,5985,iswindows,Dqq,kc +Ketjsoption,basic2,5989,5990,Setketcindyjs +Setketcindyjs,basic2,5994,6011,Divoptions +Mkketcindyjs,basic2,6015,6431,Strsplit,Toupper,Copyketcindyjs,isexists,Extractfun,Extractall,pathsep,Readlines,Removespace,Dqq,Indexof,Indexall,rgb diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt index 33f9e5bdf12..81fbf2609e1 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt @@ -37,10 +37,10 @@ Ketinit(work,sy,rangex,rangey):=(//181001to COM0thlist=[]; COM1stlist=[]; COM2ndlist=[]; - COM2ndlistb=[]; //180612 ADDAXES="1"; AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216 AXCOUNT=1; //181215 + SHADECTR=1; //190222 LFmark=unicode("000a"); CRmark=unicode("000d");//16.12.13 Dq=unicode("0022"); @@ -149,7 +149,7 @@ Textformat(value,dig):=( ); tmp1; ); -MeasureDepth(list):=( +Measuredepth(list):=( regional(tmp,tmp1,Depth,Flg); Flg=0; Depth=0; @@ -353,7 +353,7 @@ Windispg(gcLorg):=( //190125 forall(gcL,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); + tmp=Measuredepth(Dt); if(tmp==1,Dt=[Dt]); opcindy=Nj_3; tmp=Nj_2; //190119from diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt index 400c3a7d726..d8dedb061c6 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt @@ -15,7 +15,6 @@ Fontsize Help Helplist Invdashline -Inwindow Ketjsoption Mkketcindyjs Presentation @@ -34,6 +33,6 @@ Windispg Fillstore Setwindow Drwxy -MeasureDepth +Measuredepth Dashlinedata Textformat diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy Binary files differindex 87eb72d583d..91cee476e8d 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyguideE.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyGuideE.pdf Binary files differindex f37232ef1e2..f37232ef1e2 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyguideE.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyGuideE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyguideJ.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyGuideJ.pdf Binary files differindex 44fd8f05304..44fd8f05304 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyguideJ.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyGuideJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf Binary files differindex 62da47c185b..67db48d35a8 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf Binary files differindex 86bc90ad3ac..3782f2cc229 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTpicStyleJ.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTPicStyleJ.pdf Binary files differindex f251a355721..f251a355721 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTpicStyleJ.pdf +++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTPicStyleJ.pdf diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command +++ /dev/null diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy Binary files differindex 7f27a3949f3..9fce15badbf 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.txt index ee593e370ae..681b16814c1 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.txt @@ -1,24 +1,24 @@ -タイトル::slide0::%wallpaper// +タイトル::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::メインスライド1// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::メインスライド1 +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::itemize環境の使い方// -\slidepage// +%%%%%%%%%%%%%%%% +new::itemize環境の使い方 +\slidepage -itemize// -item::内容// -item::結論// -end// +itemize +item::内容 +item::結論 +end -%%%%%%%%%%%%%%%%// -new::enumerate環境の使い方// -\slidepage// +%%%%%%%%%%%%%%%% +new::enumerate環境の使い方 +\slidepage -enumerate::[(1)]// -item::番号を変えるには,例えば [(1)]// -item::後は同じ// -end// +enumerate::[(1)] +item::番号を変えるには,例えば [(1)] +item::後は同じ +end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy Binary files differindex 74649ae411b..6895d7cc250 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt index c54c882be23..d73a6f2908b 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt @@ -1,24 +1,24 @@ -title::slide0::%wallpaper// +title::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::Main Slide// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::Main Slide +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::How to use itemize// -\slidepage// +%%%%%%%%%%%%%%%% +new::How to use itemize +\slidepage -itemize// -item::Contents// -item::Conclusion// -end// +itemize +item::Contents +item::Conclusion +end -%%%%%%%%%%%%%%%%// -new::How to use enumerate// -\slidepage// +%%%%%%%%%%%%%%%% +new::How to use enumerate +\slidepage -enumerate::[(1)]// -item::Change the style of items, for example, [(1)].// -item::Do same as usual.// -end// +enumerate::[(1)] +item::Change the style of items, for example, [(1)]. +item::Do same as usual. +end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt index ff9e7e8b6d0..e5c6020bbef 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt @@ -1,28 +1,28 @@ -%タイトル::slide0::kabegami// -タイトル::slide0// +%タイトル::slide0::kabegami +タイトル::slide0 -%%%%%%%%%%%%%%%%// -main::メインスライド1// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::メインスライド1 +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::$\bm{\sin x}$のグラフとlayer// -%repeat=2// -\slidepage// +%%%%%%%%%%%%%%%% +new::$\bm{\sin x}$のグラフとlayer +%repeat=2 +\slidepage -%まず,sinecurveの図を作っておく(1)// +%まず,sinecurveの図を作っておく(1) -layer::{100}{0}// -%[1]::putnote::se{10}{15}::sinecurve,0.8// -%[2]::putnote::se{60}{25}::sinecurve,0.8// -end// +layer::{100}{0} +%[1]::putnote::se{10}{15}::sinecurve,0.8 +%[2]::putnote::se{60}{25}::sinecurve,0.8 +end -%%%%%%%%%%%%%%%%// -new::includegrpahicsとlayer// -\slidepage// +%%%%%%%%%%%%%%%% +new::includegrpahicsとlayer +\slidepage -%まず,diffeq.pdfを作っておく(2)// +%まず,diffeq.pdfを作っておく(2) -layer::{100}{0}// -putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf// -end// +layer::{100}{0} +putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf +end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt index 1287872ec0a..e3b313d4f15 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt @@ -1,23 +1,23 @@ -title::slide0::%wallpaper// +title::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::Main Slide// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::Main Slide +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::input and layer// -%repeat=2// -\slidepage// +%%%%%%%%%%%%%%%% +new::input and layer +%repeat=2 +\slidepage -layer::{100}{0}// Change the 2nd {0} to a nonnegative number to change the position. -%[1]::putnote::se{10}{15}::sine,0.8// -%[2]::putnote::se{60}{25}::sine,0.8// -end// +layer::{100}{0} Change the 2nd {0} to a nonnegative number to change the position. +%[1]::putnote::se{10}{15}::sine,0.8 +%[2]::putnote::se{60}{25}::sine,0.8 +end -%%%%%%%%%%%%%%%%// -new::includegrpahics and layer// -\slidepage// +%%%%%%%%%%%%%%%% +new::includegrpahics and layer +\slidepage -layer::{100}{0}// -putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf// -end// +layer::{100}{0} +putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf +end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt index b694ef7d4f2..786bffc20ce 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt @@ -1,36 +1,36 @@ -タイトル::slide0::%wallpaper// - -%%%%%%%%%%%%%%%%// -main::メインスライド1// -\slidepage[m]// - -%%%%%%%%%%%%%%%%// -new::itemize環境の使い方// -%repeat=2,para// -\slidepage// - -itemize// -item::内容// -%[2,-]::item::結論// -end// - -%%%%%%%%%%%%%%%%// -new::enumerate環境の使い方// -%repeat=3,para// -\slidepage// - -enumerate::[(1)]// -%thin[2,-]::item::番号を変えるには,例えば [(1)]// -%thin[3,-]::item::後は同じ// -end// - -%%%%%%%%%%%%%%%%// -new::グラフとrepeat// -%repeat=2,para// -\slidepage// - -layer::{100}{0}// -%[1]::putnote::se{10}{15}::sine,0.8// -%[2]::putnote::se{30}{40}::sine,0.8// -end// +タイトル::slide0::%wallpaper + +%%%%%%%%%%%%%%%% +main::メインスライド1 +\slidepage[m] + +%%%%%%%%%%%%%%%% +new::itemize環境の使い方 +%repeat=2,para +\slidepage + +itemize +item::内容 +%[2,-]::item::結論 +end + +%%%%%%%%%%%%%%%% +new::enumerate環境の使い方 +%repeat=3,para +\slidepage + +enumerate::[(1)] +%thin[2,-]::item::番号を変えるには,例えば [(1)] +%thin[3,-]::item::後は同じ +end + +%%%%%%%%%%%%%%%% +new::グラフとrepeat +%repeat=2,para +\slidepage + +layer::{100}{0} +%[1]::putnote::se{10}{15}::sine,0.8 +%[2]::putnote::se{30}{40}::sine,0.8 +end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt index 8dadd248500..609920e4cf5 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt @@ -1,35 +1,35 @@ -title::slide0::%wallpaper// +title::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::Main Slide// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::Main Slide +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::itemize and repeat// -%repeat=2,para// -\slidepage// +%%%%%%%%%%%%%%%% +new::itemize and repeat +%repeat=2,para +\slidepage -itemize// -item::Contents// -%[2,-]::item::Conclusions// -end// +itemize +item::Contents +%[2,-]::item::Conclusions +end -%%%%%%%%%%%%%%%%// -new::enumerate and repeat// -%repeat=3,para// -\slidepage// +%%%%%%%%%%%%%%%% +new::enumerate and repeat +%repeat=3,para +\slidepage -enumerate::[(1)]// -%thin[2,-]::item::Contents// -%thin[3,-]::item::Conclusions// -end// +enumerate::[(1)] +%thin[2,-]::item::Contents +%thin[3,-]::item::Conclusions +end -%%%%%%%%%%%%%%%%// -new::Graph and repeat// -%repeat=2,para// -\slidepage// +%%%%%%%%%%%%%%%% +new::Graph and repeat +%repeat=2,para +\slidepage -layer::{100}{0}// -%[1]::putnote::se{10}{15}::sinecurve,0.8// -%[2]::putnote::se{30}{40}::sinecurve,0.8// -end//
\ No newline at end of file +layer::{100}{0} +%[1]::putnote::se{10}{15}::sinecurve,0.8 +%[2]::putnote::se{30}{40}::sinecurve,0.8 +end
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt index a12edaf2baa..2c27d723020 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt @@ -1,45 +1,45 @@ タイトル::slide0::%wallpaper/ -%%%%%%%%%%%%%%%%// -main::メインスライド1// -\slidepage[m]// - -%%%%%%%%%%%%%%%%// -new::enumerate環境の使い方// -%repeat=3,para// -\slidepage// - -%[2,-]::enumerate::[(1)]// -%[2,-]::item::番号を変えるには,例えば [(1)]// -%[3,-]::item::表示ページはリストで与える\\// -%[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6]など// -%[2,- ]::end// - -%%%%%%%%%%%%%%%%// -new::薄文字の使い方// -%repeat=4,para// -\slidepage// - -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,para// -\slidepage// - -\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// +%%%%%%%%%%%%%%%% +main::メインスライド1 +\slidepage[m] + +%%%%%%%%%%%%%%%% +new::enumerate環境の使い方 +%repeat=3,para +\slidepage + +%[2,-]::enumerate::[(1)] +%[2,-]::item::番号を変えるには,例えば [(1)] +%[3,-]::item::表示ページはリストで与える\\ +%[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6]など +%[2,- ]::end + +%%%%%%%%%%%%%%%% +new::薄文字の使い方 +%repeat=4,para +\slidepage + +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,para +\slidepage + +\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/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt index 70940e2d909..4ad669374b1 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt @@ -1,16 +1,16 @@ title::slide0::%wallpaper/ -%%%%%%%%%%%%%%%%// -main::Main slide// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::Main slide +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::How to use enumerate// -%repeat=3,para// -\slidepage// +%%%%%%%%%%%%%%%% +new::How to use enumerate +%repeat=3,para +\slidepage -%thin[2,-]::enumerate::[(1)]// -%thin[2,-]::item::Add :\hspace{0mm}:[(1)] to change the style of item.// -%thin[3,-]::item::Give a list of page numbers to be displayed.\\// -%thin[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc// -%thin[2,- ]::end// +%thin[2,-]::enumerate::[(1)] +%thin[2,-]::item::Add :\hspace{0mm}:[(1)] to change the style of item. +%thin[3,-]::item::Give a list of page numbers to be displayed.\\ +%thin[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc +%thin[2,- ]::end diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt index 5b8b7abb879..26e4350d231 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt @@ -1,12 +1,12 @@ -%%タイトル::slide0::kabegami// -タイトル::slide0// +%%タイトル::slide0::kabegami +タイトル::slide0 -%%%%%%%%%%%%%%%%// -new::Example 1// -%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2// -\slidepage// +%%%%%%%%%%%%%%%% +new::Example 1 +%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2 +\slidepage -%%%%%%%%%%%%%%%%// -new::Example2// -%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2// -\slidepage// +%%%%%%%%%%%%%%%% +new::Example2 +%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2 +\slidepage diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt index 20a726b2acc..4e385ff0886 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt @@ -1,11 +1,11 @@ -title::slide0::%wallpaperi// +title::slide0::%wallpaperi -%%%%%%%%%%%%%%%%// -new::Example1// -%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2// -\slidepage// +%%%%%%%%%%%%%%%% +new::Example1 +%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2 +\slidepage -%%%%%%%%%%%%%%%%// -new::Example2// -%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2// -\slidepage// +%%%%%%%%%%%%%%%% +new::Example2 +%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2 +\slidepage diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt index b8e5ccb4f64..41f5e41aa0f 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt @@ -1,21 +1,21 @@ -タイトル::slide0::%wallpaper// +タイトル::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::メインスライド1// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::メインスライド1 +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::Animation1// -\slidepage// +%%%%%%%%%%%%%%%% +new::Animation1 +\slidepage -\begin{center}// -\input{fig/animsinemove}// -\end{center}// +\begin{center} +\input{fig/animsinemove} +\end{center} -%%%%%%%%%%%%%%%%// -%new::Animation2// -\slidepage// +%%%%%%%%%%%%%%%% +%new::Animation2 +\slidepage -%\begin{center}// -%\input{fig/animsinemove2}// -%\end{center}// +%\begin{center} +%\input{fig/animsinemove2} +%\end{center} diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt index 27ae34b0280..5d005cdecec 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt @@ -1,21 +1,21 @@ -Title::slide0::%wallpaper// +Title::slide0::%wallpaper -%%%%%%%%%%%%%%%%// -main::Main Slide// -\slidepage[m]// +%%%%%%%%%%%%%%%% +main::Main Slide +\slidepage[m] -%%%%%%%%%%%%%%%%// -new::Animation1// -\slidepage// +%%%%%%%%%%%%%%%% +new::Animation1 +\slidepage -\begin{center}// -\input{fig/animsinemove}// -\end{center}// +\begin{center} +\input{fig/animsinemove} +\end{center} -%%%%%%%%%%%%%%%%// -new::Animation2// -\slidepage// +%%%%%%%%%%%%%%%% +new::Animation2 +\slidepage -\begin{center}// -\input{fig/animsinemove2}// -\end{center}//
\ No newline at end of file +\begin{center} +\input{fig/animsinemove2} +\end{center}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsE.txt new file mode 100644 index 00000000000..05c14c1af19 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsE.txt @@ -0,0 +1,24 @@ +How to use ketcindyjs 2019.02.26 + +1. Process flow + + 1) cdyファイルを開く. + Rem) In the case of no KeTJS,KeTJSoff buttons: + (i) open template2allbuttons.cdy + (ii) Copy KeTJS,KeTJSoff button using shift key. + (iii) Paste them to the cdy file. + (iv) Close once the file. + (v) Open the file again + 2) Select + File > Export to CindyJA + 3) Press KeTJS(online mode) or KeTJSoff(offline mode) + 4) Open the html file + Rem) Use GoogleChrome or Firefox in the case of Windows. + +2. Setting the option of ketcindyjs + Setketcindyjs([options list); + "Scale=(ratio)" + "Nolabel=[list of geometric elements]" + ex) ”Nolabel="+allpoints() + "Grid=(interval of grid)" + "Color=(back ground color)" diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsJ.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsJ.txt new file mode 100644 index 00000000000..2dde5c6fa11 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/howtouseketcindyjsJ.txt @@ -0,0 +1,24 @@ +ketcindyjsの使い方 2019.02.26 + +1.作成の流れ + + 1)cdyファイルを開く. + 注)KeTJS,KeTJSoffのボタンがない場合 + (1) template2allbuttons.cdyを同時に開く + (2) KeTJS,KeTJSoffのボタンをShiftを押しながら選んでコピー + (3) cdyファイルにコピー + (4) ファイルを一旦保存して終了する. + (5) 再びファイルを開く + 2)ファイル>「Cindyjsに書き出す」を実行 + 3)KeTJS(オンライン)またはKeTJSoff(オフライン)を押す. + 4)htmlファイルを開く. + 注)Windowsの場合,GoogleChromeかFirefoxで開く + +2.オプションの設定 + + Setketcindyjs([オプションリスト]); をKetinit() の下に入れる. + "Scale=(倍率)" + "Nolabel=[幾何要素のリスト]" + 例)”Nolabel="+allpoints() + "Grid=(グリッドの間隔)" + "Color=(背景色)" diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy Binary files differindex 46537f48c73..1d0956a9e12 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1601basic.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy Binary files differindex 302dd7735d3..fefad10c46c 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy Binary files differindex 2915180a450..56d96cb958f 100644 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1604putoncurve.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1604putoncurve.cdy Binary files differnew file mode 100644 index 00000000000..1f02e44829c --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1604putoncurve.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1605triangle.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1605triangle.cdy Binary files differnew file mode 100644 index 00000000000..540823d1b8e --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1605triangle.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1606morley.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1606morley.cdy Binary files differnew file mode 100644 index 00000000000..2f668cca82f --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1606morley.cdy diff --git a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex index 9b74fd050df..68675beb10a 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex @@ -54,7 +54,7 @@ installing of KeTCindy \item In case of other TeX, see Readme in ketcindy of {\bf 3.}(2). \end{enumerate} -\item Install KeTCdindy +\item Install KeTCindy \begin{enumerate}[(1)] \item Download ketcindy from CTAN(\url{https://ctan.org}).\\ \hspace*{10mm}Search ketcindy $>$ Package ketcindy $>$ download diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodelE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodelE.tex new file mode 100644 index 00000000000..c4fa571d1c8 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodelE.tex @@ -0,0 +1,2204 @@ +%%% /Users/hannya/Desktop/fig/template3D.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(10.5,5.74)(-2.52,-1.59)% +\special{pn 8}% +% +\special{pa 2104 -65}\special{pa 2092 -102}\special{pa 2081 -139}\special{pa 2070 -176}% +\special{pa 2059 -211}\special{pa 2048 -246}\special{pa 2037 -280}\special{pa 2025 -313}% +\special{pa 2014 -346}\special{pa 2003 -377}\special{pa 1992 -408}\special{pa 1981 -438}% +\special{pa 1974 -455}\special{pa 1969 -468}\special{pa 1958 -496}\special{pa 1947 -524}% +\special{pa 1936 -551}\special{pa 1924 -578}\special{pa 1913 -603}\special{pa 1902 -628}% +\special{pa 1890 -652}\special{pa 1879 -676}\special{pa 1868 -698}\special{pa 1856 -720}% +\special{pa 1845 -741}\special{pa 1834 -761}\special{pa 1822 -781}\special{pa 1810 -799}% +\special{pa 1803 -812}\special{pa 1799 -817}\special{pa 1787 -834}\special{pa 1776 -851}% +\special{pa 1764 -867}\special{pa 1752 -881}\special{pa 1740 -896}\special{pa 1728 -909}% +\special{pa 1716 -922}\special{pa 1703 -933}\special{pa 1690 -944}\special{pa 1683 -950}% +\special{pa 1677 -955}\special{pa 1664 -964}\special{pa 1654 -970}\special{pa 1650 -973}% +\special{pa 1634 -981}\special{pa 1617 -988}\special{pa 1602 -993}\special{pa 1596 -995}% +\special{pa 1590 -996}\special{pa 1578 -998}\special{pa 1568 -999}\special{pa 1558 -999}% +\special{pa 1548 -999}\special{pa 1538 -998}\special{pa 1527 -996}\special{pa 1520 -995}% +\special{pa 1515 -993}\special{pa 1500 -989}\special{pa 1483 -982}\special{pa 1467 -973}% +\special{pa 1462 -970}\special{pa 1453 -964}\special{pa 1439 -955}\special{pa 1433 -950}% +\special{pa 1426 -944}\special{pa 1413 -933}\special{pa 1401 -922}\special{pa 1389 -909}% +\special{pa 1376 -896}\special{pa 1364 -881}\special{pa 1353 -867}\special{pa 1341 -851}% +\special{pa 1329 -834}\special{pa 1317 -817}\special{pa 1313 -811}\special{pa 1306 -799}% +\special{pa 1294 -781}\special{pa 1283 -761}\special{pa 1271 -741}\special{pa 1260 -720}% +\special{pa 1249 -698}\special{pa 1237 -676}\special{pa 1226 -652}\special{pa 1215 -628}% +\special{pa 1203 -603}\special{pa 1192 -578}\special{pa 1181 -551}\special{pa 1169 -524}% +\special{pa 1158 -496}\special{pa 1147 -468}\special{pa 1140 -451}\special{pa 1136 -438}% +\special{pa 1124 -408}\special{pa 1113 -377}\special{pa 1102 -346}\special{pa 1091 -313}% +\special{pa 1080 -280}\special{pa 1069 -246}\special{pa 1057 -211}\special{pa 1046 -176}% +\special{pa 1035 -139}\special{pa 1024 -102}\special{pa 1013 -66}% +\special{fp}% +\special{pa 1181 176}\special{pa 1234 198}\special{pa 1293 217}\special{pa 1355 232}% +\special{pa 1421 242}\special{pa 1489 249}\special{pa 1558 251}\special{pa 1627 249}% +\special{pa 1695 242}\special{pa 1761 231}\special{pa 1824 217}\special{pa 1882 198}% +\special{pa 1936 176}\special{pa 1983 151}\special{pa 2024 123}\special{pa 2057 92}% +\special{pa 2082 60}\special{pa 2100 27}\special{pa 2108 -8}\special{pa 2108 -42}% +\special{pa 2102 -68}% +\special{fp}% +\special{pa 1014 -66}\special{pa 1008 -42}\special{pa 1008 -7}\special{pa 1017 27}% +\special{pa 1034 60}\special{pa 1060 93}\special{pa 1093 123}\special{pa 1134 151}% +\special{pa 1181 176}% +\special{fp}% +\special{pn 8}% +\special{pa 2103 -64}\special{pa 2100 -71}\special{fp}\special{pa 2088 -100}\special{pa 2084 -107}\special{fp}% +\special{pa 2065 -132}\special{pa 2060 -138}\special{fp}\special{pa 2038 -159}\special{pa 2032 -165}\special{fp}% +\special{pa 2008 -183}\special{pa 2001 -188}\special{fp}\special{pa 1975 -205}\special{pa 1968 -209}\special{fp}% +\special{pa 1941 -223}\special{pa 1933 -227}\special{fp}\special{pa 1905 -238}\special{pa 1897 -241}\special{fp}% +\special{pa 1868 -252}\special{pa 1861 -255}\special{fp}\special{pa 1831 -264}\special{pa 1823 -266}\special{fp}% +\special{pa 1793 -273}\special{pa 1785 -275}\special{fp}\special{pa 1755 -282}\special{pa 1747 -283}\special{fp}% +\special{pa 1717 -288}\special{pa 1709 -289}\special{fp}\special{pa 1678 -293}\special{pa 1670 -294}\special{fp}% +\special{pa 1639 -297}\special{pa 1631 -298}\special{fp}\special{pa 1600 -299}\special{pa 1592 -299}\special{fp}% +\special{pa 1561 -300}\special{pa 1553 -300}\special{fp}\special{pa 1522 -299}\special{pa 1514 -299}\special{fp}% +\special{pa 1483 -298}\special{pa 1475 -297}\special{fp}\special{pa 1444 -294}\special{pa 1436 -293}\special{fp}% +\special{pa 1406 -289}\special{pa 1398 -288}\special{fp}\special{pa 1367 -283}\special{pa 1359 -282}\special{fp}% +\special{pa 1329 -275}\special{pa 1321 -273}\special{fp}\special{pa 1291 -266}\special{pa 1283 -263}\special{fp}% +\special{pa 1254 -254}\special{pa 1246 -251}\special{fp}\special{pa 1217 -241}\special{pa 1210 -238}\special{fp}% +\special{pa 1181 -226}\special{pa 1174 -222}\special{fp}\special{pa 1147 -208}\special{pa 1140 -204}\special{fp}% +\special{pa 1114 -187}\special{pa 1107 -182}\special{fp}\special{pa 1083 -163}\special{pa 1077 -158}\special{fp}% +\special{pa 1055 -136}\special{pa 1050 -130}\special{fp}\special{pa 1032 -105}\special{pa 1028 -98}\special{fp}% +\special{pa 1016 -70}\special{pa 1013 -62}\special{fp}\special{pn 8}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}% +\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}% +\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}% +\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}% +\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}% +\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}% +\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}% +\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}% +\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}% +\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}% +\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}% +\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}% +\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}% +\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}% +\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}% +\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}% +\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}% +\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}% +\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}% +\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}% +\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}% +\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}% +\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}% +\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}% +\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}% +\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}% +\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}% +\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}% +\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}% +\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}% +\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}% +\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}% +\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}% +\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}% +\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}% +\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}% +\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}% +\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}% +\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}% +\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}% +\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}% +\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}% +\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}% +\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}% +\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}% +\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}% +\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}% +\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}% +\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}% +\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}% +\special{pa -377 201}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -953}\special{pa -2 -952}\special{pa -4 -951}% +\special{pa -5 -949}\special{pa -6 -948}\special{pa -7 -946}\special{pa -8 -945}% +\special{pa -9 -943}\special{pa -11 -942}\special{pa -12 -940}\special{pa -13 -938}% +\special{pa -14 -936}\special{pa -15 -934}\special{pa -16 -933}\special{pa -18 -931}% +\special{pa -19 -929}\special{pa -20 -927}\special{pa -21 -924}\special{pa -22 -922}% +\special{pa -23 -920}\special{pa -25 -918}\special{pa -26 -916}\special{pa -27 -913}% +\special{pa -28 -911}\special{pa -29 -909}\special{pa -30 -906}\special{pa -32 -904}% +\special{pa -33 -901}\special{pa -34 -898}\special{pa -35 -896}\special{pa -36 -893}% +\special{pa -38 -890}\special{pa -39 -888}\special{pa -40 -885}\special{pa -41 -882}% +\special{pa -42 -879}\special{pa -43 -876}\special{pa -45 -873}\special{pa -46 -870}% +\special{pa -47 -867}\special{pa -48 -863}\special{pa -49 -860}\special{pa -50 -857}% +\special{pa -52 -854}\special{pa -53 -850}\special{pa -54 -847}\special{pa -55 -843}% +\special{pa -56 -840}\special{pa -57 -836}\special{pa -59 -833}\special{pa -60 -829}% +\special{pa -61 -825}\special{pa -62 -822}\special{pa -63 -818}\special{pa -64 -814}% +\special{pa -66 -810}\special{pa -67 -806}\special{pa -68 -802}\special{pa -69 -798}% +\special{pa -70 -794}\special{pa -72 -790}\special{pa -73 -786}\special{pa -74 -781}% +\special{pa -75 -777}\special{pa -76 -773}\special{pa -77 -768}\special{pa -79 -764}% +\special{pa -80 -760}\special{pa -81 -755}\special{pa -82 -750}\special{pa -83 -746}% +\special{pa -84 -741}\special{pa -86 -736}\special{pa -87 -732}\special{pa -88 -727}% +\special{pa -89 -722}\special{pa -90 -717}\special{pa -91 -712}\special{pa -93 -707}% +\special{pa -94 -702}\special{pa -95 -697}\special{pa -96 -692}\special{pa -97 -687}% +\special{pa -98 -682}\special{pa -100 -676}\special{pa -101 -671}\special{pa -102 -666}% +\special{pa -103 -660}\special{pa -104 -655}\special{pa -106 -649}\special{pa -107 -644}% +\special{pa -108 -638}\special{pa -109 -632}\special{pa -110 -627}\special{pa -111 -621}% +\special{pa -113 -615}\special{pa -114 -609}\special{pa -115 -603}\special{pa -116 -597}% +\special{pa -117 -591}\special{pa -118 -585}\special{pa -120 -579}\special{pa -121 -573}% +\special{pa -122 -567}\special{pa -123 -561}\special{pa -124 -554}\special{pa -125 -548}% +\special{pa -127 -542}\special{pa -128 -535}\special{pa -129 -529}\special{pa -130 -522}% +\special{pa -131 -516}\special{pa -132 -509}\special{pa -134 -502}\special{pa -135 -496}% +\special{pa -136 -489}\special{pa -137 -482}\special{pa -138 -475}\special{pa -140 -468}% +\special{pa -141 -461}\special{pa -142 -454}\special{pa -143 -447}\special{pa -144 -440}% +\special{pa -145 -433}\special{pa -147 -426}\special{pa -148 -419}\special{pa -149 -411}% +\special{pa -150 -404}\special{pa -151 -397}\special{pa -152 -389}\special{pa -154 -382}% +\special{pa -155 -374}\special{pa -156 -367}\special{pa -157 -359}\special{pa -158 -351}% +\special{pa -159 -344}\special{pa -161 -336}\special{pa -162 -328}\special{pa -163 -320}% +\special{pa -164 -312}\special{pa -165 -304}\special{pa -166 -296}\special{pa -168 -288}% +\special{pa -169 -280}\special{pa -170 -272}\special{pa -171 -264}\special{pa -172 -256}% +\special{pa -174 -247}\special{pa -175 -239}\special{pa -176 -231}\special{pa -177 -222}% +\special{pa -178 -214}\special{pa -179 -205}\special{pa -181 -197}\special{pa -182 -188}% +\special{pa -183 -179}\special{pa -184 -171}\special{pa -185 -162}\special{pa -186 -153}% +\special{pa -188 -144}\special{pa -189 -135}\special{pa -190 -126}\special{pa -191 -117}% +\special{pa -192 -108}\special{pa -193 -99}\special{pa -195 -90}\special{pa -196 -81}% +\special{pa -197 -72}\special{pa -198 -62}\special{pa -199 -53}\special{pa -200 -44}% +\special{pa -202 -34}\special{pa -203 -25}\special{pa -204 -15}\special{pa -205 -6}% +\special{pa -206 4}\special{pa -208 14}\special{pa -209 23}\special{pa -210 33}% +\special{pa -211 43}\special{pa -212 53}\special{pa -213 63}\special{pa -215 73}% +\special{pa -216 83}\special{pa -217 93}\special{pa -218 103}\special{pa -219 113}% +\special{pa -220 123}\special{pa -222 134}\special{pa -223 144}\special{pa -224 154}% +\special{pa -225 165}\special{pa -226 175}\special{pa -227 186}\special{pa -229 196}% +\special{pa -230 207}\special{pa -231 217}\special{pa -232 228}\special{pa -233 239}% +\special{pa -235 249}% +\special{fp}% +\special{pa 0 -955}\special{pa -0 -953}\special{pa -1 -952}\special{pa -1 -950}% +\special{pa -1 -949}\special{pa -2 -947}\special{pa -2 -946}\special{pa -2 -944}% +\special{pa -3 -942}\special{pa -3 -940}\special{pa -3 -939}\special{pa -4 -937}% +\special{pa -4 -935}\special{pa -4 -933}\special{pa -5 -931}\special{pa -5 -929}% +\special{pa -6 -927}\special{pa -6 -925}\special{pa -6 -922}\special{pa -7 -920}% +\special{pa -7 -918}\special{pa -7 -915}\special{pa -8 -913}\special{pa -8 -911}% +\special{pa -8 -908}\special{pa -9 -906}\special{pa -9 -903}\special{pa -9 -900}% +\special{pa -10 -898}\special{pa -10 -895}\special{pa -10 -892}\special{pa -11 -889}% +\special{pa -11 -886}\special{pa -11 -884}\special{pa -12 -881}\special{pa -12 -878}% +\special{pa -12 -875}\special{pa -13 -871}\special{pa -13 -868}\special{pa -13 -865}% +\special{pa -14 -862}\special{pa -14 -859}\special{pa -14 -855}\special{pa -15 -852}% +\special{pa -15 -848}\special{pa -15 -845}\special{pa -16 -841}\special{pa -16 -838}% +\special{pa -17 -834}\special{pa -17 -830}\special{pa -17 -827}\special{pa -18 -823}% +\special{pa -18 -819}\special{pa -18 -815}\special{pa -19 -811}\special{pa -19 -807}% +\special{pa -19 -803}\special{pa -20 -799}\special{pa -20 -795}\special{pa -20 -791}% +\special{pa -21 -787}\special{pa -21 -782}\special{pa -21 -778}\special{pa -22 -774}% +\special{pa -22 -769}\special{pa -22 -765}\special{pa -23 -760}\special{pa -23 -756}% +\special{pa -23 -751}\special{pa -24 -747}\special{pa -24 -742}\special{pa -24 -737}% +\special{pa -25 -733}\special{pa -25 -728}\special{pa -25 -723}\special{pa -26 -718}% +\special{pa -26 -713}\special{pa -27 -708}\special{pa -27 -703}\special{pa -27 -698}% +\special{pa -28 -693}\special{pa -28 -687}\special{pa -28 -682}\special{pa -29 -677}% +\special{pa -29 -671}\special{pa -29 -666}\special{pa -30 -661}\special{pa -30 -655}% +\special{pa -30 -650}\special{pa -31 -644}\special{pa -31 -638}\special{pa -31 -633}% +\special{pa -32 -627}\special{pa -32 -621}\special{pa -32 -615}\special{pa -33 -609}% +\special{pa -33 -603}\special{pa -33 -597}\special{pa -34 -591}\special{pa -34 -585}% +\special{pa -34 -579}\special{pa -35 -573}\special{pa -35 -567}\special{pa -35 -561}% +\special{pa -36 -554}\special{pa -36 -548}\special{pa -37 -542}\special{pa -37 -535}% +\special{pa -37 -529}\special{pa -38 -522}\special{pa -38 -515}\special{pa -38 -509}% +\special{pa -39 -502}\special{pa -39 -495}\special{pa -39 -489}\special{pa -40 -482}% +\special{pa -40 -475}\special{pa -40 -468}\special{pa -41 -461}\special{pa -41 -454}% +\special{pa -41 -447}\special{pa -42 -440}\special{pa -42 -433}\special{pa -42 -425}% +\special{pa -43 -418}\special{pa -43 -411}\special{pa -43 -404}\special{pa -44 -396}% +\special{pa -44 -389}\special{pa -44 -381}\special{pa -45 -374}\special{pa -45 -366}% +\special{pa -45 -358}\special{pa -46 -351}\special{pa -46 -343}\special{pa -46 -335}% +\special{pa -47 -327}\special{pa -47 -319}\special{pa -48 -311}\special{pa -48 -304}% +\special{pa -48 -295}\special{pa -49 -287}\special{pa -49 -279}\special{pa -49 -271}% +\special{pa -50 -263}\special{pa -50 -255}\special{pa -50 -246}\special{pa -51 -238}% +\special{pa -51 -230}\special{pa -51 -221}\special{pa -52 -213}\special{pa -52 -204}% +\special{pa -52 -195}\special{pa -53 -187}\special{pa -53 -178}\special{pa -53 -169}% +\special{pa -54 -161}\special{pa -54 -152}\special{pa -54 -143}\special{pa -55 -134}% +\special{pa -55 -125}\special{pa -55 -116}\special{pa -56 -107}\special{pa -56 -98}% +\special{pa -56 -89}\special{pa -57 -79}\special{pa -57 -70}\special{pa -58 -61}% +\special{pa -58 -51}\special{pa -58 -42}\special{pa -59 -33}\special{pa -59 -23}% +\special{pa -59 -13}\special{pa -60 -4}\special{pa -60 6}\special{pa -60 15}% +\special{pa -61 25}\special{pa -61 35}\special{pa -61 45}\special{pa -62 55}% +\special{pa -62 65}\special{pa -62 75}\special{pa -63 85}\special{pa -63 95}% +\special{pa -63 105}\special{pa -64 115}\special{pa -64 125}\special{pa -64 136}% +\special{pa -65 146}\special{pa -65 156}\special{pa -65 167}\special{pa -66 177}% +\special{pa -66 188}\special{pa -66 198}\special{pa -67 209}\special{pa -67 219}% +\special{pa -68 230}\special{pa -68 241}\special{pa -68 252}\special{pa -69 263}% +\special{pa -69 273}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -953}\special{pa 1 -952}\special{pa 2 -950}% +\special{pa 2 -949}\special{pa 3 -947}\special{pa 3 -946}\special{pa 4 -944}% +\special{pa 4 -942}\special{pa 5 -941}\special{pa 5 -939}\special{pa 6 -937}% +\special{pa 6 -935}\special{pa 7 -933}\special{pa 7 -931}\special{pa 8 -929}% +\special{pa 8 -927}\special{pa 9 -925}\special{pa 9 -923}\special{pa 10 -920}% +\special{pa 10 -918}\special{pa 11 -916}\special{pa 11 -913}\special{pa 12 -911}% +\special{pa 12 -908}\special{pa 13 -906}\special{pa 13 -903}\special{pa 14 -901}% +\special{pa 14 -898}\special{pa 15 -895}\special{pa 16 -893}\special{pa 16 -890}% +\special{pa 17 -887}\special{pa 17 -884}\special{pa 18 -881}\special{pa 18 -878}% +\special{pa 19 -875}\special{pa 19 -872}\special{pa 20 -869}\special{pa 20 -866}% +\special{pa 21 -862}\special{pa 21 -859}\special{pa 22 -856}\special{pa 22 -852}% +\special{pa 23 -849}\special{pa 23 -845}\special{pa 24 -842}\special{pa 24 -838}% +\special{pa 25 -835}\special{pa 25 -831}\special{pa 26 -827}\special{pa 26 -824}% +\special{pa 27 -820}\special{pa 27 -816}\special{pa 28 -812}\special{pa 28 -808}% +\special{pa 29 -804}\special{pa 29 -800}\special{pa 30 -796}\special{pa 31 -792}% +\special{pa 31 -788}\special{pa 32 -783}\special{pa 32 -779}\special{pa 33 -775}% +\special{pa 33 -770}\special{pa 34 -766}\special{pa 34 -761}\special{pa 35 -757}% +\special{pa 35 -752}\special{pa 36 -748}\special{pa 36 -743}\special{pa 37 -738}% +\special{pa 37 -733}\special{pa 38 -729}\special{pa 38 -724}\special{pa 39 -719}% +\special{pa 39 -714}\special{pa 40 -709}\special{pa 40 -704}\special{pa 41 -699}% +\special{pa 41 -694}\special{pa 42 -688}\special{pa 42 -683}\special{pa 43 -678}% +\special{pa 43 -673}\special{pa 44 -667}\special{pa 44 -662}\special{pa 45 -656}% +\special{pa 46 -651}\special{pa 46 -645}\special{pa 47 -640}\special{pa 47 -634}% +\special{pa 48 -628}\special{pa 48 -622}\special{pa 49 -617}\special{pa 49 -611}% +\special{pa 50 -605}\special{pa 50 -599}\special{pa 51 -593}\special{pa 51 -587}% +\special{pa 52 -581}\special{pa 52 -575}\special{pa 53 -568}\special{pa 53 -562}% +\special{pa 54 -556}\special{pa 54 -549}\special{pa 55 -543}\special{pa 55 -537}% +\special{pa 56 -530}\special{pa 56 -524}\special{pa 57 -517}\special{pa 57 -510}% +\special{pa 58 -504}\special{pa 58 -497}\special{pa 59 -490}\special{pa 60 -483}% +\special{pa 60 -477}\special{pa 61 -470}\special{pa 61 -463}\special{pa 62 -456}% +\special{pa 62 -449}\special{pa 63 -441}\special{pa 63 -434}\special{pa 64 -427}% +\special{pa 64 -420}\special{pa 65 -413}\special{pa 65 -405}\special{pa 66 -398}% +\special{pa 66 -390}\special{pa 67 -383}\special{pa 67 -375}\special{pa 68 -368}% +\special{pa 68 -360}\special{pa 69 -352}\special{pa 69 -345}\special{pa 70 -337}% +\special{pa 70 -329}\special{pa 71 -321}\special{pa 71 -313}\special{pa 72 -305}% +\special{pa 72 -297}\special{pa 73 -289}\special{pa 73 -281}\special{pa 74 -273}% +\special{pa 75 -265}\special{pa 75 -257}\special{pa 76 -248}\special{pa 76 -240}% +\special{pa 77 -232}\special{pa 77 -223}\special{pa 78 -215}\special{pa 78 -206}% +\special{pa 79 -198}\special{pa 79 -189}\special{pa 80 -180}\special{pa 80 -171}% +\special{pa 81 -163}\special{pa 81 -154}\special{pa 82 -145}\special{pa 82 -136}% +\special{pa 83 -127}\special{pa 83 -118}\special{pa 84 -109}\special{pa 84 -100}% +\special{pa 85 -91}\special{pa 85 -82}\special{pa 86 -72}\special{pa 86 -63}% +\special{pa 87 -54}\special{pa 87 -44}\special{pa 88 -35}\special{pa 88 -25}% +\special{pa 89 -16}\special{pa 90 -6}\special{pa 90 3}\special{pa 91 13}% +\special{pa 91 23}\special{pa 92 33}\special{pa 92 42}\special{pa 93 52}% +\special{pa 93 62}\special{pa 94 72}\special{pa 94 82}\special{pa 95 92}% +\special{pa 95 102}\special{pa 96 113}\special{pa 96 123}\special{pa 97 133}% +\special{pa 97 143}\special{pa 98 154}\special{pa 98 164}\special{pa 99 175}% +\special{pa 99 185}\special{pa 100 196}\special{pa 100 206}\special{pa 101 217}% +\special{pa 101 227}\special{pa 102 238}\special{pa 102 249}\special{pa 103 260}% +\special{pa 103 271}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -953}\special{pa 3 -952}\special{pa 4 -951}% +\special{pa 5 -949}\special{pa 7 -948}\special{pa 8 -947}\special{pa 9 -945}% +\special{pa 11 -943}\special{pa 12 -942}\special{pa 13 -940}\special{pa 15 -939}% +\special{pa 16 -937}\special{pa 17 -935}\special{pa 19 -933}\special{pa 20 -931}% +\special{pa 21 -929}\special{pa 23 -927}\special{pa 24 -925}\special{pa 25 -923}% +\special{pa 27 -921}\special{pa 28 -919}\special{pa 29 -917}\special{pa 31 -914}% +\special{pa 32 -912}\special{pa 33 -910}\special{pa 35 -907}\special{pa 36 -905}% +\special{pa 37 -902}\special{pa 39 -900}\special{pa 40 -897}\special{pa 41 -894}% +\special{pa 43 -892}\special{pa 44 -889}\special{pa 45 -886}\special{pa 46 -883}% +\special{pa 48 -880}\special{pa 49 -877}\special{pa 50 -874}\special{pa 52 -871}% +\special{pa 53 -868}\special{pa 54 -865}\special{pa 56 -862}\special{pa 57 -859}% +\special{pa 58 -855}\special{pa 60 -852}\special{pa 61 -849}\special{pa 62 -845}% +\special{pa 64 -842}\special{pa 65 -838}\special{pa 66 -835}\special{pa 68 -831}% +\special{pa 69 -827}\special{pa 70 -824}\special{pa 72 -820}\special{pa 73 -816}% +\special{pa 74 -812}\special{pa 76 -808}\special{pa 77 -804}\special{pa 78 -800}% +\special{pa 80 -796}\special{pa 81 -792}\special{pa 82 -788}\special{pa 84 -784}% +\special{pa 85 -780}\special{pa 86 -775}\special{pa 88 -771}\special{pa 89 -767}% +\special{pa 90 -762}\special{pa 92 -758}\special{pa 93 -753}\special{pa 94 -749}% +\special{pa 96 -744}\special{pa 97 -739}\special{pa 98 -735}\special{pa 100 -730}% +\special{pa 101 -725}\special{pa 102 -720}\special{pa 104 -715}\special{pa 105 -710}% +\special{pa 106 -705}\special{pa 108 -700}\special{pa 109 -695}\special{pa 110 -690}% +\special{pa 112 -685}\special{pa 113 -680}\special{pa 114 -674}\special{pa 116 -669}% +\special{pa 117 -664}\special{pa 118 -658}\special{pa 120 -653}\special{pa 121 -647}% +\special{pa 122 -642}\special{pa 124 -636}\special{pa 125 -630}\special{pa 126 -625}% +\special{pa 128 -619}\special{pa 129 -613}\special{pa 130 -607}\special{pa 132 -601}% +\special{pa 133 -595}\special{pa 134 -589}\special{pa 136 -583}\special{pa 137 -577}% +\special{pa 138 -571}\special{pa 139 -565}\special{pa 141 -559}\special{pa 142 -552}% +\special{pa 143 -546}\special{pa 145 -540}\special{pa 146 -533}\special{pa 147 -527}% +\special{pa 149 -520}\special{pa 150 -513}\special{pa 151 -507}\special{pa 153 -500}% +\special{pa 154 -493}\special{pa 155 -487}\special{pa 157 -480}\special{pa 158 -473}% +\special{pa 159 -466}\special{pa 161 -459}\special{pa 162 -452}\special{pa 163 -445}% +\special{pa 165 -438}\special{pa 166 -431}\special{pa 167 -424}\special{pa 169 -416}% +\special{pa 170 -409}\special{pa 171 -402}\special{pa 173 -394}\special{pa 174 -387}% +\special{pa 175 -379}\special{pa 177 -372}\special{pa 178 -364}\special{pa 179 -357}% +\special{pa 181 -349}\special{pa 182 -341}\special{pa 183 -334}\special{pa 185 -326}% +\special{pa 186 -318}\special{pa 187 -310}\special{pa 189 -302}\special{pa 190 -294}% +\special{pa 191 -286}\special{pa 193 -278}\special{pa 194 -270}\special{pa 195 -261}% +\special{pa 197 -253}\special{pa 198 -245}\special{pa 199 -237}\special{pa 201 -228}% +\special{pa 202 -220}\special{pa 203 -211}\special{pa 205 -203}\special{pa 206 -194}% +\special{pa 207 -186}\special{pa 209 -177}\special{pa 210 -168}\special{pa 211 -159}% +\special{pa 213 -151}\special{pa 214 -142}\special{pa 215 -133}\special{pa 217 -124}% +\special{pa 218 -115}\special{pa 219 -106}\special{pa 221 -97}\special{pa 222 -87}% +\special{pa 223 -78}\special{pa 225 -69}\special{pa 226 -60}\special{pa 227 -50}% +\special{pa 229 -41}\special{pa 230 -32}\special{pa 231 -22}\special{pa 232 -12}% +\special{pa 234 -3}\special{pa 235 7}\special{pa 236 16}\special{pa 238 26}% +\special{pa 239 36}\special{pa 240 46}\special{pa 242 56}\special{pa 243 66}% +\special{pa 244 75}\special{pa 246 86}\special{pa 247 96}\special{pa 248 106}% +\special{pa 250 116}\special{pa 251 126}\special{pa 252 136}\special{pa 254 147}% +\special{pa 255 157}\special{pa 256 167}\special{pa 258 178}\special{pa 259 188}% +\special{pa 260 199}\special{pa 262 209}\special{pa 263 220}\special{pa 264 231}% +\special{pa 266 241}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -954}\special{pa 4 -953}\special{pa 6 -952}% +\special{pa 8 -951}\special{pa 10 -949}\special{pa 12 -948}\special{pa 14 -947}% +\special{pa 16 -946}\special{pa 18 -944}\special{pa 20 -943}\special{pa 22 -941}% +\special{pa 24 -940}\special{pa 26 -938}\special{pa 28 -937}\special{pa 30 -935}% +\special{pa 32 -933}\special{pa 34 -932}\special{pa 36 -930}\special{pa 38 -928}% +\special{pa 40 -926}\special{pa 42 -924}\special{pa 44 -922}\special{pa 46 -920}% +\special{pa 48 -918}\special{pa 50 -916}\special{pa 52 -914}\special{pa 54 -912}% +\special{pa 56 -910}\special{pa 58 -907}\special{pa 60 -905}\special{pa 62 -903}% +\special{pa 64 -900}\special{pa 66 -898}\special{pa 68 -895}\special{pa 70 -892}% +\special{pa 72 -890}\special{pa 74 -887}\special{pa 76 -884}\special{pa 78 -882}% +\special{pa 80 -879}\special{pa 82 -876}\special{pa 84 -873}\special{pa 86 -870}% +\special{pa 88 -867}\special{pa 90 -864}\special{pa 92 -861}\special{pa 94 -858}% +\special{pa 96 -854}\special{pa 98 -851}\special{pa 100 -848}\special{pa 102 -845}% +\special{pa 105 -841}\special{pa 107 -838}\special{pa 109 -834}\special{pa 111 -831}% +\special{pa 113 -827}\special{pa 115 -823}\special{pa 117 -820}\special{pa 119 -816}% +\special{pa 121 -812}\special{pa 123 -808}\special{pa 125 -804}\special{pa 127 -801}% +\special{pa 129 -797}\special{pa 131 -793}\special{pa 133 -788}\special{pa 135 -784}% +\special{pa 137 -780}\special{pa 139 -776}\special{pa 141 -772}\special{pa 143 -767}% +\special{pa 145 -763}\special{pa 147 -759}\special{pa 149 -754}\special{pa 151 -750}% +\special{pa 153 -745}\special{pa 155 -741}\special{pa 157 -736}\special{pa 159 -731}% +\special{pa 161 -726}\special{pa 163 -722}\special{pa 165 -717}\special{pa 167 -712}% +\special{pa 169 -707}\special{pa 171 -702}\special{pa 173 -697}\special{pa 175 -692}% +\special{pa 177 -687}\special{pa 179 -682}\special{pa 181 -676}\special{pa 183 -671}% +\special{pa 185 -666}\special{pa 187 -661}\special{pa 189 -655}\special{pa 191 -650}% +\special{pa 193 -644}\special{pa 195 -639}\special{pa 197 -633}\special{pa 199 -627}% +\special{pa 201 -622}\special{pa 203 -616}\special{pa 205 -610}\special{pa 207 -604}% +\special{pa 209 -598}\special{pa 211 -593}\special{pa 213 -587}\special{pa 215 -581}% +\special{pa 217 -574}\special{pa 219 -568}\special{pa 221 -562}\special{pa 223 -556}% +\special{pa 225 -550}\special{pa 227 -543}\special{pa 229 -537}\special{pa 231 -531}% +\special{pa 233 -524}\special{pa 235 -518}\special{pa 237 -511}\special{pa 239 -504}% +\special{pa 241 -498}\special{pa 243 -491}\special{pa 245 -484}\special{pa 247 -478}% +\special{pa 249 -471}\special{pa 251 -464}\special{pa 253 -457}\special{pa 255 -450}% +\special{pa 257 -443}\special{pa 259 -436}\special{pa 261 -429}\special{pa 263 -422}% +\special{pa 265 -414}\special{pa 267 -407}\special{pa 269 -400}\special{pa 271 -392}% +\special{pa 273 -385}\special{pa 275 -378}\special{pa 277 -370}\special{pa 279 -362}% +\special{pa 281 -355}\special{pa 283 -347}\special{pa 285 -340}\special{pa 287 -332}% +\special{pa 289 -324}\special{pa 291 -316}\special{pa 293 -308}\special{pa 295 -300}% +\special{pa 297 -292}\special{pa 299 -284}\special{pa 301 -276}\special{pa 303 -268}% +\special{pa 305 -260}\special{pa 307 -252}\special{pa 309 -243}\special{pa 311 -235}% +\special{pa 314 -227}\special{pa 316 -218}\special{pa 318 -210}\special{pa 320 -201}% +\special{pa 322 -193}\special{pa 324 -184}\special{pa 326 -176}\special{pa 328 -167}% +\special{pa 330 -158}\special{pa 332 -149}\special{pa 334 -140}\special{pa 336 -132}% +\special{pa 338 -123}\special{pa 340 -114}\special{pa 342 -105}\special{pa 344 -96}% +\special{pa 346 -86}\special{pa 348 -77}\special{pa 350 -68}\special{pa 352 -59}% +\special{pa 354 -49}\special{pa 356 -40}\special{pa 358 -31}\special{pa 360 -21}% +\special{pa 362 -12}\special{pa 364 -2}\special{pa 366 8}\special{pa 368 17}% +\special{pa 370 27}\special{pa 372 37}\special{pa 374 46}\special{pa 376 56}% +\special{pa 378 66}\special{pa 380 76}\special{pa 382 86}\special{pa 384 96}% +\special{pa 386 106}\special{pa 388 116}\special{pa 390 127}\special{pa 392 137}% +\special{pa 394 147}\special{pa 396 157}\special{pa 398 168}\special{pa 400 178}% +\special{pa 402 189}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -954}\special{pa 5 -953}\special{pa 7 -953}% +\special{pa 10 -952}\special{pa 12 -951}\special{pa 15 -950}\special{pa 17 -949}% +\special{pa 20 -948}\special{pa 22 -947}\special{pa 25 -946}\special{pa 27 -945}% +\special{pa 30 -944}\special{pa 32 -943}\special{pa 35 -942}\special{pa 37 -941}% +\special{pa 40 -939}\special{pa 42 -938}\special{pa 45 -936}\special{pa 47 -935}% +\special{pa 50 -933}\special{pa 52 -932}\special{pa 55 -930}\special{pa 57 -929}% +\special{pa 60 -927}\special{pa 62 -925}\special{pa 65 -923}\special{pa 67 -921}% +\special{pa 70 -920}\special{pa 72 -918}\special{pa 75 -916}\special{pa 77 -914}% +\special{pa 80 -911}\special{pa 82 -909}\special{pa 85 -907}\special{pa 87 -905}% +\special{pa 90 -903}\special{pa 92 -900}\special{pa 95 -898}\special{pa 97 -896}% +\special{pa 100 -893}\special{pa 102 -891}\special{pa 105 -888}\special{pa 107 -885}% +\special{pa 110 -883}\special{pa 112 -880}\special{pa 115 -877}\special{pa 117 -874}% +\special{pa 120 -872}\special{pa 122 -869}\special{pa 125 -866}\special{pa 127 -863}% +\special{pa 130 -860}\special{pa 132 -857}\special{pa 135 -853}\special{pa 137 -850}% +\special{pa 140 -847}\special{pa 142 -844}\special{pa 145 -840}\special{pa 147 -837}% +\special{pa 150 -834}\special{pa 152 -830}\special{pa 155 -827}\special{pa 157 -823}% +\special{pa 160 -819}\special{pa 162 -816}\special{pa 165 -812}\special{pa 167 -808}% +\special{pa 170 -804}\special{pa 172 -801}\special{pa 175 -797}\special{pa 177 -793}% +\special{pa 180 -789}\special{pa 182 -785}\special{pa 185 -781}\special{pa 187 -776}% +\special{pa 190 -772}\special{pa 192 -768}\special{pa 195 -764}\special{pa 197 -759}% +\special{pa 200 -755}\special{pa 202 -751}\special{pa 205 -746}\special{pa 207 -742}% +\special{pa 210 -737}\special{pa 212 -732}\special{pa 214 -728}\special{pa 217 -723}% +\special{pa 219 -718}\special{pa 222 -713}\special{pa 224 -709}\special{pa 227 -704}% +\special{pa 229 -699}\special{pa 232 -694}\special{pa 234 -689}\special{pa 237 -684}% +\special{pa 239 -678}\special{pa 242 -673}\special{pa 244 -668}\special{pa 247 -663}% +\special{pa 249 -657}\special{pa 252 -652}\special{pa 254 -647}\special{pa 257 -641}% +\special{pa 259 -636}\special{pa 262 -630}\special{pa 264 -624}\special{pa 267 -619}% +\special{pa 269 -613}\special{pa 272 -607}\special{pa 274 -601}\special{pa 277 -596}% +\special{pa 279 -590}\special{pa 282 -584}\special{pa 284 -578}\special{pa 287 -572}% +\special{pa 289 -566}\special{pa 292 -559}\special{pa 294 -553}\special{pa 297 -547}% +\special{pa 299 -541}\special{pa 302 -534}\special{pa 304 -528}\special{pa 307 -521}% +\special{pa 309 -515}\special{pa 312 -508}\special{pa 314 -502}\special{pa 317 -495}% +\special{pa 319 -489}\special{pa 322 -482}\special{pa 324 -475}\special{pa 327 -468}% +\special{pa 329 -461}\special{pa 332 -455}\special{pa 334 -448}\special{pa 337 -441}% +\special{pa 339 -434}\special{pa 342 -426}\special{pa 344 -419}\special{pa 347 -412}% +\special{pa 349 -405}\special{pa 352 -398}\special{pa 354 -390}\special{pa 357 -383}% +\special{pa 359 -375}\special{pa 362 -368}\special{pa 364 -360}\special{pa 367 -353}% +\special{pa 369 -345}\special{pa 372 -337}\special{pa 374 -330}\special{pa 377 -322}% +\special{pa 379 -314}\special{pa 382 -306}\special{pa 384 -298}\special{pa 387 -290}% +\special{pa 389 -282}\special{pa 392 -274}\special{pa 394 -266}\special{pa 397 -258}% +\special{pa 399 -250}\special{pa 402 -242}\special{pa 404 -233}\special{pa 407 -225}% +\special{pa 409 -217}\special{pa 412 -208}\special{pa 414 -200}\special{pa 417 -191}% +\special{pa 419 -183}\special{pa 421 -174}\special{pa 424 -165}\special{pa 426 -157}% +\special{pa 429 -148}\special{pa 431 -139}\special{pa 434 -130}\special{pa 436 -121}% +\special{pa 439 -112}\special{pa 441 -103}\special{pa 444 -94}\special{pa 446 -85}% +\special{pa 449 -76}\special{pa 451 -67}\special{pa 454 -57}\special{pa 456 -48}% +\special{pa 459 -39}\special{pa 461 -29}\special{pa 464 -20}\special{pa 466 -10}% +\special{pa 469 -1}\special{pa 471 9}\special{pa 474 18}\special{pa 476 28}% +\special{pa 479 38}\special{pa 481 47}\special{pa 484 57}\special{pa 486 67}% +\special{pa 489 77}\special{pa 491 87}\special{pa 494 97}\special{pa 496 107}% +\special{pa 499 117}% +\special{fp}% +\special{pa 0 -955}\special{pa 3 -954}\special{pa 5 -954}\special{pa 8 -954}% +\special{pa 11 -954}\special{pa 14 -953}\special{pa 16 -953}\special{pa 19 -952}% +\special{pa 22 -952}\special{pa 25 -951}\special{pa 27 -951}\special{pa 30 -950}% +\special{pa 33 -949}\special{pa 36 -948}\special{pa 38 -948}\special{pa 41 -947}% +\special{pa 44 -946}\special{pa 46 -945}\special{pa 49 -944}\special{pa 52 -943}% +\special{pa 55 -942}\special{pa 57 -941}\special{pa 60 -939}\special{pa 63 -938}% +\special{pa 66 -937}\special{pa 68 -935}\special{pa 71 -934}\special{pa 74 -933}% +\special{pa 77 -931}\special{pa 79 -930}\special{pa 82 -928}\special{pa 85 -926}% +\special{pa 87 -925}\special{pa 90 -923}\special{pa 93 -921}\special{pa 96 -919}% +\special{pa 98 -918}\special{pa 101 -916}\special{pa 104 -914}\special{pa 107 -912}% +\special{pa 109 -910}\special{pa 112 -907}\special{pa 115 -905}\special{pa 118 -903}% +\special{pa 120 -901}\special{pa 123 -899}\special{pa 126 -896}\special{pa 129 -894}% +\special{pa 131 -891}\special{pa 134 -889}\special{pa 137 -886}\special{pa 139 -884}% +\special{pa 142 -881}\special{pa 145 -879}\special{pa 148 -876}\special{pa 150 -873}% +\special{pa 153 -870}\special{pa 156 -867}\special{pa 159 -864}\special{pa 161 -861}% +\special{pa 164 -858}\special{pa 167 -855}\special{pa 170 -852}\special{pa 172 -849}% +\special{pa 175 -846}\special{pa 178 -843}\special{pa 180 -839}\special{pa 183 -836}% +\special{pa 186 -833}\special{pa 189 -829}\special{pa 191 -826}\special{pa 194 -822}% +\special{pa 197 -819}\special{pa 200 -815}\special{pa 202 -811}\special{pa 205 -808}% +\special{pa 208 -804}\special{pa 211 -800}\special{pa 213 -796}\special{pa 216 -792}% +\special{pa 219 -788}\special{pa 221 -784}\special{pa 224 -780}\special{pa 227 -776}% +\special{pa 230 -772}\special{pa 232 -768}\special{pa 235 -763}\special{pa 238 -759}% +\special{pa 241 -755}\special{pa 243 -750}\special{pa 246 -746}\special{pa 249 -741}% +\special{pa 252 -737}\special{pa 254 -732}\special{pa 257 -728}\special{pa 260 -723}% +\special{pa 262 -718}\special{pa 265 -713}\special{pa 268 -709}\special{pa 271 -704}% +\special{pa 273 -699}\special{pa 276 -694}\special{pa 279 -689}\special{pa 282 -684}% +\special{pa 284 -679}\special{pa 287 -673}\special{pa 290 -668}\special{pa 293 -663}% +\special{pa 295 -658}\special{pa 298 -652}\special{pa 301 -647}\special{pa 304 -641}% +\special{pa 306 -636}\special{pa 309 -630}\special{pa 312 -625}\special{pa 314 -619}% +\special{pa 317 -614}\special{pa 320 -608}\special{pa 323 -602}\special{pa 325 -596}% +\special{pa 328 -590}\special{pa 331 -584}\special{pa 334 -578}\special{pa 336 -572}% +\special{pa 339 -566}\special{pa 342 -560}\special{pa 345 -554}\special{pa 347 -548}% +\special{pa 350 -542}\special{pa 353 -535}\special{pa 355 -529}\special{pa 358 -523}% +\special{pa 361 -516}\special{pa 364 -510}\special{pa 366 -503}\special{pa 369 -496}% +\special{pa 372 -490}\special{pa 375 -483}\special{pa 377 -476}\special{pa 380 -470}% +\special{pa 383 -463}\special{pa 386 -456}\special{pa 388 -449}\special{pa 391 -442}% +\special{pa 394 -435}\special{pa 396 -428}\special{pa 399 -421}\special{pa 402 -414}% +\special{pa 405 -406}\special{pa 407 -399}\special{pa 410 -392}\special{pa 413 -384}% +\special{pa 416 -377}\special{pa 418 -370}\special{pa 421 -362}\special{pa 424 -355}% +\special{pa 427 -347}\special{pa 429 -339}\special{pa 432 -332}\special{pa 435 -324}% +\special{pa 437 -316}\special{pa 440 -308}\special{pa 443 -300}\special{pa 446 -292}% +\special{pa 448 -285}\special{pa 451 -276}\special{pa 454 -268}\special{pa 457 -260}% +\special{pa 459 -252}\special{pa 462 -244}\special{pa 465 -236}\special{pa 468 -227}% +\special{pa 470 -219}\special{pa 473 -211}\special{pa 476 -202}\special{pa 479 -194}% +\special{pa 481 -185}\special{pa 484 -176}\special{pa 487 -168}\special{pa 489 -159}% +\special{pa 492 -150}\special{pa 495 -142}\special{pa 498 -133}\special{pa 500 -124}% +\special{pa 503 -115}\special{pa 506 -106}\special{pa 509 -97}\special{pa 511 -88}% +\special{pa 514 -79}\special{pa 517 -70}\special{pa 520 -60}\special{pa 522 -51}% +\special{pa 525 -42}\special{pa 528 -32}\special{pa 530 -23}\special{pa 533 -14}% +\special{pa 536 -4}\special{pa 539 6}\special{pa 541 15}\special{pa 544 25}% +\special{pa 547 34}% +\special{fp}% +\special{pa 0 -955}\special{pa 3 -955}\special{pa 5 -955}\special{pa 8 -955}% +\special{pa 11 -955}\special{pa 14 -955}\special{pa 16 -955}\special{pa 19 -955}% +\special{pa 22 -955}\special{pa 24 -955}\special{pa 27 -955}\special{pa 30 -955}% +\special{pa 32 -954}\special{pa 35 -954}\special{pa 38 -954}\special{pa 41 -953}% +\special{pa 43 -953}\special{pa 46 -952}\special{pa 49 -952}\special{pa 51 -951}% +\special{pa 54 -950}\special{pa 57 -950}\special{pa 60 -949}\special{pa 62 -948}% +\special{pa 65 -947}\special{pa 68 -946}\special{pa 70 -945}\special{pa 73 -944}% +\special{pa 76 -943}\special{pa 79 -942}\special{pa 81 -941}\special{pa 84 -940}% +\special{pa 87 -939}\special{pa 89 -937}\special{pa 92 -936}\special{pa 95 -934}% +\special{pa 97 -933}\special{pa 100 -932}\special{pa 103 -930}\special{pa 106 -928}% +\special{pa 108 -927}\special{pa 111 -925}\special{pa 114 -923}\special{pa 116 -922}% +\special{pa 119 -920}\special{pa 122 -918}\special{pa 125 -916}\special{pa 127 -914}% +\special{pa 130 -912}\special{pa 133 -910}\special{pa 135 -908}\special{pa 138 -906}% +\special{pa 141 -904}\special{pa 143 -901}\special{pa 146 -899}\special{pa 149 -897}% +\special{pa 152 -894}\special{pa 154 -892}\special{pa 157 -889}\special{pa 160 -887}% +\special{pa 162 -884}\special{pa 165 -882}\special{pa 168 -879}\special{pa 171 -876}% +\special{pa 173 -873}\special{pa 176 -871}\special{pa 179 -868}\special{pa 181 -865}% +\special{pa 184 -862}\special{pa 187 -859}\special{pa 189 -856}\special{pa 192 -853}% +\special{pa 195 -850}\special{pa 198 -846}\special{pa 200 -843}\special{pa 203 -840}% +\special{pa 206 -836}\special{pa 208 -833}\special{pa 211 -830}\special{pa 214 -826}% +\special{pa 217 -823}\special{pa 219 -819}\special{pa 222 -815}\special{pa 225 -812}% +\special{pa 227 -808}\special{pa 230 -804}\special{pa 233 -800}\special{pa 236 -797}% +\special{pa 238 -793}\special{pa 241 -789}\special{pa 244 -785}\special{pa 246 -781}% +\special{pa 249 -776}\special{pa 252 -772}\special{pa 254 -768}\special{pa 257 -764}% +\special{pa 260 -760}\special{pa 263 -755}\special{pa 265 -751}\special{pa 268 -746}% +\special{pa 271 -742}\special{pa 273 -737}\special{pa 276 -733}\special{pa 279 -728}% +\special{pa 282 -723}\special{pa 284 -719}\special{pa 287 -714}\special{pa 290 -709}% +\special{pa 292 -704}\special{pa 295 -699}\special{pa 298 -694}\special{pa 300 -689}% +\special{pa 303 -684}\special{pa 306 -679}\special{pa 309 -674}\special{pa 311 -669}% +\special{pa 314 -664}\special{pa 317 -658}\special{pa 319 -653}\special{pa 322 -647}% +\special{pa 325 -642}\special{pa 328 -637}\special{pa 330 -631}\special{pa 333 -625}% +\special{pa 336 -620}\special{pa 338 -614}\special{pa 341 -608}\special{pa 344 -603}% +\special{pa 346 -597}\special{pa 349 -591}\special{pa 352 -585}\special{pa 355 -579}% +\special{pa 357 -573}\special{pa 360 -567}\special{pa 363 -561}\special{pa 365 -555}% +\special{pa 368 -548}\special{pa 371 -542}\special{pa 374 -536}\special{pa 376 -530}% +\special{pa 379 -523}\special{pa 382 -517}\special{pa 384 -510}\special{pa 387 -504}% +\special{pa 390 -497}\special{pa 393 -490}\special{pa 395 -484}\special{pa 398 -477}% +\special{pa 401 -470}\special{pa 403 -463}\special{pa 406 -456}\special{pa 409 -450}% +\special{pa 411 -443}\special{pa 414 -436}\special{pa 417 -428}\special{pa 420 -421}% +\special{pa 422 -414}\special{pa 425 -407}\special{pa 428 -400}\special{pa 430 -392}% +\special{pa 433 -385}\special{pa 436 -378}\special{pa 439 -370}\special{pa 441 -363}% +\special{pa 444 -355}\special{pa 447 -348}\special{pa 449 -340}\special{pa 452 -332}% +\special{pa 455 -325}\special{pa 457 -317}\special{pa 460 -309}\special{pa 463 -301}% +\special{pa 466 -293}\special{pa 468 -285}\special{pa 471 -277}\special{pa 474 -269}% +\special{pa 476 -261}\special{pa 479 -253}\special{pa 482 -245}\special{pa 485 -236}% +\special{pa 487 -228}\special{pa 490 -220}\special{pa 493 -211}\special{pa 495 -203}% +\special{pa 498 -194}\special{pa 501 -186}\special{pa 503 -177}\special{pa 506 -168}% +\special{pa 509 -160}\special{pa 512 -151}\special{pa 514 -142}\special{pa 517 -133}% +\special{pa 520 -125}\special{pa 522 -116}\special{pa 525 -107}\special{pa 528 -98}% +\special{pa 531 -89}\special{pa 533 -79}\special{pa 536 -70}\special{pa 539 -61}% +\special{pa 541 -52}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -955}\special{pa 5 -956}\special{pa 7 -956}% +\special{pa 10 -957}\special{pa 12 -957}\special{pa 14 -958}\special{pa 17 -958}% +\special{pa 19 -958}\special{pa 22 -959}\special{pa 24 -959}\special{pa 27 -959}% +\special{pa 29 -959}\special{pa 31 -959}\special{pa 34 -959}\special{pa 36 -959}% +\special{pa 39 -959}\special{pa 41 -959}\special{pa 43 -959}\special{pa 46 -959}% +\special{pa 48 -958}\special{pa 51 -958}\special{pa 53 -958}\special{pa 56 -957}% +\special{pa 58 -957}\special{pa 60 -956}\special{pa 63 -956}\special{pa 65 -955}% +\special{pa 68 -955}\special{pa 70 -954}\special{pa 72 -953}\special{pa 75 -952}% +\special{pa 77 -951}\special{pa 80 -951}\special{pa 82 -950}\special{pa 85 -949}% +\special{pa 87 -948}\special{pa 89 -947}\special{pa 92 -945}\special{pa 94 -944}% +\special{pa 97 -943}\special{pa 99 -942}\special{pa 101 -940}\special{pa 104 -939}% +\special{pa 106 -938}\special{pa 109 -936}\special{pa 111 -935}\special{pa 113 -933}% +\special{pa 116 -932}\special{pa 118 -930}\special{pa 121 -928}\special{pa 123 -926}% +\special{pa 126 -925}\special{pa 128 -923}\special{pa 130 -921}\special{pa 133 -919}% +\special{pa 135 -917}\special{pa 138 -915}\special{pa 140 -913}\special{pa 142 -911}% +\special{pa 145 -909}\special{pa 147 -906}\special{pa 150 -904}\special{pa 152 -902}% +\special{pa 155 -899}\special{pa 157 -897}\special{pa 159 -895}\special{pa 162 -892}% +\special{pa 164 -889}\special{pa 167 -887}\special{pa 169 -884}\special{pa 171 -882}% +\special{pa 174 -879}\special{pa 176 -876}\special{pa 179 -873}\special{pa 181 -870}% +\special{pa 184 -867}\special{pa 186 -864}\special{pa 188 -861}\special{pa 191 -858}% +\special{pa 193 -855}\special{pa 196 -852}\special{pa 198 -849}\special{pa 200 -845}% +\special{pa 203 -842}\special{pa 205 -839}\special{pa 208 -835}\special{pa 210 -832}% +\special{pa 212 -828}\special{pa 215 -825}\special{pa 217 -821}\special{pa 220 -817}% +\special{pa 222 -814}\special{pa 225 -810}\special{pa 227 -806}\special{pa 229 -802}% +\special{pa 232 -798}\special{pa 234 -795}\special{pa 237 -791}\special{pa 239 -787}% +\special{pa 241 -782}\special{pa 244 -778}\special{pa 246 -774}\special{pa 249 -770}% +\special{pa 251 -766}\special{pa 254 -761}\special{pa 256 -757}\special{pa 258 -752}% +\special{pa 261 -748}\special{pa 263 -744}\special{pa 266 -739}\special{pa 268 -734}% +\special{pa 270 -730}\special{pa 273 -725}\special{pa 275 -720}\special{pa 278 -715}% +\special{pa 280 -711}\special{pa 283 -706}\special{pa 285 -701}\special{pa 287 -696}% +\special{pa 290 -691}\special{pa 292 -686}\special{pa 295 -680}\special{pa 297 -675}% +\special{pa 299 -670}\special{pa 302 -665}\special{pa 304 -659}\special{pa 307 -654}% +\special{pa 309 -649}\special{pa 311 -643}\special{pa 314 -638}\special{pa 316 -632}% +\special{pa 319 -627}\special{pa 321 -621}\special{pa 324 -615}\special{pa 326 -609}% +\special{pa 328 -604}\special{pa 331 -598}\special{pa 333 -592}\special{pa 336 -586}% +\special{pa 338 -580}\special{pa 340 -574}\special{pa 343 -568}\special{pa 345 -562}% +\special{pa 348 -555}\special{pa 350 -549}\special{pa 353 -543}\special{pa 355 -537}% +\special{pa 357 -530}\special{pa 360 -524}\special{pa 362 -517}\special{pa 365 -511}% +\special{pa 367 -504}\special{pa 369 -498}\special{pa 372 -491}\special{pa 374 -484}% +\special{pa 377 -477}\special{pa 379 -471}\special{pa 381 -464}\special{pa 384 -457}% +\special{pa 386 -450}\special{pa 389 -443}\special{pa 391 -436}\special{pa 394 -429}% +\special{pa 396 -422}\special{pa 398 -415}\special{pa 401 -407}\special{pa 403 -400}% +\special{pa 406 -393}\special{pa 408 -385}\special{pa 410 -378}\special{pa 413 -370}% +\special{pa 415 -363}\special{pa 418 -355}\special{pa 420 -348}\special{pa 423 -340}% +\special{pa 425 -332}\special{pa 427 -325}\special{pa 430 -317}\special{pa 432 -309}% +\special{pa 435 -301}\special{pa 437 -293}\special{pa 439 -285}\special{pa 442 -277}% +\special{pa 444 -269}\special{pa 447 -261}\special{pa 449 -253}\special{pa 452 -244}% +\special{pa 454 -236}\special{pa 456 -228}\special{pa 459 -219}\special{pa 461 -211}% +\special{pa 464 -202}\special{pa 466 -194}\special{pa 468 -185}\special{pa 471 -177}% +\special{pa 473 -168}\special{pa 476 -159}\special{pa 478 -151}\special{pa 480 -142}% +\special{pa 483 -133}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -956}\special{pa 4 -957}\special{pa 6 -957}% +\special{pa 8 -958}\special{pa 9 -959}\special{pa 11 -960}\special{pa 13 -961}% +\special{pa 15 -961}\special{pa 17 -962}\special{pa 19 -962}\special{pa 21 -963}% +\special{pa 23 -963}\special{pa 25 -964}\special{pa 26 -964}\special{pa 28 -964}% +\special{pa 30 -965}\special{pa 32 -965}\special{pa 34 -965}\special{pa 36 -965}% +\special{pa 38 -965}\special{pa 40 -965}\special{pa 41 -965}\special{pa 43 -965}% +\special{pa 45 -965}\special{pa 47 -965}\special{pa 49 -965}\special{pa 51 -964}% +\special{pa 53 -964}\special{pa 55 -964}\special{pa 57 -963}\special{pa 58 -963}% +\special{pa 60 -962}\special{pa 62 -962}\special{pa 64 -961}\special{pa 66 -961}% +\special{pa 68 -960}\special{pa 70 -959}\special{pa 72 -958}\special{pa 74 -958}% +\special{pa 75 -957}\special{pa 77 -956}\special{pa 79 -955}\special{pa 81 -954}% +\special{pa 83 -953}\special{pa 85 -952}\special{pa 87 -950}\special{pa 89 -949}% +\special{pa 91 -948}\special{pa 92 -947}\special{pa 94 -945}\special{pa 96 -944}% +\special{pa 98 -942}\special{pa 100 -941}\special{pa 102 -939}\special{pa 104 -938}% +\special{pa 106 -936}\special{pa 107 -934}\special{pa 109 -933}\special{pa 111 -931}% +\special{pa 113 -929}\special{pa 115 -927}\special{pa 117 -925}\special{pa 119 -923}% +\special{pa 121 -921}\special{pa 123 -919}\special{pa 124 -917}\special{pa 126 -915}% +\special{pa 128 -913}\special{pa 130 -910}\special{pa 132 -908}\special{pa 134 -906}% +\special{pa 136 -903}\special{pa 138 -901}\special{pa 140 -898}\special{pa 141 -896}% +\special{pa 143 -893}\special{pa 145 -891}\special{pa 147 -888}\special{pa 149 -885}% +\special{pa 151 -882}\special{pa 153 -879}\special{pa 155 -877}\special{pa 157 -874}% +\special{pa 158 -871}\special{pa 160 -868}\special{pa 162 -865}\special{pa 164 -861}% +\special{pa 166 -858}\special{pa 168 -855}\special{pa 170 -852}\special{pa 172 -848}% +\special{pa 173 -845}\special{pa 175 -842}\special{pa 177 -838}\special{pa 179 -835}% +\special{pa 181 -831}\special{pa 183 -828}\special{pa 185 -824}\special{pa 187 -820}% +\special{pa 189 -816}\special{pa 190 -813}\special{pa 192 -809}\special{pa 194 -805}% +\special{pa 196 -801}\special{pa 198 -797}\special{pa 200 -793}\special{pa 202 -789}% +\special{pa 204 -785}\special{pa 206 -781}\special{pa 207 -776}\special{pa 209 -772}% +\special{pa 211 -768}\special{pa 213 -763}\special{pa 215 -759}\special{pa 217 -755}% +\special{pa 219 -750}\special{pa 221 -746}\special{pa 223 -741}\special{pa 224 -736}% +\special{pa 226 -732}\special{pa 228 -727}\special{pa 230 -722}\special{pa 232 -717}% +\special{pa 234 -712}\special{pa 236 -707}\special{pa 238 -702}\special{pa 239 -697}% +\special{pa 241 -692}\special{pa 243 -687}\special{pa 245 -682}\special{pa 247 -677}% +\special{pa 249 -671}\special{pa 251 -666}\special{pa 253 -661}\special{pa 255 -655}% +\special{pa 256 -650}\special{pa 258 -644}\special{pa 260 -639}\special{pa 262 -633}% +\special{pa 264 -628}\special{pa 266 -622}\special{pa 268 -616}\special{pa 270 -610}% +\special{pa 272 -604}\special{pa 273 -599}\special{pa 275 -593}\special{pa 277 -587}% +\special{pa 279 -581}\special{pa 281 -575}\special{pa 283 -568}\special{pa 285 -562}% +\special{pa 287 -556}\special{pa 289 -550}\special{pa 290 -543}\special{pa 292 -537}% +\special{pa 294 -531}\special{pa 296 -524}\special{pa 298 -518}\special{pa 300 -511}% +\special{pa 302 -504}\special{pa 304 -498}\special{pa 306 -491}\special{pa 307 -484}% +\special{pa 309 -478}\special{pa 311 -471}\special{pa 313 -464}\special{pa 315 -457}% +\special{pa 317 -450}\special{pa 319 -443}\special{pa 321 -436}\special{pa 322 -429}% +\special{pa 324 -421}\special{pa 326 -414}\special{pa 328 -407}\special{pa 330 -400}% +\special{pa 332 -392}\special{pa 334 -385}\special{pa 336 -377}\special{pa 338 -370}% +\special{pa 339 -362}\special{pa 341 -355}\special{pa 343 -347}\special{pa 345 -339}% +\special{pa 347 -332}\special{pa 349 -324}\special{pa 351 -316}\special{pa 353 -308}% +\special{pa 355 -300}\special{pa 356 -292}\special{pa 358 -284}\special{pa 360 -276}% +\special{pa 362 -268}\special{pa 364 -260}\special{pa 366 -251}\special{pa 368 -243}% +\special{pa 370 -235}\special{pa 372 -226}\special{pa 373 -218}\special{pa 375 -209}% +\special{pa 377 -201}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -956}\special{pa 2 -957}\special{pa 4 -958}% +\special{pa 5 -959}\special{pa 6 -960}\special{pa 7 -961}\special{pa 8 -962}% +\special{pa 9 -963}\special{pa 11 -964}\special{pa 12 -965}\special{pa 13 -966}% +\special{pa 14 -966}\special{pa 15 -967}\special{pa 16 -967}\special{pa 18 -968}% +\special{pa 19 -969}\special{pa 20 -969}\special{pa 21 -969}\special{pa 22 -970}% +\special{pa 23 -970}\special{pa 25 -970}\special{pa 26 -971}\special{pa 27 -971}% +\special{pa 28 -971}\special{pa 29 -971}\special{pa 30 -971}\special{pa 32 -971}% +\special{pa 33 -971}\special{pa 34 -971}\special{pa 35 -971}\special{pa 36 -970}% +\special{pa 38 -970}\special{pa 39 -970}\special{pa 40 -969}\special{pa 41 -969}% +\special{pa 42 -969}\special{pa 43 -968}\special{pa 45 -968}\special{pa 46 -967}% +\special{pa 47 -966}\special{pa 48 -966}\special{pa 49 -965}\special{pa 50 -964}% +\special{pa 52 -963}\special{pa 53 -962}\special{pa 54 -962}\special{pa 55 -961}% +\special{pa 56 -960}\special{pa 57 -958}\special{pa 59 -957}\special{pa 60 -956}% +\special{pa 61 -955}\special{pa 62 -954}\special{pa 63 -952}\special{pa 64 -951}% +\special{pa 66 -950}\special{pa 67 -948}\special{pa 68 -947}\special{pa 69 -945}% +\special{pa 70 -944}\special{pa 72 -942}\special{pa 73 -940}\special{pa 74 -939}% +\special{pa 75 -937}\special{pa 76 -935}\special{pa 77 -933}\special{pa 79 -931}% +\special{pa 80 -929}\special{pa 81 -927}\special{pa 82 -925}\special{pa 83 -923}% +\special{pa 84 -921}\special{pa 86 -919}\special{pa 87 -916}\special{pa 88 -914}% +\special{pa 89 -912}\special{pa 90 -909}\special{pa 91 -907}\special{pa 93 -904}% +\special{pa 94 -902}\special{pa 95 -899}\special{pa 96 -896}\special{pa 97 -894}% +\special{pa 98 -891}\special{pa 100 -888}\special{pa 101 -885}\special{pa 102 -883}% +\special{pa 103 -880}\special{pa 104 -877}\special{pa 106 -874}\special{pa 107 -871}% +\special{pa 108 -867}\special{pa 109 -864}\special{pa 110 -861}\special{pa 111 -858}% +\special{pa 113 -854}\special{pa 114 -851}\special{pa 115 -848}\special{pa 116 -844}% +\special{pa 117 -841}\special{pa 118 -837}\special{pa 120 -834}\special{pa 121 -830}% +\special{pa 122 -826}\special{pa 123 -822}\special{pa 124 -819}\special{pa 125 -815}% +\special{pa 127 -811}\special{pa 128 -807}\special{pa 129 -803}\special{pa 130 -799}% +\special{pa 131 -795}\special{pa 132 -791}\special{pa 134 -787}\special{pa 135 -782}% +\special{pa 136 -778}\special{pa 137 -774}\special{pa 138 -770}\special{pa 140 -765}% +\special{pa 141 -761}\special{pa 142 -756}\special{pa 143 -752}\special{pa 144 -747}% +\special{pa 145 -742}\special{pa 147 -738}\special{pa 148 -733}\special{pa 149 -728}% +\special{pa 150 -723}\special{pa 151 -718}\special{pa 152 -713}\special{pa 154 -708}% +\special{pa 155 -703}\special{pa 156 -698}\special{pa 157 -693}\special{pa 158 -688}% +\special{pa 159 -683}\special{pa 161 -678}\special{pa 162 -672}\special{pa 163 -667}% +\special{pa 164 -661}\special{pa 165 -656}\special{pa 166 -650}\special{pa 168 -645}% +\special{pa 169 -639}\special{pa 170 -634}\special{pa 171 -628}\special{pa 172 -622}% +\special{pa 174 -616}\special{pa 175 -611}\special{pa 176 -605}\special{pa 177 -599}% +\special{pa 178 -593}\special{pa 179 -587}\special{pa 181 -581}\special{pa 182 -575}% +\special{pa 183 -568}\special{pa 184 -562}\special{pa 185 -556}\special{pa 186 -550}% +\special{pa 188 -543}\special{pa 189 -537}\special{pa 190 -530}\special{pa 191 -524}% +\special{pa 192 -517}\special{pa 193 -511}\special{pa 195 -504}\special{pa 196 -497}% +\special{pa 197 -491}\special{pa 198 -484}\special{pa 199 -477}\special{pa 200 -470}% +\special{pa 202 -463}\special{pa 203 -456}\special{pa 204 -449}\special{pa 205 -442}% +\special{pa 206 -435}\special{pa 208 -428}\special{pa 209 -420}\special{pa 210 -413}% +\special{pa 211 -406}\special{pa 212 -398}\special{pa 213 -391}\special{pa 215 -384}% +\special{pa 216 -376}\special{pa 217 -369}\special{pa 218 -361}\special{pa 219 -353}% +\special{pa 220 -346}\special{pa 222 -338}\special{pa 223 -330}\special{pa 224 -322}% +\special{pa 225 -314}\special{pa 226 -306}\special{pa 227 -298}\special{pa 229 -290}% +\special{pa 230 -282}\special{pa 231 -274}\special{pa 232 -266}\special{pa 233 -258}% +\special{pa 235 -249}% +\special{fp}% +\special{pa 0 -955}\special{pa 0 -956}\special{pa 1 -957}\special{pa 1 -959}% +\special{pa 1 -960}\special{pa 2 -961}\special{pa 2 -962}\special{pa 2 -963}% +\special{pa 3 -964}\special{pa 3 -965}\special{pa 3 -966}\special{pa 4 -967}% +\special{pa 4 -968}\special{pa 4 -968}\special{pa 5 -969}\special{pa 5 -970}% +\special{pa 6 -970}\special{pa 6 -971}\special{pa 6 -972}\special{pa 7 -972}% +\special{pa 7 -972}\special{pa 7 -973}\special{pa 8 -973}\special{pa 8 -973}% +\special{pa 8 -974}\special{pa 9 -974}\special{pa 9 -974}\special{pa 9 -974}% +\special{pa 10 -974}\special{pa 10 -974}\special{pa 10 -974}\special{pa 11 -974}% +\special{pa 11 -974}\special{pa 11 -974}\special{pa 12 -974}\special{pa 12 -973}% +\special{pa 12 -973}\special{pa 13 -973}\special{pa 13 -972}\special{pa 13 -972}% +\special{pa 14 -971}\special{pa 14 -971}\special{pa 14 -970}\special{pa 15 -969}% +\special{pa 15 -969}\special{pa 15 -968}\special{pa 16 -967}\special{pa 16 -966}% +\special{pa 17 -965}\special{pa 17 -964}\special{pa 17 -963}\special{pa 18 -962}% +\special{pa 18 -961}\special{pa 18 -960}\special{pa 19 -959}\special{pa 19 -958}% +\special{pa 19 -956}\special{pa 20 -955}\special{pa 20 -954}\special{pa 20 -952}% +\special{pa 21 -951}\special{pa 21 -949}\special{pa 21 -948}\special{pa 22 -946}% +\special{pa 22 -944}\special{pa 22 -943}\special{pa 23 -941}\special{pa 23 -939}% +\special{pa 23 -937}\special{pa 24 -935}\special{pa 24 -933}\special{pa 24 -931}% +\special{pa 25 -929}\special{pa 25 -927}\special{pa 25 -925}\special{pa 26 -923}% +\special{pa 26 -921}\special{pa 27 -918}\special{pa 27 -916}\special{pa 27 -914}% +\special{pa 28 -911}\special{pa 28 -909}\special{pa 28 -906}\special{pa 29 -904}% +\special{pa 29 -901}\special{pa 29 -898}\special{pa 30 -896}\special{pa 30 -893}% +\special{pa 30 -890}\special{pa 31 -887}\special{pa 31 -884}\special{pa 31 -881}% +\special{pa 32 -878}\special{pa 32 -875}\special{pa 32 -872}\special{pa 33 -869}% +\special{pa 33 -866}\special{pa 33 -863}\special{pa 34 -859}\special{pa 34 -856}% +\special{pa 34 -853}\special{pa 35 -849}\special{pa 35 -846}\special{pa 35 -842}% +\special{pa 36 -839}\special{pa 36 -835}\special{pa 37 -831}\special{pa 37 -828}% +\special{pa 37 -824}\special{pa 38 -820}\special{pa 38 -816}\special{pa 38 -812}% +\special{pa 39 -808}\special{pa 39 -804}\special{pa 39 -800}\special{pa 40 -796}% +\special{pa 40 -792}\special{pa 40 -788}\special{pa 41 -784}\special{pa 41 -779}% +\special{pa 41 -775}\special{pa 42 -771}\special{pa 42 -766}\special{pa 42 -762}% +\special{pa 43 -757}\special{pa 43 -753}\special{pa 43 -748}\special{pa 44 -743}% +\special{pa 44 -739}\special{pa 44 -734}\special{pa 45 -729}\special{pa 45 -724}% +\special{pa 45 -719}\special{pa 46 -714}\special{pa 46 -709}\special{pa 46 -704}% +\special{pa 47 -699}\special{pa 47 -694}\special{pa 48 -689}\special{pa 48 -684}% +\special{pa 48 -678}\special{pa 49 -673}\special{pa 49 -668}\special{pa 49 -662}% +\special{pa 50 -657}\special{pa 50 -651}\special{pa 50 -646}\special{pa 51 -640}% +\special{pa 51 -634}\special{pa 51 -629}\special{pa 52 -623}\special{pa 52 -617}% +\special{pa 52 -611}\special{pa 53 -605}\special{pa 53 -599}\special{pa 53 -593}% +\special{pa 54 -587}\special{pa 54 -581}\special{pa 54 -575}\special{pa 55 -569}% +\special{pa 55 -562}\special{pa 55 -556}\special{pa 56 -550}\special{pa 56 -543}% +\special{pa 56 -537}\special{pa 57 -530}\special{pa 57 -524}\special{pa 58 -517}% +\special{pa 58 -511}\special{pa 58 -504}\special{pa 59 -497}\special{pa 59 -491}% +\special{pa 59 -484}\special{pa 60 -477}\special{pa 60 -470}\special{pa 60 -463}% +\special{pa 61 -456}\special{pa 61 -449}\special{pa 61 -442}\special{pa 62 -435}% +\special{pa 62 -427}\special{pa 62 -420}\special{pa 63 -413}\special{pa 63 -406}% +\special{pa 63 -398}\special{pa 64 -391}\special{pa 64 -383}\special{pa 64 -376}% +\special{pa 65 -368}\special{pa 65 -361}\special{pa 65 -353}\special{pa 66 -345}% +\special{pa 66 -337}\special{pa 66 -330}\special{pa 67 -322}\special{pa 67 -314}% +\special{pa 68 -306}\special{pa 68 -298}\special{pa 68 -290}\special{pa 69 -282}% +\special{pa 69 -273}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -956}\special{pa -1 -957}\special{pa -2 -959}% +\special{pa -2 -960}\special{pa -3 -961}\special{pa -3 -962}\special{pa -4 -963}% +\special{pa -4 -964}\special{pa -5 -965}\special{pa -5 -966}\special{pa -6 -967}% +\special{pa -6 -967}\special{pa -7 -968}\special{pa -7 -969}\special{pa -8 -970}% +\special{pa -8 -970}\special{pa -9 -971}\special{pa -9 -971}\special{pa -10 -972}% +\special{pa -10 -972}\special{pa -11 -973}\special{pa -11 -973}\special{pa -12 -973}% +\special{pa -12 -973}\special{pa -13 -974}\special{pa -13 -974}\special{pa -14 -974}% +\special{pa -14 -974}\special{pa -15 -974}\special{pa -16 -974}\special{pa -16 -974}% +\special{pa -17 -974}\special{pa -17 -973}\special{pa -18 -973}\special{pa -18 -973}% +\special{pa -19 -972}\special{pa -19 -972}\special{pa -20 -972}\special{pa -20 -971}% +\special{pa -21 -971}\special{pa -21 -970}\special{pa -22 -969}\special{pa -22 -969}% +\special{pa -23 -968}\special{pa -23 -967}\special{pa -24 -966}\special{pa -24 -966}% +\special{pa -25 -965}\special{pa -25 -964}\special{pa -26 -963}\special{pa -26 -962}% +\special{pa -27 -961}\special{pa -27 -959}\special{pa -28 -958}\special{pa -28 -957}% +\special{pa -29 -956}\special{pa -29 -954}\special{pa -30 -953}\special{pa -31 -951}% +\special{pa -31 -950}\special{pa -32 -948}\special{pa -32 -947}\special{pa -33 -945}% +\special{pa -33 -944}\special{pa -34 -942}\special{pa -34 -940}\special{pa -35 -938}% +\special{pa -35 -936}\special{pa -36 -934}\special{pa -36 -932}\special{pa -37 -930}% +\special{pa -37 -928}\special{pa -38 -926}\special{pa -38 -924}\special{pa -39 -922}% +\special{pa -39 -920}\special{pa -40 -917}\special{pa -40 -915}\special{pa -41 -913}% +\special{pa -41 -910}\special{pa -42 -908}\special{pa -42 -905}\special{pa -43 -903}% +\special{pa -43 -900}\special{pa -44 -897}\special{pa -44 -895}\special{pa -45 -892}% +\special{pa -46 -889}\special{pa -46 -886}\special{pa -47 -883}\special{pa -47 -880}% +\special{pa -48 -877}\special{pa -48 -874}\special{pa -49 -871}\special{pa -49 -868}% +\special{pa -50 -865}\special{pa -50 -861}\special{pa -51 -858}\special{pa -51 -855}% +\special{pa -52 -851}\special{pa -52 -848}\special{pa -53 -844}\special{pa -53 -841}% +\special{pa -54 -837}\special{pa -54 -834}\special{pa -55 -830}\special{pa -55 -826}% +\special{pa -56 -822}\special{pa -56 -819}\special{pa -57 -815}\special{pa -57 -811}% +\special{pa -58 -807}\special{pa -58 -803}\special{pa -59 -799}\special{pa -59 -795}% +\special{pa -60 -791}\special{pa -61 -786}\special{pa -61 -782}\special{pa -62 -778}% +\special{pa -62 -773}\special{pa -63 -769}\special{pa -63 -765}\special{pa -64 -760}% +\special{pa -64 -756}\special{pa -65 -751}\special{pa -65 -746}\special{pa -66 -742}% +\special{pa -66 -737}\special{pa -67 -732}\special{pa -67 -727}\special{pa -68 -722}% +\special{pa -68 -717}\special{pa -69 -713}\special{pa -69 -707}\special{pa -70 -702}% +\special{pa -70 -697}\special{pa -71 -692}\special{pa -71 -687}\special{pa -72 -682}% +\special{pa -72 -676}\special{pa -73 -671}\special{pa -73 -666}\special{pa -74 -660}% +\special{pa -75 -655}\special{pa -75 -649}\special{pa -76 -644}\special{pa -76 -638}% +\special{pa -77 -632}\special{pa -77 -626}\special{pa -78 -621}\special{pa -78 -615}% +\special{pa -79 -609}\special{pa -79 -603}\special{pa -80 -597}\special{pa -80 -591}% +\special{pa -81 -585}\special{pa -81 -579}\special{pa -82 -573}\special{pa -82 -566}% +\special{pa -83 -560}\special{pa -83 -554}\special{pa -84 -548}\special{pa -84 -541}% +\special{pa -85 -535}\special{pa -85 -528}\special{pa -86 -522}\special{pa -86 -515}% +\special{pa -87 -508}\special{pa -87 -502}\special{pa -88 -495}\special{pa -88 -488}% +\special{pa -89 -481}\special{pa -90 -475}\special{pa -90 -468}\special{pa -91 -461}% +\special{pa -91 -454}\special{pa -92 -447}\special{pa -92 -439}\special{pa -93 -432}% +\special{pa -93 -425}\special{pa -94 -418}\special{pa -94 -410}\special{pa -95 -403}% +\special{pa -95 -396}\special{pa -96 -388}\special{pa -96 -381}\special{pa -97 -373}% +\special{pa -97 -366}\special{pa -98 -358}\special{pa -98 -350}\special{pa -99 -342}% +\special{pa -99 -335}\special{pa -100 -327}\special{pa -100 -319}\special{pa -101 -311}% +\special{pa -101 -303}\special{pa -102 -295}\special{pa -102 -287}\special{pa -103 -279}% +\special{pa -103 -271}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -956}\special{pa -3 -957}\special{pa -4 -958}% +\special{pa -5 -959}\special{pa -7 -960}\special{pa -8 -961}\special{pa -9 -962}% +\special{pa -11 -963}\special{pa -12 -964}\special{pa -13 -964}\special{pa -15 -965}% +\special{pa -16 -966}\special{pa -17 -966}\special{pa -19 -967}\special{pa -20 -967}% +\special{pa -21 -968}\special{pa -23 -968}\special{pa -24 -969}\special{pa -25 -969}% +\special{pa -27 -969}\special{pa -28 -970}\special{pa -29 -970}\special{pa -31 -970}% +\special{pa -32 -970}\special{pa -33 -970}\special{pa -35 -970}\special{pa -36 -970}% +\special{pa -37 -970}\special{pa -39 -970}\special{pa -40 -969}\special{pa -41 -969}% +\special{pa -43 -969}\special{pa -44 -969}\special{pa -45 -968}\special{pa -46 -968}% +\special{pa -48 -967}\special{pa -49 -967}\special{pa -50 -966}\special{pa -52 -965}% +\special{pa -53 -965}\special{pa -54 -964}\special{pa -56 -963}\special{pa -57 -962}% +\special{pa -58 -962}\special{pa -60 -961}\special{pa -61 -960}\special{pa -62 -959}% +\special{pa -64 -958}\special{pa -65 -957}\special{pa -66 -955}\special{pa -68 -954}% +\special{pa -69 -953}\special{pa -70 -952}\special{pa -72 -950}\special{pa -73 -949}% +\special{pa -74 -947}\special{pa -76 -946}\special{pa -77 -944}\special{pa -78 -943}% +\special{pa -80 -941}\special{pa -81 -940}\special{pa -82 -938}\special{pa -84 -936}% +\special{pa -85 -934}\special{pa -86 -932}\special{pa -88 -930}\special{pa -89 -928}% +\special{pa -90 -926}\special{pa -92 -924}\special{pa -93 -922}\special{pa -94 -920}% +\special{pa -96 -918}\special{pa -97 -916}\special{pa -98 -913}\special{pa -100 -911}% +\special{pa -101 -909}\special{pa -102 -906}\special{pa -104 -904}\special{pa -105 -901}% +\special{pa -106 -899}\special{pa -108 -896}\special{pa -109 -893}\special{pa -110 -890}% +\special{pa -112 -888}\special{pa -113 -885}\special{pa -114 -882}\special{pa -116 -879}% +\special{pa -117 -876}\special{pa -118 -873}\special{pa -120 -870}\special{pa -121 -867}% +\special{pa -122 -864}\special{pa -124 -861}\special{pa -125 -857}\special{pa -126 -854}% +\special{pa -128 -851}\special{pa -129 -847}\special{pa -130 -844}\special{pa -132 -840}% +\special{pa -133 -837}\special{pa -134 -833}\special{pa -136 -830}\special{pa -137 -826}% +\special{pa -138 -822}\special{pa -139 -818}\special{pa -141 -814}\special{pa -142 -811}% +\special{pa -143 -807}\special{pa -145 -803}\special{pa -146 -799}\special{pa -147 -795}% +\special{pa -149 -791}\special{pa -150 -786}\special{pa -151 -782}\special{pa -153 -778}% +\special{pa -154 -774}\special{pa -155 -769}\special{pa -157 -765}\special{pa -158 -760}% +\special{pa -159 -756}\special{pa -161 -751}\special{pa -162 -747}\special{pa -163 -742}% +\special{pa -165 -737}\special{pa -166 -733}\special{pa -167 -728}\special{pa -169 -723}% +\special{pa -170 -718}\special{pa -171 -713}\special{pa -173 -708}\special{pa -174 -703}% +\special{pa -175 -698}\special{pa -177 -693}\special{pa -178 -688}\special{pa -179 -683}% +\special{pa -181 -677}\special{pa -182 -672}\special{pa -183 -667}\special{pa -185 -661}% +\special{pa -186 -656}\special{pa -187 -650}\special{pa -189 -645}\special{pa -190 -639}% +\special{pa -191 -634}\special{pa -193 -628}\special{pa -194 -622}\special{pa -195 -616}% +\special{pa -197 -611}\special{pa -198 -605}\special{pa -199 -599}\special{pa -201 -593}% +\special{pa -202 -587}\special{pa -203 -581}\special{pa -205 -575}\special{pa -206 -568}% +\special{pa -207 -562}\special{pa -209 -556}\special{pa -210 -550}\special{pa -211 -543}% +\special{pa -213 -537}\special{pa -214 -530}\special{pa -215 -524}\special{pa -217 -517}% +\special{pa -218 -511}\special{pa -219 -504}\special{pa -221 -497}\special{pa -222 -491}% +\special{pa -223 -484}\special{pa -225 -477}\special{pa -226 -470}\special{pa -227 -463}% +\special{pa -229 -456}\special{pa -230 -449}\special{pa -231 -442}\special{pa -232 -435}% +\special{pa -234 -428}\special{pa -235 -421}\special{pa -236 -413}\special{pa -238 -406}% +\special{pa -239 -399}\special{pa -240 -391}\special{pa -242 -384}\special{pa -243 -376}% +\special{pa -244 -369}\special{pa -246 -361}\special{pa -247 -354}\special{pa -248 -346}% +\special{pa -250 -338}\special{pa -251 -330}\special{pa -252 -322}\special{pa -254 -315}% +\special{pa -255 -307}\special{pa -256 -299}\special{pa -258 -291}\special{pa -259 -283}% +\special{pa -260 -274}\special{pa -262 -266}\special{pa -263 -258}\special{pa -264 -250}% +\special{pa -266 -241}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -956}\special{pa -4 -956}\special{pa -6 -957}% +\special{pa -8 -958}\special{pa -10 -959}\special{pa -12 -959}\special{pa -14 -960}% +\special{pa -16 -961}\special{pa -18 -961}\special{pa -20 -962}\special{pa -22 -962}% +\special{pa -24 -963}\special{pa -26 -963}\special{pa -28 -963}\special{pa -30 -963}% +\special{pa -32 -964}\special{pa -34 -964}\special{pa -36 -964}\special{pa -38 -964}% +\special{pa -40 -964}\special{pa -42 -964}\special{pa -44 -964}\special{pa -46 -964}% +\special{pa -48 -964}\special{pa -50 -963}\special{pa -52 -963}\special{pa -54 -963}% +\special{pa -56 -962}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}% +\special{pa -64 -960}\special{pa -66 -960}\special{pa -68 -959}\special{pa -70 -958}% +\special{pa -72 -958}\special{pa -74 -957}\special{pa -76 -956}\special{pa -78 -955}% +\special{pa -80 -954}\special{pa -82 -953}\special{pa -84 -952}\special{pa -86 -951}% +\special{pa -88 -950}\special{pa -90 -949}\special{pa -92 -948}\special{pa -94 -946}% +\special{pa -96 -945}\special{pa -98 -944}\special{pa -100 -942}\special{pa -102 -941}% +\special{pa -105 -939}\special{pa -107 -938}\special{pa -109 -936}\special{pa -111 -934}% +\special{pa -113 -933}\special{pa -115 -931}\special{pa -117 -929}\special{pa -119 -927}% +\special{pa -121 -925}\special{pa -123 -923}\special{pa -125 -921}\special{pa -127 -919}% +\special{pa -129 -917}\special{pa -131 -915}\special{pa -133 -913}\special{pa -135 -911}% +\special{pa -137 -908}\special{pa -139 -906}\special{pa -141 -904}\special{pa -143 -901}% +\special{pa -145 -899}\special{pa -147 -896}\special{pa -149 -894}\special{pa -151 -891}% +\special{pa -153 -888}\special{pa -155 -886}\special{pa -157 -883}\special{pa -159 -880}% +\special{pa -161 -877}\special{pa -163 -874}\special{pa -165 -872}\special{pa -167 -869}% +\special{pa -169 -865}\special{pa -171 -862}\special{pa -173 -859}\special{pa -175 -856}% +\special{pa -177 -853}\special{pa -179 -850}\special{pa -181 -846}\special{pa -183 -843}% +\special{pa -185 -839}\special{pa -187 -836}\special{pa -189 -832}\special{pa -191 -829}% +\special{pa -193 -825}\special{pa -195 -822}\special{pa -197 -818}\special{pa -199 -814}% +\special{pa -201 -810}\special{pa -203 -806}\special{pa -205 -803}\special{pa -207 -799}% +\special{pa -209 -795}\special{pa -211 -791}\special{pa -213 -786}\special{pa -215 -782}% +\special{pa -217 -778}\special{pa -219 -774}\special{pa -221 -770}\special{pa -223 -765}% +\special{pa -225 -761}\special{pa -227 -756}\special{pa -229 -752}\special{pa -231 -747}% +\special{pa -233 -743}\special{pa -235 -738}\special{pa -237 -734}\special{pa -239 -729}% +\special{pa -241 -724}\special{pa -243 -719}\special{pa -245 -714}\special{pa -247 -710}% +\special{pa -249 -705}\special{pa -251 -700}\special{pa -253 -695}\special{pa -255 -689}% +\special{pa -257 -684}\special{pa -259 -679}\special{pa -261 -674}\special{pa -263 -669}% +\special{pa -265 -663}\special{pa -267 -658}\special{pa -269 -652}\special{pa -271 -647}% +\special{pa -273 -641}\special{pa -275 -636}\special{pa -277 -630}\special{pa -279 -625}% +\special{pa -281 -619}\special{pa -283 -613}\special{pa -285 -607}\special{pa -287 -601}% +\special{pa -289 -596}\special{pa -291 -590}\special{pa -293 -584}\special{pa -295 -578}% +\special{pa -297 -571}\special{pa -299 -565}\special{pa -301 -559}\special{pa -303 -553}% +\special{pa -305 -547}\special{pa -307 -540}\special{pa -309 -534}\special{pa -311 -527}% +\special{pa -314 -521}\special{pa -316 -514}\special{pa -318 -508}\special{pa -320 -501}% +\special{pa -322 -495}\special{pa -324 -488}\special{pa -326 -481}\special{pa -328 -474}% +\special{pa -330 -467}\special{pa -332 -460}\special{pa -334 -454}\special{pa -336 -447}% +\special{pa -338 -439}\special{pa -340 -432}\special{pa -342 -425}\special{pa -344 -418}% +\special{pa -346 -411}\special{pa -348 -403}\special{pa -350 -396}\special{pa -352 -389}% +\special{pa -354 -381}\special{pa -356 -374}\special{pa -358 -366}\special{pa -360 -359}% +\special{pa -362 -351}\special{pa -364 -343}\special{pa -366 -336}\special{pa -368 -328}% +\special{pa -370 -320}\special{pa -372 -312}\special{pa -374 -304}\special{pa -376 -296}% +\special{pa -378 -288}\special{pa -380 -280}\special{pa -382 -272}\special{pa -384 -264}% +\special{pa -386 -256}\special{pa -388 -248}\special{pa -390 -239}\special{pa -392 -231}% +\special{pa -394 -223}\special{pa -396 -214}\special{pa -398 -206}\special{pa -400 -197}% +\special{pa -402 -189}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -955}\special{pa -5 -956}\special{pa -7 -956}% +\special{pa -10 -957}\special{pa -12 -957}\special{pa -15 -957}\special{pa -17 -958}% +\special{pa -20 -958}\special{pa -22 -958}\special{pa -25 -958}\special{pa -27 -958}% +\special{pa -30 -958}\special{pa -32 -958}\special{pa -35 -958}\special{pa -37 -958}% +\special{pa -40 -958}\special{pa -42 -958}\special{pa -45 -957}\special{pa -47 -957}% +\special{pa -50 -957}\special{pa -52 -956}\special{pa -55 -956}\special{pa -57 -956}% +\special{pa -60 -955}\special{pa -62 -954}\special{pa -65 -954}\special{pa -67 -953}% +\special{pa -70 -952}\special{pa -72 -952}\special{pa -75 -951}\special{pa -77 -950}% +\special{pa -80 -949}\special{pa -82 -948}\special{pa -85 -947}\special{pa -87 -946}% +\special{pa -90 -945}\special{pa -92 -944}\special{pa -95 -942}\special{pa -97 -941}% +\special{pa -100 -940}\special{pa -102 -939}\special{pa -105 -937}\special{pa -107 -936}% +\special{pa -110 -934}\special{pa -112 -933}\special{pa -115 -931}\special{pa -117 -930}% +\special{pa -120 -928}\special{pa -122 -926}\special{pa -125 -924}\special{pa -127 -922}% +\special{pa -130 -921}\special{pa -132 -919}\special{pa -135 -917}\special{pa -137 -915}% +\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -908}\special{pa -147 -906}% +\special{pa -150 -904}\special{pa -152 -902}\special{pa -155 -899}\special{pa -157 -897}% +\special{pa -160 -894}\special{pa -162 -892}\special{pa -165 -889}\special{pa -167 -887}% +\special{pa -170 -884}\special{pa -172 -881}\special{pa -175 -879}\special{pa -177 -876}% +\special{pa -180 -873}\special{pa -182 -870}\special{pa -185 -867}\special{pa -187 -864}% +\special{pa -190 -861}\special{pa -192 -858}\special{pa -195 -855}\special{pa -197 -852}% +\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}% +\special{pa -209 -836}\special{pa -212 -832}\special{pa -214 -829}\special{pa -217 -825}% +\special{pa -219 -821}\special{pa -222 -818}\special{pa -224 -814}\special{pa -227 -810}% +\special{pa -229 -807}\special{pa -232 -803}\special{pa -234 -799}\special{pa -237 -795}% +\special{pa -239 -791}\special{pa -242 -787}\special{pa -244 -783}\special{pa -247 -779}% +\special{pa -249 -775}\special{pa -252 -770}\special{pa -254 -766}\special{pa -257 -762}% +\special{pa -259 -757}\special{pa -262 -753}\special{pa -264 -749}\special{pa -267 -744}% +\special{pa -269 -740}\special{pa -272 -735}\special{pa -274 -730}\special{pa -277 -726}% +\special{pa -279 -721}\special{pa -282 -716}\special{pa -284 -711}\special{pa -287 -706}% +\special{pa -289 -702}\special{pa -292 -697}\special{pa -294 -692}\special{pa -297 -686}% +\special{pa -299 -681}\special{pa -302 -676}\special{pa -304 -671}\special{pa -307 -666}% +\special{pa -309 -660}\special{pa -312 -655}\special{pa -314 -650}\special{pa -317 -644}% +\special{pa -319 -639}\special{pa -322 -633}\special{pa -324 -628}\special{pa -327 -622}% +\special{pa -329 -616}\special{pa -332 -610}\special{pa -334 -605}\special{pa -337 -599}% +\special{pa -339 -593}\special{pa -342 -587}\special{pa -344 -581}\special{pa -347 -575}% +\special{pa -349 -569}\special{pa -352 -563}\special{pa -354 -557}\special{pa -357 -550}% +\special{pa -359 -544}\special{pa -362 -538}\special{pa -364 -532}\special{pa -367 -525}% +\special{pa -369 -519}\special{pa -372 -512}\special{pa -374 -506}\special{pa -377 -499}% +\special{pa -379 -492}\special{pa -382 -486}\special{pa -384 -479}\special{pa -387 -472}% +\special{pa -389 -465}\special{pa -392 -458}\special{pa -394 -451}\special{pa -397 -445}% +\special{pa -399 -437}\special{pa -402 -430}\special{pa -404 -423}\special{pa -407 -416}% +\special{pa -409 -409}\special{pa -412 -402}\special{pa -414 -394}\special{pa -417 -387}% +\special{pa -419 -380}\special{pa -421 -372}\special{pa -424 -365}\special{pa -426 -357}% +\special{pa -429 -349}\special{pa -431 -342}\special{pa -434 -334}\special{pa -436 -326}% +\special{pa -439 -319}\special{pa -441 -311}\special{pa -444 -303}\special{pa -446 -295}% +\special{pa -449 -287}\special{pa -451 -279}\special{pa -454 -271}\special{pa -456 -263}% +\special{pa -459 -255}\special{pa -461 -246}\special{pa -464 -238}\special{pa -466 -230}% +\special{pa -469 -221}\special{pa -471 -213}\special{pa -474 -204}\special{pa -476 -196}% +\special{pa -479 -187}\special{pa -481 -179}\special{pa -484 -170}\special{pa -486 -161}% +\special{pa -489 -153}\special{pa -491 -144}\special{pa -494 -135}\special{pa -496 -126}% +\special{pa -499 -117}% +\special{fp}% +\special{pa 0 -955}\special{pa -3 -955}\special{pa -5 -955}\special{pa -8 -955}% +\special{pa -11 -955}\special{pa -14 -955}\special{pa -16 -955}\special{pa -19 -955}% +\special{pa -22 -955}\special{pa -25 -954}\special{pa -27 -954}\special{pa -30 -954}% +\special{pa -33 -953}\special{pa -36 -953}\special{pa -38 -952}\special{pa -41 -952}% +\special{pa -44 -951}\special{pa -46 -951}\special{pa -49 -950}\special{pa -52 -949}% +\special{pa -55 -949}\special{pa -57 -948}\special{pa -60 -947}\special{pa -63 -946}% +\special{pa -66 -945}\special{pa -68 -944}\special{pa -71 -943}\special{pa -74 -942}% +\special{pa -77 -941}\special{pa -79 -940}\special{pa -82 -938}\special{pa -85 -937}% +\special{pa -87 -936}\special{pa -90 -934}\special{pa -93 -933}\special{pa -96 -931}% +\special{pa -98 -930}\special{pa -101 -928}\special{pa -104 -927}\special{pa -107 -925}% +\special{pa -109 -923}\special{pa -112 -922}\special{pa -115 -920}\special{pa -118 -918}% +\special{pa -120 -916}\special{pa -123 -914}\special{pa -126 -912}\special{pa -129 -910}% +\special{pa -131 -908}\special{pa -134 -906}\special{pa -137 -904}\special{pa -139 -901}% +\special{pa -142 -899}\special{pa -145 -897}\special{pa -148 -894}\special{pa -150 -892}% +\special{pa -153 -889}\special{pa -156 -887}\special{pa -159 -884}\special{pa -161 -882}% +\special{pa -164 -879}\special{pa -167 -876}\special{pa -170 -874}\special{pa -172 -871}% +\special{pa -175 -868}\special{pa -178 -865}\special{pa -180 -862}\special{pa -183 -859}% +\special{pa -186 -856}\special{pa -189 -853}\special{pa -191 -850}\special{pa -194 -847}% +\special{pa -197 -843}\special{pa -200 -840}\special{pa -202 -837}\special{pa -205 -833}% +\special{pa -208 -830}\special{pa -211 -826}\special{pa -213 -823}\special{pa -216 -819}% +\special{pa -219 -816}\special{pa -221 -812}\special{pa -224 -808}\special{pa -227 -805}% +\special{pa -230 -801}\special{pa -232 -797}\special{pa -235 -793}\special{pa -238 -789}% +\special{pa -241 -785}\special{pa -243 -781}\special{pa -246 -777}\special{pa -249 -773}% +\special{pa -252 -769}\special{pa -254 -764}\special{pa -257 -760}\special{pa -260 -756}% +\special{pa -262 -751}\special{pa -265 -747}\special{pa -268 -742}\special{pa -271 -738}% +\special{pa -273 -733}\special{pa -276 -729}\special{pa -279 -724}\special{pa -282 -719}% +\special{pa -284 -714}\special{pa -287 -710}\special{pa -290 -705}\special{pa -293 -700}% +\special{pa -295 -695}\special{pa -298 -690}\special{pa -301 -685}\special{pa -304 -680}% +\special{pa -306 -675}\special{pa -309 -669}\special{pa -312 -664}\special{pa -314 -659}% +\special{pa -317 -653}\special{pa -320 -648}\special{pa -323 -643}\special{pa -325 -637}% +\special{pa -328 -632}\special{pa -331 -626}\special{pa -334 -620}\special{pa -336 -615}% +\special{pa -339 -609}\special{pa -342 -603}\special{pa -345 -597}\special{pa -347 -592}% +\special{pa -350 -586}\special{pa -353 -580}\special{pa -355 -574}\special{pa -358 -568}% +\special{pa -361 -562}\special{pa -364 -555}\special{pa -366 -549}\special{pa -369 -543}% +\special{pa -372 -537}\special{pa -375 -530}\special{pa -377 -524}\special{pa -380 -517}% +\special{pa -383 -511}\special{pa -386 -504}\special{pa -388 -498}\special{pa -391 -491}% +\special{pa -394 -485}\special{pa -396 -478}\special{pa -399 -471}\special{pa -402 -464}% +\special{pa -405 -457}\special{pa -407 -450}\special{pa -410 -444}\special{pa -413 -436}% +\special{pa -416 -429}\special{pa -418 -422}\special{pa -421 -415}\special{pa -424 -408}% +\special{pa -427 -401}\special{pa -429 -393}\special{pa -432 -386}\special{pa -435 -379}% +\special{pa -437 -371}\special{pa -440 -364}\special{pa -443 -356}\special{pa -446 -349}% +\special{pa -448 -341}\special{pa -451 -333}\special{pa -454 -326}\special{pa -457 -318}% +\special{pa -459 -310}\special{pa -462 -302}\special{pa -465 -294}\special{pa -468 -286}% +\special{pa -470 -278}\special{pa -473 -270}\special{pa -476 -262}\special{pa -479 -254}% +\special{pa -481 -246}\special{pa -484 -237}\special{pa -487 -229}\special{pa -489 -221}% +\special{pa -492 -212}\special{pa -495 -204}\special{pa -498 -195}\special{pa -500 -187}% +\special{pa -503 -178}\special{pa -506 -170}\special{pa -509 -161}\special{pa -511 -152}% +\special{pa -514 -143}\special{pa -517 -135}\special{pa -520 -126}\special{pa -522 -117}% +\special{pa -525 -108}\special{pa -528 -99}\special{pa -530 -90}\special{pa -533 -81}% +\special{pa -536 -72}\special{pa -539 -62}\special{pa -541 -53}\special{pa -544 -44}% +\special{pa -547 -34}% +\special{fp}% +\special{pa 0 -955}\special{pa -3 -954}\special{pa -5 -954}\special{pa -8 -954}% +\special{pa -11 -953}\special{pa -14 -953}\special{pa -16 -952}\special{pa -19 -952}% +\special{pa -22 -951}\special{pa -24 -950}\special{pa -27 -950}\special{pa -30 -949}% +\special{pa -32 -948}\special{pa -35 -947}\special{pa -38 -946}\special{pa -41 -945}% +\special{pa -43 -944}\special{pa -46 -943}\special{pa -49 -942}\special{pa -51 -941}% +\special{pa -54 -940}\special{pa -57 -939}\special{pa -60 -937}\special{pa -62 -936}% +\special{pa -65 -935}\special{pa -68 -933}\special{pa -70 -932}\special{pa -73 -930}% +\special{pa -76 -929}\special{pa -79 -927}\special{pa -81 -925}\special{pa -84 -924}% +\special{pa -87 -922}\special{pa -89 -920}\special{pa -92 -918}\special{pa -95 -916}% +\special{pa -97 -914}\special{pa -100 -912}\special{pa -103 -910}\special{pa -106 -908}% +\special{pa -108 -906}\special{pa -111 -904}\special{pa -114 -902}\special{pa -116 -899}% +\special{pa -119 -897}\special{pa -122 -895}\special{pa -125 -892}\special{pa -127 -890}% +\special{pa -130 -887}\special{pa -133 -885}\special{pa -135 -882}\special{pa -138 -879}% +\special{pa -141 -877}\special{pa -143 -874}\special{pa -146 -871}\special{pa -149 -868}% +\special{pa -152 -865}\special{pa -154 -862}\special{pa -157 -859}\special{pa -160 -856}% +\special{pa -162 -853}\special{pa -165 -850}\special{pa -168 -847}\special{pa -171 -844}% +\special{pa -173 -840}\special{pa -176 -837}\special{pa -179 -834}\special{pa -181 -830}% +\special{pa -184 -827}\special{pa -187 -823}\special{pa -189 -820}\special{pa -192 -816}% +\special{pa -195 -812}\special{pa -198 -809}\special{pa -200 -805}\special{pa -203 -801}% +\special{pa -206 -797}\special{pa -208 -793}\special{pa -211 -789}\special{pa -214 -785}% +\special{pa -217 -781}\special{pa -219 -777}\special{pa -222 -773}\special{pa -225 -769}% +\special{pa -227 -765}\special{pa -230 -760}\special{pa -233 -756}\special{pa -236 -752}% +\special{pa -238 -747}\special{pa -241 -743}\special{pa -244 -738}\special{pa -246 -733}% +\special{pa -249 -729}\special{pa -252 -724}\special{pa -254 -719}\special{pa -257 -715}% +\special{pa -260 -710}\special{pa -263 -705}\special{pa -265 -700}\special{pa -268 -695}% +\special{pa -271 -690}\special{pa -273 -685}\special{pa -276 -680}\special{pa -279 -675}% +\special{pa -282 -670}\special{pa -284 -664}\special{pa -287 -659}\special{pa -290 -654}% +\special{pa -292 -648}\special{pa -295 -643}\special{pa -298 -637}\special{pa -300 -632}% +\special{pa -303 -626}\special{pa -306 -621}\special{pa -309 -615}\special{pa -311 -609}% +\special{pa -314 -604}\special{pa -317 -598}\special{pa -319 -592}\special{pa -322 -586}% +\special{pa -325 -580}\special{pa -328 -574}\special{pa -330 -568}\special{pa -333 -562}% +\special{pa -336 -556}\special{pa -338 -549}\special{pa -341 -543}\special{pa -344 -537}% +\special{pa -346 -531}\special{pa -349 -524}\special{pa -352 -518}\special{pa -355 -511}% +\special{pa -357 -505}\special{pa -360 -498}\special{pa -363 -491}\special{pa -365 -485}% +\special{pa -368 -478}\special{pa -371 -471}\special{pa -374 -464}\special{pa -376 -458}% +\special{pa -379 -451}\special{pa -382 -444}\special{pa -384 -437}\special{pa -387 -430}% +\special{pa -390 -423}\special{pa -393 -415}\special{pa -395 -408}\special{pa -398 -401}% +\special{pa -401 -394}\special{pa -403 -386}\special{pa -406 -379}\special{pa -409 -371}% +\special{pa -411 -364}\special{pa -414 -356}\special{pa -417 -349}\special{pa -420 -341}% +\special{pa -422 -333}\special{pa -425 -326}\special{pa -428 -318}\special{pa -430 -310}% +\special{pa -433 -302}\special{pa -436 -294}\special{pa -439 -286}\special{pa -441 -278}% +\special{pa -444 -270}\special{pa -447 -262}\special{pa -449 -254}\special{pa -452 -246}% +\special{pa -455 -238}\special{pa -457 -229}\special{pa -460 -221}\special{pa -463 -213}% +\special{pa -466 -204}\special{pa -468 -196}\special{pa -471 -187}\special{pa -474 -178}% +\special{pa -476 -170}\special{pa -479 -161}\special{pa -482 -152}\special{pa -485 -144}% +\special{pa -487 -135}\special{pa -490 -126}\special{pa -493 -117}\special{pa -495 -108}% +\special{pa -498 -99}\special{pa -501 -90}\special{pa -503 -81}\special{pa -506 -72}% +\special{pa -509 -62}\special{pa -512 -53}\special{pa -514 -44}\special{pa -517 -35}% +\special{pa -520 -25}\special{pa -522 -16}\special{pa -525 -6}\special{pa -528 3}% +\special{pa -531 13}\special{pa -533 23}\special{pa -536 32}\special{pa -539 42}% +\special{pa -541 52}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -5 -953}\special{pa -7 -952}% +\special{pa -10 -952}\special{pa -12 -951}\special{pa -14 -950}\special{pa -17 -949}% +\special{pa -19 -948}\special{pa -22 -947}\special{pa -24 -946}\special{pa -27 -944}% +\special{pa -29 -943}\special{pa -31 -942}\special{pa -34 -941}\special{pa -36 -939}% +\special{pa -39 -938}\special{pa -41 -936}\special{pa -43 -935}\special{pa -46 -933}% +\special{pa -48 -932}\special{pa -51 -930}\special{pa -53 -929}\special{pa -56 -927}% +\special{pa -58 -925}\special{pa -60 -923}\special{pa -63 -921}\special{pa -65 -919}% +\special{pa -68 -917}\special{pa -70 -915}\special{pa -72 -913}\special{pa -75 -911}% +\special{pa -77 -909}\special{pa -80 -907}\special{pa -82 -904}\special{pa -85 -902}% +\special{pa -87 -900}\special{pa -89 -897}\special{pa -92 -895}\special{pa -94 -892}% +\special{pa -97 -890}\special{pa -99 -887}\special{pa -101 -885}\special{pa -104 -882}% +\special{pa -106 -879}\special{pa -109 -876}\special{pa -111 -874}\special{pa -113 -871}% +\special{pa -116 -868}\special{pa -118 -865}\special{pa -121 -862}\special{pa -123 -859}% +\special{pa -126 -856}\special{pa -128 -852}\special{pa -130 -849}\special{pa -133 -846}% +\special{pa -135 -843}\special{pa -138 -839}\special{pa -140 -836}\special{pa -142 -832}% +\special{pa -145 -829}\special{pa -147 -825}\special{pa -150 -822}\special{pa -152 -818}% +\special{pa -155 -814}\special{pa -157 -811}\special{pa -159 -807}\special{pa -162 -803}% +\special{pa -164 -799}\special{pa -167 -795}\special{pa -169 -791}\special{pa -171 -787}% +\special{pa -174 -783}\special{pa -176 -779}\special{pa -179 -775}\special{pa -181 -771}% +\special{pa -184 -766}\special{pa -186 -762}\special{pa -188 -758}\special{pa -191 -753}% +\special{pa -193 -749}\special{pa -196 -744}\special{pa -198 -740}\special{pa -200 -735}% +\special{pa -203 -730}\special{pa -205 -726}\special{pa -208 -721}\special{pa -210 -716}% +\special{pa -212 -711}\special{pa -215 -707}\special{pa -217 -702}\special{pa -220 -697}% +\special{pa -222 -692}\special{pa -225 -686}\special{pa -227 -681}\special{pa -229 -676}% +\special{pa -232 -671}\special{pa -234 -666}\special{pa -237 -660}\special{pa -239 -655}% +\special{pa -241 -650}\special{pa -244 -644}\special{pa -246 -639}\special{pa -249 -633}% +\special{pa -251 -627}\special{pa -254 -622}\special{pa -256 -616}\special{pa -258 -610}% +\special{pa -261 -605}\special{pa -263 -599}\special{pa -266 -593}\special{pa -268 -587}% +\special{pa -270 -581}\special{pa -273 -575}\special{pa -275 -569}\special{pa -278 -563}% +\special{pa -280 -556}\special{pa -283 -550}\special{pa -285 -544}\special{pa -287 -538}% +\special{pa -290 -531}\special{pa -292 -525}\special{pa -295 -518}\special{pa -297 -512}% +\special{pa -299 -505}\special{pa -302 -499}\special{pa -304 -492}\special{pa -307 -485}% +\special{pa -309 -479}\special{pa -311 -472}\special{pa -314 -465}\special{pa -316 -458}% +\special{pa -319 -451}\special{pa -321 -444}\special{pa -324 -437}\special{pa -326 -430}% +\special{pa -328 -423}\special{pa -331 -416}\special{pa -333 -408}\special{pa -336 -401}% +\special{pa -338 -394}\special{pa -340 -387}\special{pa -343 -379}\special{pa -345 -372}% +\special{pa -348 -364}\special{pa -350 -357}\special{pa -353 -349}\special{pa -355 -341}% +\special{pa -357 -334}\special{pa -360 -326}\special{pa -362 -318}\special{pa -365 -310}% +\special{pa -367 -302}\special{pa -369 -294}\special{pa -372 -286}\special{pa -374 -278}% +\special{pa -377 -270}\special{pa -379 -262}\special{pa -381 -254}\special{pa -384 -246}% +\special{pa -386 -237}\special{pa -389 -229}\special{pa -391 -221}\special{pa -394 -212}% +\special{pa -396 -204}\special{pa -398 -195}\special{pa -401 -187}\special{pa -403 -178}% +\special{pa -406 -169}\special{pa -408 -161}\special{pa -410 -152}\special{pa -413 -143}% +\special{pa -415 -134}\special{pa -418 -125}\special{pa -420 -116}\special{pa -423 -108}% +\special{pa -425 -98}\special{pa -427 -89}\special{pa -430 -80}\special{pa -432 -71}% +\special{pa -435 -62}\special{pa -437 -53}\special{pa -439 -43}\special{pa -442 -34}% +\special{pa -444 -24}\special{pa -447 -15}\special{pa -449 -5}\special{pa -452 4}% +\special{pa -454 14}\special{pa -456 23}\special{pa -459 33}\special{pa -461 43}% +\special{pa -464 53}\special{pa -466 63}\special{pa -468 72}\special{pa -471 82}% +\special{pa -473 92}\special{pa -476 102}\special{pa -478 113}\special{pa -480 123}% +\special{pa -483 133}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}% +\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}% +\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}% +\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}% +\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}% +\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}% +\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}% +\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}% +\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}% +\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}% +\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}% +\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}% +\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}% +\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}% +\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}% +\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}% +\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}% +\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}% +\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}% +\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}% +\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}% +\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}% +\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}% +\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}% +\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}% +\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}% +\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}% +\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}% +\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}% +\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}% +\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}% +\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}% +\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}% +\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}% +\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}% +\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}% +\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}% +\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}% +\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}% +\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}% +\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}% +\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}% +\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}% +\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}% +\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}% +\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}% +\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}% +\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}% +\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}% +\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}% +\special{pa -377 201}% +\special{fp}% +\special{pa -19 -942}\special{pa -18 -942}\special{pa -18 -942}\special{pa -17 -941}% +\special{pa -16 -941}\special{pa -15 -941}\special{pa -15 -941}\special{pa -14 -940}% +\special{pa -13 -940}\special{pa -13 -940}\special{pa -12 -940}\special{pa -11 -940}% +\special{pa -10 -939}\special{pa -9 -939}\special{pa -9 -939}\special{pa -8 -939}% +\special{pa -7 -939}\special{pa -6 -939}\special{pa -5 -939}\special{pa -4 -939}% +\special{pa -3 -939}\special{pa -3 -939}\special{pa -2 -939}\special{pa -1 -939}% +\special{pa 0 -939}\special{pa 1 -939}\special{pa 2 -939}\special{pa 3 -939}% +\special{pa 3 -939}\special{pa 4 -939}\special{pa 5 -939}\special{pa 6 -939}% +\special{pa 7 -939}\special{pa 8 -939}\special{pa 9 -939}\special{pa 9 -939}% +\special{pa 10 -939}\special{pa 11 -940}\special{pa 12 -940}\special{pa 13 -940}% +\special{pa 13 -940}\special{pa 14 -940}\special{pa 15 -941}\special{pa 15 -941}% +\special{pa 16 -941}\special{pa 17 -941}\special{pa 18 -942}\special{pa 18 -942}% +\special{pa 19 -942}\special{pa 19 -943}\special{pa 20 -943}\special{pa 21 -943}% +\special{pa 21 -944}\special{pa 22 -944}\special{pa 22 -944}\special{pa 23 -945}% +\special{pa 23 -945}\special{pa 24 -945}\special{pa 24 -946}\special{pa 25 -946}% +\special{pa 25 -946}\special{pa 25 -947}\special{pa 26 -947}\special{pa 26 -948}% +\special{pa 26 -948}\special{pa 26 -948}\special{pa 27 -949}\special{pa 27 -949}% +\special{pa 27 -950}\special{pa 27 -950}\special{pa 27 -951}\special{pa 27 -951}% +\special{pa 28 -951}\special{pa 28 -952}\special{pa 28 -952}\special{pa 28 -953}% +\special{pa 28 -953}\special{pa 27 -954}\special{pa 27 -954}\special{pa 27 -954}% +\special{pa 27 -955}\special{pa 27 -955}\special{pa 27 -956}\special{pa 26 -956}% +\special{pa 26 -957}\special{pa 26 -957}\special{pa 26 -957}\special{pa 25 -958}% +\special{pa 25 -958}\special{pa 25 -959}\special{pa 24 -959}\special{pa 24 -959}% +\special{pa 23 -960}\special{pa 23 -960}\special{pa 22 -960}\special{pa 22 -961}% +\special{pa 21 -961}\special{pa 21 -961}\special{pa 20 -962}\special{pa 19 -962}% +\special{pa 19 -962}\special{pa 18 -963}\special{pa 18 -963}\special{pa 17 -963}% +\special{pa 16 -963}\special{pa 15 -964}\special{pa 15 -964}\special{pa 14 -964}% +\special{pa 13 -964}\special{pa 13 -965}\special{pa 12 -965}\special{pa 11 -965}% +\special{pa 10 -965}\special{pa 9 -965}\special{pa 9 -965}\special{pa 8 -966}% +\special{pa 7 -966}\special{pa 6 -966}\special{pa 5 -966}\special{pa 4 -966}% +\special{pa 3 -966}\special{pa 3 -966}\special{pa 2 -966}\special{pa 1 -966}% +\special{pa -0 -966}\special{pa -1 -966}\special{pa -2 -966}\special{pa -3 -966}% +\special{pa -3 -966}\special{pa -4 -966}\special{pa -5 -966}\special{pa -6 -966}% +\special{pa -7 -966}\special{pa -8 -966}\special{pa -9 -965}\special{pa -9 -965}% +\special{pa -10 -965}\special{pa -11 -965}\special{pa -12 -965}\special{pa -13 -965}% +\special{pa -13 -964}\special{pa -14 -964}\special{pa -15 -964}\special{pa -15 -964}% +\special{pa -16 -963}\special{pa -17 -963}\special{pa -18 -963}\special{pa -18 -963}% +\special{pa -19 -962}\special{pa -19 -962}\special{pa -20 -962}\special{pa -21 -961}% +\special{pa -21 -961}\special{pa -22 -961}\special{pa -22 -960}\special{pa -23 -960}% +\special{pa -23 -960}\special{pa -24 -959}\special{pa -24 -959}\special{pa -25 -959}% +\special{pa -25 -958}\special{pa -25 -958}\special{pa -26 -957}\special{pa -26 -957}% +\special{pa -26 -957}\special{pa -26 -956}\special{pa -27 -956}\special{pa -27 -955}% +\special{pa -27 -955}\special{pa -27 -954}\special{pa -27 -954}\special{pa -27 -954}% +\special{pa -28 -953}\special{pa -28 -953}\special{pa -28 -952}\special{pa -28 -952}% +\special{pa -28 -951}\special{pa -27 -951}\special{pa -27 -951}\special{pa -27 -950}% +\special{pa -27 -950}\special{pa -27 -949}\special{pa -27 -949}\special{pa -26 -948}% +\special{pa -26 -948}\special{pa -26 -948}\special{pa -26 -947}\special{pa -25 -947}% +\special{pa -25 -946}\special{pa -25 -946}\special{pa -24 -946}\special{pa -24 -945}% +\special{pa -23 -945}\special{pa -23 -945}\special{pa -22 -944}\special{pa -22 -944}% +\special{pa -21 -943}\special{pa -21 -943}\special{pa -20 -943}\special{pa -19 -943}% +\special{pa -19 -942}% +\special{fp}% +\special{pa -38 -925}\special{pa -36 -924}\special{pa -35 -924}\special{pa -34 -923}% +\special{pa -32 -923}\special{pa -31 -922}\special{pa -30 -922}\special{pa -28 -921}% +\special{pa -27 -921}\special{pa -25 -921}\special{pa -23 -920}\special{pa -22 -920}% +\special{pa -20 -919}\special{pa -19 -919}\special{pa -17 -919}\special{pa -15 -919}% +\special{pa -14 -918}\special{pa -12 -918}\special{pa -10 -918}\special{pa -9 -918}% +\special{pa -7 -918}\special{pa -5 -918}\special{pa -3 -918}\special{pa -2 -918}% +\special{pa 0 -918}\special{pa 2 -918}\special{pa 3 -918}\special{pa 5 -918}% +\special{pa 7 -918}\special{pa 9 -918}\special{pa 10 -918}\special{pa 12 -918}% +\special{pa 14 -918}\special{pa 15 -919}\special{pa 17 -919}\special{pa 19 -919}% +\special{pa 20 -920}\special{pa 22 -920}\special{pa 23 -920}\special{pa 25 -921}% +\special{pa 27 -921}\special{pa 28 -921}\special{pa 30 -922}\special{pa 31 -922}% +\special{pa 32 -923}\special{pa 34 -923}\special{pa 35 -924}\special{pa 36 -924}% +\special{pa 38 -925}\special{pa 39 -926}\special{pa 40 -926}\special{pa 41 -927}% +\special{pa 42 -928}\special{pa 44 -928}\special{pa 45 -929}\special{pa 46 -930}% +\special{pa 47 -930}\special{pa 47 -931}\special{pa 48 -932}\special{pa 49 -933}% +\special{pa 50 -933}\special{pa 51 -934}\special{pa 51 -935}\special{pa 52 -936}% +\special{pa 52 -937}\special{pa 53 -937}\special{pa 53 -938}\special{pa 54 -939}% +\special{pa 54 -940}\special{pa 54 -941}\special{pa 55 -942}\special{pa 55 -943}% +\special{pa 55 -943}\special{pa 55 -944}\special{pa 55 -945}\special{pa 55 -946}% +\special{pa 55 -947}\special{pa 55 -948}\special{pa 55 -949}\special{pa 54 -949}% +\special{pa 54 -950}\special{pa 54 -951}\special{pa 53 -952}\special{pa 53 -953}% +\special{pa 52 -954}\special{pa 52 -954}\special{pa 51 -955}\special{pa 51 -956}% +\special{pa 50 -957}\special{pa 49 -958}\special{pa 48 -958}\special{pa 47 -959}% +\special{pa 47 -960}\special{pa 46 -961}\special{pa 45 -961}\special{pa 44 -962}% +\special{pa 42 -963}\special{pa 41 -963}\special{pa 40 -964}\special{pa 39 -965}% +\special{pa 38 -965}\special{pa 36 -966}\special{pa 35 -966}\special{pa 34 -967}% +\special{pa 32 -967}\special{pa 31 -968}\special{pa 30 -968}\special{pa 28 -969}% +\special{pa 27 -969}\special{pa 25 -970}\special{pa 23 -970}\special{pa 22 -970}% +\special{pa 20 -971}\special{pa 19 -971}\special{pa 17 -971}\special{pa 15 -972}% +\special{pa 14 -972}\special{pa 12 -972}\special{pa 10 -972}\special{pa 9 -972}% +\special{pa 7 -972}\special{pa 5 -973}\special{pa 3 -973}\special{pa 2 -973}% +\special{pa -0 -973}\special{pa -2 -973}\special{pa -3 -973}\special{pa -5 -973}% +\special{pa -7 -972}\special{pa -9 -972}\special{pa -10 -972}\special{pa -12 -972}% +\special{pa -14 -972}\special{pa -15 -972}\special{pa -17 -971}\special{pa -19 -971}% +\special{pa -20 -971}\special{pa -22 -970}\special{pa -23 -970}\special{pa -25 -970}% +\special{pa -27 -969}\special{pa -28 -969}\special{pa -30 -968}\special{pa -31 -968}% +\special{pa -32 -967}\special{pa -34 -967}\special{pa -35 -966}\special{pa -36 -966}% +\special{pa -38 -965}\special{pa -39 -965}\special{pa -40 -964}\special{pa -41 -963}% +\special{pa -42 -963}\special{pa -44 -962}\special{pa -45 -961}\special{pa -46 -961}% +\special{pa -47 -960}\special{pa -47 -959}\special{pa -48 -958}\special{pa -49 -958}% +\special{pa -50 -957}\special{pa -51 -956}\special{pa -51 -955}\special{pa -52 -954}% +\special{pa -52 -954}\special{pa -53 -953}\special{pa -53 -952}\special{pa -54 -951}% +\special{pa -54 -950}\special{pa -54 -949}\special{pa -55 -949}\special{pa -55 -948}% +\special{pa -55 -947}\special{pa -55 -946}\special{pa -55 -945}\special{pa -55 -944}% +\special{pa -55 -943}\special{pa -55 -943}\special{pa -55 -942}\special{pa -54 -941}% +\special{pa -54 -940}\special{pa -54 -939}\special{pa -53 -938}\special{pa -53 -937}% +\special{pa -52 -937}\special{pa -52 -936}\special{pa -51 -935}\special{pa -51 -934}% +\special{pa -50 -933}\special{pa -49 -933}\special{pa -48 -932}\special{pa -47 -931}% +\special{pa -47 -930}\special{pa -46 -930}\special{pa -45 -929}\special{pa -44 -928}% +\special{pa -42 -928}\special{pa -41 -927}\special{pa -40 -926}\special{pa -39 -926}% +\special{pa -38 -925}% +\special{fp}% +\special{pa -57 -903}\special{pa -55 -902}\special{pa -53 -901}\special{pa -51 -901}% +\special{pa -49 -900}\special{pa -46 -899}\special{pa -44 -898}\special{pa -42 -898}% +\special{pa -40 -897}\special{pa -38 -896}\special{pa -35 -896}\special{pa -33 -895}% +\special{pa -30 -895}\special{pa -28 -894}\special{pa -26 -894}\special{pa -23 -893}% +\special{pa -21 -893}\special{pa -18 -893}\special{pa -15 -893}\special{pa -13 -892}% +\special{pa -10 -892}\special{pa -8 -892}\special{pa -5 -892}\special{pa -3 -892}% +\special{pa 0 -892}\special{pa 3 -892}\special{pa 5 -892}\special{pa 8 -892}% +\special{pa 10 -892}\special{pa 13 -892}\special{pa 16 -893}\special{pa 18 -893}% +\special{pa 21 -893}\special{pa 23 -894}\special{pa 26 -894}\special{pa 28 -894}% +\special{pa 30 -895}\special{pa 33 -895}\special{pa 35 -896}\special{pa 38 -896}% +\special{pa 40 -897}\special{pa 42 -898}\special{pa 44 -898}\special{pa 46 -899}% +\special{pa 49 -900}\special{pa 51 -901}\special{pa 53 -901}\special{pa 55 -902}% +\special{pa 57 -903}\special{pa 58 -904}\special{pa 60 -905}\special{pa 62 -906}% +\special{pa 64 -907}\special{pa 65 -908}\special{pa 67 -909}\special{pa 68 -910}% +\special{pa 70 -911}\special{pa 71 -912}\special{pa 72 -913}\special{pa 74 -914}% +\special{pa 75 -916}\special{pa 76 -917}\special{pa 77 -918}\special{pa 78 -919}% +\special{pa 79 -920}\special{pa 79 -922}\special{pa 80 -923}\special{pa 81 -924}% +\special{pa 81 -925}\special{pa 82 -927}\special{pa 82 -928}\special{pa 82 -929}% +\special{pa 83 -931}\special{pa 83 -932}\special{pa 83 -933}\special{pa 83 -935}% +\special{pa 83 -936}\special{pa 82 -937}\special{pa 82 -938}\special{pa 82 -940}% +\special{pa 81 -941}\special{pa 81 -942}\special{pa 80 -943}\special{pa 79 -945}% +\special{pa 79 -946}\special{pa 78 -947}\special{pa 77 -948}\special{pa 76 -950}% +\special{pa 75 -951}\special{pa 74 -952}\special{pa 72 -953}\special{pa 71 -954}% +\special{pa 70 -955}\special{pa 68 -956}\special{pa 67 -958}\special{pa 65 -959}% +\special{pa 64 -960}\special{pa 62 -961}\special{pa 60 -962}\special{pa 58 -962}% +\special{pa 57 -963}\special{pa 55 -964}\special{pa 53 -965}\special{pa 51 -966}% +\special{pa 49 -967}\special{pa 46 -967}\special{pa 44 -968}\special{pa 42 -969}% +\special{pa 40 -969}\special{pa 38 -970}\special{pa 35 -971}\special{pa 33 -971}% +\special{pa 30 -972}\special{pa 28 -972}\special{pa 26 -973}\special{pa 23 -973}% +\special{pa 21 -973}\special{pa 18 -974}\special{pa 15 -974}\special{pa 13 -974}% +\special{pa 10 -974}\special{pa 8 -974}\special{pa 5 -974}\special{pa 3 -975}% +\special{pa -0 -975}\special{pa -3 -975}\special{pa -5 -974}\special{pa -8 -974}% +\special{pa -10 -974}\special{pa -13 -974}\special{pa -16 -974}\special{pa -18 -974}% +\special{pa -21 -973}\special{pa -23 -973}\special{pa -26 -973}\special{pa -28 -972}% +\special{pa -30 -972}\special{pa -33 -971}\special{pa -35 -971}\special{pa -38 -970}% +\special{pa -40 -969}\special{pa -42 -969}\special{pa -44 -968}\special{pa -46 -967}% +\special{pa -49 -967}\special{pa -51 -966}\special{pa -53 -965}\special{pa -55 -964}% +\special{pa -57 -963}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}% +\special{pa -64 -960}\special{pa -65 -959}\special{pa -67 -957}\special{pa -68 -956}% +\special{pa -70 -955}\special{pa -71 -954}\special{pa -72 -953}\special{pa -74 -952}% +\special{pa -75 -951}\special{pa -76 -950}\special{pa -77 -948}\special{pa -78 -947}% +\special{pa -79 -946}\special{pa -79 -945}\special{pa -80 -943}\special{pa -81 -942}% +\special{pa -81 -941}\special{pa -82 -940}\special{pa -82 -938}\special{pa -82 -937}% +\special{pa -83 -936}\special{pa -83 -934}\special{pa -83 -933}\special{pa -83 -932}% +\special{pa -83 -931}\special{pa -82 -929}\special{pa -82 -928}\special{pa -82 -927}% +\special{pa -81 -925}\special{pa -81 -924}\special{pa -80 -923}\special{pa -79 -922}% +\special{pa -79 -920}\special{pa -78 -919}\special{pa -77 -918}\special{pa -76 -917}% +\special{pa -75 -916}\special{pa -74 -914}\special{pa -72 -913}\special{pa -71 -912}% +\special{pa -70 -911}\special{pa -68 -910}\special{pa -67 -909}\special{pa -65 -908}% +\special{pa -64 -907}\special{pa -62 -906}\special{pa -60 -905}\special{pa -58 -904}% +\special{pa -57 -903}% +\special{fp}% +\special{pa -75 -876}\special{pa -73 -875}\special{pa -70 -874}\special{pa -68 -873}% +\special{pa -65 -872}\special{pa -62 -871}\special{pa -59 -870}\special{pa -56 -869}% +\special{pa -53 -868}\special{pa -50 -867}\special{pa -47 -867}\special{pa -44 -866}% +\special{pa -41 -865}\special{pa -37 -865}\special{pa -34 -864}\special{pa -31 -864}% +\special{pa -27 -863}\special{pa -24 -863}\special{pa -21 -862}\special{pa -17 -862}% +\special{pa -14 -862}\special{pa -10 -862}\special{pa -7 -861}\special{pa -3 -861}% +\special{pa 0 -861}\special{pa 4 -861}\special{pa 7 -861}\special{pa 10 -862}% +\special{pa 14 -862}\special{pa 17 -862}\special{pa 21 -862}\special{pa 24 -863}% +\special{pa 27 -863}\special{pa 31 -864}\special{pa 34 -864}\special{pa 37 -865}% +\special{pa 41 -865}\special{pa 44 -866}\special{pa 47 -867}\special{pa 50 -867}% +\special{pa 53 -868}\special{pa 56 -869}\special{pa 59 -870}\special{pa 62 -871}% +\special{pa 65 -872}\special{pa 68 -873}\special{pa 70 -874}\special{pa 73 -875}% +\special{pa 75 -876}\special{pa 78 -878}\special{pa 80 -879}\special{pa 83 -880}% +\special{pa 85 -881}\special{pa 87 -883}\special{pa 89 -884}\special{pa 91 -886}% +\special{pa 93 -887}\special{pa 95 -888}\special{pa 97 -890}\special{pa 98 -891}% +\special{pa 100 -893}\special{pa 101 -895}\special{pa 103 -896}\special{pa 104 -898}% +\special{pa 105 -899}\special{pa 106 -901}\special{pa 107 -903}\special{pa 108 -904}% +\special{pa 108 -906}\special{pa 109 -908}\special{pa 109 -910}\special{pa 110 -911}% +\special{pa 110 -913}\special{pa 110 -915}\special{pa 110 -917}\special{pa 110 -918}% +\special{pa 110 -920}\special{pa 110 -922}\special{pa 109 -923}\special{pa 109 -925}% +\special{pa 108 -927}\special{pa 108 -929}\special{pa 107 -930}\special{pa 106 -932}% +\special{pa 105 -934}\special{pa 104 -935}\special{pa 102 -937}\special{pa 101 -938}% +\special{pa 100 -940}\special{pa 98 -942}\special{pa 97 -943}\special{pa 95 -945}% +\special{pa 93 -946}\special{pa 91 -947}\special{pa 89 -949}\special{pa 87 -950}% +\special{pa 85 -952}\special{pa 83 -953}\special{pa 80 -954}\special{pa 78 -955}% +\special{pa 75 -957}\special{pa 73 -958}\special{pa 70 -959}\special{pa 68 -960}% +\special{pa 65 -961}\special{pa 62 -962}\special{pa 59 -963}\special{pa 56 -964}% +\special{pa 53 -965}\special{pa 50 -966}\special{pa 47 -966}\special{pa 44 -967}% +\special{pa 41 -968}\special{pa 37 -968}\special{pa 34 -969}\special{pa 31 -969}% +\special{pa 27 -970}\special{pa 24 -970}\special{pa 21 -971}\special{pa 17 -971}% +\special{pa 14 -971}\special{pa 10 -971}\special{pa 7 -971}\special{pa 3 -972}% +\special{pa -0 -972}\special{pa -4 -972}\special{pa -7 -971}\special{pa -10 -971}% +\special{pa -14 -971}\special{pa -17 -971}\special{pa -21 -971}\special{pa -24 -970}% +\special{pa -27 -970}\special{pa -31 -969}\special{pa -34 -969}\special{pa -37 -968}% +\special{pa -41 -968}\special{pa -44 -967}\special{pa -47 -966}\special{pa -50 -966}% +\special{pa -53 -965}\special{pa -56 -964}\special{pa -59 -963}\special{pa -62 -962}% +\special{pa -65 -961}\special{pa -68 -960}\special{pa -70 -959}\special{pa -73 -958}% +\special{pa -75 -957}\special{pa -78 -955}\special{pa -80 -954}\special{pa -83 -953}% +\special{pa -85 -952}\special{pa -87 -950}\special{pa -89 -949}\special{pa -91 -947}% +\special{pa -93 -946}\special{pa -95 -945}\special{pa -97 -943}\special{pa -98 -941}% +\special{pa -100 -940}\special{pa -101 -938}\special{pa -103 -937}\special{pa -104 -935}% +\special{pa -105 -934}\special{pa -106 -932}\special{pa -107 -930}\special{pa -108 -928}% +\special{pa -108 -927}\special{pa -109 -925}\special{pa -109 -923}\special{pa -110 -922}% +\special{pa -110 -920}\special{pa -110 -918}\special{pa -110 -916}\special{pa -110 -915}% +\special{pa -110 -913}\special{pa -110 -911}\special{pa -109 -910}\special{pa -109 -908}% +\special{pa -108 -906}\special{pa -108 -904}\special{pa -107 -903}\special{pa -106 -901}% +\special{pa -105 -899}\special{pa -104 -898}\special{pa -102 -896}\special{pa -101 -895}% +\special{pa -100 -893}\special{pa -98 -891}\special{pa -97 -890}\special{pa -95 -888}% +\special{pa -93 -887}\special{pa -91 -885}\special{pa -89 -884}\special{pa -87 -883}% +\special{pa -85 -881}\special{pa -83 -880}\special{pa -80 -879}\special{pa -78 -877}% +\special{pa -75 -876}% +\special{fp}% +\special{pa -94 -845}\special{pa -91 -843}\special{pa -88 -842}\special{pa -84 -841}% +\special{pa -81 -839}\special{pa -77 -838}\special{pa -74 -837}\special{pa -70 -836}% +\special{pa -66 -835}\special{pa -63 -834}\special{pa -59 -833}\special{pa -55 -832}% +\special{pa -51 -831}\special{pa -47 -830}\special{pa -43 -829}\special{pa -38 -829}% +\special{pa -34 -828}\special{pa -30 -828}\special{pa -26 -827}\special{pa -22 -827}% +\special{pa -17 -827}\special{pa -13 -826}\special{pa -9 -826}\special{pa -4 -826}% +\special{pa 0 -826}\special{pa 4 -826}\special{pa 9 -826}\special{pa 13 -826}% +\special{pa 17 -827}\special{pa 22 -827}\special{pa 26 -827}\special{pa 30 -828}% +\special{pa 34 -828}\special{pa 38 -829}\special{pa 43 -829}\special{pa 47 -830}% +\special{pa 51 -831}\special{pa 55 -832}\special{pa 59 -833}\special{pa 63 -834}% +\special{pa 66 -835}\special{pa 70 -836}\special{pa 74 -837}\special{pa 77 -838}% +\special{pa 81 -839}\special{pa 84 -841}\special{pa 88 -842}\special{pa 91 -843}% +\special{pa 94 -845}\special{pa 97 -846}\special{pa 100 -848}\special{pa 103 -849}% +\special{pa 106 -851}\special{pa 109 -853}\special{pa 112 -855}\special{pa 114 -856}% +\special{pa 116 -858}\special{pa 119 -860}\special{pa 121 -862}\special{pa 123 -864}% +\special{pa 125 -866}\special{pa 126 -868}\special{pa 128 -870}\special{pa 130 -872}% +\special{pa 131 -874}\special{pa 132 -876}\special{pa 133 -878}\special{pa 134 -880}% +\special{pa 135 -882}\special{pa 136 -884}\special{pa 137 -886}\special{pa 137 -889}% +\special{pa 138 -891}\special{pa 138 -893}\special{pa 138 -895}\special{pa 138 -897}% +\special{pa 138 -899}\special{pa 137 -902}\special{pa 137 -904}\special{pa 136 -906}% +\special{pa 135 -908}\special{pa 134 -910}\special{pa 133 -912}\special{pa 132 -914}% +\special{pa 131 -916}\special{pa 130 -918}\special{pa 128 -920}\special{pa 126 -922}% +\special{pa 125 -924}\special{pa 123 -926}\special{pa 121 -928}\special{pa 119 -930}% +\special{pa 116 -932}\special{pa 114 -934}\special{pa 111 -936}\special{pa 109 -937}% +\special{pa 106 -939}\special{pa 103 -941}\special{pa 100 -942}\special{pa 97 -944}% +\special{pa 94 -945}\special{pa 91 -947}\special{pa 88 -948}\special{pa 84 -949}% +\special{pa 81 -951}\special{pa 77 -952}\special{pa 74 -953}\special{pa 70 -954}% +\special{pa 66 -955}\special{pa 63 -956}\special{pa 59 -957}\special{pa 55 -958}% +\special{pa 51 -959}\special{pa 47 -960}\special{pa 43 -961}\special{pa 38 -961}% +\special{pa 34 -962}\special{pa 30 -962}\special{pa 26 -963}\special{pa 22 -963}% +\special{pa 17 -963}\special{pa 13 -964}\special{pa 9 -964}\special{pa 4 -964}% +\special{pa -0 -964}\special{pa -4 -964}\special{pa -9 -964}\special{pa -13 -964}% +\special{pa -17 -963}\special{pa -22 -963}\special{pa -26 -963}\special{pa -30 -962}% +\special{pa -34 -962}\special{pa -38 -961}\special{pa -43 -961}\special{pa -47 -960}% +\special{pa -51 -959}\special{pa -55 -958}\special{pa -59 -957}\special{pa -63 -956}% +\special{pa -66 -955}\special{pa -70 -954}\special{pa -74 -953}\special{pa -77 -952}% +\special{pa -81 -951}\special{pa -84 -949}\special{pa -88 -948}\special{pa -91 -947}% +\special{pa -94 -945}\special{pa -97 -944}\special{pa -100 -942}\special{pa -103 -941}% +\special{pa -106 -939}\special{pa -109 -937}\special{pa -112 -935}\special{pa -114 -934}% +\special{pa -116 -932}\special{pa -119 -930}\special{pa -121 -928}\special{pa -123 -926}% +\special{pa -125 -924}\special{pa -126 -922}\special{pa -128 -920}\special{pa -130 -918}% +\special{pa -131 -916}\special{pa -132 -914}\special{pa -133 -912}\special{pa -134 -910}% +\special{pa -135 -908}\special{pa -136 -906}\special{pa -137 -904}\special{pa -137 -901}% +\special{pa -138 -899}\special{pa -138 -897}\special{pa -138 -895}\special{pa -138 -893}% +\special{pa -138 -891}\special{pa -137 -888}\special{pa -137 -886}\special{pa -136 -884}% +\special{pa -135 -882}\special{pa -134 -880}\special{pa -133 -878}\special{pa -132 -876}% +\special{pa -131 -874}\special{pa -130 -872}\special{pa -128 -870}\special{pa -126 -868}% +\special{pa -125 -866}\special{pa -123 -864}\special{pa -121 -862}\special{pa -119 -860}% +\special{pa -116 -858}\special{pa -114 -856}\special{pa -111 -854}\special{pa -109 -853}% +\special{pa -106 -851}\special{pa -103 -849}\special{pa -100 -848}\special{pa -97 -846}% +\special{pa -94 -845}% +\special{fp}% +\special{pa -113 -808}\special{pa -109 -807}\special{pa -105 -805}\special{pa -101 -803}% +\special{pa -97 -802}\special{pa -93 -800}\special{pa -89 -799}\special{pa -84 -798}% +\special{pa -80 -796}\special{pa -75 -795}\special{pa -70 -794}\special{pa -66 -793}% +\special{pa -61 -792}\special{pa -56 -791}\special{pa -51 -790}\special{pa -46 -789}% +\special{pa -41 -789}\special{pa -36 -788}\special{pa -31 -788}\special{pa -26 -787}% +\special{pa -21 -787}\special{pa -16 -786}\special{pa -10 -786}\special{pa -5 -786}% +\special{pa 0 -786}\special{pa 5 -786}\special{pa 10 -786}\special{pa 16 -786}% +\special{pa 21 -787}\special{pa 26 -787}\special{pa 31 -788}\special{pa 36 -788}% +\special{pa 41 -789}\special{pa 46 -789}\special{pa 51 -790}\special{pa 56 -791}% +\special{pa 61 -792}\special{pa 66 -793}\special{pa 70 -794}\special{pa 75 -795}% +\special{pa 80 -796}\special{pa 84 -798}\special{pa 89 -799}\special{pa 93 -800}% +\special{pa 97 -802}\special{pa 101 -803}\special{pa 105 -805}\special{pa 109 -807}% +\special{pa 113 -809}\special{pa 117 -810}\special{pa 121 -812}\special{pa 124 -814}% +\special{pa 127 -816}\special{pa 131 -818}\special{pa 134 -820}\special{pa 137 -822}% +\special{pa 140 -824}\special{pa 142 -827}\special{pa 145 -829}\special{pa 147 -831}% +\special{pa 150 -834}\special{pa 152 -836}\special{pa 154 -838}\special{pa 156 -841}% +\special{pa 157 -843}\special{pa 159 -846}\special{pa 160 -848}\special{pa 161 -851}% +\special{pa 162 -853}\special{pa 163 -856}\special{pa 164 -858}\special{pa 165 -861}% +\special{pa 165 -864}\special{pa 165 -866}\special{pa 165 -869}\special{pa 165 -871}% +\special{pa 165 -874}\special{pa 165 -877}\special{pa 164 -879}\special{pa 163 -882}% +\special{pa 162 -884}\special{pa 161 -887}\special{pa 160 -889}\special{pa 159 -892}% +\special{pa 157 -894}\special{pa 156 -897}\special{pa 154 -899}\special{pa 152 -902}% +\special{pa 150 -904}\special{pa 147 -906}\special{pa 145 -909}\special{pa 142 -911}% +\special{pa 140 -913}\special{pa 137 -915}\special{pa 134 -917}\special{pa 131 -919}% +\special{pa 127 -921}\special{pa 124 -923}\special{pa 120 -925}\special{pa 117 -927}% +\special{pa 113 -929}\special{pa 109 -931}\special{pa 105 -932}\special{pa 101 -934}% +\special{pa 97 -936}\special{pa 93 -937}\special{pa 89 -939}\special{pa 84 -940}% +\special{pa 80 -941}\special{pa 75 -942}\special{pa 70 -944}\special{pa 66 -945}% +\special{pa 61 -946}\special{pa 56 -947}\special{pa 51 -947}\special{pa 46 -948}% +\special{pa 41 -949}\special{pa 36 -949}\special{pa 31 -950}\special{pa 26 -950}% +\special{pa 21 -951}\special{pa 16 -951}\special{pa 10 -951}\special{pa 5 -951}% +\special{pa -0 -951}\special{pa -5 -951}\special{pa -10 -951}\special{pa -16 -951}% +\special{pa -21 -951}\special{pa -26 -950}\special{pa -31 -950}\special{pa -36 -949}% +\special{pa -41 -949}\special{pa -46 -948}\special{pa -51 -947}\special{pa -56 -947}% +\special{pa -61 -946}\special{pa -66 -945}\special{pa -70 -944}\special{pa -75 -942}% +\special{pa -80 -941}\special{pa -84 -940}\special{pa -89 -939}\special{pa -93 -937}% +\special{pa -97 -936}\special{pa -101 -934}\special{pa -105 -932}\special{pa -109 -931}% +\special{pa -113 -929}\special{pa -117 -927}\special{pa -121 -925}\special{pa -124 -923}% +\special{pa -127 -921}\special{pa -131 -919}\special{pa -134 -917}\special{pa -137 -915}% +\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -909}\special{pa -147 -906}% +\special{pa -150 -904}\special{pa -152 -902}\special{pa -154 -899}\special{pa -156 -897}% +\special{pa -157 -894}\special{pa -159 -892}\special{pa -160 -889}\special{pa -161 -887}% +\special{pa -162 -884}\special{pa -163 -882}\special{pa -164 -879}\special{pa -165 -877}% +\special{pa -165 -874}\special{pa -165 -871}\special{pa -165 -869}\special{pa -165 -866}% +\special{pa -165 -864}\special{pa -165 -861}\special{pa -164 -858}\special{pa -163 -856}% +\special{pa -162 -853}\special{pa -161 -851}\special{pa -160 -848}\special{pa -159 -846}% +\special{pa -157 -843}\special{pa -156 -841}\special{pa -154 -838}\special{pa -152 -836}% +\special{pa -150 -834}\special{pa -147 -831}\special{pa -145 -829}\special{pa -142 -827}% +\special{pa -140 -824}\special{pa -137 -822}\special{pa -134 -820}\special{pa -131 -818}% +\special{pa -127 -816}\special{pa -124 -814}\special{pa -120 -812}\special{pa -117 -810}% +\special{pa -113 -808}% +\special{fp}% +\special{pa -132 -767}\special{pa -128 -765}\special{pa -123 -763}\special{pa -118 -761}% +\special{pa -113 -760}\special{pa -108 -758}\special{pa -103 -756}\special{pa -98 -755}% +\special{pa -93 -753}\special{pa -88 -752}\special{pa -82 -750}\special{pa -77 -749}% +\special{pa -71 -748}\special{pa -65 -747}\special{pa -60 -746}\special{pa -54 -745}% +\special{pa -48 -744}\special{pa -42 -744}\special{pa -36 -743}\special{pa -30 -742}% +\special{pa -24 -742}\special{pa -18 -742}\special{pa -12 -741}\special{pa -6 -741}% +\special{pa 0 -741}\special{pa 6 -741}\special{pa 12 -741}\special{pa 18 -742}% +\special{pa 24 -742}\special{pa 30 -742}\special{pa 36 -743}\special{pa 42 -744}% +\special{pa 48 -744}\special{pa 54 -745}\special{pa 60 -746}\special{pa 65 -747}% +\special{pa 71 -748}\special{pa 77 -749}\special{pa 82 -750}\special{pa 88 -752}% +\special{pa 93 -753}\special{pa 98 -755}\special{pa 103 -756}\special{pa 108 -758}% +\special{pa 113 -760}\special{pa 118 -762}\special{pa 123 -763}\special{pa 128 -765}% +\special{pa 132 -767}\special{pa 136 -770}\special{pa 141 -772}\special{pa 145 -774}% +\special{pa 149 -776}\special{pa 152 -779}\special{pa 156 -781}\special{pa 160 -784}% +\special{pa 163 -786}\special{pa 166 -789}\special{pa 169 -791}\special{pa 172 -794}% +\special{pa 175 -797}\special{pa 177 -799}\special{pa 179 -802}\special{pa 182 -805}% +\special{pa 183 -808}\special{pa 185 -811}\special{pa 187 -814}\special{pa 188 -817}% +\special{pa 190 -820}\special{pa 191 -823}\special{pa 191 -826}\special{pa 192 -829}% +\special{pa 193 -832}\special{pa 193 -835}\special{pa 193 -838}\special{pa 193 -841}% +\special{pa 193 -844}\special{pa 192 -847}\special{pa 191 -850}\special{pa 191 -853}% +\special{pa 189 -856}\special{pa 188 -859}\special{pa 187 -862}\special{pa 185 -865}% +\special{pa 183 -868}\special{pa 181 -870}\special{pa 179 -873}\special{pa 177 -876}% +\special{pa 175 -879}\special{pa 172 -882}\special{pa 169 -884}\special{pa 166 -887}% +\special{pa 163 -889}\special{pa 160 -892}\special{pa 156 -894}\special{pa 152 -897}% +\special{pa 149 -899}\special{pa 145 -902}\special{pa 141 -904}\special{pa 136 -906}% +\special{pa 132 -908}\special{pa 128 -910}\special{pa 123 -912}\special{pa 118 -914}% +\special{pa 113 -916}\special{pa 108 -918}\special{pa 103 -919}\special{pa 98 -921}% +\special{pa 93 -922}\special{pa 88 -924}\special{pa 82 -925}\special{pa 77 -926}% +\special{pa 71 -927}\special{pa 65 -928}\special{pa 60 -929}\special{pa 54 -930}% +\special{pa 48 -931}\special{pa 42 -932}\special{pa 36 -932}\special{pa 30 -933}% +\special{pa 24 -933}\special{pa 18 -934}\special{pa 12 -934}\special{pa 6 -934}% +\special{pa -0 -934}\special{pa -6 -934}\special{pa -12 -934}\special{pa -18 -934}% +\special{pa -24 -933}\special{pa -30 -933}\special{pa -36 -932}\special{pa -42 -932}% +\special{pa -48 -931}\special{pa -54 -930}\special{pa -60 -929}\special{pa -65 -928}% +\special{pa -71 -927}\special{pa -77 -926}\special{pa -82 -925}\special{pa -88 -924}% +\special{pa -93 -922}\special{pa -98 -921}\special{pa -103 -919}\special{pa -108 -917}% +\special{pa -113 -916}\special{pa -118 -914}\special{pa -123 -912}\special{pa -128 -910}% +\special{pa -132 -908}\special{pa -136 -906}\special{pa -141 -904}\special{pa -145 -901}% +\special{pa -149 -899}\special{pa -152 -897}\special{pa -156 -894}\special{pa -160 -892}% +\special{pa -163 -889}\special{pa -166 -887}\special{pa -169 -884}\special{pa -172 -881}% +\special{pa -175 -879}\special{pa -177 -876}\special{pa -179 -873}\special{pa -182 -870}% +\special{pa -183 -867}\special{pa -185 -865}\special{pa -187 -862}\special{pa -188 -859}% +\special{pa -190 -856}\special{pa -191 -853}\special{pa -191 -850}\special{pa -192 -847}% +\special{pa -193 -844}\special{pa -193 -841}\special{pa -193 -838}\special{pa -193 -835}% +\special{pa -193 -832}\special{pa -192 -829}\special{pa -191 -826}\special{pa -191 -823}% +\special{pa -189 -820}\special{pa -188 -817}\special{pa -187 -814}\special{pa -185 -811}% +\special{pa -183 -808}\special{pa -181 -805}\special{pa -179 -802}\special{pa -177 -799}% +\special{pa -175 -797}\special{pa -172 -794}\special{pa -169 -791}\special{pa -166 -789}% +\special{pa -163 -786}\special{pa -160 -783}\special{pa -156 -781}\special{pa -152 -779}% +\special{pa -149 -776}\special{pa -145 -774}\special{pa -141 -772}\special{pa -136 -769}% +\special{pa -132 -767}% +\special{fp}% +\special{pa -151 -722}\special{pa -146 -719}\special{pa -140 -717}\special{pa -135 -715}% +\special{pa -130 -713}\special{pa -124 -711}\special{pa -118 -709}\special{pa -112 -707}% +\special{pa -106 -705}\special{pa -100 -704}\special{pa -94 -702}\special{pa -87 -701}% +\special{pa -81 -699}\special{pa -75 -698}\special{pa -68 -697}\special{pa -61 -696}% +\special{pa -55 -695}\special{pa -48 -694}\special{pa -41 -694}\special{pa -34 -693}% +\special{pa -28 -693}\special{pa -21 -692}\special{pa -14 -692}\special{pa -7 -692}% +\special{pa 0 -692}\special{pa 7 -692}\special{pa 14 -692}\special{pa 21 -692}% +\special{pa 28 -693}\special{pa 35 -693}\special{pa 41 -694}\special{pa 48 -694}% +\special{pa 55 -695}\special{pa 62 -696}\special{pa 68 -697}\special{pa 75 -698}% +\special{pa 81 -699}\special{pa 88 -701}\special{pa 94 -702}\special{pa 100 -704}% +\special{pa 106 -705}\special{pa 112 -707}\special{pa 118 -709}\special{pa 124 -711}% +\special{pa 130 -713}\special{pa 135 -715}\special{pa 141 -717}\special{pa 146 -719}% +\special{pa 151 -722}\special{pa 156 -724}\special{pa 161 -726}\special{pa 165 -729}% +\special{pa 170 -732}\special{pa 174 -734}\special{pa 178 -737}\special{pa 182 -740}% +\special{pa 186 -743}\special{pa 190 -746}\special{pa 193 -749}\special{pa 196 -752}% +\special{pa 200 -755}\special{pa 202 -758}\special{pa 205 -761}\special{pa 207 -765}% +\special{pa 210 -768}\special{pa 212 -771}\special{pa 214 -775}\special{pa 215 -778}% +\special{pa 217 -781}\special{pa 218 -785}\special{pa 219 -788}\special{pa 220 -792}% +\special{pa 220 -795}\special{pa 220 -799}\special{pa 220 -802}\special{pa 220 -805}% +\special{pa 220 -809}\special{pa 219 -812}\special{pa 219 -816}\special{pa 218 -819}% +\special{pa 217 -823}\special{pa 215 -826}\special{pa 214 -829}\special{pa 212 -833}% +\special{pa 210 -836}\special{pa 207 -839}\special{pa 205 -843}\special{pa 202 -846}% +\special{pa 199 -849}\special{pa 196 -852}\special{pa 193 -855}\special{pa 190 -858}% +\special{pa 186 -861}\special{pa 182 -864}\special{pa 178 -867}\special{pa 174 -870}% +\special{pa 170 -872}\special{pa 165 -875}\special{pa 161 -877}\special{pa 156 -880}% +\special{pa 151 -882}\special{pa 146 -885}\special{pa 140 -887}\special{pa 135 -889}% +\special{pa 130 -891}\special{pa 124 -893}\special{pa 118 -895}\special{pa 112 -897}% +\special{pa 106 -899}\special{pa 100 -900}\special{pa 94 -902}\special{pa 87 -903}% +\special{pa 81 -904}\special{pa 75 -906}\special{pa 68 -907}\special{pa 61 -908}% +\special{pa 55 -909}\special{pa 48 -910}\special{pa 41 -910}\special{pa 34 -911}% +\special{pa 28 -911}\special{pa 21 -912}\special{pa 14 -912}\special{pa 7 -912}% +\special{pa -0 -912}\special{pa -7 -912}\special{pa -14 -912}\special{pa -21 -912}% +\special{pa -28 -911}\special{pa -35 -911}\special{pa -41 -910}\special{pa -48 -909}% +\special{pa -55 -909}\special{pa -62 -908}\special{pa -68 -907}\special{pa -75 -906}% +\special{pa -81 -904}\special{pa -88 -903}\special{pa -94 -902}\special{pa -100 -900}% +\special{pa -106 -899}\special{pa -112 -897}\special{pa -118 -895}\special{pa -124 -893}% +\special{pa -130 -891}\special{pa -135 -889}\special{pa -141 -887}\special{pa -146 -885}% +\special{pa -151 -882}\special{pa -156 -880}\special{pa -161 -877}\special{pa -165 -875}% +\special{pa -170 -872}\special{pa -174 -869}\special{pa -178 -867}\special{pa -182 -864}% +\special{pa -186 -861}\special{pa -190 -858}\special{pa -193 -855}\special{pa -196 -852}% +\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}% +\special{pa -210 -836}\special{pa -212 -833}\special{pa -214 -829}\special{pa -215 -826}% +\special{pa -217 -823}\special{pa -218 -819}\special{pa -219 -816}\special{pa -220 -812}% +\special{pa -220 -809}\special{pa -220 -805}\special{pa -220 -802}\special{pa -220 -798}% +\special{pa -220 -795}\special{pa -219 -792}\special{pa -219 -788}\special{pa -218 -785}% +\special{pa -217 -781}\special{pa -215 -778}\special{pa -214 -774}\special{pa -212 -771}% +\special{pa -210 -768}\special{pa -207 -765}\special{pa -205 -761}\special{pa -202 -758}% +\special{pa -199 -755}\special{pa -196 -752}\special{pa -193 -749}\special{pa -190 -746}% +\special{pa -186 -743}\special{pa -182 -740}\special{pa -178 -737}\special{pa -174 -734}% +\special{pa -170 -732}\special{pa -165 -729}\special{pa -161 -726}\special{pa -156 -724}% +\special{pa -151 -722}% +\special{fp}% +\special{pa -170 -671}\special{pa -164 -668}\special{pa -158 -666}\special{pa -152 -663}% +\special{pa -146 -661}\special{pa -139 -659}\special{pa -133 -657}\special{pa -126 -655}% +\special{pa -119 -653}\special{pa -113 -651}\special{pa -106 -649}\special{pa -98 -648}% +\special{pa -91 -646}\special{pa -84 -645}\special{pa -77 -643}\special{pa -69 -642}% +\special{pa -62 -641}\special{pa -54 -640}\special{pa -46 -640}\special{pa -39 -639}% +\special{pa -31 -638}\special{pa -23 -638}\special{pa -15 -638}\special{pa -8 -637}% +\special{pa 0 -637}\special{pa 8 -637}\special{pa 16 -638}\special{pa 23 -638}% +\special{pa 31 -638}\special{pa 39 -639}\special{pa 47 -640}\special{pa 54 -640}% +\special{pa 62 -641}\special{pa 69 -642}\special{pa 77 -643}\special{pa 84 -645}% +\special{pa 91 -646}\special{pa 99 -648}\special{pa 106 -649}\special{pa 113 -651}% +\special{pa 120 -653}\special{pa 126 -655}\special{pa 133 -657}\special{pa 139 -659}% +\special{pa 146 -661}\special{pa 152 -663}\special{pa 158 -666}\special{pa 164 -668}% +\special{pa 170 -671}\special{pa 175 -674}\special{pa 181 -676}\special{pa 186 -679}% +\special{pa 191 -682}\special{pa 196 -685}\special{pa 201 -688}\special{pa 205 -692}% +\special{pa 209 -695}\special{pa 214 -698}\special{pa 217 -702}\special{pa 221 -705}% +\special{pa 224 -709}\special{pa 228 -712}\special{pa 231 -716}\special{pa 233 -719}% +\special{pa 236 -723}\special{pa 238 -727}\special{pa 240 -731}\special{pa 242 -734}% +\special{pa 244 -738}\special{pa 245 -742}\special{pa 246 -746}\special{pa 247 -750}% +\special{pa 248 -754}\special{pa 248 -758}\special{pa 248 -761}\special{pa 248 -765}% +\special{pa 248 -769}\special{pa 247 -773}\special{pa 246 -777}\special{pa 245 -781}% +\special{pa 244 -785}\special{pa 242 -788}\special{pa 240 -792}\special{pa 238 -796}% +\special{pa 236 -800}\special{pa 233 -803}\special{pa 231 -807}\special{pa 228 -811}% +\special{pa 224 -814}\special{pa 221 -818}\special{pa 217 -821}\special{pa 213 -825}% +\special{pa 209 -828}\special{pa 205 -831}\special{pa 201 -834}\special{pa 196 -837}% +\special{pa 191 -840}\special{pa 186 -843}\special{pa 181 -846}\special{pa 175 -849}% +\special{pa 170 -852}\special{pa 164 -854}\special{pa 158 -857}\special{pa 152 -859}% +\special{pa 146 -862}\special{pa 139 -864}\special{pa 133 -866}\special{pa 126 -868}% +\special{pa 119 -870}\special{pa 113 -872}\special{pa 106 -874}\special{pa 98 -875}% +\special{pa 91 -877}\special{pa 84 -878}\special{pa 77 -879}\special{pa 69 -880}% +\special{pa 62 -881}\special{pa 54 -882}\special{pa 46 -883}\special{pa 39 -884}% +\special{pa 31 -884}\special{pa 23 -885}\special{pa 15 -885}\special{pa 8 -885}% +\special{pa -0 -885}\special{pa -8 -885}\special{pa -16 -885}\special{pa -23 -885}% +\special{pa -31 -884}\special{pa -39 -884}\special{pa -47 -883}\special{pa -54 -882}% +\special{pa -62 -881}\special{pa -69 -880}\special{pa -77 -879}\special{pa -84 -878}% +\special{pa -91 -877}\special{pa -99 -875}\special{pa -106 -874}\special{pa -113 -872}% +\special{pa -120 -870}\special{pa -126 -868}\special{pa -133 -866}\special{pa -139 -864}% +\special{pa -146 -862}\special{pa -152 -859}\special{pa -158 -857}\special{pa -164 -854}% +\special{pa -170 -852}\special{pa -175 -849}\special{pa -181 -846}\special{pa -186 -843}% +\special{pa -191 -840}\special{pa -196 -837}\special{pa -201 -834}\special{pa -205 -831}% +\special{pa -209 -828}\special{pa -214 -824}\special{pa -217 -821}\special{pa -221 -818}% +\special{pa -224 -814}\special{pa -228 -811}\special{pa -231 -807}\special{pa -233 -803}% +\special{pa -236 -800}\special{pa -238 -796}\special{pa -240 -792}\special{pa -242 -788}% +\special{pa -244 -785}\special{pa -245 -781}\special{pa -246 -777}\special{pa -247 -773}% +\special{pa -248 -769}\special{pa -248 -765}\special{pa -248 -761}\special{pa -248 -757}% +\special{pa -248 -754}\special{pa -247 -750}\special{pa -246 -746}\special{pa -245 -742}% +\special{pa -244 -738}\special{pa -242 -734}\special{pa -240 -730}\special{pa -238 -727}% +\special{pa -236 -723}\special{pa -233 -719}\special{pa -231 -716}\special{pa -228 -712}% +\special{pa -224 -709}\special{pa -221 -705}\special{pa -217 -702}\special{pa -213 -698}% +\special{pa -209 -695}\special{pa -205 -692}\special{pa -201 -688}\special{pa -196 -685}% +\special{pa -191 -682}\special{pa -186 -679}\special{pa -181 -676}\special{pa -175 -674}% +\special{pa -170 -671}% +\special{fp}% +\special{pa -189 -616}\special{pa -182 -613}\special{pa -176 -610}\special{pa -169 -607}% +\special{pa -162 -604}\special{pa -155 -602}\special{pa -148 -600}\special{pa -140 -597}% +\special{pa -133 -595}\special{pa -125 -593}\special{pa -117 -591}\special{pa -109 -590}% +\special{pa -101 -588}\special{pa -93 -586}\special{pa -85 -585}\special{pa -77 -584}% +\special{pa -68 -583}\special{pa -60 -582}\special{pa -52 -581}\special{pa -43 -580}% +\special{pa -34 -579}\special{pa -26 -579}\special{pa -17 -578}\special{pa -9 -578}% +\special{pa 0 -578}\special{pa 9 -578}\special{pa 17 -578}\special{pa 26 -579}% +\special{pa 35 -579}\special{pa 43 -580}\special{pa 52 -581}\special{pa 60 -582}% +\special{pa 69 -583}\special{pa 77 -584}\special{pa 85 -585}\special{pa 93 -586}% +\special{pa 102 -588}\special{pa 110 -590}\special{pa 117 -591}\special{pa 125 -593}% +\special{pa 133 -595}\special{pa 140 -597}\special{pa 148 -600}\special{pa 155 -602}% +\special{pa 162 -605}\special{pa 169 -607}\special{pa 176 -610}\special{pa 182 -613}% +\special{pa 189 -616}\special{pa 195 -619}\special{pa 201 -622}\special{pa 207 -625}% +\special{pa 212 -628}\special{pa 218 -632}\special{pa 223 -635}\special{pa 228 -639}% +\special{pa 233 -642}\special{pa 237 -646}\special{pa 242 -650}\special{pa 246 -653}% +\special{pa 249 -657}\special{pa 253 -661}\special{pa 256 -665}\special{pa 259 -669}% +\special{pa 262 -673}\special{pa 265 -678}\special{pa 267 -682}\special{pa 269 -686}% +\special{pa 271 -690}\special{pa 272 -694}\special{pa 273 -699}\special{pa 274 -703}% +\special{pa 275 -707}\special{pa 275 -712}\special{pa 276 -716}\special{pa 275 -720}% +\special{pa 275 -725}\special{pa 274 -729}\special{pa 273 -733}\special{pa 272 -738}% +\special{pa 271 -742}\special{pa 269 -746}\special{pa 267 -750}\special{pa 265 -754}% +\special{pa 262 -759}\special{pa 259 -763}\special{pa 256 -767}\special{pa 253 -771}% +\special{pa 249 -775}\special{pa 246 -779}\special{pa 241 -782}\special{pa 237 -786}% +\special{pa 233 -790}\special{pa 228 -793}\special{pa 223 -797}\special{pa 218 -801}% +\special{pa 212 -804}\special{pa 207 -807}\special{pa 201 -810}\special{pa 195 -813}% +\special{pa 189 -816}\special{pa 182 -819}\special{pa 176 -822}\special{pa 169 -825}% +\special{pa 162 -828}\special{pa 155 -830}\special{pa 148 -832}\special{pa 140 -835}% +\special{pa 133 -837}\special{pa 125 -839}\special{pa 117 -841}\special{pa 109 -842}% +\special{pa 101 -844}\special{pa 93 -846}\special{pa 85 -847}\special{pa 77 -848}% +\special{pa 68 -849}\special{pa 60 -850}\special{pa 52 -851}\special{pa 43 -852}% +\special{pa 34 -853}\special{pa 26 -853}\special{pa 17 -854}\special{pa 9 -854}% +\special{pa -0 -854}\special{pa -9 -854}\special{pa -17 -854}\special{pa -26 -853}% +\special{pa -35 -853}\special{pa -43 -852}\special{pa -52 -851}\special{pa -60 -850}% +\special{pa -69 -849}\special{pa -77 -848}\special{pa -85 -847}\special{pa -93 -846}% +\special{pa -102 -844}\special{pa -110 -842}\special{pa -117 -841}\special{pa -125 -839}% +\special{pa -133 -837}\special{pa -140 -835}\special{pa -148 -832}\special{pa -155 -830}% +\special{pa -162 -827}\special{pa -169 -825}\special{pa -176 -822}\special{pa -182 -819}% +\special{pa -189 -816}\special{pa -195 -813}\special{pa -201 -810}\special{pa -207 -807}% +\special{pa -212 -804}\special{pa -218 -800}\special{pa -223 -797}\special{pa -228 -793}% +\special{pa -233 -790}\special{pa -237 -786}\special{pa -242 -782}\special{pa -246 -779}% +\special{pa -249 -775}\special{pa -253 -771}\special{pa -256 -767}\special{pa -259 -763}% +\special{pa -262 -759}\special{pa -265 -754}\special{pa -267 -750}\special{pa -269 -746}% +\special{pa -271 -742}\special{pa -272 -738}\special{pa -273 -733}\special{pa -274 -729}% +\special{pa -275 -725}\special{pa -275 -720}\special{pa -276 -716}\special{pa -275 -712}% +\special{pa -275 -707}\special{pa -274 -703}\special{pa -273 -699}\special{pa -272 -694}% +\special{pa -271 -690}\special{pa -269 -686}\special{pa -267 -682}\special{pa -265 -678}% +\special{pa -262 -673}\special{pa -259 -669}\special{pa -256 -665}\special{pa -253 -661}% +\special{pa -249 -657}\special{pa -246 -653}\special{pa -241 -650}\special{pa -237 -646}% +\special{pa -233 -642}\special{pa -228 -639}\special{pa -223 -635}\special{pa -218 -632}% +\special{pa -212 -628}\special{pa -207 -625}\special{pa -201 -622}\special{pa -195 -619}% +\special{pa -189 -616}% +\special{fp}% +\special{pa -207 -555}\special{pa -200 -552}\special{pa -193 -549}\special{pa -186 -546}% +\special{pa -178 -543}\special{pa -170 -540}\special{pa -162 -538}\special{pa -154 -535}% +\special{pa -146 -533}\special{pa -138 -531}\special{pa -129 -529}\special{pa -120 -527}% +\special{pa -111 -525}\special{pa -103 -523}\special{pa -94 -522}\special{pa -84 -520}% +\special{pa -75 -519}\special{pa -66 -518}\special{pa -57 -517}\special{pa -47 -516}% +\special{pa -38 -515}\special{pa -28 -515}\special{pa -19 -515}\special{pa -9 -514}% +\special{pa 0 -514}\special{pa 10 -514}\special{pa 19 -515}\special{pa 29 -515}% +\special{pa 38 -516}\special{pa 48 -516}\special{pa 57 -517}\special{pa 66 -518}% +\special{pa 75 -519}\special{pa 85 -520}\special{pa 94 -522}\special{pa 103 -523}% +\special{pa 112 -525}\special{pa 120 -527}\special{pa 129 -529}\special{pa 138 -531}% +\special{pa 146 -533}\special{pa 154 -535}\special{pa 163 -538}\special{pa 170 -541}% +\special{pa 178 -543}\special{pa 186 -546}\special{pa 193 -549}\special{pa 201 -552}% +\special{pa 208 -555}\special{pa 214 -559}\special{pa 221 -562}\special{pa 227 -566}% +\special{pa 234 -569}\special{pa 240 -573}\special{pa 245 -577}\special{pa 251 -581}% +\special{pa 256 -585}\special{pa 261 -589}\special{pa 266 -593}\special{pa 270 -597}% +\special{pa 274 -601}\special{pa 278 -606}\special{pa 282 -610}\special{pa 285 -615}% +\special{pa 288 -619}\special{pa 291 -624}\special{pa 294 -628}\special{pa 296 -633}% +\special{pa 298 -638}\special{pa 299 -642}\special{pa 301 -647}\special{pa 302 -652}% +\special{pa 303 -656}\special{pa 303 -661}\special{pa 303 -666}\special{pa 303 -671}% +\special{pa 303 -675}\special{pa 302 -680}\special{pa 301 -685}\special{pa 299 -690}% +\special{pa 298 -694}\special{pa 296 -699}\special{pa 294 -704}\special{pa 291 -708}% +\special{pa 288 -713}\special{pa 285 -717}\special{pa 282 -722}\special{pa 278 -726}% +\special{pa 274 -730}\special{pa 270 -735}\special{pa 266 -739}\special{pa 261 -743}% +\special{pa 256 -747}\special{pa 251 -751}\special{pa 245 -755}\special{pa 239 -759}% +\special{pa 234 -763}\special{pa 227 -766}\special{pa 221 -770}\special{pa 214 -773}% +\special{pa 207 -776}\special{pa 200 -780}\special{pa 193 -783}\special{pa 186 -786}% +\special{pa 178 -789}\special{pa 170 -791}\special{pa 162 -794}\special{pa 154 -796}% +\special{pa 146 -799}\special{pa 138 -801}\special{pa 129 -803}\special{pa 120 -805}% +\special{pa 111 -807}\special{pa 103 -809}\special{pa 94 -810}\special{pa 84 -811}% +\special{pa 75 -813}\special{pa 66 -814}\special{pa 57 -815}\special{pa 47 -816}% +\special{pa 38 -816}\special{pa 28 -817}\special{pa 19 -817}\special{pa 9 -817}% +\special{pa -0 -817}\special{pa -10 -817}\special{pa -19 -817}\special{pa -29 -817}% +\special{pa -38 -816}\special{pa -48 -816}\special{pa -57 -815}\special{pa -66 -814}% +\special{pa -75 -813}\special{pa -85 -811}\special{pa -94 -810}\special{pa -103 -808}% +\special{pa -112 -807}\special{pa -120 -805}\special{pa -129 -803}\special{pa -138 -801}% +\special{pa -146 -799}\special{pa -154 -796}\special{pa -163 -794}\special{pa -170 -791}% +\special{pa -178 -788}\special{pa -186 -786}\special{pa -193 -783}\special{pa -201 -780}% +\special{pa -208 -776}\special{pa -214 -773}\special{pa -221 -770}\special{pa -227 -766}% +\special{pa -234 -762}\special{pa -240 -759}\special{pa -245 -755}\special{pa -251 -751}% +\special{pa -256 -747}\special{pa -261 -743}\special{pa -266 -739}\special{pa -270 -735}% +\special{pa -274 -730}\special{pa -278 -726}\special{pa -282 -722}\special{pa -285 -717}% +\special{pa -288 -713}\special{pa -291 -708}\special{pa -294 -704}\special{pa -296 -699}% +\special{pa -298 -694}\special{pa -299 -690}\special{pa -301 -685}\special{pa -302 -680}% +\special{pa -303 -675}\special{pa -303 -671}\special{pa -303 -666}\special{pa -303 -661}% +\special{pa -303 -656}\special{pa -302 -652}\special{pa -301 -647}\special{pa -299 -642}% +\special{pa -298 -637}\special{pa -296 -633}\special{pa -294 -628}\special{pa -291 -624}% +\special{pa -288 -619}\special{pa -285 -614}\special{pa -282 -610}\special{pa -278 -606}% +\special{pa -274 -601}\special{pa -270 -597}\special{pa -266 -593}\special{pa -261 -589}% +\special{pa -256 -585}\special{pa -251 -581}\special{pa -245 -577}\special{pa -239 -573}% +\special{pa -234 -569}\special{pa -227 -566}\special{pa -221 -562}\special{pa -214 -559}% +\special{pa -207 -555}% +\special{fp}% +\special{pa -226 -490}\special{pa -219 -487}\special{pa -211 -484}\special{pa -203 -480}% +\special{pa -194 -477}\special{pa -186 -474}\special{pa -177 -471}\special{pa -168 -469}% +\special{pa -159 -466}\special{pa -150 -464}\special{pa -141 -461}\special{pa -131 -459}% +\special{pa -122 -457}\special{pa -112 -455}\special{pa -102 -454}\special{pa -92 -452}% +\special{pa -82 -451}\special{pa -72 -450}\special{pa -62 -449}\special{pa -52 -448}% +\special{pa -41 -447}\special{pa -31 -446}\special{pa -21 -446}\special{pa -10 -446}% +\special{pa 0 -446}\special{pa 11 -446}\special{pa 21 -446}\special{pa 31 -446}% +\special{pa 42 -447}\special{pa 52 -448}\special{pa 62 -449}\special{pa 72 -450}% +\special{pa 82 -451}\special{pa 92 -452}\special{pa 102 -454}\special{pa 112 -455}% +\special{pa 122 -457}\special{pa 131 -459}\special{pa 141 -461}\special{pa 150 -464}% +\special{pa 159 -466}\special{pa 168 -469}\special{pa 177 -471}\special{pa 186 -474}% +\special{pa 194 -477}\special{pa 203 -480}\special{pa 211 -484}\special{pa 219 -487}% +\special{pa 226 -490}\special{pa 234 -494}\special{pa 241 -498}\special{pa 248 -502}% +\special{pa 255 -506}\special{pa 261 -510}\special{pa 268 -514}\special{pa 274 -518}% +\special{pa 279 -522}\special{pa 285 -527}\special{pa 290 -531}\special{pa 295 -536}% +\special{pa 299 -541}\special{pa 304 -545}\special{pa 308 -550}\special{pa 311 -555}% +\special{pa 315 -560}\special{pa 318 -565}\special{pa 320 -570}\special{pa 323 -575}% +\special{pa 325 -580}\special{pa 327 -585}\special{pa 328 -590}\special{pa 329 -595}% +\special{pa 330 -601}\special{pa 331 -606}\special{pa 331 -611}\special{pa 331 -616}% +\special{pa 330 -621}\special{pa 329 -627}\special{pa 328 -632}\special{pa 327 -637}% +\special{pa 325 -642}\special{pa 323 -647}\special{pa 320 -652}\special{pa 318 -657}% +\special{pa 314 -662}\special{pa 311 -667}\special{pa 307 -672}\special{pa 303 -677}% +\special{pa 299 -681}\special{pa 295 -686}\special{pa 290 -691}\special{pa 285 -695}% +\special{pa 279 -700}\special{pa 273 -704}\special{pa 267 -708}\special{pa 261 -712}% +\special{pa 255 -716}\special{pa 248 -720}\special{pa 241 -724}\special{pa 234 -728}% +\special{pa 226 -732}\special{pa 219 -735}\special{pa 211 -738}\special{pa 203 -742}% +\special{pa 194 -745}\special{pa 186 -748}\special{pa 177 -751}\special{pa 168 -753}% +\special{pa 159 -756}\special{pa 150 -758}\special{pa 141 -761}\special{pa 131 -763}% +\special{pa 122 -765}\special{pa 112 -767}\special{pa 102 -768}\special{pa 92 -770}% +\special{pa 82 -771}\special{pa 72 -772}\special{pa 62 -773}\special{pa 52 -774}% +\special{pa 41 -775}\special{pa 31 -776}\special{pa 21 -776}\special{pa 10 -776}% +\special{pa -0 -776}\special{pa -11 -776}\special{pa -21 -776}\special{pa -31 -776}% +\special{pa -42 -775}\special{pa -52 -774}\special{pa -62 -773}\special{pa -72 -772}% +\special{pa -82 -771}\special{pa -92 -770}\special{pa -102 -768}\special{pa -112 -767}% +\special{pa -122 -765}\special{pa -131 -763}\special{pa -141 -761}\special{pa -150 -758}% +\special{pa -159 -756}\special{pa -168 -753}\special{pa -177 -751}\special{pa -186 -748}% +\special{pa -194 -745}\special{pa -203 -742}\special{pa -211 -738}\special{pa -219 -735}% +\special{pa -226 -731}\special{pa -234 -728}\special{pa -241 -724}\special{pa -248 -720}% +\special{pa -255 -716}\special{pa -261 -712}\special{pa -268 -708}\special{pa -274 -704}% +\special{pa -279 -700}\special{pa -285 -695}\special{pa -290 -691}\special{pa -295 -686}% +\special{pa -299 -681}\special{pa -304 -677}\special{pa -308 -672}\special{pa -311 -667}% +\special{pa -315 -662}\special{pa -318 -657}\special{pa -320 -652}\special{pa -323 -647}% +\special{pa -325 -642}\special{pa -327 -637}\special{pa -328 -632}\special{pa -329 -626}% +\special{pa -330 -621}\special{pa -331 -616}\special{pa -331 -611}\special{pa -331 -606}% +\special{pa -330 -601}\special{pa -329 -595}\special{pa -328 -590}\special{pa -327 -585}% +\special{pa -325 -580}\special{pa -323 -575}\special{pa -320 -570}\special{pa -318 -565}% +\special{pa -314 -560}\special{pa -311 -555}\special{pa -307 -550}\special{pa -303 -545}% +\special{pa -299 -541}\special{pa -295 -536}\special{pa -290 -531}\special{pa -285 -527}% +\special{pa -279 -522}\special{pa -273 -518}\special{pa -267 -514}\special{pa -261 -510}% +\special{pa -255 -506}\special{pa -248 -502}\special{pa -241 -498}\special{pa -234 -494}% +\special{pa -226 -490}% +\special{fp}% +\special{pa -245 -421}\special{pa -237 -417}\special{pa -228 -413}\special{pa -219 -410}% +\special{pa -210 -406}\special{pa -201 -403}\special{pa -192 -400}\special{pa -182 -397}% +\special{pa -172 -394}\special{pa -163 -392}\special{pa -152 -389}\special{pa -142 -387}% +\special{pa -132 -385}\special{pa -121 -383}\special{pa -111 -381}\special{pa -100 -379}% +\special{pa -89 -378}\special{pa -78 -376}\special{pa -67 -375}\special{pa -56 -374}% +\special{pa -45 -374}\special{pa -34 -373}\special{pa -22 -373}\special{pa -11 -372}% +\special{pa 0 -372}\special{pa 11 -372}\special{pa 23 -373}\special{pa 34 -373}% +\special{pa 45 -374}\special{pa 56 -374}\special{pa 67 -375}\special{pa 78 -377}% +\special{pa 89 -378}\special{pa 100 -379}\special{pa 111 -381}\special{pa 121 -383}% +\special{pa 132 -385}\special{pa 142 -387}\special{pa 153 -389}\special{pa 163 -392}% +\special{pa 173 -394}\special{pa 182 -397}\special{pa 192 -400}\special{pa 201 -403}% +\special{pa 211 -406}\special{pa 220 -410}\special{pa 228 -413}\special{pa 237 -417}% +\special{pa 245 -421}\special{pa 253 -425}\special{pa 261 -429}\special{pa 269 -433}% +\special{pa 276 -437}\special{pa 283 -442}\special{pa 290 -446}\special{pa 296 -451}% +\special{pa 303 -455}\special{pa 308 -460}\special{pa 314 -465}\special{pa 319 -470}% +\special{pa 324 -475}\special{pa 329 -480}\special{pa 333 -485}\special{pa 337 -491}% +\special{pa 341 -496}\special{pa 344 -501}\special{pa 347 -507}\special{pa 350 -512}% +\special{pa 352 -518}\special{pa 354 -523}\special{pa 355 -529}\special{pa 357 -535}% +\special{pa 358 -540}\special{pa 358 -546}\special{pa 358 -551}\special{pa 358 -557}% +\special{pa 358 -563}\special{pa 357 -568}\special{pa 355 -574}\special{pa 354 -579}% +\special{pa 352 -585}\special{pa 350 -590}\special{pa 347 -596}\special{pa 344 -601}% +\special{pa 341 -607}\special{pa 337 -612}\special{pa 333 -617}\special{pa 329 -623}% +\special{pa 324 -628}\special{pa 319 -633}\special{pa 314 -638}\special{pa 308 -643}% +\special{pa 302 -647}\special{pa 296 -652}\special{pa 290 -657}\special{pa 283 -661}% +\special{pa 276 -666}\special{pa 269 -670}\special{pa 261 -674}\special{pa 253 -678}% +\special{pa 245 -682}\special{pa 237 -686}\special{pa 228 -689}\special{pa 219 -693}% +\special{pa 210 -696}\special{pa 201 -700}\special{pa 192 -703}\special{pa 182 -706}% +\special{pa 172 -708}\special{pa 163 -711}\special{pa 152 -713}\special{pa 142 -716}% +\special{pa 132 -718}\special{pa 121 -720}\special{pa 111 -722}\special{pa 100 -723}% +\special{pa 89 -725}\special{pa 78 -726}\special{pa 67 -727}\special{pa 56 -728}% +\special{pa 45 -729}\special{pa 34 -730}\special{pa 22 -730}\special{pa 11 -730}% +\special{pa -0 -730}\special{pa -11 -730}\special{pa -23 -730}\special{pa -34 -730}% +\special{pa -45 -729}\special{pa -56 -728}\special{pa -67 -727}\special{pa -78 -726}% +\special{pa -89 -725}\special{pa -100 -723}\special{pa -111 -722}\special{pa -121 -720}% +\special{pa -132 -718}\special{pa -142 -716}\special{pa -153 -713}\special{pa -163 -711}% +\special{pa -173 -708}\special{pa -182 -705}\special{pa -192 -703}\special{pa -201 -699}% +\special{pa -211 -696}\special{pa -220 -693}\special{pa -228 -689}\special{pa -237 -686}% +\special{pa -245 -682}\special{pa -253 -678}\special{pa -261 -674}\special{pa -269 -670}% +\special{pa -276 -665}\special{pa -283 -661}\special{pa -290 -657}\special{pa -296 -652}% +\special{pa -303 -647}\special{pa -308 -642}\special{pa -314 -638}\special{pa -319 -633}% +\special{pa -324 -628}\special{pa -329 -622}\special{pa -333 -617}\special{pa -337 -612}% +\special{pa -341 -607}\special{pa -344 -601}\special{pa -347 -596}\special{pa -350 -590}% +\special{pa -352 -585}\special{pa -354 -579}\special{pa -355 -574}\special{pa -357 -568}% +\special{pa -358 -563}\special{pa -358 -557}\special{pa -358 -551}\special{pa -358 -546}% +\special{pa -358 -540}\special{pa -357 -534}\special{pa -355 -529}\special{pa -354 -523}% +\special{pa -352 -518}\special{pa -350 -512}\special{pa -347 -507}\special{pa -344 -501}% +\special{pa -341 -496}\special{pa -337 -491}\special{pa -333 -485}\special{pa -329 -480}% +\special{pa -324 -475}\special{pa -319 -470}\special{pa -314 -465}\special{pa -308 -460}% +\special{pa -302 -455}\special{pa -296 -451}\special{pa -290 -446}\special{pa -283 -441}% +\special{pa -276 -437}\special{pa -269 -433}\special{pa -261 -429}\special{pa -253 -425}% +\special{pa -245 -421}% +\special{fp}% +\special{pa -264 -346}\special{pa -255 -342}\special{pa -246 -338}\special{pa -236 -334}% +\special{pa -227 -331}\special{pa -217 -327}\special{pa -207 -324}\special{pa -196 -321}% +\special{pa -186 -318}\special{pa -175 -315}\special{pa -164 -312}\special{pa -153 -310}% +\special{pa -142 -307}\special{pa -131 -305}\special{pa -119 -303}\special{pa -108 -302}% +\special{pa -96 -300}\special{pa -84 -299}\special{pa -72 -297}\special{pa -60 -296}% +\special{pa -48 -295}\special{pa -36 -295}\special{pa -24 -294}\special{pa -12 -294}% +\special{pa 0 -294}\special{pa 12 -294}\special{pa 24 -294}\special{pa 36 -295}% +\special{pa 48 -296}\special{pa 60 -296}\special{pa 72 -297}\special{pa 84 -299}% +\special{pa 96 -300}\special{pa 108 -302}\special{pa 119 -303}\special{pa 131 -305}% +\special{pa 142 -308}\special{pa 153 -310}\special{pa 164 -312}\special{pa 175 -315}% +\special{pa 186 -318}\special{pa 197 -321}\special{pa 207 -324}\special{pa 217 -327}% +\special{pa 227 -331}\special{pa 237 -334}\special{pa 246 -338}\special{pa 255 -342}% +\special{pa 264 -346}\special{pa 273 -351}\special{pa 281 -355}\special{pa 290 -359}% +\special{pa 297 -364}\special{pa 305 -369}\special{pa 312 -374}\special{pa 319 -379}% +\special{pa 326 -384}\special{pa 332 -389}\special{pa 338 -394}\special{pa 344 -399}% +\special{pa 349 -405}\special{pa 354 -410}\special{pa 359 -416}\special{pa 363 -422}% +\special{pa 367 -427}\special{pa 371 -433}\special{pa 374 -439}\special{pa 377 -445}% +\special{pa 379 -451}\special{pa 381 -457}\special{pa 383 -463}\special{pa 384 -469}% +\special{pa 385 -475}\special{pa 386 -481}\special{pa 386 -487}\special{pa 386 -493}% +\special{pa 385 -499}\special{pa 384 -505}\special{pa 383 -511}\special{pa 381 -517}% +\special{pa 379 -523}\special{pa 377 -529}\special{pa 374 -535}\special{pa 370 -541}% +\special{pa 367 -547}\special{pa 363 -552}\special{pa 359 -558}\special{pa 354 -564}% +\special{pa 349 -569}\special{pa 344 -575}\special{pa 338 -580}\special{pa 332 -585}% +\special{pa 326 -590}\special{pa 319 -595}\special{pa 312 -600}\special{pa 305 -605}% +\special{pa 297 -610}\special{pa 289 -615}\special{pa 281 -619}\special{pa 273 -623}% +\special{pa 264 -628}\special{pa 255 -632}\special{pa 246 -636}\special{pa 236 -639}% +\special{pa 227 -643}\special{pa 217 -646}\special{pa 207 -650}\special{pa 196 -653}% +\special{pa 186 -656}\special{pa 175 -659}\special{pa 164 -661}\special{pa 153 -664}% +\special{pa 142 -666}\special{pa 131 -668}\special{pa 119 -670}\special{pa 108 -672}% +\special{pa 96 -674}\special{pa 84 -675}\special{pa 72 -676}\special{pa 60 -677}% +\special{pa 48 -678}\special{pa 36 -679}\special{pa 24 -679}\special{pa 12 -680}% +\special{pa -0 -680}\special{pa -12 -680}\special{pa -24 -679}\special{pa -36 -679}% +\special{pa -48 -678}\special{pa -60 -677}\special{pa -72 -676}\special{pa -84 -675}% +\special{pa -96 -674}\special{pa -108 -672}\special{pa -119 -670}\special{pa -131 -668}% +\special{pa -142 -666}\special{pa -153 -664}\special{pa -164 -661}\special{pa -175 -659}% +\special{pa -186 -656}\special{pa -197 -653}\special{pa -207 -650}\special{pa -217 -646}% +\special{pa -227 -643}\special{pa -237 -639}\special{pa -246 -635}\special{pa -255 -632}% +\special{pa -264 -627}\special{pa -273 -623}\special{pa -281 -619}\special{pa -290 -614}% +\special{pa -297 -610}\special{pa -305 -605}\special{pa -312 -600}\special{pa -319 -595}% +\special{pa -326 -590}\special{pa -332 -585}\special{pa -338 -580}\special{pa -344 -574}% +\special{pa -349 -569}\special{pa -354 -563}\special{pa -359 -558}\special{pa -363 -552}% +\special{pa -367 -546}\special{pa -371 -541}\special{pa -374 -535}\special{pa -377 -529}% +\special{pa -379 -523}\special{pa -381 -517}\special{pa -383 -511}\special{pa -384 -505}% +\special{pa -385 -499}\special{pa -386 -493}\special{pa -386 -487}\special{pa -386 -481}% +\special{pa -385 -475}\special{pa -384 -469}\special{pa -383 -463}\special{pa -381 -457}% +\special{pa -379 -451}\special{pa -377 -445}\special{pa -374 -439}\special{pa -370 -433}% +\special{pa -367 -427}\special{pa -363 -421}\special{pa -359 -416}\special{pa -354 -410}% +\special{pa -349 -405}\special{pa -344 -399}\special{pa -338 -394}\special{pa -332 -389}% +\special{pa -326 -383}\special{pa -319 -378}\special{pa -312 -373}\special{pa -305 -369}% +\special{pa -297 -364}\special{pa -289 -359}\special{pa -281 -355}\special{pa -273 -350}% +\special{pa -264 -346}% +\special{fp}% +\special{pa -283 -267}\special{pa -273 -263}\special{pa -263 -258}\special{pa -253 -254}% +\special{pa -243 -250}\special{pa -232 -247}\special{pa -221 -243}\special{pa -210 -240}% +\special{pa -199 -237}\special{pa -188 -233}\special{pa -176 -231}\special{pa -164 -228}% +\special{pa -152 -225}\special{pa -140 -223}\special{pa -128 -221}\special{pa -115 -219}% +\special{pa -103 -217}\special{pa -90 -216}\special{pa -77 -215}\special{pa -65 -214}% +\special{pa -52 -213}\special{pa -39 -212}\special{pa -26 -211}\special{pa -13 -211}% +\special{pa 0 -211}\special{pa 13 -211}\special{pa 26 -211}\special{pa 39 -212}% +\special{pa 52 -213}\special{pa 65 -214}\special{pa 78 -215}\special{pa 90 -216}% +\special{pa 103 -217}\special{pa 115 -219}\special{pa 128 -221}\special{pa 140 -223}% +\special{pa 152 -226}\special{pa 164 -228}\special{pa 176 -231}\special{pa 188 -234}% +\special{pa 199 -237}\special{pa 211 -240}\special{pa 222 -243}\special{pa 232 -247}% +\special{pa 243 -250}\special{pa 253 -254}\special{pa 264 -258}\special{pa 273 -263}% +\special{pa 283 -267}\special{pa 292 -272}\special{pa 301 -276}\special{pa 310 -281}% +\special{pa 319 -286}\special{pa 327 -291}\special{pa 335 -296}\special{pa 342 -302}% +\special{pa 349 -307}\special{pa 356 -313}\special{pa 362 -318}\special{pa 368 -324}% +\special{pa 374 -330}\special{pa 379 -336}\special{pa 384 -342}\special{pa 389 -348}% +\special{pa 393 -354}\special{pa 397 -360}\special{pa 400 -366}\special{pa 403 -373}% +\special{pa 406 -379}\special{pa 408 -385}\special{pa 410 -392}\special{pa 412 -398}% +\special{pa 413 -405}\special{pa 413 -411}\special{pa 413 -418}\special{pa 413 -424}% +\special{pa 413 -431}\special{pa 412 -437}\special{pa 410 -444}\special{pa 408 -450}% +\special{pa 406 -456}\special{pa 403 -463}\special{pa 400 -469}\special{pa 397 -475}% +\special{pa 393 -482}\special{pa 389 -488}\special{pa 384 -494}\special{pa 379 -500}% +\special{pa 374 -506}\special{pa 368 -512}\special{pa 362 -517}\special{pa 356 -523}% +\special{pa 349 -528}\special{pa 342 -534}\special{pa 334 -539}\special{pa 327 -544}% +\special{pa 318 -549}\special{pa 310 -554}\special{pa 301 -559}\special{pa 292 -564}% +\special{pa 283 -568}\special{pa 273 -573}\special{pa 263 -577}\special{pa 253 -581}% +\special{pa 243 -585}\special{pa 232 -589}\special{pa 221 -592}\special{pa 210 -596}% +\special{pa 199 -599}\special{pa 188 -602}\special{pa 176 -605}\special{pa 164 -607}% +\special{pa 152 -610}\special{pa 140 -612}\special{pa 128 -614}\special{pa 115 -616}% +\special{pa 103 -618}\special{pa 90 -619}\special{pa 77 -621}\special{pa 65 -622}% +\special{pa 52 -623}\special{pa 39 -623}\special{pa 26 -624}\special{pa 13 -624}% +\special{pa -0 -624}\special{pa -13 -624}\special{pa -26 -624}\special{pa -39 -623}% +\special{pa -52 -623}\special{pa -65 -622}\special{pa -78 -621}\special{pa -90 -619}% +\special{pa -103 -618}\special{pa -115 -616}\special{pa -128 -614}\special{pa -140 -612}% +\special{pa -152 -610}\special{pa -164 -607}\special{pa -176 -605}\special{pa -188 -602}% +\special{pa -199 -599}\special{pa -211 -596}\special{pa -222 -592}\special{pa -232 -589}% +\special{pa -243 -585}\special{pa -253 -581}\special{pa -264 -577}\special{pa -273 -573}% +\special{pa -283 -568}\special{pa -292 -564}\special{pa -301 -559}\special{pa -310 -554}% +\special{pa -319 -549}\special{pa -327 -544}\special{pa -335 -539}\special{pa -342 -534}% +\special{pa -349 -528}\special{pa -356 -523}\special{pa -362 -517}\special{pa -368 -511}% +\special{pa -374 -506}\special{pa -379 -500}\special{pa -384 -494}\special{pa -389 -488}% +\special{pa -393 -481}\special{pa -397 -475}\special{pa -400 -469}\special{pa -403 -463}% +\special{pa -406 -456}\special{pa -408 -450}\special{pa -410 -444}\special{pa -412 -437}% +\special{pa -413 -431}\special{pa -413 -424}\special{pa -413 -418}\special{pa -413 -411}% +\special{pa -413 -405}\special{pa -412 -398}\special{pa -410 -392}\special{pa -408 -385}% +\special{pa -406 -379}\special{pa -403 -373}\special{pa -400 -366}\special{pa -397 -360}% +\special{pa -393 -354}\special{pa -389 -348}\special{pa -384 -342}\special{pa -379 -336}% +\special{pa -374 -330}\special{pa -368 -324}\special{pa -362 -318}\special{pa -356 -312}% +\special{pa -349 -307}\special{pa -342 -301}\special{pa -334 -296}\special{pa -327 -291}% +\special{pa -318 -286}\special{pa -310 -281}\special{pa -301 -276}\special{pa -292 -271}% +\special{pa -283 -267}% +\special{fp}% +\special{pa -302 -183}\special{pa -291 -178}\special{pa -281 -174}\special{pa -270 -169}% +\special{pa -259 -165}\special{pa -248 -161}\special{pa -236 -157}\special{pa -224 -154}% +\special{pa -212 -150}\special{pa -200 -147}\special{pa -188 -144}\special{pa -175 -141}% +\special{pa -162 -139}\special{pa -149 -136}\special{pa -136 -134}\special{pa -123 -132}% +\special{pa -110 -130}\special{pa -96 -129}\special{pa -82 -127}\special{pa -69 -126}% +\special{pa -55 -125}\special{pa -41 -124}\special{pa -28 -124}\special{pa -14 -123}% +\special{pa 0 -123}\special{pa 14 -123}\special{pa 28 -124}\special{pa 42 -124}% +\special{pa 55 -125}\special{pa 69 -126}\special{pa 83 -127}\special{pa 96 -129}% +\special{pa 110 -130}\special{pa 123 -132}\special{pa 136 -134}\special{pa 150 -136}% +\special{pa 162 -139}\special{pa 175 -141}\special{pa 188 -144}\special{pa 200 -147}% +\special{pa 213 -151}\special{pa 225 -154}\special{pa 236 -158}\special{pa 248 -161}% +\special{pa 259 -165}\special{pa 270 -170}\special{pa 281 -174}\special{pa 292 -178}% +\special{pa 302 -183}\special{pa 312 -188}\special{pa 322 -193}\special{pa 331 -198}% +\special{pa 340 -203}\special{pa 349 -209}\special{pa 357 -214}\special{pa 365 -220}% +\special{pa 372 -226}\special{pa 380 -232}\special{pa 386 -238}\special{pa 393 -244}% +\special{pa 399 -250}\special{pa 405 -256}\special{pa 410 -263}\special{pa 415 -269}% +\special{pa 419 -276}\special{pa 423 -282}\special{pa 427 -289}\special{pa 430 -296}% +\special{pa 433 -302}\special{pa 436 -309}\special{pa 437 -316}\special{pa 439 -323}% +\special{pa 440 -330}\special{pa 441 -337}\special{pa 441 -344}\special{pa 441 -351}% +\special{pa 440 -358}\special{pa 439 -365}\special{pa 437 -371}\special{pa 435 -378}% +\special{pa 433 -385}\special{pa 430 -392}\special{pa 427 -399}\special{pa 423 -405}% +\special{pa 419 -412}\special{pa 415 -418}\special{pa 410 -425}\special{pa 405 -431}% +\special{pa 399 -438}\special{pa 393 -444}\special{pa 386 -450}\special{pa 379 -456}% +\special{pa 372 -462}\special{pa 365 -468}\special{pa 357 -473}\special{pa 348 -479}% +\special{pa 340 -484}\special{pa 331 -490}\special{pa 321 -495}\special{pa 312 -500}% +\special{pa 302 -504}\special{pa 291 -509}\special{pa 281 -514}\special{pa 270 -518}% +\special{pa 259 -522}\special{pa 248 -526}\special{pa 236 -530}\special{pa 224 -533}% +\special{pa 212 -537}\special{pa 200 -540}\special{pa 188 -543}\special{pa 175 -546}% +\special{pa 162 -549}\special{pa 149 -551}\special{pa 136 -553}\special{pa 123 -555}% +\special{pa 110 -557}\special{pa 96 -559}\special{pa 82 -560}\special{pa 69 -561}% +\special{pa 55 -562}\special{pa 41 -563}\special{pa 28 -564}\special{pa 14 -564}% +\special{pa -0 -564}\special{pa -14 -564}\special{pa -28 -564}\special{pa -42 -563}% +\special{pa -55 -562}\special{pa -69 -561}\special{pa -83 -560}\special{pa -96 -559}% +\special{pa -110 -557}\special{pa -123 -555}\special{pa -136 -553}\special{pa -150 -551}% +\special{pa -162 -549}\special{pa -175 -546}\special{pa -188 -543}\special{pa -200 -540}% +\special{pa -213 -537}\special{pa -225 -533}\special{pa -236 -530}\special{pa -248 -526}% +\special{pa -259 -522}\special{pa -270 -518}\special{pa -281 -514}\special{pa -292 -509}% +\special{pa -302 -504}\special{pa -312 -500}\special{pa -322 -495}\special{pa -331 -489}% +\special{pa -340 -484}\special{pa -349 -479}\special{pa -357 -473}\special{pa -365 -468}% +\special{pa -372 -462}\special{pa -380 -456}\special{pa -386 -450}\special{pa -393 -444}% +\special{pa -399 -437}\special{pa -405 -431}\special{pa -410 -425}\special{pa -415 -418}% +\special{pa -419 -412}\special{pa -423 -405}\special{pa -427 -398}\special{pa -430 -392}% +\special{pa -433 -385}\special{pa -436 -378}\special{pa -437 -371}\special{pa -439 -364}% +\special{pa -440 -357}\special{pa -441 -351}\special{pa -441 -344}\special{pa -441 -337}% +\special{pa -440 -330}\special{pa -439 -323}\special{pa -437 -316}\special{pa -435 -309}% +\special{pa -433 -302}\special{pa -430 -296}\special{pa -427 -289}\special{pa -423 -282}% +\special{pa -419 -275}\special{pa -415 -269}\special{pa -410 -262}\special{pa -405 -256}% +\special{pa -399 -250}\special{pa -393 -244}\special{pa -386 -237}\special{pa -379 -231}% +\special{pa -372 -225}\special{pa -365 -220}\special{pa -357 -214}\special{pa -348 -208}% +\special{pa -340 -203}\special{pa -331 -198}\special{pa -321 -193}\special{pa -312 -188}% +\special{pa -302 -183}% +\special{fp}% +\special{pa -321 -94}\special{pa -310 -89}\special{pa -299 -84}\special{pa -287 -80}% +\special{pa -275 -75}\special{pa -263 -71}\special{pa -251 -67}\special{pa -238 -63}% +\special{pa -226 -60}\special{pa -213 -56}\special{pa -199 -53}\special{pa -186 -50}% +\special{pa -172 -47}\special{pa -159 -44}\special{pa -145 -42}\special{pa -131 -40}% +\special{pa -116 -38}\special{pa -102 -36}\special{pa -88 -35}\special{pa -73 -34}% +\special{pa -59 -33}\special{pa -44 -32}\special{pa -29 -31}\special{pa -15 -31}% +\special{pa 0 -31}\special{pa 15 -31}\special{pa 30 -31}\special{pa 44 -32}% +\special{pa 59 -33}\special{pa 73 -34}\special{pa 88 -35}\special{pa 102 -36}% +\special{pa 117 -38}\special{pa 131 -40}\special{pa 145 -42}\special{pa 159 -45}% +\special{pa 173 -47}\special{pa 186 -50}\special{pa 200 -53}\special{pa 213 -56}% +\special{pa 226 -60}\special{pa 239 -63}\special{pa 251 -67}\special{pa 263 -71}% +\special{pa 276 -75}\special{pa 287 -80}\special{pa 299 -84}\special{pa 310 -89}% +\special{pa 321 -94}\special{pa 331 -99}\special{pa 342 -105}\special{pa 352 -110}% +\special{pa 361 -116}\special{pa 370 -121}\special{pa 379 -127}\special{pa 388 -133}% +\special{pa 396 -139}\special{pa 403 -146}\special{pa 411 -152}\special{pa 418 -159}% +\special{pa 424 -165}\special{pa 430 -172}\special{pa 436 -179}\special{pa 441 -186}% +\special{pa 446 -193}\special{pa 450 -200}\special{pa 454 -207}\special{pa 457 -214}% +\special{pa 460 -221}\special{pa 463 -228}\special{pa 465 -236}\special{pa 466 -243}% +\special{pa 468 -250}\special{pa 468 -258}\special{pa 469 -265}\special{pa 468 -272}% +\special{pa 468 -280}\special{pa 466 -287}\special{pa 465 -294}\special{pa 463 -302}% +\special{pa 460 -309}\special{pa 457 -316}\special{pa 454 -323}\special{pa 450 -330}% +\special{pa 446 -337}\special{pa 441 -344}\special{pa 436 -351}\special{pa 430 -358}% +\special{pa 424 -365}\special{pa 417 -371}\special{pa 410 -378}\special{pa 403 -384}% +\special{pa 395 -391}\special{pa 387 -397}\special{pa 379 -403}\special{pa 370 -409}% +\special{pa 361 -414}\special{pa 351 -420}\special{pa 341 -425}\special{pa 331 -431}% +\special{pa 321 -436}\special{pa 310 -441}\special{pa 299 -445}\special{pa 287 -450}% +\special{pa 275 -454}\special{pa 263 -459}\special{pa 251 -463}\special{pa 238 -467}% +\special{pa 226 -470}\special{pa 213 -474}\special{pa 199 -477}\special{pa 186 -480}% +\special{pa 172 -483}\special{pa 159 -485}\special{pa 145 -488}\special{pa 131 -490}% +\special{pa 116 -492}\special{pa 102 -494}\special{pa 88 -495}\special{pa 73 -496}% +\special{pa 59 -497}\special{pa 44 -498}\special{pa 29 -499}\special{pa 15 -499}% +\special{pa -0 -499}\special{pa -15 -499}\special{pa -30 -499}\special{pa -44 -498}% +\special{pa -59 -497}\special{pa -73 -496}\special{pa -88 -495}\special{pa -102 -494}% +\special{pa -117 -492}\special{pa -131 -490}\special{pa -145 -488}\special{pa -159 -485}% +\special{pa -173 -483}\special{pa -186 -480}\special{pa -200 -477}\special{pa -213 -474}% +\special{pa -226 -470}\special{pa -239 -467}\special{pa -251 -463}\special{pa -263 -459}% +\special{pa -276 -454}\special{pa -287 -450}\special{pa -299 -445}\special{pa -310 -441}% +\special{pa -321 -436}\special{pa -331 -431}\special{pa -342 -425}\special{pa -352 -420}% +\special{pa -361 -414}\special{pa -370 -408}\special{pa -379 -403}\special{pa -388 -397}% +\special{pa -396 -390}\special{pa -403 -384}\special{pa -411 -378}\special{pa -418 -371}% +\special{pa -424 -365}\special{pa -430 -358}\special{pa -436 -351}\special{pa -441 -344}% +\special{pa -446 -337}\special{pa -450 -330}\special{pa -454 -323}\special{pa -457 -316}% +\special{pa -460 -309}\special{pa -463 -301}\special{pa -465 -294}\special{pa -466 -287}% +\special{pa -468 -280}\special{pa -468 -272}\special{pa -469 -265}\special{pa -468 -257}% +\special{pa -468 -250}\special{pa -466 -243}\special{pa -465 -235}\special{pa -463 -228}% +\special{pa -460 -221}\special{pa -457 -214}\special{pa -454 -207}\special{pa -450 -199}% +\special{pa -446 -192}\special{pa -441 -185}\special{pa -436 -179}\special{pa -430 -172}% +\special{pa -424 -165}\special{pa -417 -158}\special{pa -410 -152}\special{pa -403 -146}% +\special{pa -395 -139}\special{pa -387 -133}\special{pa -379 -127}\special{pa -370 -121}% +\special{pa -361 -116}\special{pa -351 -110}\special{pa -341 -105}\special{pa -331 -99}% +\special{pa -321 -94}% +\special{fp}% +\special{pa -339 -1}\special{pa -328 5}\special{pa -316 10}\special{pa -304 15}% +\special{pa -291 19}\special{pa -279 24}\special{pa -266 28}\special{pa -252 32}% +\special{pa -239 36}\special{pa -225 40}\special{pa -211 43}\special{pa -197 46}% +\special{pa -182 49}\special{pa -168 52}\special{pa -153 55}\special{pa -138 57}% +\special{pa -123 59}\special{pa -108 61}\special{pa -93 62}\special{pa -77 64}% +\special{pa -62 65}\special{pa -47 66}\special{pa -31 66}\special{pa -15 67}% +\special{pa 0 67}\special{pa 16 67}\special{pa 31 66}\special{pa 47 66}% +\special{pa 62 65}\special{pa 78 64}\special{pa 93 62}\special{pa 108 61}% +\special{pa 124 59}\special{pa 139 57}\special{pa 153 54}\special{pa 168 52}% +\special{pa 183 49}\special{pa 197 46}\special{pa 211 43}\special{pa 225 40}% +\special{pa 239 36}\special{pa 253 32}\special{pa 266 28}\special{pa 279 24}% +\special{pa 292 19}\special{pa 304 15}\special{pa 316 10}\special{pa 328 5}% +\special{pa 340 -1}\special{pa 351 -6}\special{pa 362 -12}\special{pa 372 -17}% +\special{pa 382 -23}\special{pa 392 -29}\special{pa 401 -36}\special{pa 410 -42}% +\special{pa 419 -49}\special{pa 427 -55}\special{pa 435 -62}\special{pa 442 -69}% +\special{pa 449 -76}\special{pa 455 -83}\special{pa 461 -90}\special{pa 467 -97}% +\special{pa 472 -105}\special{pa 476 -112}\special{pa 481 -120}\special{pa 484 -127}% +\special{pa 487 -135}\special{pa 490 -143}\special{pa 492 -150}\special{pa 494 -158}% +\special{pa 495 -166}\special{pa 496 -174}\special{pa 496 -181}\special{pa 496 -189}% +\special{pa 495 -197}\special{pa 494 -205}\special{pa 492 -213}\special{pa 490 -220}% +\special{pa 487 -228}\special{pa 484 -236}\special{pa 480 -243}\special{pa 476 -251}% +\special{pa 472 -258}\special{pa 467 -265}\special{pa 461 -273}\special{pa 455 -280}% +\special{pa 449 -287}\special{pa 442 -294}\special{pa 435 -301}\special{pa 427 -308}% +\special{pa 419 -314}\special{pa 410 -321}\special{pa 401 -327}\special{pa 392 -333}% +\special{pa 382 -340}\special{pa 372 -345}\special{pa 361 -351}\special{pa 351 -357}% +\special{pa 339 -362}\special{pa 328 -367}\special{pa 316 -373}\special{pa 304 -377}% +\special{pa 291 -382}\special{pa 279 -387}\special{pa 266 -391}\special{pa 252 -395}% +\special{pa 239 -399}\special{pa 225 -402}\special{pa 211 -406}\special{pa 197 -409}% +\special{pa 182 -412}\special{pa 168 -415}\special{pa 153 -417}\special{pa 138 -420}% +\special{pa 123 -422}\special{pa 108 -423}\special{pa 93 -425}\special{pa 77 -426}% +\special{pa 62 -427}\special{pa 47 -428}\special{pa 31 -429}\special{pa 15 -429}% +\special{pa -0 -429}\special{pa -16 -429}\special{pa -31 -429}\special{pa -47 -428}% +\special{pa -62 -427}\special{pa -78 -426}\special{pa -93 -425}\special{pa -108 -423}% +\special{pa -124 -422}\special{pa -139 -420}\special{pa -153 -417}\special{pa -168 -415}% +\special{pa -183 -412}\special{pa -197 -409}\special{pa -211 -406}\special{pa -225 -402}% +\special{pa -239 -399}\special{pa -253 -395}\special{pa -266 -391}\special{pa -279 -386}% +\special{pa -292 -382}\special{pa -304 -377}\special{pa -316 -372}\special{pa -328 -367}% +\special{pa -340 -362}\special{pa -351 -357}\special{pa -362 -351}\special{pa -372 -345}% +\special{pa -382 -339}\special{pa -392 -333}\special{pa -401 -327}\special{pa -410 -321}% +\special{pa -419 -314}\special{pa -427 -308}\special{pa -435 -301}\special{pa -442 -294}% +\special{pa -449 -287}\special{pa -455 -280}\special{pa -461 -273}\special{pa -467 -265}% +\special{pa -472 -258}\special{pa -476 -251}\special{pa -481 -243}\special{pa -484 -235}% +\special{pa -487 -228}\special{pa -490 -220}\special{pa -492 -212}\special{pa -494 -205}% +\special{pa -495 -197}\special{pa -496 -189}\special{pa -496 -181}\special{pa -496 -174}% +\special{pa -495 -166}\special{pa -494 -158}\special{pa -492 -150}\special{pa -490 -142}% +\special{pa -487 -135}\special{pa -484 -127}\special{pa -480 -120}\special{pa -476 -112}% +\special{pa -472 -105}\special{pa -467 -97}\special{pa -461 -90}\special{pa -455 -83}% +\special{pa -449 -76}\special{pa -442 -69}\special{pa -435 -62}\special{pa -427 -55}% +\special{pa -419 -48}\special{pa -410 -42}\special{pa -401 -36}\special{pa -392 -29}% +\special{pa -382 -23}\special{pa -372 -17}\special{pa -361 -12}\special{pa -351 -6}% +\special{pa -339 -1}% +\special{fp}% +\special{pa -358 98}\special{pa -346 103}\special{pa -334 109}\special{pa -321 114}% +\special{pa -308 119}\special{pa -294 124}\special{pa -280 128}\special{pa -266 132}% +\special{pa -252 136}\special{pa -238 140}\special{pa -223 144}\special{pa -208 147}% +\special{pa -193 150}\special{pa -177 153}\special{pa -162 156}\special{pa -146 158}% +\special{pa -130 161}\special{pa -114 162}\special{pa -98 164}\special{pa -82 166}% +\special{pa -65 167}\special{pa -49 168}\special{pa -33 168}\special{pa -16 169}% +\special{pa 0 169}\special{pa 17 169}\special{pa 33 168}\special{pa 49 168}% +\special{pa 66 167}\special{pa 82 165}\special{pa 98 164}\special{pa 114 162}% +\special{pa 130 160}\special{pa 146 158}\special{pa 162 156}\special{pa 178 153}% +\special{pa 193 150}\special{pa 208 147}\special{pa 223 144}\special{pa 238 140}% +\special{pa 252 136}\special{pa 267 132}\special{pa 281 128}\special{pa 294 123}% +\special{pa 308 119}\special{pa 321 114}\special{pa 334 109}\special{pa 346 103}% +\special{pa 359 98}\special{pa 370 92}\special{pa 382 86}\special{pa 393 80}% +\special{pa 404 74}\special{pa 414 67}\special{pa 424 61}\special{pa 433 54}% +\special{pa 442 47}\special{pa 451 40}\special{pa 459 33}\special{pa 467 26}% +\special{pa 474 18}\special{pa 481 11}\special{pa 487 3}\special{pa 493 -4}% +\special{pa 498 -12}\special{pa 503 -20}\special{pa 507 -28}\special{pa 511 -36}% +\special{pa 514 -44}\special{pa 517 -52}\special{pa 520 -60}\special{pa 521 -69}% +\special{pa 523 -77}\special{pa 523 -85}\special{pa 524 -93}\special{pa 523 -101}% +\special{pa 523 -110}\special{pa 521 -118}\special{pa 519 -126}\special{pa 517 -134}% +\special{pa 514 -142}\special{pa 511 -150}\special{pa 507 -158}\special{pa 503 -166}% +\special{pa 498 -174}\special{pa 493 -182}\special{pa 487 -190}\special{pa 480 -197}% +\special{pa 474 -205}\special{pa 466 -212}\special{pa 459 -219}\special{pa 451 -226}% +\special{pa 442 -233}\special{pa 433 -240}\special{pa 424 -247}\special{pa 414 -254}% +\special{pa 403 -260}\special{pa 393 -266}\special{pa 382 -272}\special{pa 370 -278}% +\special{pa 358 -284}\special{pa 346 -290}\special{pa 334 -295}\special{pa 321 -300}% +\special{pa 308 -305}\special{pa 294 -310}\special{pa 280 -314}\special{pa 266 -318}% +\special{pa 252 -323}\special{pa 238 -326}\special{pa 223 -330}\special{pa 208 -333}% +\special{pa 193 -337}\special{pa 177 -339}\special{pa 162 -342}\special{pa 146 -345}% +\special{pa 130 -347}\special{pa 114 -349}\special{pa 98 -350}\special{pa 82 -352}% +\special{pa 65 -353}\special{pa 49 -354}\special{pa 33 -354}\special{pa 16 -355}% +\special{pa -0 -355}\special{pa -17 -355}\special{pa -33 -354}\special{pa -49 -354}% +\special{pa -66 -353}\special{pa -82 -352}\special{pa -98 -350}\special{pa -114 -349}% +\special{pa -130 -347}\special{pa -146 -344}\special{pa -162 -342}\special{pa -178 -339}% +\special{pa -193 -336}\special{pa -208 -333}\special{pa -223 -330}\special{pa -238 -326}% +\special{pa -252 -322}\special{pa -267 -318}\special{pa -281 -314}\special{pa -294 -310}% +\special{pa -308 -305}\special{pa -321 -300}\special{pa -334 -295}\special{pa -346 -289}% +\special{pa -359 -284}\special{pa -370 -278}\special{pa -382 -272}\special{pa -393 -266}% +\special{pa -404 -260}\special{pa -414 -253}\special{pa -424 -247}\special{pa -433 -240}% +\special{pa -442 -233}\special{pa -451 -226}\special{pa -459 -219}\special{pa -467 -212}% +\special{pa -474 -204}\special{pa -481 -197}\special{pa -487 -189}\special{pa -493 -182}% +\special{pa -498 -174}\special{pa -503 -166}\special{pa -507 -158}\special{pa -511 -150}% +\special{pa -514 -142}\special{pa -517 -134}\special{pa -520 -126}\special{pa -521 -118}% +\special{pa -523 -109}\special{pa -523 -101}\special{pa -524 -93}\special{pa -523 -85}% +\special{pa -523 -77}\special{pa -521 -68}\special{pa -519 -60}\special{pa -517 -52}% +\special{pa -514 -44}\special{pa -511 -36}\special{pa -507 -28}\special{pa -503 -20}% +\special{pa -498 -12}\special{pa -493 -4}\special{pa -487 3}\special{pa -480 11}% +\special{pa -474 18}\special{pa -466 26}\special{pa -459 33}\special{pa -451 40}% +\special{pa -442 47}\special{pa -433 54}\special{pa -424 61}\special{pa -414 67}% +\special{pa -403 74}\special{pa -393 80}\special{pa -382 86}\special{pa -370 92}% +\special{pa -358 98}% +\special{fp}% +\special{pa -377 201}\special{pa -364 207}\special{pa -351 212}\special{pa -338 218}% +\special{pa -324 223}\special{pa -310 228}\special{pa -295 233}\special{pa -280 237}% +\special{pa -265 242}\special{pa -250 246}\special{pa -235 249}\special{pa -219 253}% +\special{pa -203 256}\special{pa -187 259}\special{pa -170 262}\special{pa -154 265}% +\special{pa -137 267}\special{pa -120 269}\special{pa -103 271}\special{pa -86 272}% +\special{pa -69 273}\special{pa -52 274}\special{pa -34 275}\special{pa -17 275}% +\special{pa 0 276}\special{pa 18 275}\special{pa 35 275}\special{pa 52 274}% +\special{pa 69 273}\special{pa 86 272}\special{pa 103 271}\special{pa 120 269}% +\special{pa 137 267}\special{pa 154 265}\special{pa 171 262}\special{pa 187 259}% +\special{pa 203 256}\special{pa 219 253}\special{pa 235 249}\special{pa 250 246}% +\special{pa 266 241}\special{pa 281 237}\special{pa 296 233}\special{pa 310 228}% +\special{pa 324 223}\special{pa 338 218}\special{pa 351 212}\special{pa 365 207}% +\special{pa 377 201}\special{pa 390 195}\special{pa 402 189}\special{pa 414 182}% +\special{pa 425 176}\special{pa 436 169}\special{pa 446 162}\special{pa 456 155}% +\special{pa 465 148}\special{pa 475 140}\special{pa 483 133}\special{pa 491 125}% +\special{pa 499 117}\special{pa 506 109}\special{pa 513 101}\special{pa 519 93}% +\special{pa 524 85}\special{pa 529 77}\special{pa 534 68}\special{pa 538 60}% +\special{pa 541 52}\special{pa 544 43}\special{pa 547 34}\special{pa 549 26}% +\special{pa 550 17}\special{pa 551 9}\special{pa 551 -0}\special{pa 551 -9}% +\special{pa 550 -17}\special{pa 549 -26}\special{pa 547 -35}\special{pa 544 -43}% +\special{pa 541 -52}\special{pa 538 -60}\special{pa 534 -69}\special{pa 529 -77}% +\special{pa 524 -85}\special{pa 519 -93}\special{pa 512 -102}\special{pa 506 -110}% +\special{pa 499 -117}\special{pa 491 -125}\special{pa 483 -133}\special{pa 474 -140}% +\special{pa 465 -148}\special{pa 456 -155}\special{pa 446 -162}\special{pa 435 -169}% +\special{pa 425 -176}\special{pa 413 -182}\special{pa 402 -189}\special{pa 390 -195}% +\special{pa 377 -201}\special{pa 364 -207}\special{pa 351 -212}\special{pa 338 -218}% +\special{pa 324 -223}\special{pa 310 -228}\special{pa 295 -233}\special{pa 280 -237}% +\special{pa 265 -242}\special{pa 250 -246}\special{pa 235 -249}\special{pa 219 -253}% +\special{pa 203 -256}\special{pa 187 -259}\special{pa 170 -262}\special{pa 154 -265}% +\special{pa 137 -267}\special{pa 120 -269}\special{pa 103 -271}\special{pa 86 -272}% +\special{pa 69 -273}\special{pa 52 -274}\special{pa 34 -275}\special{pa 17 -275}% +\special{pa -0 -276}\special{pa -18 -275}\special{pa -35 -275}\special{pa -52 -274}% +\special{pa -69 -273}\special{pa -86 -272}\special{pa -103 -271}\special{pa -120 -269}% +\special{pa -137 -267}\special{pa -154 -265}\special{pa -171 -262}\special{pa -187 -259}% +\special{pa -203 -256}\special{pa -219 -253}\special{pa -235 -249}\special{pa -250 -246}% +\special{pa -266 -241}\special{pa -281 -237}\special{pa -296 -233}\special{pa -310 -228}% +\special{pa -324 -223}\special{pa -338 -218}\special{pa -351 -212}\special{pa -365 -207}% +\special{pa -377 -201}\special{pa -390 -195}\special{pa -402 -189}\special{pa -414 -182}% +\special{pa -425 -176}\special{pa -436 -169}\special{pa -446 -162}\special{pa -456 -155}% +\special{pa -465 -148}\special{pa -475 -140}\special{pa -483 -133}\special{pa -491 -125}% +\special{pa -499 -117}\special{pa -506 -109}\special{pa -513 -101}\special{pa -519 -93}% +\special{pa -524 -85}\special{pa -529 -77}\special{pa -534 -68}\special{pa -538 -60}% +\special{pa -541 -52}\special{pa -544 -43}\special{pa -547 -34}\special{pa -549 -26}% +\special{pa -550 -17}\special{pa -551 -9}\special{pa -551 0}\special{pa -551 9}% +\special{pa -550 17}\special{pa -549 26}\special{pa -547 35}\special{pa -544 43}% +\special{pa -541 52}\special{pa -538 60}\special{pa -534 69}\special{pa -529 77}% +\special{pa -524 85}\special{pa -519 93}\special{pa -512 102}\special{pa -506 110}% +\special{pa -499 117}\special{pa -491 125}\special{pa -483 133}\special{pa -474 140}% +\special{pa -465 148}\special{pa -456 155}\special{pa -446 162}\special{pa -435 169}% +\special{pa -425 176}\special{pa -413 182}\special{pa -402 189}\special{pa -390 195}% +\special{pa -377 201}% +\special{fp}% +\settowidth{\Width}{Wireframe Model}\setlength{\Width}{0\Width}% +\settoheight{\Height}{Wireframe Model}\settodepth{\Depth}{Wireframe Model}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-2.4285714,-1.5000000){\hspace*{\Width}\raisebox{\Height}{Wireframe Model}}% +% +\settowidth{\Width}{Surface Model}\setlength{\Width}{0\Width}% +\settoheight{\Height}{Surface Model}\settodepth{\Depth}{Surface Model}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(3.5714286,-1.5000000){\hspace*{\Width}\raisebox{\Height}{Surface Model}}% +% +\end{picture}}%
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wirepara3.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wirepara3.tex index f331e28e1a3..da67431612d 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wirepara3.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wirepara3.tex @@ -1,667 +1,649 @@ -%%% /Users/Hannya/Desktop/fig/template3D.tex +%%% /Users/hannya/Desktop/fig/wirepara3.tex %%% Generator=template3D.cdy -{\unitlength=7mm% +{\unitlength=8mm% \begin{picture}% -(7.56,6.79)(-3.81,-2.29)% +(5.24,5.22)(-2.52,-2.31)% \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.5500000,-1.1800000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +\put(-2.7300000,-0.7600000){\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.0600000,-2.1400000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +\put(2.4000000,-1.5300000){\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.0000000,3.7700000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +\put(0.0000000,2.9600000){\hspace*{\Width}\raisebox{\Height}{$z$}}% % -\special{pa -316 452}\special{pa -311 455}% -\special{fp}% -\special{pa -311 455}\special{pa -305 459}\special{pa -304 460}% -\special{fp}% -\special{pa -304 460}\special{pa -262 485}\special{pa -213 508}\special{pa -169 525}% -\special{pa -146 532}\special{pa -129 536}\special{pa -92 543}\special{pa -57 548}% -\special{pa -23 551}\special{pa 10 551}\special{pa 44 549}\special{pa 78 546}% -\special{pa 114 539}\special{pa 146 532}\special{pa 153 529}\special{pa 195 515}% -\special{pa 211 509}\special{pa 242 495}\special{pa 262 485}\special{pa 294 466}% -\special{pa 305 459}\special{pa 344 431}\special{pa 351 425}\special{pa 378 401}% -\special{pa 409 370}\special{pa 414 364}\special{pa 436 337}\special{pa 460 303}% -\special{pa 475 279}\special{pa 482 268}\special{pa 500 232}\special{pa 516 195}% -\special{pa 526 165}\special{pa 528 157}\special{pa 538 118}\special{pa 546 79}% -\special{pa 550 40}\special{pa 550 28}\special{pa 551 -0}\special{pa 550 -40}% -\special{pa 546 -79}\special{pa 539 -113}\special{pa 538 -118}\special{pa 528 -157}% -\special{pa 516 -195}\special{pa 500 -232}\special{pa 497 -238}\special{pa 482 -268}% -\special{pa 460 -303}\special{pa 439 -334}\special{pa 436 -337}\special{pa 408 -370}% -\special{pa 378 -401}\special{pa 376 -403}\special{pa 344 -431}\special{pa 316 -452}% -\special{pa 305 -459}\special{pa 262 -485}\special{pa 213 -508}\special{pa 169 -525}% -\special{pa 146 -532}\special{pa 129 -536}\special{pa 92 -543}\special{pa 57 -548}% -\special{pa 23 -551}\special{pa -10 -551}\special{pa -44 -549}\special{pa -78 -546}% -\special{pa -114 -539}\special{pa -146 -532}\special{pa -153 -529}\special{pa -195 -515}% -\special{pa -211 -509}\special{pa -242 -495}\special{pa -262 -485}\special{pa -294 -466}% -\special{pa -305 -459}\special{pa -344 -431}\special{pa -351 -425}\special{pa -378 -401}% -\special{pa -409 -370}\special{pa -414 -364}\special{pa -436 -337}\special{pa -460 -303}% -\special{pa -475 -279}\special{pa -482 -268}\special{pa -500 -232}\special{pa -516 -195}% -\special{pa -526 -165}\special{pa -528 -157}\special{pa -538 -118}\special{pa -546 -79}% -\special{pa -550 -40}\special{pa -550 -28}\special{pa -551 0}\special{pa -550 40}% -\special{pa -546 79}\special{pa -539 113}\special{pa -538 118}\special{pa -528 157}% -\special{pa -516 195}\special{pa -500 232}\special{pa -497 238}\special{pa -482 268}% -\special{pa -460 303}\special{pa -439 334}\special{pa -436 337}\special{pa -408 370}% -\special{pa -378 401}\special{pa -376 403}\special{pa -344 431}% -\special{fp}% -\special{pa -344 431}\special{pa -344 431}\special{pa -317 451}% -\special{fp}% -\special{pa 0 -483}\special{pa -28 -472}\special{pa -57 -460}\special{pa -85 -446}% -\special{pa -113 -430}\special{pa -140 -412}\special{pa -167 -393}\special{pa -193 -372}% -\special{pa -219 -350}\special{pa -243 -327}\special{pa -267 -302}\special{pa -289 -276}% -\special{pa -311 -249}\special{pa -331 -220}\special{pa -350 -191}\special{pa -367 -162}% -\special{pa -383 -131}\special{pa -398 -100}\special{pa -411 -69}\special{pa -422 -37}% -\special{pa -432 -6}\special{pa -440 26}\special{pa -446 58}\special{pa -450 89}% -\special{pa -453 120}\special{pa -454 151}\special{pa -453 181}\special{pa -450 210}% -\special{pa -446 239}\special{pa -440 266}\special{pa -432 293}\special{pa -422 318}% -\special{pa -411 342}\special{pa -398 365}\special{pa -383 386}\special{pa -367 406}% -\special{pa -350 424}\special{pa -343 430}% -\special{fp}% -\special{pa -343 430}\special{pa -331 441}\special{pa -317 451}% -\special{fp}% -\special{pa -317 451}\special{pa -311 455}% -\special{fp}% -\special{pa -311 455}\special{pa -302 460}% -\special{fp}% -\special{pa -109 -433}\special{pa -98 -426}\special{pa -87 -421}\special{pa -73 -416}% -\special{pa -59 -412}\special{pa -44 -409}\special{pa -28 -406}\special{pa -12 -405}% -\special{pa 5 -405}\special{pa 21 -406}\special{pa 38 -408}\special{pa 53 -410}% -\special{pa 68 -414}\special{pa 82 -419}\special{pa 94 -424}\special{pa 105 -430}% -\special{pa 114 -437}\special{pa 121 -444}\special{pa 127 -451}\special{pa 130 -459}% -\special{pa 132 -467}\special{pa 131 -475}\special{pa 129 -483}\special{pa 124 -491}% -\special{pa 117 -498}\special{pa 109 -505}\special{pa 98 -511}\special{pa 87 -517}% -\special{pa 73 -522}\special{pa 59 -526}\special{pa 44 -529}\special{pa 28 -531}% -\special{pa 12 -532}\special{pa -5 -532}\special{pa -21 -532}\special{pa -38 -530}% -\special{pa -53 -527}\special{pa -68 -523}\special{pa -82 -519}\special{pa -94 -513}% -\special{pa -105 -507}\special{pa -114 -501}\special{pa -121 -494}\special{pa -127 -486}% -\special{pa -130 -478}\special{pa -132 -470}\special{pa -131 -462}\special{pa -129 -454}% -\special{pa -124 -447}\special{pa -117 -439}\special{pa -109 -433}\special{pa -98 -426}% -\special{pa -87 -421}\special{pa -73 -416}\special{pa -59 -412}\special{pa -44 -409}% -\special{pa -28 -406}\special{pa -12 -405}\special{pa 5 -405}\special{pa 21 -406}% -\special{pa 38 -408}\special{pa 53 -410}\special{pa 68 -414}\special{pa 82 -419}% -\special{pa 94 -424}\special{pa 105 -430}\special{pa 114 -437}\special{pa 121 -444}% -\special{pa 127 -451}\special{pa 130 -459}\special{pa 132 -467}\special{pa 131 -475}% -\special{pa 129 -483}\special{pa 124 -491}\special{pa 117 -498}\special{pa 109 -505}% -\special{pa 98 -511}\special{pa 87 -517}\special{pa 73 -522}\special{pa 59 -526}% -\special{pa 44 -529}\special{pa 28 -531}\special{pa 12 -532}\special{pa -5 -532}% -\special{pa -21 -532}\special{pa -38 -530}\special{pa -53 -527}\special{pa -68 -523}% -\special{pa -82 -519}\special{pa -94 -513}\special{pa -105 -507}\special{pa -114 -501}% -\special{pa -121 -494}\special{pa -127 -486}\special{pa -130 -478}\special{pa -132 -470}% -\special{pa -131 -462}\special{pa -129 -454}\special{pa -124 -447}\special{pa -117 -439}% -\special{pa -109 -433}% -\special{fp}% -\special{pa -211 -357}\special{pa -191 -345}\special{pa -168 -334}\special{pa -143 -325}% -\special{pa -115 -317}\special{pa -85 -311}\special{pa -54 -307}\special{pa -22 -304}% -\special{pa 10 -304}\special{pa 42 -305}\special{pa 73 -309}\special{pa 103 -314}% -\special{pa 132 -321}\special{pa 158 -330}\special{pa 182 -341}\special{pa 203 -352}% -\special{pa 221 -365}\special{pa 236 -379}\special{pa 246 -394}\special{pa 253 -409}% -\special{pa 256 -424}\special{pa 255 -440}\special{pa 250 -455}\special{pa 240 -470}% -\special{pa 227 -484}\special{pa 211 -498}\special{pa 191 -510}\special{pa 168 -521}% -\special{pa 145 -529}\special{pa 143 -530}\special{pa 130 -534}\special{pa 115 -538}% -\special{pa 93 -542}\special{pa 85 -544}\special{pa 57 -548}\special{pa 54 -548}% -\special{pa 24 -550}\special{pa 22 -551}\special{pa -10 -551}\special{pa -11 -551}% -\special{pa -42 -549}\special{pa -45 -549}\special{pa -73 -546}\special{pa -79 -545}% -\special{pa -103 -541}\special{pa -115 -538}\special{pa -132 -533}\special{pa -145 -529}% -\special{pa -158 -525}\special{pa -182 -514}\special{pa -203 -503}\special{pa -221 -490}% -\special{pa -236 -476}\special{pa -246 -461}\special{pa -253 -446}\special{pa -256 -430}% -\special{pa -255 -415}\special{pa -250 -400}\special{pa -240 -385}\special{pa -227 -371}% -\special{pa -211 -357}% -\special{fp}% -\special{pa -286 -471}\special{pa -290 -469}\special{pa -291 -468}\special{pa -306 -457}% -\special{pa -316 -450}\special{pa -336 -430}\special{pa -352 -409}\special{pa -361 -388}% -\special{pa -365 -366}\special{pa -364 -344}\special{pa -356 -322}\special{pa -343 -300}% -\special{pa -325 -280}\special{pa -301 -261}\special{pa -273 -244}\special{pa -240 -228}% -\special{pa -203 -215}\special{pa -164 -204}\special{pa -122 -195}\special{pa -77 -189}% -\special{pa -32 -186}\special{pa 14 -185}\special{pa 60 -187}\special{pa 104 -192}% -\special{pa 147 -200}\special{pa 188 -210}\special{pa 226 -223}\special{pa 260 -237}% -\special{pa 290 -254}\special{pa 316 -272}\special{pa 336 -292}\special{pa 352 -313}% -\special{pa 361 -335}\special{pa 365 -357}\special{pa 364 -379}\special{pa 356 -401}% -\special{pa 343 -422}\special{pa 325 -442}\special{pa 315 -450}\special{pa 305 -458}% -\special{pa 301 -461}\special{pa 294 -466}\special{pa 273 -479}\special{pa 270 -480}% -\special{fp}% -\special{pa -413 -364}\special{pa -417 -361}\special{pa -417 -360}\special{pa -419 -358}% -\special{pa -436 -335}\special{pa -436 -334}\special{pa -448 -307}\special{pa -453 -280}% -\special{pa -451 -252}\special{pa -442 -225}\special{pa -426 -199}\special{pa -403 -174}% -\special{pa -374 -150}\special{pa -338 -128}\special{pa -298 -109}\special{pa -253 -92}% -\special{pa -203 -78}\special{pa -151 -68}\special{pa -96 -60}\special{pa -40 -56}% -\special{pa 17 -55}\special{pa 74 -58}\special{pa 129 -64}\special{pa 183 -74}% -\special{pa 233 -86}\special{pa 280 -102}\special{pa 323 -120}\special{pa 360 -141}% -\special{pa 392 -164}\special{pa 417 -189}\special{pa 436 -214}\special{pa 448 -241}% -\special{pa 453 -269}\special{pa 451 -296}\special{pa 442 -323}\special{pa 437 -332}% -\special{pa 434 -336}\special{pa 427 -348}\special{pa 426 -350}\special{pa 422 -353}% -\special{fp}% -\special{pa -499 -233}\special{pa -505 -219}\special{pa -510 -208}\special{pa -512 -193}% -\special{pa -515 -177}\special{pa -513 -146}\special{pa -502 -115}\special{pa -484 -85}% -\special{pa -458 -57}\special{pa -424 -30}\special{pa -384 -5}\special{pa -338 17}% -\special{pa -287 36}\special{pa -231 51}\special{pa -171 63}\special{pa -109 72}% -\special{pa -45 77}\special{pa 20 77}\special{pa 84 74}\special{pa 147 67}% -\special{pa 208 57}\special{pa 265 42}\special{pa 319 24}\special{pa 367 4}% -\special{pa 409 -20}\special{pa 445 -46}\special{pa 474 -74}\special{pa 496 -103}% -\special{pa 510 -134}\special{pa 515 -165}\special{pa 513 -196}\special{pa 503 -225}% -\special{pa 502 -227}\special{pa 500 -231}% -\special{fp}% -\special{pa -544 -79}\special{pa -546 -70}\special{pa -547 -65}\special{pa -544 -32}% -\special{pa -533 1}\special{pa -514 33}\special{pa -486 63}\special{pa -451 92}% -\special{pa -408 118}\special{pa -359 141}\special{pa -305 161}\special{pa -245 178}% -\special{pa -182 191}\special{pa -116 200}\special{pa -48 205}\special{pa 21 206}% -\special{pa 89 202}\special{pa 156 195}\special{pa 221 184}\special{pa 282 168}% -\special{pa 338 149}\special{pa 389 127}\special{pa 435 102}\special{pa 473 75}% -\special{pa 504 45}\special{pa 526 14}\special{pa 541 -19}\special{pa 547 -52}% -\special{pa 545 -77}% -\special{fp}% -\special{pa -545 77}\special{pa -544 85}\special{pa -533 117}\special{pa -514 149}% -\special{pa -486 180}\special{pa -451 208}\special{pa -408 234}\special{pa -359 257}% -\special{pa -305 278}\special{pa -245 294}\special{pa -182 307}\special{pa -116 316}% -\special{pa -48 321}\special{pa 21 322}\special{pa 89 319}\special{pa 156 311}% -\special{pa 221 300}\special{pa 282 285}\special{pa 338 266}\special{pa 389 244}% -\special{pa 435 219}\special{pa 473 191}\special{pa 504 161}\special{pa 526 130}% -\special{pa 541 98}\special{pa 544 79}\special{pa 546 70}% -\special{fp}% -\special{pa -503 225}\special{pa -502 227}\special{pa -500 231}\special{pa -496 237}% -\special{pa -484 257}\special{pa -458 286}\special{pa -424 312}\special{pa -384 337}% -\special{pa -338 359}\special{pa -287 378}\special{pa -231 394}\special{pa -171 406}% -\special{pa -109 414}\special{pa -45 419}\special{pa 20 420}\special{pa 84 417}% -\special{pa 147 410}\special{pa 208 399}\special{pa 265 384}\special{pa 319 367}% -\special{pa 367 346}\special{pa 409 322}\special{pa 445 296}\special{pa 474 268}% -\special{pa 496 239}\special{pa 499 233}\special{pa 505 219}% -\special{fp}% -\special{pa -427 348}\special{pa -426 350}\special{pa -422 353}\special{pa -406 371}% -\special{pa -403 375}\special{pa -373 399}\special{pa -338 420}\special{pa -298 439}% -\special{pa -253 456}\special{pa -203 470}\special{pa -151 481}\special{pa -96 488}% -\special{pa -40 492}\special{pa 17 493}\special{pa 74 490}\special{pa 129 484}% -\special{pa 183 475}\special{pa 233 462}\special{pa 280 446}\special{pa 323 428}% -\special{pa 360 407}\special{pa 392 384}\special{pa 408 369}\special{pa 413 364}% -\special{pa 417 361}\special{pa 417 360}\special{pa 419 358}% -\special{fp}% -\special{pa -294 465}\special{pa -273 479}\special{pa -270 480}\special{pa -260 485}% -\special{pa -240 494}\special{pa -203 508}\special{pa -164 519}\special{pa -122 528}% -\special{pa -77 534}\special{pa -32 537}\special{pa 14 538}\special{pa 60 535}% -\special{pa 104 530}\special{pa 147 523}\special{pa 188 513}\special{pa 226 500}% -\special{pa 240 494}\special{pa 260 485}\special{pa 286 471}\special{pa 290 469}% -\special{pa 291 468}% -\special{fp}% -\special{pa -24 550}\special{pa -22 551}\special{pa 10 551}\special{pa 11 551}% -\special{pa 42 549}\special{pa 45 549}% -\special{fp}% -\special{pa 0 -483}\special{pa -16 -467}\special{pa -32 -449}\special{pa -48 -430}% -\special{pa -64 -409}\special{pa -79 -386}\special{pa -94 -362}\special{pa -109 -336}% -\special{pa -124 -310}\special{pa -137 -281}\special{pa -151 -252}\special{pa -163 -222}% -\special{pa -176 -191}\special{pa -187 -159}\special{pa -198 -126}\special{pa -208 -93}% -\special{pa -217 -60}\special{pa -225 -26}\special{pa -232 8}\special{pa -238 41}% -\special{pa -244 75}\special{pa -248 108}\special{pa -252 141}\special{pa -254 173}% -\special{pa -256 205}\special{pa -256 236}\special{pa -256 265}\special{pa -254 294}% -\special{pa -252 322}\special{pa -248 348}\special{pa -244 373}\special{pa -238 397}% -\special{pa -232 419}\special{pa -225 439}\special{pa -217 457}\special{pa -208 474}% -\special{pa -198 489}\special{pa -187 502}\special{pa -176 513}\special{pa -163 522}% -\special{pa -151 529}\special{pa -145 531}\special{pa -138 534}\special{pa -137 534}% -\special{pa -128 536}% -\special{fp}% -\special{pa 0 -483}\special{pa -0 -465}\special{pa -0 -446}\special{pa -0 -424}% -\special{pa -0 -401}\special{pa -0 -377}\special{pa -0 -351}\special{pa -0 -323}% -\special{pa -0 -295}\special{pa -0 -265}\special{pa -0 -234}\special{pa -0 -202}% -\special{pa -0 -170}\special{pa -0 -136}\special{pa -0 -103}\special{pa -0 -68}% -\special{pa -0 -34}\special{pa -0 1}\special{pa -0 35}\special{pa -0 70}% -\special{pa -0 104}\special{pa -0 138}\special{pa -0 171}\special{pa -0 203}% -\special{pa -0 235}\special{pa -0 266}\special{pa -0 296}\special{pa -0 324}% -\special{pa -0 352}\special{pa -0 378}\special{pa -0 402}\special{pa -0 425}% -\special{pa -0 446}\special{pa -0 466}\special{pa -0 483}\special{pa -0 499}% -\special{pa -0 513}\special{pa -0 524}\special{pa -0 534}\special{pa -0 542}% -\special{pa -0 547}\special{pa -0 550}\special{pa -0 551}% -\special{fp}% -\special{pa 0 -483}\special{pa 16 -467}\special{pa 32 -449}\special{pa 48 -430}% -\special{pa 64 -409}\special{pa 79 -386}\special{pa 94 -362}\special{pa 109 -336}% -\special{pa 123 -309}\special{pa 137 -281}\special{pa 150 -252}\special{pa 163 -222}% -\special{pa 175 -191}\special{pa 186 -159}\special{pa 197 -126}\special{pa 207 -93}% -\special{pa 216 -60}\special{pa 224 -26}\special{pa 231 8}\special{pa 238 41}% -\special{pa 243 75}\special{pa 248 108}\special{pa 251 141}\special{pa 254 173}% -\special{pa 255 205}\special{pa 256 236}\special{pa 255 266}\special{pa 254 294}% -\special{pa 251 322}\special{pa 248 348}\special{pa 243 373}\special{pa 238 397}% -\special{pa 231 419}\special{pa 224 439}\special{pa 216 458}\special{pa 207 474}% -\special{pa 197 489}\special{pa 186 502}\special{pa 175 513}\special{pa 163 522}% -\special{pa 154 527}\special{pa 150 529}\special{pa 146 531}\special{pa 139 533}% -\special{pa 137 534}\special{pa 133 535}% -\special{fp}% -\special{pa 0 -483}\special{pa 28 -472}\special{pa 57 -460}\special{pa 85 -446}% -\special{pa 113 -430}\special{pa 140 -412}\special{pa 167 -393}\special{pa 193 -372}% -\special{pa 218 -350}\special{pa 243 -326}\special{pa 266 -302}\special{pa 289 -275}% -\special{pa 310 -248}\special{pa 331 -220}\special{pa 349 -191}\special{pa 367 -161}% -\special{pa 383 -131}\special{pa 397 -100}\special{pa 410 -69}\special{pa 422 -37}% -\special{pa 431 -5}\special{pa 439 27}\special{pa 445 58}\special{pa 450 90}% -\special{pa 452 121}\special{pa 453 151}\special{pa 452 181}\special{pa 450 211}% -\special{pa 445 239}\special{pa 439 267}\special{pa 431 293}\special{pa 422 318}% -\special{pa 410 342}\special{pa 397 365}\special{pa 383 386}\special{pa 367 406}% -\special{pa 351 423}\special{pa 349 424}\special{pa 332 439}\special{pa 331 441}% -\special{pa 310 455}% -\special{fp}% -\special{pa 308 457}\special{pa 305 459}% -\special{fp}% -\special{pa 0 -483}\special{pa 34 -480}\special{pa 69 -475}\special{pa 103 -468}% -\special{pa 136 -460}\special{pa 169 -449}\special{pa 201 -437}\special{pa 233 -423}% -\special{pa 264 -407}\special{pa 293 -390}\special{pa 322 -372}\special{pa 349 -351}% -\special{pa 375 -330}\special{pa 399 -307}\special{pa 422 -283}\special{pa 443 -258}% -\special{pa 462 -231}\special{pa 479 -204}\special{pa 495 -176}\special{pa 509 -148}% -\special{pa 520 -118}\special{pa 530 -89}\special{pa 537 -59}\special{pa 543 -28}% -\special{pa 546 2}\special{pa 547 32}\special{pa 547 39}\special{pa 546 63}% -\special{pa 544 78}\special{pa 543 93}\special{pa 538 116}\special{pa 538 121}% -\special{pa 537 122}\special{pa 530 151}\special{pa 528 157}\special{pa 525 166}% -\special{pa 520 180}\special{pa 514 195}% -\special{fp}% -\special{pa 0 -483}\special{pa 32 -488}\special{pa 65 -491}\special{pa 97 -492}% -\special{pa 128 -491}\special{pa 159 -488}\special{pa 190 -483}\special{pa 219 -477}% -\special{pa 248 -468}\special{pa 276 -458}\special{pa 303 -446}\special{pa 329 -432}% -\special{pa 353 -416}\special{pa 376 -399}\special{pa 397 -380}\special{pa 406 -371}% -\special{pa 417 -360}\special{pa 417 -360}\special{pa 435 -338}\special{pa 439 -334}% -\special{pa 452 -315}\special{pa 460 -302}% -\special{fp}% -\special{pa 0 -483}\special{pa 23 -494}\special{pa 46 -504}\special{pa 69 -511}% -\special{pa 91 -517}\special{pa 113 -521}\special{pa 135 -522}\special{pa 156 -522}% -\special{pa 176 -519}\special{pa 196 -514}\special{pa 211 -509}\special{pa 214 -508}% -\special{pa 215 -508}\special{pa 221 -505}% -\special{fp}% -\special{pa 0 -483}\special{pa 8 -498}\special{pa 17 -511}\special{pa 25 -523}% -\special{pa 33 -532}\special{pa 41 -539}\special{pa 49 -544}\special{pa 56 -547}% -\special{pa 63 -547}% -\special{fp}% -\special{pa 0 -483}\special{pa -8 -498}\special{pa -16 -511}\special{pa -25 -523}% -\special{pa -33 -532}\special{pa -41 -539}\special{pa -48 -544}\special{pa -56 -547}% -\special{pa -62 -547}\special{pa -63 -547}\special{pa -66 -547}% -\special{fp}% -\special{pa 0 -483}\special{pa -23 -494}\special{pa -46 -504}\special{pa -68 -511}% -\special{pa -91 -517}\special{pa -113 -521}\special{pa -134 -522}\special{pa -155 -522}% -\special{pa -176 -519}\special{pa -196 -514}\special{pa -210 -509}\special{pa -213 -508}% -\special{pa -215 -508}\special{pa -219 -506}% -\special{fp}% -\special{pa 0 -483}\special{pa -32 -488}\special{pa -65 -491}\special{pa -97 -492}% -\special{pa -128 -491}\special{pa -159 -488}\special{pa -190 -484}\special{pa -219 -477}% -\special{pa -248 -469}\special{pa -276 -458}\special{pa -303 -446}\special{pa -328 -432}% -\special{pa -353 -417}\special{pa -376 -399}\special{pa -397 -381}\special{pa -407 -370}% -\special{pa -413 -364}\special{pa -417 -360}\special{pa -431 -343}\special{pa -435 -338}% -\special{pa -435 -338}\special{pa -438 -334}\special{pa -451 -315}\special{pa -460 -302}% -\special{fp}% -\special{pa 0 -483}\special{pa -34 -480}\special{pa -69 -475}\special{pa -103 -468}% -\special{pa -136 -460}\special{pa -169 -449}\special{pa -201 -437}\special{pa -233 -423}% -\special{pa -264 -408}\special{pa -293 -390}\special{pa -322 -372}\special{pa -349 -352}% -\special{pa -375 -330}\special{pa -399 -307}\special{pa -422 -283}\special{pa -443 -258}% -\special{pa -462 -232}\special{pa -480 -205}\special{pa -495 -177}\special{pa -509 -148}% -\special{pa -520 -119}\special{pa -530 -89}\special{pa -538 -59}\special{pa -543 -29}% -\special{pa -546 2}\special{pa -547 32}\special{pa -547 39}\special{pa -546 62}% -\special{pa -544 79}\special{pa -543 92}\special{pa -539 111}\special{pa -538 118}% -\special{pa -538 121}\special{pa -538 122}\special{pa -531 146}\special{pa -530 151}% -\special{pa -530 152}\special{pa -528 158}\special{pa -520 179}\special{pa -513 196}% -\special{fp}% -\special{pa 1033 -344}\special{pa 523 -174}% -\special{fp}% -\special{pa -454 151}\special{pa -523 174}% -\special{fp}% -\special{pa -523 174}\special{pa -908 302}% -\special{fp}% -\special{pa -782 -548}\special{pa -451 -316}% -\special{fp}% -\special{pa 313 219}\special{pa 451 316}% -\special{fp}% -\special{pa 451 316}\special{pa 782 548}% -\special{fp}% -\special{pa 0 631}\special{pa 0 551}% -\special{fp}% -\special{pa 0 -483}\special{pa 0 -551}% -\special{fp}% -\special{pa 0 -551}\special{pa 0 -965}% -\special{fp}% -\special{pn 8}% -\special{pa -306 459}\special{pa -299 462}\special{fp}\special{pa -271 477}\special{pa -264 480}\special{fp}% -\special{pa -235 491}\special{pa -227 493}\special{fp}\special{pa -197 500}\special{pa -189 502}\special{fp}% -\special{pa -158 505}\special{pa -150 505}\special{fp}\special{pa -119 505}\special{pa -111 505}\special{fp}% -\special{pa -80 502}\special{pa -72 500}\special{fp}\special{pa -42 494}\special{pa -34 492}\special{fp}% -\special{pa -4 484}\special{pa 4 482}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pn 8}% -\special{pn 8}% -\special{pa 274 -478}\special{pa 267 -482}\special{fp}\special{pa 239 -495}\special{pa 232 -498}\special{fp}% -\special{pa 203 -508}\special{pa 196 -510}\special{fp}\special{pa 166 -518}\special{pa 158 -520}\special{fp}% -\special{pa 129 -526}\special{pa 121 -528}\special{fp}\special{pa 91 -532}\special{pa 83 -533}\special{fp}% -\special{pa 52 -536}\special{pa 45 -536}\special{fp}\special{pa 14 -537}\special{pa 6 -537}\special{fp}% -\special{pa -24 -537}\special{pa -32 -537}\special{fp}\special{pa -63 -535}\special{pa -71 -534}\special{fp}% -\special{pa -101 -531}\special{pa -109 -530}\special{fp}\special{pa -139 -524}\special{pa -146 -523}\special{fp}% -\special{pa -176 -516}\special{pa -184 -514}\special{fp}\special{pa -213 -505}\special{pa -220 -502}\special{fp}% -\special{pa -248 -490}\special{pa -256 -487}\special{fp}\special{pa -282 -473}\special{pa -290 -469}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa 425 -351}\special{pa 420 -356}\special{fp}\special{pa 398 -379}\special{pa 392 -384}\special{fp}% -\special{pa 367 -402}\special{pa 360 -407}\special{fp}\special{pa 333 -422}\special{pa 326 -426}\special{fp}% -\special{pa 298 -439}\special{pa 291 -442}\special{fp}\special{pa 261 -453}\special{pa 254 -455}\special{fp}% -\special{pa 224 -464}\special{pa 216 -466}\special{fp}\special{pa 186 -473}\special{pa 178 -475}\special{fp}% -\special{pa 148 -481}\special{pa 140 -482}\special{fp}\special{pa 109 -487}\special{pa 101 -487}\special{fp}% -\special{pa 70 -490}\special{pa 62 -491}\special{fp}\special{pa 31 -492}\special{pa 23 -493}\special{fp}% -\special{pa -8 -493}\special{pa -16 -493}\special{fp}\special{pa -47 -492}\special{pa -55 -491}\special{fp}% -\special{pa -87 -489}\special{pa -94 -488}\special{fp}\special{pa -125 -485}\special{pa -133 -484}\special{fp}% -\special{pa -164 -478}\special{pa -172 -476}\special{fp}\special{pa -202 -470}\special{pa -210 -468}\special{fp}% -\special{pa -240 -460}\special{pa -248 -457}\special{fp}\special{pa -277 -448}\special{pa -285 -445}\special{fp}% -\special{pa -313 -432}\special{pa -321 -429}\special{fp}\special{pa -348 -414}\special{pa -355 -410}\special{fp}% -\special{pa -381 -393}\special{pa -387 -388}\special{fp}\special{pa -410 -367}\special{pa -416 -362}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa 502 -228}\special{pa 497 -235}\special{fp}\special{pa 480 -261}\special{pa 475 -267}\special{fp}% -\special{pa 453 -289}\special{pa 447 -295}\special{fp}\special{pa 421 -314}\special{pa 415 -318}\special{fp}% -\special{pa 388 -335}\special{pa 381 -339}\special{fp}\special{pa 352 -352}\special{pa 345 -356}\special{fp}% -\special{pa 316 -367}\special{pa 308 -370}\special{fp}\special{pa 278 -380}\special{pa 271 -383}\special{fp}% -\special{pa 240 -391}\special{pa 232 -393}\special{fp}\special{pa 201 -400}\special{pa 194 -401}\special{fp}% -\special{pa 163 -407}\special{pa 155 -408}\special{fp}\special{pa 123 -412}\special{pa 115 -413}\special{fp}% -\special{pa 84 -416}\special{pa 76 -417}\special{fp}\special{pa 44 -419}\special{pa 36 -419}\special{fp}% -\special{pa 5 -420}\special{pa -3 -420}\special{fp}\special{pa -35 -419}\special{pa -43 -419}\special{fp}% -\special{pa -74 -417}\special{pa -82 -417}\special{fp}\special{pa -114 -413}\special{pa -122 -412}\special{fp}% -\special{pa -153 -408}\special{pa -161 -407}\special{fp}\special{pa -192 -402}\special{pa -200 -400}\special{fp}% -\special{pa -231 -393}\special{pa -239 -391}\special{fp}\special{pa -269 -383}\special{pa -277 -381}\special{fp}% -\special{pa -307 -371}\special{pa -314 -368}\special{fp}\special{pa -343 -356}\special{pa -351 -353}\special{fp}% -\special{pa -379 -339}\special{pa -386 -335}\special{fp}\special{pa -413 -319}\special{pa -420 -315}\special{fp}% -\special{pa -445 -296}\special{pa -451 -291}\special{fp}\special{pa -474 -269}\special{pa -479 -262}\special{fp}% -\special{pa -496 -236}\special{pa -501 -229}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 546 -73}\special{pa 544 -81}\special{fp}\special{pa 536 -112}\special{pa 532 -119}\special{fp}% -\special{pa 516 -146}\special{pa 511 -153}\special{fp}\special{pa 490 -176}\special{pa 484 -181}\special{fp}% -\special{pa 459 -201}\special{pa 453 -206}\special{fp}\special{pa 426 -223}\special{pa 419 -227}\special{fp}% -\special{pa 391 -242}\special{pa 384 -246}\special{fp}\special{pa 355 -259}\special{pa 348 -262}\special{fp}% -\special{pa 318 -273}\special{pa 310 -275}\special{fp}\special{pa 280 -285}\special{pa 272 -287}\special{fp}% -\special{pa 242 -295}\special{pa 234 -297}\special{fp}\special{pa 203 -303}\special{pa 195 -305}\special{fp}% -\special{pa 163 -310}\special{pa 156 -311}\special{fp}\special{pa 124 -315}\special{pa 116 -316}\special{fp}% -\special{pa 85 -319}\special{pa 77 -319}\special{fp}\special{pa 45 -321}\special{pa 37 -322}\special{fp}% -\special{pa 5 -322}\special{pa -3 -322}\special{fp}\special{pa -35 -321}\special{pa -43 -321}\special{fp}% -\special{pa -74 -320}\special{pa -82 -319}\special{fp}\special{pa -114 -316}\special{pa -122 -315}\special{fp}% -\special{pa -153 -312}\special{pa -161 -311}\special{fp}\special{pa -193 -305}\special{pa -200 -303}\special{fp}% -\special{pa -231 -297}\special{pa -239 -295}\special{fp}\special{pa -270 -288}\special{pa -278 -285}\special{fp}% -\special{pa -308 -276}\special{pa -316 -273}\special{fp}\special{pa -345 -263}\special{pa -353 -260}\special{fp}% -\special{pa -382 -247}\special{pa -389 -244}\special{fp}\special{pa -417 -228}\special{pa -424 -224}\special{fp}% -\special{pa -451 -207}\special{pa -457 -202}\special{fp}\special{pa -482 -183}\special{pa -488 -177}\special{fp}% -\special{pa -509 -154}\special{pa -514 -147}\special{fp}\special{pa -531 -121}\special{pa -534 -113}\special{fp}% -\special{pa -543 -83}\special{pa -546 -76}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 546 74}\special{pa 546 66}\special{fp}\special{pa 545 34}\special{pa 543 26}\special{fp}% -\special{pa 532 -3}\special{pa 528 -10}\special{fp}\special{pa 510 -36}\special{pa 505 -42}\special{fp}% -\special{pa 484 -65}\special{pa 478 -70}\special{fp}\special{pa 453 -90}\special{pa 446 -95}\special{fp}% -\special{pa 420 -111}\special{pa 413 -115}\special{fp}\special{pa 384 -129}\special{pa 377 -132}\special{fp}% -\special{pa 348 -145}\special{pa 341 -148}\special{fp}\special{pa 311 -159}\special{pa 304 -161}\special{fp}% -\special{pa 273 -170}\special{pa 266 -172}\special{fp}\special{pa 235 -180}\special{pa 227 -182}\special{fp}% -\special{pa 197 -188}\special{pa 189 -189}\special{fp}\special{pa 158 -194}\special{pa 150 -195}\special{fp}% -\special{pa 118 -200}\special{pa 110 -200}\special{fp}\special{pa 79 -203}\special{pa 71 -203}\special{fp}% -\special{pa 40 -205}\special{pa 32 -205}\special{fp}\special{pa 0 -206}\special{pa -8 -206}\special{fp}% -\special{pa -39 -205}\special{pa -47 -205}\special{fp}\special{pa -79 -203}\special{pa -87 -202}\special{fp}% -\special{pa -118 -199}\special{pa -126 -198}\special{fp}\special{pa -157 -195}\special{pa -165 -193}\special{fp}% -\special{pa -196 -188}\special{pa -204 -186}\special{fp}\special{pa -235 -180}\special{pa -243 -178}\special{fp}% -\special{pa -273 -170}\special{pa -281 -168}\special{fp}\special{pa -311 -159}\special{pa -319 -156}\special{fp}% -\special{pa -348 -145}\special{pa -356 -142}\special{fp}\special{pa -385 -130}\special{pa -392 -126}\special{fp}% -\special{pa -419 -111}\special{pa -426 -107}\special{fp}\special{pa -452 -90}\special{pa -459 -85}\special{fp}% -\special{pa -483 -65}\special{pa -489 -59}\special{fp}\special{pa -510 -36}\special{pa -515 -30}\special{fp}% -\special{pa -531 -3}\special{pa -535 4}\special{fp}\special{pa -544 34}\special{pa -545 42}\special{fp}% -\special{pa -545 73}\special{pa -545 81}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 504 223}\special{pa 506 215}\special{fp}\special{pa 514 185}\special{pa 515 177}\special{fp}% -\special{pa 512 146}\special{pa 510 138}\special{fp}\special{pa 498 109}\special{pa 494 102}\special{fp}% -\special{pa 476 77}\special{pa 471 71}\special{fp}\special{pa 448 49}\special{pa 442 44}\special{fp}% -\special{pa 416 25}\special{pa 410 21}\special{fp}\special{pa 383 5}\special{pa 376 1}\special{fp}% -\special{pa 347 -12}\special{pa 340 -16}\special{fp}\special{pa 311 -27}\special{pa 303 -29}\special{fp}% -\special{pa 273 -39}\special{pa 266 -42}\special{fp}\special{pa 235 -50}\special{pa 227 -52}\special{fp}% -\special{pa 197 -58}\special{pa 189 -60}\special{fp}\special{pa 158 -65}\special{pa 150 -66}\special{fp}% -\special{pa 119 -71}\special{pa 111 -72}\special{fp}\special{pa 79 -74}\special{pa 71 -75}\special{fp}% -\special{pa 40 -77}\special{pa 32 -77}\special{fp}\special{pa 1 -77}\special{pa -7 -77}\special{fp}% -\special{pa -39 -76}\special{pa -47 -76}\special{fp}\special{pa -78 -75}\special{pa -86 -74}\special{fp}% -\special{pa -117 -71}\special{pa -125 -70}\special{fp}\special{pa -157 -66}\special{pa -164 -64}\special{fp}% -\special{pa -195 -59}\special{pa -203 -57}\special{fp}\special{pa -234 -50}\special{pa -242 -48}\special{fp}% -\special{pa -272 -40}\special{pa -280 -37}\special{fp}\special{pa -309 -28}\special{pa -317 -25}\special{fp}% -\special{pa -346 -13}\special{pa -353 -9}\special{fp}\special{pa -381 5}\special{pa -388 8}\special{fp}% -\special{pa -415 25}\special{pa -422 29}\special{fp}\special{pa -447 48}\special{pa -453 53}\special{fp}% -\special{pa -475 76}\special{pa -480 82}\special{fp}\special{pa -498 108}\special{pa -501 115}\special{fp}% -\special{pa -511 145}\special{pa -513 152}\special{fp}\special{pa -514 184}\special{pa -513 192}\special{fp}% -\special{pa -504 221}\special{pa -502 229}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 417 361}\special{pa 421 355}\special{fp}\special{pa 439 329}\special{pa 442 321}\special{fp}% -\special{pa 451 292}\special{pa 453 284}\special{fp}\special{pa 451 253}\special{pa 449 245}\special{fp}% -\special{pa 437 216}\special{pa 432 209}\special{fp}\special{pa 413 185}\special{pa 408 179}\special{fp}% -\special{pa 384 158}\special{pa 378 153}\special{fp}\special{pa 351 136}\special{pa 345 132}\special{fp}% -\special{pa 317 118}\special{pa 309 115}\special{fp}\special{pa 280 103}\special{pa 273 100}\special{fp}% -\special{pa 243 90}\special{pa 236 87}\special{fp}\special{pa 205 79}\special{pa 198 77}\special{fp}% -\special{pa 167 71}\special{pa 159 69}\special{fp}\special{pa 128 65}\special{pa 120 63}\special{fp}% -\special{pa 89 60}\special{pa 81 59}\special{fp}\special{pa 49 57}\special{pa 41 56}\special{fp}% -\special{pa 10 56}\special{pa 2 56}\special{fp}\special{pa -29 56}\special{pa -37 56}\special{fp}% -\special{pa -69 58}\special{pa -77 58}\special{fp}\special{pa -108 62}\special{pa -116 63}\special{fp}% -\special{pa -147 67}\special{pa -155 69}\special{fp}\special{pa -186 75}\special{pa -193 76}\special{fp}% -\special{pa -224 84}\special{pa -232 86}\special{fp}\special{pa -261 96}\special{pa -269 98}\special{fp}% -\special{pa -298 110}\special{pa -306 113}\special{fp}\special{pa -334 127}\special{pa -341 130}\special{fp}% -\special{pa -368 147}\special{pa -374 151}\special{fp}\special{pa -399 171}\special{pa -405 176}\special{fp}% -\special{pa -426 199}\special{pa -430 206}\special{fp}\special{pa -445 233}\special{pa -448 241}\special{fp}% -\special{pa -453 272}\special{pa -453 280}\special{fp}\special{pa -447 310}\special{pa -444 318}\special{fp}% -\special{pa -428 345}\special{pa -425 352}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 288 470}\special{pa 294 465}\special{fp}\special{pa 319 447}\special{pa 325 441}\special{fp}% -\special{pa 346 418}\special{pa 350 411}\special{fp}\special{pa 362 382}\special{pa 364 374}\special{fp}% -\special{pa 363 343}\special{pa 361 335}\special{fp}\special{pa 347 307}\special{pa 343 301}\special{fp}% -\special{pa 321 278}\special{pa 315 273}\special{fp}\special{pa 290 254}\special{pa 283 250}\special{fp}% -\special{pa 255 235}\special{pa 248 232}\special{fp}\special{pa 219 220}\special{pa 211 218}\special{fp}% -\special{pa 181 208}\special{pa 174 206}\special{fp}\special{pa 143 199}\special{pa 135 198}\special{fp}% -\special{pa 104 193}\special{pa 96 191}\special{fp}\special{pa 65 188}\special{pa 57 187}\special{fp}% -\special{pa 26 186}\special{pa 18 185}\special{fp}\special{pa -14 185}\special{pa -22 185}\special{fp}% -\special{pa -53 187}\special{pa -61 187}\special{fp}\special{pa -92 191}\special{pa -100 192}\special{fp}% -\special{pa -131 197}\special{pa -139 198}\special{fp}\special{pa -170 205}\special{pa -178 207}\special{fp}% -\special{pa -208 216}\special{pa -215 219}\special{fp}\special{pa -244 231}\special{pa -252 234}\special{fp}% -\special{pa -280 248}\special{pa -287 252}\special{fp}\special{pa -313 270}\special{pa -319 275}\special{fp}% -\special{pa -340 298}\special{pa -345 304}\special{fp}\special{pa -360 331}\special{pa -363 339}\special{fp}% -\special{pa -365 370}\special{pa -363 378}\special{fp}\special{pa -352 407}\special{pa -348 414}\special{fp}% -\special{pa -328 439}\special{pa -323 444}\special{fp}\special{pa -298 463}\special{pa -291 468}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa 41 550}\special{pa 49 549}\special{fp}\special{pa 81 545}\special{pa 88 543}\special{fp}% -\special{pa 120 537}\special{pa 127 534}\special{fp}\special{pa 158 525}\special{pa 165 522}\special{fp}% -\special{pa 194 508}\special{pa 201 504}\special{fp}\special{pa 227 485}\special{pa 232 479}\special{fp}% -\special{pa 251 453}\special{pa 253 445}\special{fp}\special{pa 254 414}\special{pa 252 406}\special{fp}% -\special{pa 235 379}\special{pa 230 373}\special{fp}\special{pa 205 354}\special{pa 198 349}\special{fp}% -\special{pa 170 335}\special{pa 162 332}\special{fp}\special{pa 132 322}\special{pa 124 320}\special{fp}% -\special{pa 93 312}\special{pa 85 311}\special{fp}\special{pa 53 307}\special{pa 45 306}\special{fp}% -\special{pa 14 304}\special{pa 6 304}\special{fp}\special{pa -26 305}\special{pa -34 305}\special{fp}% -\special{pa -66 308}\special{pa -74 309}\special{fp}\special{pa -106 315}\special{pa -113 317}\special{fp}% -\special{pa -144 325}\special{pa -152 328}\special{fp}\special{pa -181 340}\special{pa -188 344}\special{fp}% -\special{pa -216 361}\special{pa -222 366}\special{fp}\special{pa -244 389}\special{pa -248 396}\special{fp}% -\special{pa -256 427}\special{pa -255 435}\special{fp}\special{pa -244 464}\special{pa -240 471}\special{fp}% -\special{pa -217 493}\special{pa -210 498}\special{fp}\special{pa -183 514}\special{pa -176 517}\special{fp}% -\special{pa -146 529}\special{pa -138 532}\special{fp}\special{pa -107 539}\special{pa -99 541}\special{fp}% -\special{pa -68 546}\special{pa -60 547}\special{fp}\special{pa -28 550}\special{pa -20 551}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa -112 503}\special{pa -105 507}\special{fp}\special{pa -77 520}\special{pa -69 523}\special{fp}% -\special{pa -38 529}\special{pa -30 531}\special{fp}\special{pa 1 532}\special{pa 9 532}\special{fp}% -\special{pa 40 529}\special{pa 48 528}\special{fp}\special{pa 79 520}\special{pa 86 517}\special{fp}% -\special{pa 114 501}\special{pa 119 495}\special{fp}\special{pa 132 468}\special{pa 131 460}\special{fp}% -\special{pa 112 435}\special{pa 106 430}\special{fp}\special{pa 77 417}\special{pa 69 414}\special{fp}% -\special{pa 38 408}\special{pa 30 407}\special{fp}\special{pa -1 405}\special{pa -9 405}\special{fp}% -\special{pa -40 408}\special{pa -48 410}\special{fp}\special{pa -79 418}\special{pa -86 421}\special{fp}% -\special{pa -114 436}\special{pa -119 442}\special{fp}\special{pa -132 470}\special{pa -131 478}\special{fp}% -\special{pa -112 502}\special{pa -106 507}\special{fp}\special{pa -77 520}\special{pa -69 523}\special{fp}% -\special{pa -38 529}\special{pa -30 531}\special{fp}\special{pa 1 532}\special{pa 9 532}\special{fp}% -\special{pa 40 529}\special{pa 48 528}\special{fp}\special{pa 79 520}\special{pa 86 517}\special{fp}% -\special{pa 114 501}\special{pa 119 495}\special{fp}\special{pa 132 468}\special{pa 131 460}\special{fp}% -\special{pa 112 435}\special{pa 106 430}\special{fp}\special{pa 77 417}\special{pa 69 414}\special{fp}% -\special{pa 38 408}\special{pa 30 407}\special{fp}\special{pa -1 405}\special{pa -9 405}\special{fp}% -\special{pa -40 408}\special{pa -48 410}\special{fp}\special{pa -79 418}\special{pa -86 421}\special{fp}% -\special{pa -114 436}\special{pa -119 442}\special{fp}\special{pa -132 470}\special{pa -131 478}\special{fp}% -\special{pa -111 502}\special{pa -106 508}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa -132 536}\special{pa -124 536}\special{fp}\special{pa -96 536}\special{pa -88 534}\special{fp}% -\special{pa -62 525}\special{pa -55 522}\special{fp}\special{pa -31 507}\special{pa -25 503}\special{fp}% -\special{pa -3 485}\special{pa 3 480}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 0 555}\special{pa 0 547}\special{fp}\special{pa 0 521}\special{pa 0 513}\special{fp}% -\special{pa 0 487}\special{pa 0 479}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 137 534}\special{pa 129 535}\special{fp}\special{pa 100 536}\special{pa 92 535}\special{fp}% -\special{pa 65 526}\special{pa 57 523}\special{fp}\special{pa 32 508}\special{pa 26 504}\special{fp}% -\special{pa 3 485}\special{pa -3 480}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 309 457}\special{pa 302 461}\special{fp}\special{pa 274 476}\special{pa 267 479}\special{fp}% -\special{pa 237 490}\special{pa 230 493}\special{fp}\special{pa 199 500}\special{pa 191 501}\special{fp}% -\special{pa 160 505}\special{pa 152 505}\special{fp}\special{pa 120 505}\special{pa 112 505}\special{fp}% -\special{pa 81 502}\special{pa 73 501}\special{fp}\special{pa 42 494}\special{pa 34 493}\special{fp}% -\special{pa 4 484}\special{pa -4 482}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 516 192}\special{pa 512 199}\special{fp}\special{pa 499 227}\special{pa 495 234}\special{fp}% -\special{pa 479 261}\special{pa 475 268}\special{fp}\special{pa 456 293}\special{pa 451 299}\special{fp}% -\special{pa 431 323}\special{pa 425 328}\special{fp}\special{pa 403 350}\special{pa 397 355}\special{fp}% -\special{pa 373 375}\special{pa 366 380}\special{fp}\special{pa 341 398}\special{pa 334 402}\special{fp}% -\special{pa 307 417}\special{pa 300 421}\special{fp}\special{pa 272 435}\special{pa 264 438}\special{fp}% -\special{pa 235 450}\special{pa 228 452}\special{fp}\special{pa 198 461}\special{pa 190 464}\special{fp}% -\special{pa 160 471}\special{pa 152 472}\special{fp}\special{pa 121 478}\special{pa 113 479}\special{fp}% -\special{pa 82 482}\special{pa 74 482}\special{fp}\special{pa 43 484}\special{pa 35 484}\special{fp}% -\special{pa 4 483}\special{pa -4 483}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 458 -305}\special{pa 462 -298}\special{fp}\special{pa 477 -271}\special{pa 480 -264}\special{fp}% -\special{pa 491 -235}\special{pa 494 -227}\special{fp}\special{pa 503 -198}\special{pa 505 -190}\special{fp}% -\special{pa 511 -160}\special{pa 512 -152}\special{fp}\special{pa 515 -121}\special{pa 515 -113}\special{fp}% -\special{pa 515 -82}\special{pa 515 -74}\special{fp}\special{pa 513 -43}\special{pa 512 -35}\special{fp}% -\special{pa 507 -5}\special{pa 505 3}\special{fp}\special{pa 498 33}\special{pa 496 41}\special{fp}% -\special{pa 486 71}\special{pa 484 78}\special{fp}\special{pa 472 107}\special{pa 469 114}\special{fp}% -\special{pa 456 142}\special{pa 452 149}\special{fp}\special{pa 437 176}\special{pa 433 183}\special{fp}% -\special{pa 416 209}\special{pa 411 216}\special{fp}\special{pa 393 241}\special{pa 388 247}\special{fp}% -\special{pa 368 271}\special{pa 363 276}\special{fp}\special{pa 341 299}\special{pa 336 305}\special{fp}% -\special{pa 313 326}\special{pa 307 331}\special{fp}\special{pa 284 351}\special{pa 277 356}\special{fp}% -\special{pa 252 375}\special{pa 246 379}\special{fp}\special{pa 220 396}\special{pa 213 400}\special{fp}% -\special{pa 186 416}\special{pa 179 420}\special{fp}\special{pa 152 433}\special{pa 144 437}\special{fp}% -\special{pa 116 449}\special{pa 108 452}\special{fp}\special{pa 79 462}\special{pa 72 465}\special{fp}% -\special{pa 42 473}\special{pa 34 475}\special{fp}\special{pa 4 482}\special{pa -4 484}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa 217 -507}\special{pa 224 -503}\special{fp}\special{pa 251 -488}\special{pa 257 -483}\special{fp}% -\special{pa 280 -463}\special{pa 286 -457}\special{fp}\special{pa 305 -433}\special{pa 309 -426}\special{fp}% -\special{pa 324 -399}\special{pa 328 -392}\special{fp}\special{pa 340 -364}\special{pa 342 -356}\special{fp}% -\special{pa 351 -327}\special{pa 353 -319}\special{fp}\special{pa 359 -289}\special{pa 360 -281}\special{fp}% -\special{pa 363 -250}\special{pa 364 -242}\special{fp}\special{pa 366 -212}\special{pa 366 -204}\special{fp}% -\special{pa 365 -173}\special{pa 365 -165}\special{fp}\special{pa 363 -134}\special{pa 362 -126}\special{fp}% -\special{pa 358 -96}\special{pa 357 -88}\special{fp}\special{pa 351 -57}\special{pa 350 -50}\special{fp}% -\special{pa 343 -20}\special{pa 341 -12}\special{fp}\special{pa 333 18}\special{pa 331 26}\special{fp}% -\special{pa 322 55}\special{pa 319 62}\special{fp}\special{pa 308 91}\special{pa 306 99}\special{fp}% -\special{pa 294 127}\special{pa 291 135}\special{fp}\special{pa 278 163}\special{pa 274 170}\special{fp}% -\special{pa 260 197}\special{pa 257 204}\special{fp}\special{pa 241 231}\special{pa 237 238}\special{fp}% -\special{pa 221 264}\special{pa 217 271}\special{fp}\special{pa 199 296}\special{pa 195 303}\special{fp}% -\special{pa 176 327}\special{pa 171 333}\special{fp}\special{pa 151 357}\special{pa 146 363}\special{fp}% -\special{pa 125 385}\special{pa 119 391}\special{fp}\special{pa 97 412}\special{pa 91 418}\special{fp}% -\special{pa 68 437}\special{pa 61 442}\special{fp}\special{pa 36 460}\special{pa 30 465}\special{fp}% -\special{pa 3 481}\special{pa -3 485}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 62 -550}\special{pa 69 -544}\special{fp}\special{pa 92 -526}\special{pa 97 -519}\special{fp}% -\special{pa 108 -490}\special{pa 110 -482}\special{fp}\special{pa 117 -451}\special{pa 119 -443}\special{fp}% -\special{pa 124 -412}\special{pa 125 -404}\special{fp}\special{pa 128 -373}\special{pa 129 -365}\special{fp}% -\special{pa 130 -334}\special{pa 131 -326}\special{fp}\special{pa 132 -294}\special{pa 132 -286}\special{fp}% -\special{pa 132 -255}\special{pa 132 -247}\special{fp}\special{pa 132 -215}\special{pa 132 -207}\special{fp}% -\special{pa 130 -176}\special{pa 130 -168}\special{fp}\special{pa 129 -136}\special{pa 128 -128}\special{fp}% -\special{pa 126 -97}\special{pa 125 -89}\special{fp}\special{pa 123 -58}\special{pa 122 -50}\special{fp}% -\special{pa 119 -18}\special{pa 118 -10}\special{fp}\special{pa 114 21}\special{pa 113 29}\special{fp}% -\special{pa 109 60}\special{pa 108 68}\special{fp}\special{pa 103 99}\special{pa 102 107}\special{fp}% -\special{pa 97 138}\special{pa 96 146}\special{fp}\special{pa 90 177}\special{pa 89 185}\special{fp}% -\special{pa 83 216}\special{pa 81 223}\special{fp}\special{pa 74 254}\special{pa 72 262}\special{fp}% -\special{pa 65 293}\special{pa 63 300}\special{fp}\special{pa 55 331}\special{pa 53 338}\special{fp}% -\special{pa 44 369}\special{pa 42 376}\special{fp}\special{pa 32 406}\special{pa 29 414}\special{fp}% -\special{pa 18 443}\special{pa 15 451}\special{fp}\special{pa 2 479}\special{pa -2 486}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa -63 -550}\special{pa -69 -544}\special{fp}\special{pa -92 -525}\special{pa -96 -518}\special{fp}% -\special{pa -107 -489}\special{pa -110 -481}\special{fp}\special{pa -117 -451}\special{pa -118 -443}\special{fp}% -\special{pa -123 -412}\special{pa -124 -404}\special{fp}\special{pa -127 -373}\special{pa -128 -365}\special{fp}% -\special{pa -130 -333}\special{pa -130 -325}\special{fp}\special{pa -131 -294}\special{pa -131 -286}\special{fp}% -\special{pa -131 -254}\special{pa -131 -246}\special{fp}\special{pa -131 -215}\special{pa -131 -207}\special{fp}% -\special{pa -130 -175}\special{pa -129 -168}\special{fp}\special{pa -128 -136}\special{pa -127 -128}\special{fp}% -\special{pa -125 -97}\special{pa -124 -89}\special{fp}\special{pa -122 -57}\special{pa -121 -49}\special{fp}% -\special{pa -118 -18}\special{pa -117 -10}\special{fp}\special{pa -113 21}\special{pa -112 29}\special{fp}% -\special{pa -108 60}\special{pa -107 68}\special{fp}\special{pa -103 99}\special{pa -102 107}\special{fp}% -\special{pa -97 138}\special{pa -95 146}\special{fp}\special{pa -90 177}\special{pa -88 185}\special{fp}% -\special{pa -82 216}\special{pa -80 223}\special{fp}\special{pa -74 254}\special{pa -72 262}\special{fp}% -\special{pa -65 293}\special{pa -63 300}\special{fp}\special{pa -55 331}\special{pa -53 338}\special{fp}% -\special{pa -44 369}\special{pa -42 376}\special{fp}\special{pa -32 406}\special{pa -29 414}\special{fp}% -\special{pa -18 443}\special{pa -15 451}\special{fp}\special{pa -2 479}\special{pa 2 486}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa -215 -508}\special{pa -222 -504}\special{fp}\special{pa -249 -489}\special{pa -256 -484}\special{fp}% -\special{pa -279 -464}\special{pa -284 -458}\special{fp}\special{pa -304 -434}\special{pa -308 -427}\special{fp}% -\special{pa -323 -400}\special{pa -327 -393}\special{fp}\special{pa -339 -365}\special{pa -341 -357}\special{fp}% -\special{pa -350 -328}\special{pa -352 -320}\special{fp}\special{pa -358 -290}\special{pa -359 -282}\special{fp}% -\special{pa -363 -251}\special{pa -363 -243}\special{fp}\special{pa -365 -213}\special{pa -365 -205}\special{fp}% -\special{pa -365 -174}\special{pa -364 -166}\special{fp}\special{pa -362 -135}\special{pa -361 -127}\special{fp}% -\special{pa -357 -97}\special{pa -356 -89}\special{fp}\special{pa -351 -58}\special{pa -349 -51}\special{fp}% -\special{pa -343 -21}\special{pa -341 -13}\special{fp}\special{pa -333 17}\special{pa -331 25}\special{fp}% -\special{pa -321 54}\special{pa -319 62}\special{fp}\special{pa -308 91}\special{pa -305 98}\special{fp}% -\special{pa -294 127}\special{pa -290 134}\special{fp}\special{pa -278 162}\special{pa -274 169}\special{fp}% -\special{pa -260 197}\special{pa -256 204}\special{fp}\special{pa -241 230}\special{pa -237 237}\special{fp}% -\special{pa -221 263}\special{pa -217 270}\special{fp}\special{pa -199 296}\special{pa -195 302}\special{fp}% -\special{pa -176 327}\special{pa -171 333}\special{fp}\special{pa -151 357}\special{pa -146 363}\special{fp}% -\special{pa -125 385}\special{pa -119 391}\special{fp}\special{pa -97 412}\special{pa -91 417}\special{fp}% -\special{pa -68 437}\special{pa -61 442}\special{fp}\special{pa -36 460}\special{pa -30 465}\special{fp}% -\special{pa -3 481}\special{pa 3 485}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa -458 -306}\special{pa -461 -298}\special{fp}\special{pa -476 -271}\special{pa -480 -264}\special{fp}% -\special{pa -491 -235}\special{pa -494 -228}\special{fp}\special{pa -502 -198}\special{pa -504 -190}\special{fp}% -\special{pa -510 -160}\special{pa -511 -152}\special{fp}\special{pa -514 -121}\special{pa -515 -113}\special{fp}% -\special{pa -515 -82}\special{pa -515 -74}\special{fp}\special{pa -512 -43}\special{pa -511 -35}\special{fp}% -\special{pa -507 -5}\special{pa -505 3}\special{fp}\special{pa -498 33}\special{pa -495 41}\special{fp}% -\special{pa -486 70}\special{pa -483 78}\special{fp}\special{pa -472 107}\special{pa -469 114}\special{fp}% -\special{pa -455 142}\special{pa -452 149}\special{fp}\special{pa -437 176}\special{pa -433 183}\special{fp}% -\special{pa -416 209}\special{pa -411 215}\special{fp}\special{pa -393 240}\special{pa -388 247}\special{fp}% -\special{pa -368 270}\special{pa -362 276}\special{fp}\special{pa -341 299}\special{pa -336 304}\special{fp}% -\special{pa -313 326}\special{pa -307 331}\special{fp}\special{pa -283 351}\special{pa -277 356}\special{fp}% -\special{pa -252 374}\special{pa -246 379}\special{fp}\special{pa -220 396}\special{pa -213 400}\special{fp}% -\special{pa -186 416}\special{pa -179 419}\special{fp}\special{pa -152 433}\special{pa -144 437}\special{fp}% -\special{pa -116 449}\special{pa -108 452}\special{fp}\special{pa -79 462}\special{pa -72 465}\special{fp}% -\special{pa -42 473}\special{pa -34 475}\special{fp}\special{pa -4 482}\special{pa 4 484}\special{fp}% -\special{pn 8}% -\special{pn 8}% -\special{pa -515 193}\special{pa -512 200}\special{fp}\special{pa -498 228}\special{pa -495 235}\special{fp}% -\special{pa -479 262}\special{pa -474 268}\special{fp}\special{pa -456 293}\special{pa -451 300}\special{fp}% -\special{pa -430 323}\special{pa -425 329}\special{fp}\special{pa -402 351}\special{pa -396 356}\special{fp}% -\special{pa -372 375}\special{pa -366 380}\special{fp}\special{pa -340 398}\special{pa -333 402}\special{fp}% -\special{pa -306 418}\special{pa -299 421}\special{fp}\special{pa -271 435}\special{pa -264 438}\special{fp}% -\special{pa -235 450}\special{pa -227 452}\special{fp}\special{pa -198 461}\special{pa -190 464}\special{fp}% -\special{pa -160 471}\special{pa -152 472}\special{fp}\special{pa -121 478}\special{pa -113 479}\special{fp}% -\special{pa -82 482}\special{pa -74 482}\special{fp}\special{pa -43 484}\special{pa -35 484}\special{fp}% -\special{pa -4 483}\special{pa 4 483}\special{fp}\special{pn 8}% -\special{pn 8}% -\special{pa 526 -175}\special{pa 519 -173}\special{fp}\special{pa 489 -163}\special{pa 481 -160}\special{fp}% -\special{pa 451 -150}\special{pa 444 -148}\special{fp}\special{pa 414 -138}\special{pa 406 -135}\special{fp}% -\special{pa 376 -125}\special{pa 369 -123}\special{fp}\special{pa 339 -113}\special{pa 331 -110}\special{fp}% -\special{pa 301 -100}\special{pa 294 -98}\special{fp}\special{pa 264 -88}\special{pa 256 -85}\special{fp}% -\special{pa 226 -75}\special{pa 218 -73}\special{fp}\special{pa 188 -63}\special{pa 181 -60}\special{fp}% -\special{pa 151 -50}\special{pa 143 -48}\special{fp}\special{pa 113 -38}\special{pa 106 -35}\special{fp}% -\special{pa 76 -25}\special{pa 68 -23}\special{fp}\special{pa 38 -13}\special{pa 31 -10}\special{fp}% -\special{pa 1 0}\special{pa -7 2}\special{fp}\special{pa -37 12}\special{pa -45 15}\special{fp}% -\special{pa -74 25}\special{pa -82 27}\special{fp}\special{pa -112 37}\special{pa -120 40}\special{fp}% -\special{pa -150 50}\special{pa -157 52}\special{fp}\special{pa -187 62}\special{pa -195 65}\special{fp}% -\special{pa -225 75}\special{pa -232 77}\special{fp}\special{pa -262 87}\special{pa -270 90}\special{fp}% -\special{pa -300 100}\special{pa -307 102}\special{fp}\special{pa -337 112}\special{pa -345 115}\special{fp}% -\special{pa -375 125}\special{pa -383 127}\special{fp}\special{pa -412 137}\special{pa -420 140}\special{fp}% -\special{pa -450 150}\special{pa -458 152}\special{fp}\special{pn 8}% -\special{pa -454 -318}\special{pa -448 -314}\special{fp}\special{pa -423 -296}\special{pa -416 -291}\special{fp}% -\special{pa -391 -274}\special{pa -384 -269}\special{fp}\special{pa -359 -251}\special{pa -352 -247}\special{fp}% -\special{pa -327 -229}\special{pa -321 -225}\special{fp}\special{pa -295 -207}\special{pa -289 -202}\special{fp}% -\special{pa -263 -185}\special{pa -257 -180}\special{fp}\special{pa -232 -162}\special{pa -225 -158}\special{fp}% -\special{pa -200 -140}\special{pa -193 -135}\special{fp}\special{pa -168 -118}\special{pa -161 -113}\special{fp}% -\special{pa -136 -95}\special{pa -130 -91}\special{fp}\special{pa -104 -73}\special{pa -98 -68}\special{fp}% -\special{pa -72 -51}\special{pa -66 -46}\special{fp}\special{pa -41 -28}\special{pa -34 -24}\special{fp}% -\special{pa -9 -6}\special{pa -2 -2}\special{fp}\special{pa 23 16}\special{pa 30 21}\special{fp}% -\special{pa 55 38}\special{pa 61 43}\special{fp}\special{pa 87 61}\special{pa 93 65}\special{fp}% -\special{pa 119 83}\special{pa 125 88}\special{fp}\special{pa 150 105}\special{pa 157 110}\special{fp}% -\special{pa 182 128}\special{pa 189 132}\special{fp}\special{pa 214 150}\special{pa 221 154}\special{fp}% -\special{pa 246 172}\special{pa 252 177}\special{fp}\special{pa 278 194}\special{pa 284 199}\special{fp}% -\special{pa 310 217}\special{pa 316 221}\special{fp}\special{pn 8}% -\special{pa 0 555}\special{pa 0 547}\special{fp}\special{pa 0 515}\special{pa 0 507}\special{fp}% -\special{pa 0 475}\special{pa 0 467}\special{fp}\special{pa 0 436}\special{pa 0 428}\special{fp}% -\special{pa 0 396}\special{pa 0 388}\special{fp}\special{pa 0 356}\special{pa 0 348}\special{fp}% -\special{pa 0 316}\special{pa 0 308}\special{fp}\special{pa 0 277}\special{pa 0 269}\special{fp}% -\special{pa 0 237}\special{pa 0 229}\special{fp}\special{pa 0 197}\special{pa 0 189}\special{fp}% -\special{pa 0 157}\special{pa 0 149}\special{fp}\special{pa 0 118}\special{pa 0 110}\special{fp}% -\special{pa 0 78}\special{pa 0 70}\special{fp}\special{pa 0 38}\special{pa 0 30}\special{fp}% -\special{pa 0 -2}\special{pa 0 -10}\special{fp}\special{pa 0 -41}\special{pa 0 -49}\special{fp}% -\special{pa 0 -81}\special{pa 0 -89}\special{fp}\special{pa 0 -121}\special{pa 0 -129}\special{fp}% -\special{pa 0 -161}\special{pa 0 -169}\special{fp}\special{pa 0 -200}\special{pa 0 -208}\special{fp}% -\special{pa 0 -240}\special{pa 0 -248}\special{fp}\special{pa 0 -280}\special{pa 0 -288}\special{fp}% -\special{pa 0 -320}\special{pa 0 -328}\special{fp}\special{pa 0 -359}\special{pa 0 -367}\special{fp}% -\special{pa 0 -399}\special{pa 0 -407}\special{fp}\special{pa 0 -439}\special{pa 0 -447}\special{fp}% -\special{pa 0 -479}\special{pa 0 -487}\special{fp}\special{pn 8}% +\special{pa 857 -237}\special{pa -789 218}% +\special{fp}% +\special{pa -694 -441}\special{pa 694 441}% +\special{fp}% +\special{pa 0 728}\special{pa 0 -858}% +\special{fp}% +\special{pn 8}% +\special{pa -335 533}\special{pa -333 535}\special{pa -286 561}\special{pa -286 561}% +\special{fp}% +\special{pa -286 561}\special{pa -276 566}% +\special{fp}% +\special{pa -276 566}\special{pa -231 586}\special{pa -224 589}\special{pa -177 605}% +\special{pa -164 608}\special{pa -135 615}\special{pa -98 622}\special{pa -63 627}% +\special{pa -49 628}\special{pa -29 629}\special{pa 5 630}\special{pa 38 629}% +\special{pa 49 628}\special{pa 72 626}\special{pa 108 621}\special{pa 147 613}% +\special{pa 164 608}\special{pa 189 601}\special{pa 231 586}\special{pa 238 583}% +\special{pa 286 561}\special{pa 293 558}\special{pa 333 535}\special{pa 356 519}% +\special{pa 375 506}\special{pa 414 475}\special{pa 430 461}\special{pa 448 442}% +\special{pa 480 408}\special{pa 508 372}\special{pa 534 334}\special{pa 556 296}% +\special{pa 576 255}\special{pa 582 240}\special{pa 592 214}\special{pa 606 173}% +\special{pa 616 130}\special{pa 624 87}\special{pa 626 68}\special{pa 628 44}% +\special{pa 630 -0}\special{pa 628 -44}\special{pa 624 -87}\special{pa 619 -119}% +\special{pa 616 -130}\special{pa 606 -173}\special{pa 592 -214}\special{pa 576 -255}% +\special{pa 564 -281}\special{pa 556 -295}\special{pa 534 -334}\special{pa 508 -372}% +\special{pa 487 -400}\special{pa 480 -408}\special{pa 448 -442}\special{pa 414 -475}% +\special{pa 408 -480}\special{pa 375 -506}\special{pa 338 -532}\special{pa 333 -535}% +\special{pa 286 -561}\special{pa 276 -566}\special{pa 231 -586}\special{pa 224 -589}% +\special{pa 177 -605}\special{pa 164 -608}\special{pa 135 -615}\special{pa 98 -622}% +\special{pa 63 -627}\special{pa 49 -628}\special{pa 29 -629}\special{pa -5 -630}% +\special{pa -38 -629}\special{pa -49 -628}\special{pa -72 -626}\special{pa -108 -621}% +\special{pa -147 -613}\special{pa -164 -608}\special{pa -189 -601}\special{pa -231 -586}% +\special{pa -238 -583}\special{pa -286 -561}\special{pa -293 -558}\special{pa -333 -535}% +\special{pa -356 -519}\special{pa -375 -506}\special{pa -414 -475}\special{pa -430 -461}% +\special{pa -448 -442}\special{pa -480 -408}\special{pa -508 -372}\special{pa -534 -334}% +\special{pa -556 -296}\special{pa -576 -255}\special{pa -582 -240}\special{pa -592 -214}% +\special{pa -606 -173}\special{pa -616 -130}\special{pa -624 -87}\special{pa -626 -68}% +\special{pa -628 -44}\special{pa -630 0}\special{pa -628 44}\special{pa -624 87}% +\special{pa -619 119}\special{pa -616 130}\special{pa -606 173}\special{pa -592 214}% +\special{pa -576 255}\special{pa -564 281}\special{pa -556 295}\special{pa -534 334}% +\special{pa -508 372}\special{pa -487 400}\special{pa -480 408}\special{pa -448 442}% +\special{pa -414 475}\special{pa -408 480}\special{pa -376 506}% +\special{fp}% +\special{pa -376 506}\special{pa -375 506}\special{pa -341 529}% +\special{fp}% +\special{pa -341 529}\special{pa -338 532}% +\special{fp}% +\special{pa 0 -572}\special{pa -33 -562}\special{pa -66 -549}\special{pa -99 -534}% +\special{pa -131 -518}\special{pa -162 -499}\special{pa -194 -478}\special{pa -224 -456}% +\special{pa -253 -431}\special{pa -282 -405}\special{pa -309 -377}\special{pa -335 -348}% +\special{pa -360 -317}\special{pa -383 -285}\special{pa -405 -252}\special{pa -425 -218}% +\special{pa -444 -184}\special{pa -461 -148}\special{pa -476 -112}\special{pa -489 -75}% +\special{pa -500 -38}\special{pa -509 -1}\special{pa -516 36}\special{pa -522 73}% +\special{pa -525 109}\special{pa -526 145}\special{pa -525 181}\special{pa -522 216}% +\special{pa -516 250}\special{pa -509 283}\special{pa -500 315}\special{pa -489 346}% +\special{pa -476 375}\special{pa -461 403}\special{pa -444 429}\special{pa -425 454}% +\special{pa -405 477}\special{pa -383 497}\special{pa -375 504}% +\special{fp}% +\special{pa -375 504}\special{pa -360 516}\special{pa -335 533}% +\special{fp}% +\special{pn 8}% +\special{pa -339 531}\special{pa -332 535}\special{fp}\special{pa -305 550}\special{pa -298 553}\special{fp}% +\special{pa -269 565}\special{pa -262 568}\special{fp}\special{pa -233 577}\special{pa -225 579}\special{fp}% +\special{pa -195 585}\special{pa -187 586}\special{fp}\special{pa -157 589}\special{pa -149 589}\special{fp}% +\special{pa -118 590}\special{pa -110 589}\special{fp}\special{pa -80 587}\special{pa -72 586}\special{fp}% +\special{pa -41 581}\special{pa -34 580}\special{fp}\special{pa -4 573}\special{pa 4 571}\special{fp}% +\special{pn 8}% +\special{pa -126 -520}\special{pa -114 -514}\special{pa -101 -508}\special{pa -86 -503}% +\special{pa -70 -499}\special{pa -53 -496}\special{pa -35 -494}\special{pa -16 -492}% +\special{pa 3 -492}\special{pa 22 -493}\special{pa 40 -494}\special{pa 58 -497}% +\special{pa 75 -500}\special{pa 91 -505}\special{pa 105 -510}\special{pa 118 -516}% +\special{pa 129 -522}\special{pa 138 -529}\special{pa 144 -537}\special{pa 149 -544}% +\special{pa 151 -552}\special{pa 150 -560}\special{pa 148 -568}\special{pa 143 -576}% +\special{pa 135 -583}\special{pa 126 -590}\special{pa 114 -596}\special{pa 101 -602}% +\special{pa 86 -607}\special{pa 70 -611}\special{pa 53 -614}\special{pa 35 -617}% +\special{pa 16 -618}\special{pa -3 -618}\special{pa -22 -618}\special{pa -40 -616}% +\special{pa -58 -614}\special{pa -75 -610}\special{pa -91 -606}\special{pa -105 -601}% +\special{pa -118 -595}\special{pa -129 -588}\special{pa -138 -581}\special{pa -144 -574}% +\special{pa -149 -566}\special{pa -151 -558}\special{pa -150 -550}\special{pa -148 -542}% +\special{pa -143 -535}\special{pa -135 -527}\special{pa -126 -520}\special{pa -114 -514}% +\special{pa -101 -508}\special{pa -86 -503}\special{pa -70 -499}\special{pa -53 -496}% +\special{pa -35 -494}\special{pa -16 -492}\special{pa 3 -492}\special{pa 22 -493}% +\special{pa 40 -494}\special{pa 58 -497}\special{pa 75 -500}\special{pa 91 -505}% +\special{pa 105 -510}\special{pa 118 -516}\special{pa 129 -522}\special{pa 138 -529}% +\special{pa 144 -537}\special{pa 149 -544}\special{pa 151 -552}\special{pa 150 -560}% +\special{pa 148 -568}\special{pa 143 -576}\special{pa 135 -583}\special{pa 126 -590}% +\special{pa 114 -596}\special{pa 101 -602}\special{pa 86 -607}\special{pa 70 -611}% +\special{pa 53 -614}\special{pa 35 -617}\special{pa 16 -618}\special{pa -3 -618}% +\special{pa -22 -618}\special{pa -40 -616}\special{pa -58 -614}\special{pa -75 -610}% +\special{pa -91 -606}\special{pa -105 -601}\special{pa -118 -595}\special{pa -129 -588}% +\special{pa -138 -581}\special{pa -144 -574}\special{pa -149 -566}\special{pa -151 -558}% +\special{pa -150 -550}\special{pa -148 -542}\special{pa -143 -535}\special{pa -135 -527}% +\special{pa -126 -520}% +\special{fp}% +\special{pa -107 -620}\special{pa -112 -620}\special{pa -113 -620}\special{pa -121 -618}% +\special{pa -146 -613}\special{pa -146 -613}\special{pa -164 -608}\special{pa -176 -604}% +\special{pa -190 -599}\special{pa -204 -594}\special{pa -229 -583}\special{pa -250 -570}% +\special{pa -267 -557}\special{pa -280 -542}\special{pa -288 -527}\special{pa -292 -512}% +\special{pa -292 -496}\special{pa -287 -481}\special{pa -277 -466}\special{pa -263 -452}% +\special{pa -244 -439}\special{pa -222 -426}\special{pa -197 -415}\special{pa -168 -406}% +\special{pa -136 -398}\special{pa -103 -391}\special{pa -68 -387}\special{pa -32 -384}% +\special{pa 5 -384}\special{pa 42 -385}\special{pa 78 -388}\special{pa 113 -393}% +\special{pa 146 -400}\special{pa 176 -408}\special{pa 204 -418}\special{pa 229 -430}% +\special{pa 250 -442}\special{pa 267 -456}\special{pa 280 -470}\special{pa 288 -485}% +\special{pa 292 -501}\special{pa 292 -516}\special{pa 287 -531}\special{pa 277 -546}% +\special{pa 263 -561}\special{pa 244 -574}\special{pa 222 -586}\special{pa 197 -597}% +\special{pa 180 -603}\special{pa 168 -607}\special{pa 164 -608}\special{pa 139 -614}% +\special{pa 136 -615}\special{pa 135 -615}\special{pa 103 -621}\special{pa 96 -622}% +\special{fp}% +\special{pa -355 -520}\special{pa -357 -519}\special{pa -376 -503}\special{pa -381 -500}% +\special{pa -399 -479}\special{pa -412 -458}\special{pa -417 -436}\special{pa -416 -414}% +\special{pa -409 -392}\special{pa -395 -371}\special{pa -375 -351}\special{pa -349 -332}% +\special{pa -317 -314}\special{pa -281 -298}\special{pa -240 -285}\special{pa -195 -273}% +\special{pa -147 -264}\special{pa -97 -258}\special{pa -45 -254}\special{pa 7 -253}% +\special{pa 60 -255}\special{pa 111 -259}\special{pa 161 -266}\special{pa 208 -276}% +\special{pa 251 -288}\special{pa 291 -302}\special{pa 327 -319}\special{pa 357 -337}% +\special{pa 381 -356}\special{pa 399 -377}\special{pa 412 -398}\special{pa 417 -420}% +\special{pa 416 -442}\special{pa 409 -464}\special{pa 395 -485}\special{pa 375 -505}% +\special{pa 355 -520}\special{pa 349 -525}\special{pa 346 -526}% +\special{fp}% +\special{pa -493 -392}\special{pa -496 -388}\special{pa -497 -387}\special{pa -507 -369}% +\special{pa -511 -362}\special{pa -518 -335}\special{pa -517 -307}\special{pa -507 -280}% +\special{pa -490 -254}\special{pa -465 -229}\special{pa -433 -205}\special{pa -394 -183}% +\special{pa -348 -164}\special{pa -297 -147}\special{pa -242 -133}\special{pa -182 -121}% +\special{pa -120 -113}\special{pa -56 -109}\special{pa 9 -108}\special{pa 74 -110}% +\special{pa 138 -115}\special{pa 199 -124}\special{pa 258 -136}\special{pa 312 -151}% +\special{pa 362 -169}\special{pa 405 -189}\special{pa 443 -212}\special{pa 473 -236}% +\special{pa 496 -261}\special{pa 511 -288}\special{pa 518 -315}\special{pa 517 -342}% +\special{pa 507 -369}\special{pa 491 -394}\special{pa 490 -396}\special{pa 486 -400}% +\special{fp}% +\special{pa -575 -255}\special{pa -580 -245}\special{pa -580 -245}\special{pa -582 -240}% +\special{pa -588 -214}\special{pa -587 -183}\special{pa -577 -152}\special{pa -557 -122}% +\special{pa -528 -94}\special{pa -492 -67}\special{pa -447 -42}\special{pa -396 -20}% +\special{pa -338 -0}\special{pa -275 16}\special{pa -207 28}\special{pa -136 37}% +\special{pa -63 43}\special{pa 10 44}\special{pa 84 42}\special{pa 157 35}% +\special{pa 226 25}\special{pa 293 12}\special{pa 355 -6}\special{pa 411 -26}% +\special{pa 460 -49}\special{pa 503 -74}\special{pa 537 -102}\special{pa 563 -131}% +\special{pa 580 -161}\special{pa 588 -192}\special{pa 587 -223}\special{pa 578 -250}% +\special{pa 577 -253}\special{pa 575 -256}% +\special{fp}% +\special{pa -623 -87}\special{pa -625 -81}\special{pa -625 -81}\special{pa -624 -68}% +\special{pa -623 -48}\special{pa -612 -15}\special{pa -591 16}\special{pa -561 47}% +\special{pa -522 75}\special{pa -475 102}\special{pa -420 125}\special{pa -359 146}% +\special{pa -292 163}\special{pa -220 177}\special{pa -145 186}\special{pa -67 192}% +\special{pa 11 193}\special{pa 89 191}\special{pa 166 184}\special{pa 240 173}% +\special{pa 311 159}\special{pa 376 140}\special{pa 436 119}\special{pa 489 95}% +\special{pa 534 68}\special{pa 570 39}\special{pa 598 8}\special{pa 616 -24}% +\special{pa 625 -57}\special{pa 624 -81}\special{pa 623 -88}% +\special{fp}% +\special{pa -624 81}\special{pa -623 88}\special{pa -623 90}\special{pa -612 123}% +\special{pa -591 154}\special{pa -561 185}\special{pa -522 213}\special{pa -475 240}% +\special{pa -420 263}\special{pa -359 284}\special{pa -292 301}\special{pa -220 314}% +\special{pa -145 324}\special{pa -67 330}\special{pa 11 331}\special{pa 89 328}% +\special{pa 166 322}\special{pa 240 311}\special{pa 311 296}\special{pa 376 278}% +\special{pa 436 257}\special{pa 489 232}\special{pa 534 205}\special{pa 570 176}% +\special{pa 598 146}\special{pa 616 114}\special{pa 623 87}\special{pa 625 81}% +\special{pa 625 81}\special{pa 624 68}% +\special{fp}% +\special{pa -578 250}\special{pa -577 253}\special{pa -575 256}\special{pa -557 283}% +\special{pa -528 312}\special{pa -492 339}\special{pa -447 364}\special{pa -396 386}% +\special{pa -338 405}\special{pa -275 421}\special{pa -207 434}\special{pa -136 443}% +\special{pa -63 448}\special{pa 10 450}\special{pa 84 447}\special{pa 157 441}% +\special{pa 226 431}\special{pa 293 417}\special{pa 355 400}\special{pa 411 380}% +\special{pa 460 357}\special{pa 503 331}\special{pa 537 304}\special{pa 563 275}% +\special{pa 575 255}\special{pa 580 245}\special{pa 580 245}\special{pa 582 240}% +\special{fp}% +\special{pa -491 394}\special{pa -490 396}\special{pa -486 400}\special{pa -478 408}% +\special{pa -465 421}\special{pa -432 445}\special{pa -394 466}\special{pa -348 486}% +\special{pa -297 503}\special{pa -242 517}\special{pa -182 528}\special{pa -120 536}% +\special{pa -56 541}\special{pa 9 542}\special{pa 74 540}\special{pa 138 534}% +\special{pa 199 526}\special{pa 258 513}\special{pa 312 498}\special{pa 362 481}% +\special{pa 405 460}\special{pa 443 438}\special{pa 473 414}\special{pa 479 407}% +\special{pa 493 392}\special{pa 496 388}\special{pa 497 387}% +\special{fp}% +\special{pa -346 526}\special{pa -338 531}\special{pa -335 532}\special{pa -331 534}% +\special{pa -317 542}\special{pa -281 558}\special{pa -240 572}\special{pa -195 583}% +\special{pa -147 592}\special{pa -97 598}\special{pa -45 602}\special{pa 7 603}% +\special{pa 60 601}\special{pa 111 597}\special{pa 161 590}\special{pa 208 580}% +\special{pa 251 568}\special{pa 291 554}\special{pa 327 537}\special{pa 331 534}% +\special{pa 355 520}% +\special{fp}% +\special{pa -362 515}\special{pa -356 519}\special{pa -349 525}% +\special{fp}% +\special{pa -180 603}\special{pa -168 607}\special{pa -164 608}\special{pa -139 614}% +\special{pa -136 615}\special{pa -135 615}\special{pa -103 621}\special{pa -96 622}% +\special{pa -68 626}\special{pa -62 626}\special{pa -48 627}\special{pa -32 628}% +\special{pa -24 629}\special{pa 5 629}\special{pa 33 628}\special{pa 42 628}% +\special{pa 48 627}\special{pa 71 625}\special{pa 78 625}\special{pa 107 620}% +\special{pa 112 620}\special{pa 113 620}\special{pa 121 618}\special{pa 146 613}% +\special{pa 146 613}\special{pa 164 608}\special{pa 176 604}\special{pa 190 599}% +\special{fp}% +\special{pa 0 -572}\special{pa -19 -556}\special{pa -38 -538}\special{pa -57 -518}% +\special{pa -76 -496}\special{pa -94 -472}\special{pa -112 -447}\special{pa -130 -419}% +\special{pa -147 -390}\special{pa -163 -359}\special{pa -179 -327}\special{pa -194 -293}% +\special{pa -208 -259}\special{pa -222 -223}\special{pa -235 -186}\special{pa -246 -149}% +\special{pa -257 -111}\special{pa -267 -73}\special{pa -275 -34}\special{pa -283 5}% +\special{pa -289 43}\special{pa -295 82}\special{pa -299 120}\special{pa -302 158}% +\special{pa -304 195}\special{pa -304 231}\special{pa -304 267}\special{pa -302 301}% +\special{pa -299 334}\special{pa -295 366}\special{pa -289 397}\special{pa -283 426}% +\special{pa -275 453}\special{pa -267 478}\special{pa -257 502}\special{pa -246 523}% +\special{pa -235 543}\special{pa -222 560}\special{pa -208 575}\special{pa -194 588}% +\special{pa -179 599}\special{pa -163 607}\special{pa -147 612}\special{pa -147 613}% +\special{pa -134 615}% +\special{fp}% +\special{pa 0 -572}\special{pa -1 -554}\special{pa -2 -534}\special{pa -2 -512}% +\special{pa -3 -488}\special{pa -4 -462}\special{pa -5 -434}\special{pa -6 -405}% +\special{pa -6 -374}\special{pa -7 -341}\special{pa -8 -307}\special{pa -8 -272}% +\special{pa -9 -236}\special{pa -10 -199}\special{pa -10 -161}\special{pa -11 -122}% +\special{pa -11 -83}\special{pa -12 -44}\special{pa -12 -5}\special{pa -12 35}% +\special{pa -13 74}\special{pa -13 114}\special{pa -13 152}\special{pa -13 190}% +\special{pa -13 228}\special{pa -13 264}\special{pa -13 299}\special{pa -13 334}% +\special{pa -13 367}\special{pa -13 398}\special{pa -13 428}\special{pa -12 456}% +\special{pa -12 482}\special{pa -12 507}\special{pa -11 529}\special{pa -11 550}% +\special{pa -10 568}\special{pa -10 584}\special{pa -9 598}\special{pa -8 609}% +\special{pa -8 618}\special{pa -7 624}\special{pa -6 628}\special{pa -6 630}% +\special{fp}% +\special{pa 0 -572}\special{pa 18 -556}\special{pa 35 -538}\special{pa 53 -517}% +\special{pa 70 -495}\special{pa 87 -471}\special{pa 103 -445}\special{pa 120 -417}% +\special{pa 135 -387}\special{pa 151 -356}\special{pa 165 -324}\special{pa 179 -290}% +\special{pa 192 -255}\special{pa 205 -219}\special{pa 216 -182}\special{pa 227 -145}% +\special{pa 237 -107}\special{pa 246 -68}\special{pa 254 -30}\special{pa 261 9}% +\special{pa 267 48}\special{pa 272 87}\special{pa 276 125}\special{pa 279 163}% +\special{pa 280 200}\special{pa 281 236}\special{pa 280 272}\special{pa 279 306}% +\special{pa 276 339}\special{pa 272 371}\special{pa 267 402}\special{pa 261 430}% +\special{pa 254 457}\special{pa 246 483}\special{pa 237 506}\special{pa 227 527}% +\special{pa 216 547}\special{pa 205 564}\special{pa 192 579}\special{pa 179 591}% +\special{pa 165 602}\special{pa 151 610}\special{pa 147 611}\special{pa 136 615}% +\special{pa 135 615}\special{pa 128 616}% +\special{fp}% +\special{pa 0 -572}\special{pa 32 -561}\special{pa 64 -548}\special{pa 96 -533}% +\special{pa 127 -515}\special{pa 158 -496}\special{pa 188 -475}\special{pa 217 -452}% +\special{pa 246 -427}\special{pa 274 -400}\special{pa 300 -372}\special{pa 326 -342}% +\special{pa 350 -311}\special{pa 372 -279}\special{pa 394 -245}\special{pa 413 -211}% +\special{pa 431 -176}\special{pa 448 -140}\special{pa 462 -104}\special{pa 475 -67}% +\special{pa 486 -30}\special{pa 495 8}\special{pa 502 45}\special{pa 507 82}% +\special{pa 510 118}\special{pa 511 155}\special{pa 510 190}\special{pa 507 225}% +\special{pa 502 259}\special{pa 495 292}\special{pa 486 324}\special{pa 475 354}% +\special{pa 462 383}\special{pa 448 411}\special{pa 431 437}\special{pa 413 461}% +\special{pa 394 484}\special{pa 372 504}\special{pa 355 518}\special{pa 350 523}% +\special{pa 333 534}\special{pa 327 538}\special{pa 326 539}\special{pa 302 552}% +\special{fp}% +\special{pa 0 -572}\special{pa 39 -568}\special{pa 78 -563}\special{pa 117 -555}% +\special{pa 155 -545}\special{pa 193 -532}\special{pa 230 -518}\special{pa 266 -502}% +\special{pa 300 -483}\special{pa 334 -463}\special{pa 367 -441}\special{pa 397 -417}% +\special{pa 427 -391}\special{pa 455 -364}\special{pa 480 -336}\special{pa 505 -306}% +\special{pa 527 -275}\special{pa 546 -243}\special{pa 564 -210}\special{pa 580 -176}% +\special{pa 593 -141}\special{pa 604 -106}\special{pa 613 -70}\special{pa 619 -35}% +\special{pa 622 1}\special{pa 624 37}\special{pa 622 73}\special{pa 621 86}% +\special{pa 619 109}\special{pa 615 128}\special{pa 613 144}\special{pa 606 171}% +\special{pa 604 178}\special{pa 604 178}\special{pa 601 187}\special{pa 593 212}% +\special{pa 592 216}\special{pa 582 240}\special{pa 580 245}\special{pa 574 256}% +\special{fp}% +\special{pa 0 -572}\special{pa 37 -576}\special{pa 74 -578}\special{pa 111 -578}% +\special{pa 148 -576}\special{pa 183 -571}\special{pa 219 -564}\special{pa 253 -555}% +\special{pa 286 -544}\special{pa 318 -530}\special{pa 349 -515}\special{pa 378 -497}% +\special{pa 406 -477}\special{pa 412 -473}\special{pa 433 -456}\special{pa 446 -443}% +\special{pa 457 -433}\special{pa 457 -433}\special{pa 480 -408}\special{pa 480 -408}% +\special{pa 488 -398}\special{pa 501 -381}\special{pa 508 -371}% +\special{fp}% +\special{pa 0 -572}\special{pa 27 -583}\special{pa 54 -592}\special{pa 80 -598}% +\special{pa 106 -602}\special{pa 132 -604}\special{pa 157 -603}\special{pa 182 -600}% +\special{pa 206 -595}\special{pa 213 -592}\special{pa 229 -587}\special{pa 240 -582}% +\special{fp}% +\special{pa 0 -572}\special{pa 10 -587}\special{pa 21 -599}\special{pa 31 -610}% +\special{pa 41 -617}\special{pa 51 -623}\special{pa 60 -626}\special{pa 62 -626}% +\special{pa 69 -626}% +\special{fp}% +\special{pa 0 -572}\special{pa -9 -587}\special{pa -17 -600}\special{pa -26 -610}% +\special{pa -34 -618}\special{pa -43 -624}\special{pa -51 -627}\special{pa -58 -627}% +\special{fp}% +\special{pa 0 -572}\special{pa -26 -583}\special{pa -51 -593}\special{pa -76 -599}% +\special{pa -101 -604}\special{pa -126 -606}\special{pa -150 -606}\special{pa -174 -603}% +\special{pa -188 -600}\special{pa -196 -598}\special{pa -205 -595}\special{pa -218 -591}% +\special{pa -221 -590}% +\special{fp}% +\special{pa 0 -572}\special{pa -37 -577}\special{pa -73 -580}\special{pa -109 -580}% +\special{pa -145 -578}\special{pa -181 -574}\special{pa -215 -568}\special{pa -249 -560}% +\special{pa -281 -549}\special{pa -313 -536}\special{pa -343 -521}\special{pa -372 -504}% +\special{pa -400 -485}\special{pa -412 -475}\special{pa -426 -464}\special{pa -429 -461}% +\special{pa -448 -443}\special{pa -450 -441}\special{pa -466 -423}\special{pa -473 -416}% +\special{pa -473 -415}\special{pa -480 -407}% +\special{fp}% +\special{pa 0 -572}\special{pa -39 -569}\special{pa -79 -564}\special{pa -117 -557}% +\special{pa -156 -547}\special{pa -194 -536}\special{pa -231 -522}\special{pa -267 -506}% +\special{pa -302 -488}\special{pa -336 -469}\special{pa -368 -447}\special{pa -400 -424}% +\special{pa -429 -399}\special{pa -457 -372}\special{pa -483 -344}\special{pa -507 -315}% +\special{pa -529 -284}\special{pa -549 -252}\special{pa -567 -220}\special{pa -583 -186}% +\special{pa -596 -152}\special{pa -607 -117}\special{pa -616 -81}\special{pa -622 -46}% +\special{pa -626 -10}\special{pa -627 26}\special{pa -626 42}\special{pa -626 62}% +\special{pa -623 85}\special{pa -622 98}\special{pa -618 119}\special{pa -616 130}% +\special{pa -616 133}\special{pa -609 160}\special{pa -607 168}\special{pa -607 169}% +\special{pa -605 175}\special{pa -596 202}\special{pa -591 215}% +\special{fp}% +\special{pn 8}% +\special{pa 100 -622}\special{pa 92 -623}\special{fp}\special{pa 59 -626}\special{pa 51 -627}\special{fp}% +\special{pa 19 -629}\special{pa 11 -629}\special{fp}\special{pa -22 -629}\special{pa -30 -628}\special{fp}% +\special{pa -63 -626}\special{pa -71 -625}\special{fp}\special{pa -103 -621}\special{pa -111 -620}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 350 -524}\special{pa 343 -528}\special{fp}\special{pa 316 -542}\special{pa 309 -546}\special{fp}% +\special{pa 281 -557}\special{pa 274 -560}\special{fp}\special{pa 245 -570}\special{pa 237 -572}\special{fp}% +\special{pa 208 -580}\special{pa 200 -582}\special{fp}\special{pa 170 -588}\special{pa 163 -589}\special{fp}% +\special{pa 133 -594}\special{pa 125 -595}\special{fp}\special{pa 95 -599}\special{pa 87 -599}\special{fp}% +\special{pa 56 -601}\special{pa 48 -602}\special{fp}\special{pa 18 -603}\special{pa 10 -603}\special{fp}% +\special{pa -20 -603}\special{pa -28 -603}\special{fp}\special{pa -59 -601}\special{pa -67 -601}\special{fp}% +\special{pa -97 -598}\special{pa -105 -597}\special{fp}\special{pa -135 -593}\special{pa -143 -592}\special{fp}% +\special{pa -173 -587}\special{pa -181 -586}\special{fp}\special{pa -210 -579}\special{pa -218 -577}\special{fp}% +\special{pa -247 -569}\special{pa -255 -567}\special{fp}\special{pa -283 -557}\special{pa -291 -554}\special{fp}% +\special{pa -318 -541}\special{pa -326 -538}\special{fp}\special{pa -352 -522}\special{pa -359 -518}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 489 -397}\special{pa 483 -402}\special{fp}\special{pa 461 -424}\special{pa 455 -429}\special{fp}% +\special{pa 429 -446}\special{pa 423 -450}\special{fp}\special{pa 396 -465}\special{pa 388 -469}\special{fp}% +\special{pa 360 -481}\special{pa 353 -484}\special{fp}\special{pa 324 -494}\special{pa 316 -497}\special{fp}% +\special{pa 287 -506}\special{pa 279 -508}\special{fp}\special{pa 249 -515}\special{pa 241 -517}\special{fp}% +\special{pa 211 -523}\special{pa 203 -524}\special{fp}\special{pa 173 -529}\special{pa 165 -531}\special{fp}% +\special{pa 134 -535}\special{pa 126 -535}\special{fp}\special{pa 96 -538}\special{pa 88 -539}\special{fp}% +\special{pa 57 -541}\special{pa 49 -541}\special{fp}\special{pa 18 -542}\special{pa 10 -542}\special{fp}% +\special{pa -21 -542}\special{pa -29 -542}\special{fp}\special{pa -59 -541}\special{pa -67 -540}\special{fp}% +\special{pa -98 -538}\special{pa -106 -537}\special{fp}\special{pa -137 -534}\special{pa -145 -534}\special{fp}% +\special{pa -175 -529}\special{pa -183 -528}\special{fp}\special{pa -213 -523}\special{pa -221 -521}\special{fp}% +\special{pa -251 -515}\special{pa -259 -513}\special{fp}\special{pa -289 -505}\special{pa -296 -503}\special{fp}% +\special{pa -326 -493}\special{pa -333 -491}\special{fp}\special{pa -362 -480}\special{pa -370 -477}\special{fp}% +\special{pa -398 -464}\special{pa -405 -460}\special{fp}\special{pa -431 -445}\special{pa -438 -441}\special{fp}% +\special{pa -463 -422}\special{pa -469 -417}\special{fp}\special{pa -490 -395}\special{pa -495 -389}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 577 -253}\special{pa 572 -259}\special{fp}\special{pa 555 -285}\special{pa 549 -291}\special{fp}% +\special{pa 527 -313}\special{pa 521 -318}\special{fp}\special{pa 495 -336}\special{pa 489 -341}\special{fp}% +\special{pa 461 -356}\special{pa 454 -359}\special{fp}\special{pa 426 -373}\special{pa 419 -376}\special{fp}% +\special{pa 390 -388}\special{pa 382 -390}\special{fp}\special{pa 352 -400}\special{pa 345 -403}\special{fp}% +\special{pa 315 -411}\special{pa 307 -413}\special{fp}\special{pa 276 -421}\special{pa 269 -423}\special{fp}% +\special{pa 238 -428}\special{pa 230 -430}\special{fp}\special{pa 199 -435}\special{pa 191 -436}\special{fp}% +\special{pa 160 -440}\special{pa 152 -441}\special{fp}\special{pa 121 -444}\special{pa 113 -445}\special{fp}% +\special{pa 82 -447}\special{pa 74 -447}\special{fp}\special{pa 43 -449}\special{pa 35 -449}\special{fp}% +\special{pa 3 -450}\special{pa -5 -450}\special{fp}\special{pa -36 -449}\special{pa -44 -449}\special{fp}% +\special{pa -75 -448}\special{pa -83 -447}\special{fp}\special{pa -114 -445}\special{pa -122 -444}\special{fp}% +\special{pa -153 -441}\special{pa -161 -440}\special{fp}\special{pa -192 -436}\special{pa -200 -435}\special{fp}% +\special{pa -231 -430}\special{pa -239 -428}\special{fp}\special{pa -270 -422}\special{pa -277 -420}\special{fp}% +\special{pa -308 -413}\special{pa -316 -411}\special{fp}\special{pa -346 -403}\special{pa -353 -400}\special{fp}% +\special{pa -383 -390}\special{pa -390 -387}\special{fp}\special{pa -420 -376}\special{pa -427 -372}\special{fp}% +\special{pa -455 -359}\special{pa -462 -356}\special{fp}\special{pa -489 -340}\special{pa -496 -335}\special{fp}% +\special{pa -521 -317}\special{pa -527 -312}\special{fp}\special{pa -550 -290}\special{pa -555 -284}\special{fp}% +\special{pa -572 -258}\special{pa -577 -252}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 625 -85}\special{pa 622 -92}\special{fp}\special{pa 612 -122}\special{pa 609 -129}\special{fp}% +\special{pa 591 -154}\special{pa 585 -161}\special{fp}\special{pa 563 -183}\special{pa 557 -188}\special{fp}% +\special{pa 532 -206}\special{pa 525 -211}\special{fp}\special{pa 498 -227}\special{pa 491 -230}\special{fp}% +\special{pa 463 -244}\special{pa 456 -248}\special{fp}\special{pa 427 -260}\special{pa 420 -263}\special{fp}% +\special{pa 390 -273}\special{pa 383 -276}\special{fp}\special{pa 353 -285}\special{pa 345 -287}\special{fp}% +\special{pa 315 -295}\special{pa 307 -297}\special{fp}\special{pa 277 -304}\special{pa 269 -305}\special{fp}% +\special{pa 238 -311}\special{pa 230 -312}\special{fp}\special{pa 199 -317}\special{pa 191 -318}\special{fp}% +\special{pa 160 -322}\special{pa 152 -323}\special{fp}\special{pa 121 -326}\special{pa 113 -326}\special{fp}% +\special{pa 82 -329}\special{pa 74 -329}\special{fp}\special{pa 43 -330}\special{pa 35 -330}\special{fp}% +\special{pa 3 -331}\special{pa -5 -331}\special{fp}\special{pa -36 -330}\special{pa -44 -330}\special{fp}% +\special{pa -75 -329}\special{pa -83 -329}\special{fp}\special{pa -114 -326}\special{pa -122 -326}\special{fp}% +\special{pa -153 -323}\special{pa -161 -322}\special{fp}\special{pa -192 -318}\special{pa -200 -317}\special{fp}% +\special{pa -231 -312}\special{pa -239 -311}\special{fp}\special{pa -270 -305}\special{pa -278 -303}\special{fp}% +\special{pa -308 -297}\special{pa -316 -295}\special{fp}\special{pa -346 -287}\special{pa -354 -285}\special{fp}% +\special{pa -384 -276}\special{pa -391 -273}\special{fp}\special{pa -421 -262}\special{pa -428 -260}\special{fp}% +\special{pa -457 -247}\special{pa -464 -244}\special{fp}\special{pa -492 -230}\special{pa -499 -226}\special{fp}% +\special{pa -526 -210}\special{pa -533 -206}\special{fp}\special{pa -558 -187}\special{pa -564 -181}\special{fp}% +\special{pa -586 -159}\special{pa -591 -153}\special{fp}\special{pa -608 -128}\special{pa -612 -120}\special{fp}% +\special{pa -622 -91}\special{pa -624 -83}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 625 72}\special{pa 623 64}\special{fp}\special{pa 618 33}\special{pa 616 25}\special{fp}% +\special{pa 601 -2}\special{pa 596 -9}\special{fp}\special{pa 575 -32}\special{pa 570 -38}\special{fp}% +\special{pa 546 -58}\special{pa 539 -63}\special{fp}\special{pa 513 -80}\special{pa 506 -84}\special{fp}% +\special{pa 479 -100}\special{pa 471 -103}\special{fp}\special{pa 442 -116}\special{pa 435 -119}\special{fp}% +\special{pa 406 -130}\special{pa 398 -133}\special{fp}\special{pa 368 -143}\special{pa 360 -145}\special{fp}% +\special{pa 330 -153}\special{pa 322 -155}\special{fp}\special{pa 292 -163}\special{pa 284 -165}\special{fp}% +\special{pa 253 -170}\special{pa 245 -172}\special{fp}\special{pa 214 -177}\special{pa 206 -178}\special{fp}% +\special{pa 175 -182}\special{pa 167 -183}\special{fp}\special{pa 135 -187}\special{pa 127 -187}\special{fp}% +\special{pa 96 -190}\special{pa 88 -190}\special{fp}\special{pa 56 -192}\special{pa 49 -192}\special{fp}% +\special{pa 17 -193}\special{pa 9 -193}\special{fp}\special{pa -23 -193}\special{pa -31 -193}\special{fp}% +\special{pa -62 -192}\special{pa -70 -191}\special{fp}\special{pa -102 -189}\special{pa -110 -189}\special{fp}% +\special{pa -141 -186}\special{pa -149 -185}\special{fp}\special{pa -180 -182}\special{pa -188 -181}\special{fp}% +\special{pa -219 -176}\special{pa -227 -175}\special{fp}\special{pa -258 -169}\special{pa -266 -168}\special{fp}% +\special{pa -297 -162}\special{pa -305 -160}\special{fp}\special{pa -335 -152}\special{pa -343 -150}\special{fp}% +\special{pa -374 -141}\special{pa -381 -139}\special{fp}\special{pa -411 -128}\special{pa -418 -125}\special{fp}% +\special{pa -448 -114}\special{pa -455 -110}\special{fp}\special{pa -484 -97}\special{pa -491 -94}\special{fp}% +\special{pa -518 -77}\special{pa -524 -73}\special{fp}\special{pa -550 -55}\special{pa -556 -50}\special{fp}% +\special{pa -579 -28}\special{pa -585 -23}\special{fp}\special{pa -604 2}\special{pa -608 9}\special{fp}% +\special{pa -620 38}\special{pa -622 46}\special{fp}\special{pa -623 77}\special{pa -624 85}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 581 244}\special{pa 582 236}\special{fp}\special{pa 588 205}\special{pa 588 197}\special{fp}% +\special{pa 582 167}\special{pa 579 159}\special{fp}\special{pa 564 132}\special{pa 559 126}\special{fp}% +\special{pa 538 103}\special{pa 532 97}\special{fp}\special{pa 507 78}\special{pa 501 73}\special{fp}% +\special{pa 474 57}\special{pa 467 53}\special{fp}\special{pa 439 39}\special{pa 432 35}\special{fp}% +\special{pa 403 23}\special{pa 396 20}\special{fp}\special{pa 366 10}\special{pa 359 7}\special{fp}% +\special{pa 329 -2}\special{pa 321 -4}\special{fp}\special{pa 291 -12}\special{pa 283 -14}\special{fp}% +\special{pa 252 -20}\special{pa 244 -21}\special{fp}\special{pa 214 -27}\special{pa 206 -29}\special{fp}% +\special{pa 175 -33}\special{pa 167 -34}\special{fp}\special{pa 136 -37}\special{pa 128 -38}\special{fp}% +\special{pa 96 -40}\special{pa 89 -41}\special{fp}\special{pa 57 -43}\special{pa 49 -43}\special{fp}% +\special{pa 18 -44}\special{pa 10 -44}\special{fp}\special{pa -21 -44}\special{pa -29 -44}\special{fp}% +\special{pa -61 -43}\special{pa -69 -42}\special{fp}\special{pa -100 -40}\special{pa -108 -40}\special{fp}% +\special{pa -139 -37}\special{pa -147 -36}\special{fp}\special{pa -178 -32}\special{pa -186 -31}\special{fp}% +\special{pa -217 -27}\special{pa -225 -25}\special{fp}\special{pa -256 -19}\special{pa -263 -18}\special{fp}% +\special{pa -294 -11}\special{pa -302 -9}\special{fp}\special{pa -332 -1}\special{pa -340 2}\special{fp}% +\special{pa -369 11}\special{pa -377 14}\special{fp}\special{pa -406 24}\special{pa -414 27}\special{fp}% +\special{pa -442 40}\special{pa -449 44}\special{fp}\special{pa -477 59}\special{pa -484 63}\special{fp}% +\special{pa -510 80}\special{pa -516 85}\special{fp}\special{pa -540 105}\special{pa -546 111}\special{fp}% +\special{pa -566 135}\special{pa -570 142}\special{fp}\special{pa -583 170}\special{pa -585 178}\special{fp}% +\special{pa -588 208}\special{pa -587 216}\special{fp}\special{pa -579 246}\special{pa -577 254}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 495 390}\special{pa 498 383}\special{fp}\special{pa 513 355}\special{pa 515 347}\special{fp}% +\special{pa 517 316}\special{pa 516 308}\special{fp}\special{pa 506 279}\special{pa 502 272}\special{fp}% +\special{pa 483 247}\special{pa 477 241}\special{fp}\special{pa 453 220}\special{pa 447 216}\special{fp}% +\special{pa 421 198}\special{pa 414 194}\special{fp}\special{pa 386 180}\special{pa 378 177}\special{fp}% +\special{pa 349 164}\special{pa 342 161}\special{fp}\special{pa 312 151}\special{pa 304 149}\special{fp}% +\special{pa 274 141}\special{pa 266 139}\special{fp}\special{pa 235 131}\special{pa 227 130}\special{fp}% +\special{pa 196 124}\special{pa 188 123}\special{fp}\special{pa 157 118}\special{pa 149 117}\special{fp}% +\special{pa 118 113}\special{pa 110 113}\special{fp}\special{pa 78 110}\special{pa 70 110}\special{fp}% +\special{pa 39 108}\special{pa 31 108}\special{fp}\special{pa -1 108}\special{pa -9 108}\special{fp}% +\special{pa -40 109}\special{pa -48 109}\special{fp}\special{pa -80 110}\special{pa -88 111}\special{fp}% +\special{pa -119 114}\special{pa -127 114}\special{fp}\special{pa -159 118}\special{pa -167 119}\special{fp}% +\special{pa -198 124}\special{pa -206 125}\special{fp}\special{pa -237 132}\special{pa -244 134}\special{fp}% +\special{pa -275 141}\special{pa -283 143}\special{fp}\special{pa -313 152}\special{pa -321 154}\special{fp}% +\special{pa -351 165}\special{pa -358 168}\special{fp}\special{pa -387 181}\special{pa -394 184}\special{fp}% +\special{pa -422 199}\special{pa -429 203}\special{fp}\special{pa -455 221}\special{pa -461 226}\special{fp}% +\special{pa -484 248}\special{pa -489 254}\special{fp}\special{pa -507 280}\special{pa -510 287}\special{fp}% +\special{pa -517 318}\special{pa -518 326}\special{fp}\special{pa -512 356}\special{pa -509 364}\special{fp}% +\special{pa -493 391}\special{pa -489 398}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 352 523}\special{pa 358 518}\special{fp}\special{pa 383 498}\special{pa 388 492}\special{fp}% +\special{pa 407 466}\special{pa 410 459}\special{fp}\special{pa 417 428}\special{pa 417 420}\special{fp}% +\special{pa 407 391}\special{pa 404 383}\special{fp}\special{pa 383 359}\special{pa 378 354}\special{fp}% +\special{pa 353 334}\special{pa 346 330}\special{fp}\special{pa 318 315}\special{pa 311 311}\special{fp}% +\special{pa 282 299}\special{pa 274 296}\special{fp}\special{pa 244 286}\special{pa 236 284}\special{fp}% +\special{pa 206 276}\special{pa 198 274}\special{fp}\special{pa 167 268}\special{pa 159 266}\special{fp}% +\special{pa 127 262}\special{pa 119 261}\special{fp}\special{pa 88 257}\special{pa 80 256}\special{fp}% +\special{pa 48 254}\special{pa 40 254}\special{fp}\special{pa 9 253}\special{pa 1 253}\special{fp}% +\special{pa -31 254}\special{pa -39 254}\special{fp}\special{pa -71 256}\special{pa -79 256}\special{fp}% +\special{pa -110 259}\special{pa -118 260}\special{fp}\special{pa -150 265}\special{pa -158 266}\special{fp}% +\special{pa -189 272}\special{pa -197 274}\special{fp}\special{pa -227 282}\special{pa -235 284}\special{fp}% +\special{pa -265 293}\special{pa -273 296}\special{fp}\special{pa -302 308}\special{pa -310 311}\special{fp}% +\special{pa -338 326}\special{pa -345 330}\special{fp}\special{pa -371 348}\special{pa -377 353}\special{fp}% +\special{pa -399 376}\special{pa -403 383}\special{fp}\special{pa -416 412}\special{pa -417 420}\special{fp}% +\special{pa -413 451}\special{pa -411 458}\special{fp}\special{pa -394 485}\special{pa -389 491}\special{fp}% +\special{pa -365 512}\special{pa -359 517}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 187 601}\special{pa 194 598}\special{fp}\special{pa 223 586}\special{pa 230 582}\special{fp}% +\special{pa 257 565}\special{pa 263 560}\special{fp}\special{pa 283 537}\special{pa 287 530}\special{fp}% +\special{pa 292 499}\special{pa 291 491}\special{fp}\special{pa 275 465}\special{pa 269 459}\special{fp}% +\special{pa 245 439}\special{pa 238 435}\special{fp}\special{pa 210 421}\special{pa 203 418}\special{fp}% +\special{pa 173 407}\special{pa 165 405}\special{fp}\special{pa 135 398}\special{pa 127 396}\special{fp}% +\special{pa 96 391}\special{pa 88 390}\special{fp}\special{pa 57 386}\special{pa 49 386}\special{fp}% +\special{pa 18 384}\special{pa 10 384}\special{fp}\special{pa -21 384}\special{pa -29 384}\special{fp}% +\special{pa -61 386}\special{pa -69 387}\special{fp}\special{pa -100 391}\special{pa -108 392}\special{fp}% +\special{pa -138 398}\special{pa -146 400}\special{fp}\special{pa -176 408}\special{pa -184 411}\special{fp}% +\special{pa -213 422}\special{pa -220 426}\special{fp}\special{pa -248 441}\special{pa -254 446}\special{fp}% +\special{pa -277 467}\special{pa -282 474}\special{fp}\special{pa -292 503}\special{pa -292 511}\special{fp}% +\special{pa -281 540}\special{pa -277 546}\special{fp}\special{pa -254 567}\special{pa -247 572}\special{fp}% +\special{pa -220 587}\special{pa -213 591}\special{fp}\special{pa -183 602}\special{pa -176 604}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa -129 588}\special{pa -122 592}\special{fp}\special{pa -94 604}\special{pa -87 607}\special{fp}% +\special{pa -56 614}\special{pa -49 615}\special{fp}\special{pa -18 618}\special{pa -10 618}\special{fp}% +\special{pa 21 618}\special{pa 29 617}\special{fp}\special{pa 60 613}\special{pa 68 612}\special{fp}% +\special{pa 97 604}\special{pa 105 601}\special{fp}\special{pa 132 586}\special{pa 138 580}\special{fp}% +\special{pa 151 554}\special{pa 150 546}\special{fp}\special{pa 129 523}\special{pa 123 518}\special{fp}% +\special{pa 94 506}\special{pa 87 503}\special{fp}\special{pa 56 497}\special{pa 49 495}\special{fp}% +\special{pa 18 493}\special{pa 10 492}\special{fp}\special{pa -21 493}\special{pa -29 493}\special{fp}% +\special{pa -60 497}\special{pa -68 499}\special{fp}\special{pa -97 507}\special{pa -105 510}\special{fp}% +\special{pa -132 524}\special{pa -138 530}\special{fp}\special{pa -151 557}\special{pa -150 565}\special{fp}% +\special{pa -129 588}\special{pa -123 592}\special{fp}\special{pa -94 604}\special{pa -87 607}\special{fp}% +\special{pa -56 614}\special{pa -49 615}\special{fp}\special{pa -18 618}\special{pa -10 618}\special{fp}% +\special{pa 21 618}\special{pa 29 617}\special{fp}\special{pa 60 613}\special{pa 68 612}\special{fp}% +\special{pa 97 604}\special{pa 105 601}\special{fp}\special{pa 132 586}\special{pa 138 580}\special{fp}% +\special{pa 151 554}\special{pa 150 546}\special{fp}\special{pa 129 523}\special{pa 123 518}\special{fp}% +\special{pa 94 506}\special{pa 87 503}\special{fp}\special{pa 56 497}\special{pa 49 495}\special{fp}% +\special{pa 18 493}\special{pa 10 492}\special{fp}\special{pa -21 493}\special{pa -29 493}\special{fp}% +\special{pa -60 497}\special{pa -68 499}\special{fp}\special{pa -97 507}\special{pa -105 510}\special{fp}% +\special{pa -132 524}\special{pa -138 530}\special{fp}\special{pa -151 557}\special{pa -150 565}\special{fp}% +\special{pa -128 587}\special{pa -123 593}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa -138 615}\special{pa -130 615}\special{fp}\special{pa -102 616}\special{pa -94 615}\special{fp}% +\special{pa -67 608}\special{pa -59 606}\special{fp}\special{pa -34 594}\special{pa -27 590}\special{fp}% +\special{pa -3 574}\special{pa 3 570}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa -6 634}\special{pa -5 626}\special{fp}\special{pa 0 576}\special{pa 0 568}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 132 616}\special{pa 124 617}\special{fp}\special{pa 97 618}\special{pa 89 617}\special{fp}% +\special{pa 63 610}\special{pa 56 607}\special{fp}\special{pa 32 595}\special{pa 25 590}\special{fp}% +\special{pa 3 574}\special{pa -3 570}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 304 552}\special{pa 296 555}\special{fp}\special{pa 268 568}\special{pa 261 570}\special{fp}% +\special{pa 232 579}\special{pa 224 581}\special{fp}\special{pa 194 588}\special{pa 186 589}\special{fp}% +\special{pa 156 592}\special{pa 148 592}\special{fp}\special{pa 117 592}\special{pa 109 591}\special{fp}% +\special{pa 79 589}\special{pa 71 588}\special{fp}\special{pa 41 582}\special{pa 33 581}\special{fp}% +\special{pa 4 573}\special{pa -4 571}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 576 253}\special{pa 573 260}\special{fp}\special{pa 559 287}\special{pa 555 294}\special{fp}% +\special{pa 538 320}\special{pa 534 327}\special{fp}\special{pa 516 352}\special{pa 511 358}\special{fp}% +\special{pa 491 381}\special{pa 486 387}\special{fp}\special{pa 464 409}\special{pa 459 415}\special{fp}% +\special{pa 436 435}\special{pa 430 440}\special{fp}\special{pa 405 459}\special{pa 399 463}\special{fp}% +\special{pa 373 480}\special{pa 366 485}\special{fp}\special{pa 340 500}\special{pa 333 503}\special{fp}% +\special{pa 305 517}\special{pa 298 520}\special{fp}\special{pa 270 532}\special{pa 262 535}\special{fp}% +\special{pa 233 544}\special{pa 225 547}\special{fp}\special{pa 196 555}\special{pa 188 557}\special{fp}% +\special{pa 158 563}\special{pa 150 564}\special{fp}\special{pa 120 568}\special{pa 112 569}\special{fp}% +\special{pa 81 572}\special{pa 73 572}\special{fp}\special{pa 43 573}\special{pa 35 573}\special{fp}% +\special{pa 4 572}\special{pa -4 572}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 506 -375}\special{pa 510 -368}\special{fp}\special{pa 527 -341}\special{pa 531 -334}\special{fp}% +\special{pa 545 -307}\special{pa 549 -299}\special{fp}\special{pa 561 -270}\special{pa 564 -263}\special{fp}% +\special{pa 573 -233}\special{pa 576 -225}\special{fp}\special{pa 583 -195}\special{pa 584 -187}\special{fp}% +\special{pa 589 -156}\special{pa 590 -148}\special{fp}\special{pa 593 -116}\special{pa 593 -108}\special{fp}% +\special{pa 593 -77}\special{pa 593 -69}\special{fp}\special{pa 591 -38}\special{pa 590 -30}\special{fp}% +\special{pa 586 2}\special{pa 585 9}\special{fp}\special{pa 579 40}\special{pa 577 48}\special{fp}% +\special{pa 569 78}\special{pa 566 86}\special{fp}\special{pa 556 116}\special{pa 554 123}\special{fp}% +\special{pa 542 153}\special{pa 538 160}\special{fp}\special{pa 525 188}\special{pa 521 195}\special{fp}% +\special{pa 506 223}\special{pa 502 230}\special{fp}\special{pa 485 256}\special{pa 481 263}\special{fp}% +\special{pa 463 289}\special{pa 458 295}\special{fp}\special{pa 438 320}\special{pa 433 326}\special{fp}% +\special{pa 412 350}\special{pa 407 355}\special{fp}\special{pa 385 378}\special{pa 379 383}\special{fp}% +\special{pa 356 404}\special{pa 350 410}\special{fp}\special{pa 325 430}\special{pa 319 434}\special{fp}% +\special{pa 294 453}\special{pa 287 458}\special{fp}\special{pa 261 475}\special{pa 254 479}\special{fp}% +\special{pa 227 495}\special{pa 220 498}\special{fp}\special{pa 192 513}\special{pa 184 516}\special{fp}% +\special{pa 156 529}\special{pa 148 532}\special{fp}\special{pa 119 543}\special{pa 111 545}\special{fp}% +\special{pa 81 554}\special{pa 73 557}\special{fp}\special{pa 43 564}\special{pa 35 566}\special{fp}% +\special{pa 4 571}\special{pa -4 573}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 236 -584}\special{pa 243 -580}\special{fp}\special{pa 271 -565}\special{pa 277 -561}\special{fp}% +\special{pa 302 -542}\special{pa 308 -536}\special{fp}\special{pa 329 -514}\special{pa 335 -508}\special{fp}% +\special{pa 353 -482}\special{pa 357 -476}\special{fp}\special{pa 373 -449}\special{pa 377 -441}\special{fp}% +\special{pa 389 -413}\special{pa 392 -405}\special{fp}\special{pa 402 -376}\special{pa 404 -368}\special{fp}% +\special{pa 412 -338}\special{pa 414 -330}\special{fp}\special{pa 420 -299}\special{pa 421 -291}\special{fp}% +\special{pa 424 -260}\special{pa 425 -252}\special{fp}\special{pa 427 -221}\special{pa 427 -213}\special{fp}% +\special{pa 427 -182}\special{pa 427 -174}\special{fp}\special{pa 426 -143}\special{pa 425 -135}\special{fp}% +\special{pa 422 -104}\special{pa 421 -96}\special{fp}\special{pa 417 -65}\special{pa 416 -57}\special{fp}% +\special{pa 410 -26}\special{pa 409 -18}\special{fp}\special{pa 402 12}\special{pa 400 20}\special{fp}% +\special{pa 392 50}\special{pa 390 58}\special{fp}\special{pa 380 88}\special{pa 378 95}\special{fp}% +\special{pa 368 125}\special{pa 365 132}\special{fp}\special{pa 353 161}\special{pa 350 169}\special{fp}% +\special{pa 338 197}\special{pa 334 205}\special{fp}\special{pa 320 233}\special{pa 317 240}\special{fp}% +\special{pa 302 267}\special{pa 298 274}\special{fp}\special{pa 282 301}\special{pa 278 308}\special{fp}% +\special{pa 261 334}\special{pa 256 341}\special{fp}\special{pa 238 366}\special{pa 234 373}\special{fp}% +\special{pa 214 397}\special{pa 209 404}\special{fp}\special{pa 189 427}\special{pa 183 433}\special{fp}% +\special{pa 162 456}\special{pa 156 461}\special{fp}\special{pa 133 483}\special{pa 127 488}\special{fp}% +\special{pa 103 508}\special{pa 97 513}\special{fp}\special{pa 72 531}\special{pa 65 535}\special{fp}% +\special{pa 38 552}\special{pa 31 556}\special{fp}\special{pa 4 570}\special{pa -4 574}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa 68 -628}\special{pa 75 -623}\special{fp}\special{pa 100 -608}\special{pa 106 -602}\special{fp}% +\special{pa 120 -574}\special{pa 124 -567}\special{fp}\special{pa 134 -538}\special{pa 136 -530}\special{fp}% +\special{pa 143 -500}\special{pa 145 -492}\special{fp}\special{pa 150 -462}\special{pa 151 -454}\special{fp}% +\special{pa 155 -423}\special{pa 156 -415}\special{fp}\special{pa 159 -384}\special{pa 159 -376}\special{fp}% +\special{pa 161 -345}\special{pa 162 -337}\special{fp}\special{pa 163 -306}\special{pa 163 -298}\special{fp}% +\special{pa 163 -267}\special{pa 163 -259}\special{fp}\special{pa 163 -228}\special{pa 163 -220}\special{fp}% +\special{pa 162 -189}\special{pa 162 -181}\special{fp}\special{pa 161 -150}\special{pa 161 -142}\special{fp}% +\special{pa 159 -111}\special{pa 158 -103}\special{fp}\special{pa 156 -72}\special{pa 155 -64}\special{fp}% +\special{pa 153 -33}\special{pa 152 -25}\special{fp}\special{pa 149 6}\special{pa 148 13}\special{fp}% +\special{pa 144 44}\special{pa 143 52}\special{fp}\special{pa 139 83}\special{pa 138 91}\special{fp}% +\special{pa 134 122}\special{pa 132 130}\special{fp}\special{pa 127 160}\special{pa 126 168}\special{fp}% +\special{pa 121 199}\special{pa 119 206}\special{fp}\special{pa 113 237}\special{pa 111 245}\special{fp}% +\special{pa 105 275}\special{pa 103 283}\special{fp}\special{pa 96 313}\special{pa 94 321}\special{fp}% +\special{pa 86 351}\special{pa 84 359}\special{fp}\special{pa 76 388}\special{pa 73 396}\special{fp}% +\special{pa 64 426}\special{pa 62 433}\special{fp}\special{pa 51 463}\special{pa 49 470}\special{fp}% +\special{pa 37 499}\special{pa 34 506}\special{fp}\special{pa 21 534}\special{pa 17 541}\special{fp}% +\special{pa 2 568}\special{pa -2 575}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa -55 -630}\special{pa -61 -625}\special{fp}\special{pa -86 -607}\special{pa -91 -601}\special{fp}% +\special{pa -103 -571}\special{pa -106 -564}\special{fp}\special{pa -114 -533}\special{pa -116 -525}\special{fp}% +\special{pa -122 -493}\special{pa -123 -486}\special{fp}\special{pa -128 -454}\special{pa -129 -446}\special{fp}% +\special{pa -132 -414}\special{pa -132 -406}\special{fp}\special{pa -135 -374}\special{pa -135 -366}\special{fp}% +\special{pa -137 -334}\special{pa -137 -326}\special{fp}\special{pa -138 -294}\special{pa -138 -286}\special{fp}% +\special{pa -138 -254}\special{pa -138 -246}\special{fp}\special{pa -137 -215}\special{pa -137 -207}\special{fp}% +\special{pa -136 -175}\special{pa -136 -167}\special{fp}\special{pa -135 -135}\special{pa -134 -127}\special{fp}% +\special{pa -133 -95}\special{pa -132 -87}\special{fp}\special{pa -130 -55}\special{pa -130 -47}\special{fp}% +\special{pa -127 -15}\special{pa -126 -7}\special{fp}\special{pa -123 25}\special{pa -123 33}\special{fp}% +\special{pa -119 64}\special{pa -118 72}\special{fp}\special{pa -114 104}\special{pa -113 112}\special{fp}% +\special{pa -109 144}\special{pa -108 152}\special{fp}\special{pa -104 183}\special{pa -102 191}\special{fp}% +\special{pa -97 223}\special{pa -96 231}\special{fp}\special{pa -90 262}\special{pa -89 270}\special{fp}% +\special{pa -83 301}\special{pa -81 309}\special{fp}\special{pa -75 341}\special{pa -73 348}\special{fp}% +\special{pa -66 379}\special{pa -64 387}\special{fp}\special{pa -56 418}\special{pa -54 426}\special{fp}% +\special{pa -45 457}\special{pa -43 464}\special{fp}\special{pa -33 495}\special{pa -30 502}\special{fp}% +\special{pa -19 532}\special{pa -15 539}\special{fp}\special{pa -2 568}\special{pa 2 575}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa -217 -591}\special{pa -224 -588}\special{fp}\special{pa -252 -574}\special{pa -259 -569}\special{fp}% +\special{pa -284 -551}\special{pa -290 -545}\special{fp}\special{pa -311 -523}\special{pa -316 -517}\special{fp}% +\special{pa -335 -492}\special{pa -339 -485}\special{fp}\special{pa -354 -458}\special{pa -358 -451}\special{fp}% +\special{pa -370 -422}\special{pa -373 -415}\special{fp}\special{pa -383 -385}\special{pa -385 -377}\special{fp}% +\special{pa -393 -347}\special{pa -394 -340}\special{fp}\special{pa -400 -309}\special{pa -401 -301}\special{fp}% +\special{pa -405 -270}\special{pa -405 -262}\special{fp}\special{pa -407 -231}\special{pa -407 -223}\special{fp}% +\special{pa -407 -192}\special{pa -407 -184}\special{fp}\special{pa -406 -153}\special{pa -406 -145}\special{fp}% +\special{pa -403 -114}\special{pa -402 -106}\special{fp}\special{pa -398 -75}\special{pa -397 -67}\special{fp}% +\special{pa -392 -37}\special{pa -390 -29}\special{fp}\special{pa -384 2}\special{pa -382 10}\special{fp}% +\special{pa -375 40}\special{pa -373 47}\special{fp}\special{pa -364 77}\special{pa -362 85}\special{fp}% +\special{pa -352 115}\special{pa -349 122}\special{fp}\special{pa -338 151}\special{pa -336 159}\special{fp}% +\special{pa -324 187}\special{pa -321 195}\special{fp}\special{pa -308 223}\special{pa -304 230}\special{fp}% +\special{pa -290 258}\special{pa -286 265}\special{fp}\special{pa -271 292}\special{pa -267 299}\special{fp}% +\special{pa -251 326}\special{pa -247 333}\special{fp}\special{pa -230 359}\special{pa -225 365}\special{fp}% +\special{pa -207 390}\special{pa -202 397}\special{fp}\special{pa -183 421}\special{pa -177 427}\special{fp}% +\special{pa -157 450}\special{pa -151 456}\special{fp}\special{pa -130 478}\special{pa -124 484}\special{fp}% +\special{pa -101 504}\special{pa -94 510}\special{fp}\special{pa -70 529}\special{pa -63 533}\special{fp}% +\special{pa -38 551}\special{pa -31 555}\special{fp}\special{pa -3 570}\special{pa 3 574}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa -477 -410}\special{pa -482 -404}\special{fp}\special{pa -501 -379}\special{pa -505 -372}\special{fp}% +\special{pa -521 -345}\special{pa -525 -338}\special{fp}\special{pa -539 -311}\special{pa -543 -303}\special{fp}% +\special{pa -554 -274}\special{pa -557 -267}\special{fp}\special{pa -566 -237}\special{pa -568 -229}\special{fp}% +\special{pa -575 -199}\special{pa -576 -191}\special{fp}\special{pa -580 -160}\special{pa -581 -152}\special{fp}% +\special{pa -583 -121}\special{pa -584 -113}\special{fp}\special{pa -584 -82}\special{pa -583 -74}\special{fp}% +\special{pa -581 -43}\special{pa -580 -35}\special{fp}\special{pa -576 -4}\special{pa -575 4}\special{fp}% +\special{pa -569 35}\special{pa -567 42}\special{fp}\special{pa -559 72}\special{pa -556 80}\special{fp}% +\special{pa -546 110}\special{pa -544 117}\special{fp}\special{pa -532 146}\special{pa -529 153}\special{fp}% +\special{pa -515 182}\special{pa -512 189}\special{fp}\special{pa -497 216}\special{pa -493 223}\special{fp}% +\special{pa -477 250}\special{pa -472 256}\special{fp}\special{pa -455 282}\special{pa -450 289}\special{fp}% +\special{pa -431 313}\special{pa -426 319}\special{fp}\special{pa -405 343}\special{pa -400 349}\special{fp}% +\special{pa -378 371}\special{pa -373 377}\special{fp}\special{pa -350 398}\special{pa -344 404}\special{fp}% +\special{pa -320 424}\special{pa -314 429}\special{fp}\special{pa -289 448}\special{pa -283 452}\special{fp}% +\special{pa -257 470}\special{pa -250 474}\special{fp}\special{pa -224 490}\special{pa -217 494}\special{fp}% +\special{pa -189 509}\special{pa -182 513}\special{fp}\special{pa -154 526}\special{pa -146 529}\special{fp}% +\special{pa -117 540}\special{pa -110 543}\special{fp}\special{pa -80 553}\special{pa -72 555}\special{fp}% +\special{pa -42 563}\special{pa -35 565}\special{fp}\special{pa -4 571}\special{pa 4 573}\special{fp}% +\special{pn 8}% +\special{pn 8}% +\special{pa -592 211}\special{pa -589 219}\special{fp}\special{pa -577 247}\special{pa -574 254}\special{fp}% +\special{pa -559 281}\special{pa -555 288}\special{fp}\special{pa -539 314}\special{pa -534 321}\special{fp}% +\special{pa -516 346}\special{pa -511 352}\special{fp}\special{pa -491 375}\special{pa -486 381}\special{fp}% +\special{pa -464 403}\special{pa -459 409}\special{fp}\special{pa -436 429}\special{pa -430 434}\special{fp}% +\special{pa -405 453}\special{pa -399 458}\special{fp}\special{pa -373 475}\special{pa -366 479}\special{fp}% +\special{pa -340 495}\special{pa -333 499}\special{fp}\special{pa -305 512}\special{pa -298 516}\special{fp}% +\special{pa -270 528}\special{pa -262 530}\special{fp}\special{pa -233 541}\special{pa -226 543}\special{fp}% +\special{pa -196 551}\special{pa -188 553}\special{fp}\special{pa -158 560}\special{pa -150 561}\special{fp}% +\special{pa -120 566}\special{pa -112 567}\special{fp}\special{pa -81 570}\special{pa -73 571}\special{fp}% +\special{pa -43 572}\special{pa -35 572}\special{fp}\special{pa -4 572}\special{pa 4 572}\special{fp}% +\special{pn 8}% \end{picture}}%
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyguideE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyGuideE.tex index 8ba5ed7707b..8ba5ed7707b 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyguideE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyGuideE.tex diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyguideJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyGuideJ.tex index 24f34577315..24f34577315 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyguideJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyGuideJ.tex diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex index 654d4da88c3..f2fece34741 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex @@ -569,16 +569,20 @@ Draw node of tree. In the following example We have three intersection points for a cubic curve and a line. -\begin{layer}{150}{0} -\putnotese{90}{5}{\input{Fig/putintersect}} -\end{layer} - +\begin{minipage}{80mm} \verb|Plotdata("1","x^3-4*x","x",["Num=200"]);|\\ \verb|Plotdata("2","1/2*x+1","x");|\\ \verb|Putintersect("P","gr1","gr2",1);|\\ \verb|Putintersect("Q","gr1","gr2",2);|\\ \verb|Putintersect("R","gr1","gr2",3);|\\ \verb|Pointdata("1",[P,Q,R],["size=4"]);| +\end{minipage}\hspace{5mm} +\begin{minipage}{30mm} + +\vspace{3mm} + +\input{Fig/putintersect} +\end{minipage} If there exist no such points, we have the message:"No intersect point" on the console. @@ -719,15 +723,16 @@ All options do not always reflect on Euclidean view. \input{Fig/arrowdata} \end{center} -\begin{layer}{150}{0} -\putnotese{75}{0}{ \input{Fig/trimarrow}} -\end{layer} -\hspace{20mm} - +\begin{minipage}{80mm} \verb| Circledata("1",[A,A.xy+[0.5,0]]);|\\ \verb| Circledata("2",[B,B.xy+[0.7,0]]);|\\ \verb| Arrowdata([A,B],["Cutend=[0.5,0.7]"]);|\\ \verb| Letter([A,"c","A",B,"c","B"]);|\\ +\end{minipage} +\hspace{5mm} +\begin{minipage}{40mm} +\input{Fig/trimarrow} +\end{minipage} \end{cmd} @@ -738,59 +743,39 @@ All options do not always reflect on Euclidean view. Options are: arrowhead size, arrowhead angle,position,shape,position.\\ \itemket{Examples}\mbox{} -\begin{layer}{150}{0} -\putnotese{0}{2}{When A is in the position} -\putnotese{0}{9}{as shown below.} -\putnotese{10}{18}{\input{Fig/ForRef-Arrowhead-1}} -\putnotese{60}{9}{(a) \tt Arrowhead(A,[-1,1]);} -\putnotese{60}{16}{(b) \tt Arrowhead([1,1],[-1,1],[2,60]);} -\putnotese{60}{23}{(c) \tt Arrowhead(A,[-1,1],[2,30,"b"]);} -\putnotese{60}{30}{(d) \tt Arrowhead([1,1],[-1,1],[2,20,"lc"]);} -\end{layer} - -\vspace{7mm} - -%\hspace{6mm} -\begin{layer}{150}{0} -\putnotese{17}{32}{(a)} -\putnotese{47}{32}{(b)} -\putnotese{77}{32}{(c)} -\putnotese{107}{32}{(d)} -\putnotese{15}{40}{\input{Fig/ForRef-Arrowhead-2}} -\putnotese{45}{40}{\input{Fig/ForRef-Arrowhead-3}} -\putnotese{75}{40}{\input{Fig/ForRef-Arrowhead-4}} -\putnotese{105}{40}{\input{Fig/ForRef-Arrowhead-5}} -\end{layer} - -\vspace{70mm} - -\vspace{50mm} - -\hspace{7mm} -\begin{layer}{150}{0} -\putnotese{-10}{0}{When D is on the curve crBC } -\putnotese{-10}{5}{as shown below.} -\putnotese{0}{7}{\input{Fig/ForRef-Arrowhead-6}} -\putnotese{16}{22}{crBC} -\putnotese{50}{0}{(e) \tt Arrowhead(D,"crBC");} -\putnotese{50}{7}{(f) \tt Arrowhead(D,"crBC",[2]);} -\putnotese{50}{14}{(g) \tt Arrowhead(D,"crBC",[2,30,"l"]);} -\putnotese{50}{21}{(h) \tt Arrowhead(D,"Invert(crBC)");} -\end{layer} +Let A=[1,1]. +\begin{enumerate}[(a)] +\item \verb|Arrowhead(A,[-1,1]);| +\item \verb|Arrowhead([1,1],[-1,1],[2,60]);| +\item \verb|Arrowhead(A,[-1,1],[2,30,"b"]);| +\item \verb|Arrowhead([1,1],[-1,1],[2,20,"lc"]);| +\end{enumerate} + +\hspace*{17mm}% +\Ltab{30mm}{(a)}\Ltab{30mm}{(b)}\Ltab{30mm}{(c)}\Ltab{30mm}{(d)}\\ +\hspace*{20mm}% +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-2}}% +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-3}} +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-4}} +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-5}} + +Let D be on the curve crBC. +\begin{enumerate}[(a)]% +\setcounter{enumi}{4}% +\item \verb|Arrowhead(D,"crBC");| +\item \verb|Arrowhead(D,"crBC",[2]);| +\item \verb|Arrowhead(D,"crBC",[2,30,"l"]);| +\item \verb|Arrowhead(D,"Invert(crBC)");| +\end{enumerate} + +\hspace*{17mm}% +\Ltab{30mm}{(e)}\Ltab{30mm}{f)}\Ltab{30mm}{(g)}\Ltab{30mm}{(h)}\\ +\hspace*{20mm}% +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-7}} +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-8}} +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-9}} +\Ltab{30mm}{\input{Fig/ForRef-Arrowhead-10}} -\vspace{3mm} -\hspace{6mm} -\begin{layer}{150}{0} -\putnotese{12}{27}{(e)} -\putnotese{42}{27}{(f)} -\putnotese{72}{27}{(g)} -\putnotese{102}{27}{(h)} -\putnotese{10}{28}{\input{Fig/ForRef-Arrowhead-7}} -\putnotese{40}{28}{\input{Fig/ForRef-Arrowhead-8}} -\putnotese{70}{28}{\input{Fig/ForRef-Arrowhead-9}} -\putnotese{100}{28}{\input{Fig/ForRef-Arrowhead-10}} -\end{layer} -\vspace*{6cm} \end{cmd} @@ -1006,82 +991,73 @@ You can specify the number of division among nodes (default value is 10). \itemket{Examples}\mbox{} -\begin{layer}{150}{0} -\putnotese{50}{15}{bz1} -\putnotese{58}{-10}{\input{Fig/checkbe1}} -\end{layer} - +\begin{minipage}[t]{70mm} 2nd-order Bezier curve\\ -\verb|Bezier("1",[A,B],[C]);|\\ - -\vspace{15mm} - -\begin{layer}{150}{0} -\putnotese{63}{17}{bzc} -\putnotese{70}{-5}{\input{Fig/checkbe2}} -\end{layer} - +\verb|Bezier("1",[A,B],[C]);| +\end{minipage}% +\hspace{5mm}bz1% +\begin{minipage}[t]{60mm} +\mbox{}\vspace{-15mm}\\ +\input{Fig/checkbe1} +\end{minipage}% + +\begin{minipage}[t]{70mm} 3rd-order Bezier curve\\ -\verb|Bezier("c",[A,B],[C,D]);|\\ - -\vspace{15mm} - -\begin{layer}{150}{0} -\putnotese{65}{20}{bz3} -\putnotese{75}{-5}{\input{Fig/checkbe3}} -\end{layer} - +\verb|Bezier("c",[A,B],[C,D]);| +\end{minipage}% +\hspace{5mm}bzc% +\begin{minipage}[t]{60mm} +\mbox{}\vspace{-15mm}\\ +\input{Fig/checkbe2} +\end{minipage}% + +\begin{minipage}[t]{70mm} Connecting two curves,\\ -\verb|Bezier("3",[A,B,C],[[D],[E,F]]);|\\ - -\vspace{20mm} - -\begin{layer}{150}{0} -\putnotese{70}{20}{bzS} -\putnotese{80}{10}{\input{Fig/checkbe4}} -\end{layer} - -Taking D,B,E on a straight line, it connects smoothly.\\ -\verb|Bezier("S",[A,B,C],[[D],[E,F]]);|\\ - -\vspace{25mm} - -\vspace{50mm} - -\begin{layer}{150}{0} -\putnotese{20}{27}{bzname} -\putnotese{25}{10}{\input{Fig/checkbe7}} -\end{layer} - -\verb|Bezier("name",[A,B,C,D],[E,F,G,H,K,L] );|\\ - -\vspace{30mm} - -\begin{layer}{150}{0} -\putnotese{35}{25}{bz1a} -\putnotese{50}{10}{\input{Fig/checkbe5}} -\end{layer} - -\verb|Bezier("1a",[A,B,C],[[D],[E,F]],["Num=3"]);|\\ +\verb|Bezier("3",[A,B,C],[[D],[E,F]]);| +\end{minipage}% +\hspace{5mm}bz3% +\begin{minipage}[t]{60mm} +\mbox{}\vspace{-15mm}\\ +\input{Fig/checkbe3} +\end{minipage}% + +\begin{minipage}[t]{70mm} +If D,B,E are on the straight line,\\ the curve becomes smoothly.\\ +\verb|Bezier("S",[A,B,C],[[D],[E,F]]);| +\end{minipage}% +\hspace{5mm}bzS% +\begin{minipage}[t]{60mm} +\mbox{}\vspace{-15mm}\\ +\input{Fig/checkbe4} +\end{minipage}% + +\noindent +\verb|Bezier("name",[A,B,C,D],[E,F,G,H,K,L] );| -\vspace{30mm} +\begin{center} +\input{Fig/checkbe7} +\end{center} -\begin{layer}{150}{0} -\putnotese{35}{20}{bzd5e} -\putnotese{50}{10}{\input{Fig/checkbe6}} -\end{layer} +\noindent +\verb|Bezier("1a",[A,B,C],[[D],[E,F]],["Num=3"]);| -\verb|Bezier("d5e",[A,B,C],[[D],[E,F]],["Num=200","da"]);|\\ +\begin{center} +\input{Fig/checkbe5} +\end{center} -\vspace{40mm} +\noindent +\verb|Bezier("d5e",[A,B,C],[[D],[E,F]],["Num=200","da"]);| -\begin{layer}{150}{0} -\putnotese{20}{30}{bz1} -\putnotese{20}{13}{\input{Fig/checkbe8}} -\end{layer} +\begin{center} +\input{Fig/checkbe6} +\end{center} +\noindent \verb|Bezier("1",[A,B,C,D],[E,F,G,H,K,L],["Num=[2,3,4]"]);|\\ -\vspace{30mm} + +\begin{center} +\input{Fig/checkbe8} +\end{center} \end{cmd} %------------Beziersmooth-------------------------------- @@ -3261,8 +3237,9 @@ Draw the point A near the origin. %-------------Slider------------------------------- \begin{cmd}{Slider}{slider} -\itemket{Usage}Slider("endpoint1-pt-endpoint2",endpoint1,endpoint2); -\itemket{Description}Generic function to make a slider on a Euclidean view.\\ +\itemket{Usage}Slider("endpoint1-pt-endpoint2",endpoint1,endpoint2);\vspace{-2mm} +\itemket{}Slider("pt",endpoint1,endpoint2);\\ +\itemket{Description}Generic function to make a slider on a Euclidean view. \itemket{Examples}\mbox{} \verb|Slider("A-C-B",[-5,-2],[5,-2]); | // \verb|C| is movable.\\ @@ -3763,10 +3740,8 @@ Example1 \vspace{\baselineskip} Example2 -\begin{layer}{150}{0} -\putnotese{70}{50}{ \input{Fig/mxtex03}} -\end{layer} +\begin{minipage}[t]{65mm} \verb| fx="x^2-x-3"; |\\ \verb| cmdL=[ |\\ \verb| "ans:solve",[fx,"x"], |\\ @@ -3785,7 +3760,12 @@ Example2 \verb| Plotdata("1",fx,"x"); |\\ \verb| Expr([-2,-0.5],"e",tx1); |\\ \verb| Expr([2,-0.5],"e",tx2); |\\ +\end{minipage}\hspace{5mm}% +\begin{minipage}[t]{65mm} +\mbox{}\vspace{20mm} +\input{Fig/mxtex03} +\end{minipage} \end{cmd} %========= Risa/Asir ======= @@ -3884,10 +3864,6 @@ Option ``$+$" is for the left figure, and ``$-$" for the right. %%\itemket{Details} \itemket{Examples} \mbox{} -\begin{layer}{150}{0} -\putnotese{80}{13}{ \includegraphics[bb=0 0 287.01 228.01 , width=3cm]{Fig/meshlab03.pdf} } -\end{layer} - \verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\ \verb| p1=[2,0,0]; |\\ \verb| p2=[0,2,0]; |\\ @@ -3895,7 +3871,11 @@ Option ``$+$" is for the left figure, and ``$-$" for the right. \verb| plane=[[p1,p2,p3],[[1,2,3]]]; |\\ \verb| Mkobjplatecmd("1",plane,[0.05]); |\\ \verb| Mkobjcrvcmd("2","ax3d"); |\\ -\verb| Mkviewobj("plane",Concatcmd([oc1,oc2]),["m","v"]); | +\verb| Mkviewobj("plane",Concatcmd([oc1,oc2]),["m","v"]);| + +\begin{center} +\includegraphics[bb=0 0 287.01 228.01 , width=50mm]{Fig/meshlab03.pdf} +\end{center} \end{cmd} %-------------Mkobjpolycmd------------------------------- @@ -3943,11 +3923,7 @@ The arguments are their siizes, angles of rotations, directions of the viewpoint %%\itemket{Details} \itemket{Examples} \mbox{} -This function use Maxima. - -\begin{layer}{150}{0} -\putnotese{70}{0}{ \includegraphics[bb=0 0 287.01 189.01 , width=4cm]{Fig/meshlab06.pdf}} -\end{layer} +This function uses Maxima. \verb| fd=[ |\\ \verb| "z=(x^2+y^2)",|\\ @@ -3957,6 +3933,9 @@ This function use Maxima. \verb| Mkobjthickcmd("1",fd,[40,40,0.2,"+n+s-e-w+","assume(R>0)"]);|\\ \verb| Mkviewobj("pala",oc1,["m","v","Wait=5"]); |\\ +\begin{center} +\includegraphics[bb=0 0 287.01 189.01 , width=5cm]{Fig/meshlab06.pdf} +\end{center} \end{cmd} %---------------Mkviewobj----------------------------- @@ -4178,6 +4157,30 @@ It is necessary to develop an environment that uses C language, but now it is st \itemket{Remark}If \verb|Ketinit3d(0)| is used, the subscreen is not displayed. Ketinit () is also placed in the Initialization Slot, unlike 2D. \end{cmd} +%------------ Setangle -------------------------------- +\begin{cmd}{Setangle}{setangle} +\itemket{Usage}Setanlge(TH,FI) +\itemket{Description}Specify rotation angle +\itemket{Details}Specify the TH and FI values of the slider that determines the rotation angle (position of the viewpoint).\\ +For example, if you set \verb| Setangle (70,40) |, then TH and FI are in that position. Since the slider is fixed, if you want to activate the slider again, comment it and re-execute it.\\ +If you want to decide only the initial state\\ +\verb| if (!Ptselected (), Setangle (70, 40))|;\\ +or\\ +\verb| if (!Isangle (), Setangle (70, 40));|\\ + The slider becomes effective. + +If any point on the slider is selected, the figure button is also valid. Click anywhere on the screen and return to the original if you deselect the point selection state. + +\end{cmd} + +%------------ Getangle -------------------------------- +\begin{cmd}{Getangle}{getangle} +\itemket{Usage}Getanlge() +\itemket{Description}Acquire rotation angle +\itemket{Details}Acquires the rotation angle (viewpoint position) TH and FI that can be set with the slider. This is the value displayed on the left side of the slider. The return value is the list [TH, FI], and the angle is expressed by the Degree measure. In addition, the internal variables are THETA and PHI, expressed in circular measure. +\end{cmd} + + %------------Start3d-------------------------------- \begin{cmd}{Start3d}{start3d} \itemket{Usage}Start3d(option) @@ -4319,16 +4322,13 @@ Make reference to \hyperlink{partcrv3d}{Partcrv3d()} \verb|Spaceline("1",[[2,5,1],[4,2,3]]);| //draw the line between two points\\ \verb|Spaceline("2",[A,B,C,A]);| //draw the triangle ABC\\ - -\begin{layer}{150}{0} -\putnotese{100}{-5}{ \input{Fig/oresenex01}} -\end{layer} - \verb|pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; |\\ \verb|Spaceline("1",pt); |\\ \verb|Pointdata3d("1",pt,["Size=3"]);| -\vspace{30mm} +\begin{center} +\input{Fig/oresenex01} +\end{center} \end{cmd} %-------------Spacecurve------------------------------- \begin{cmd}{Spacecurve}{spacecurve} @@ -4495,12 +4495,9 @@ Each name is appended to the end. \itemket{Details}Make polyhedral plot data with VertexEdgeFace (). For this plot data, hidden surfaces (sides) are hidden-line processed and displayed. The second argument name2 is the same as the name given by VertexEdgeFace (). The hidden line type is specified by the option "Hidden = line type". Hidden lines are not displayed by default setting. \itemket{Examples} \mbox{} -\begin{layer}{150}{0} -\putnotese{100}{0}{ \input{Fig/phparadata04}} -\end{layer} - -Draw a tetrahedron. +To draw a tetrahedron, +\begin{minipage}[t]{100mm} \verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]);|\\ \verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\ \verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\ @@ -4508,6 +4505,14 @@ Draw a tetrahedron. \verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\ \verb| VertexEdgeFace("1",phd);|\\ \verb| Phparadata("1","1",["Hidden=do"]);|\\ +\end{minipage}\hspace{5mm}% +\begin{minipage}[t]{30mm} +\mbox{}\vspace{-15mm} + +\input{Fig/phparadata04} +\end{minipage} + + A tetrahedron is drawn by VertexEdgeFace (), but it is hidden by Phparadata (). Since it is correctly output if it is drawn with the figure button, it is good to execute Phparadata () after confirming it by displaying it on the screen before executing Phparadata (). @@ -4581,7 +4586,7 @@ However, in order to do hidden line processing, surface data is necessary, so af Also, in the drawing of the surface model, it takes time to process the hidden line, so it is assumed to use the C language. Therefore, ExeccmdC () which draws using C language is used together. - \begin{center} \input{Fig/surfacemodel} \end{center} + \begin{center} \input{Fig/surfacemodelE} \end{center} The form of the argument is an equation and a list of character strings for the domain of the variable. There are three patterns of equations as follows. @@ -4704,25 +4709,27 @@ option2="nodisp" or line type of hidden line. Default is "do".\\ If we specify only option2 then we denote that option1 is empty list:[]. \itemket{Examples} \mbox{} -\begin{layer}{150}{0} -\putnotese{95}{0}{ \input{Fig/sfbdpara01}} -\putnotese{95}{45}{ \input{Fig/sfbdpara02}} -\end{layer} -Delete hidden lines and display +Hidden lines are not shown or shown. \verb| fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\ \verb| if(Isangle(),|\\ \verb| Sf3data("1",fd);|\\ \verb| ,|\\ \verb| Startsurf();|\\ -\verb| Sfbdparadata("1",fd);|\\ -\verb| ExeccmdC("1",[],["nodisp"]);|\\ -\verb| );|\\ +\verb| Sfbdparadata("1",fd,[],["nodisp"); // Change "nodisp" to "do"|\\ +\verb| ExeccmdC("1"]);|\\ +\verb| );| + +\begin{center} +\input{Fig/sfbdpara01}\hspace{10mm}% +\input{Fig/sfbdpara02} +\end{center} + Make the whole thick with a solid line and - display the hidden line with a dotted line. + display the hidden line with a dotted line (Default). \verb| ExeccmdC("1",["dr,2"]);| @@ -4759,6 +4766,20 @@ When displaying two curved surfaces, name of Sfbdparadata () is set to "1" and " \begin{center} \input{Fig/sfbdpara05} \end{center} +\vspace{\baselineskip} +\verb|fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",|\\ +\verb| "u=[0,2*pi]","v=[0,2*pi]","s"];|\\ +\verb| if(Ptselected(),|\\ +\verb| Sf3data("1",fd);|\\ +\verb| ,|\\ +\verb| Startsurf();|\\ +\verb| Sfbdparadata("1",fd);|\\ +\verb| Wireparadata("1","sfbd3d1",fd,12,12,[],["nodisp"]);|\\ +\verb| ExeccmdC("1",[],["nodisp"]);|\\ +\verb| );|\\ + +\begin{center} \input{Fig/wirepara5} \end{center} + \end{cmd} %-------------Wireparadata------------------------------- \begin{cmd}{Wireparadata}{wireparadata} @@ -4798,18 +4819,21 @@ Change the following code. \input{Fig/wirepara2} \end{center} -\verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]", |\\ -\verb| "v=[0,2*pi]","s"]; |\\ -\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); | +\verb| fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]", |\\ +\verb| "v=[0,2*pi]","s"]; |\\ +\verb| if(Ptselected(),|\\ +\verb| Sf3data("1",fd);|\\ +\verb| ,|\\ +\verb| Startsurf();|\\ +\verb| Sfbdparadata("1",fd);|\\ +\verb| Wireparadata("1","sfbd3d1",fd,12,12);|\\ +\verb| ExeccmdC("1");|\\ +\verb| );|\\ \begin{center} \input{Fig/wirepara3} \end{center} -\begin{layer}{150}{0} -\putnotese{90}{15}{ \input{Fig/wirepara4}} -\end{layer} - \verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)","u=[0,pi]",|\\ \verb| "v=[0,2*pi]","s"];|\\ \verb|if(Isangle(),|\\ @@ -4827,13 +4851,9 @@ Change the following code. \verb| );|\\ \verb|);| -\vspace{\baselineskip} -\verb|fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)",|\\ -\verb| "u=[0,2*pi]","v=[0,2*pi]","s"];|\\ -\verb|Sfbdparadata("1",fd);|\\ -\verb|Wireparadata("1","sfbd3d1",fd,12,12,[""]); | - -\begin{center} \input{Fig/wirepara5} \end{center} +\begin{center} +\input{Fig/wirepara4} +\end{center} \end{cmd} %-------------Crvsfparadata------------------------------- @@ -5001,27 +5021,32 @@ The return value of \verb | flag 1, flag 2 | when changing \verb | p2 | with the \verb| Spaceline("1",[p1,p2]);|\\ \verb| Spaceline("2",[p3,p4,p5,p3]);|\\ \verb| ret=IntersectsgpL("P",[p1,p2],[p3,p4,p5],"put");|\\ -\verb| println("flag1="+ret_2+": flag2="+ret_3);|\\ - -\begin{layer}{150}{0} -\putnotese{10}{20}{ \input{Fig/wire01}} -\putnotese{80}{20}{ \input{Fig/wire02}} -\end{layer} +\verb| println("flag1="+ret_2+": flag2="+ret_3);| \verb| p2=[0,0,1/2]; p2=[-1,1,1];|\\ \verb| flag1=false : flag2=true flag1=true : flag2=true |\\ -\vspace{40mm} -\begin{layer}{150}{0} -\putnotese{10}{10}{ \input{Fig/wire03}} -\putnotese{80}{10}{ \input{Fig/wire04}} -\end{layer} -\verb| p2=[1,2,1]; p2=[1,0,1/2];|\\ -\verb| flag1=true : flag2=false flag1=false : flag2=false |\\ -\vspace{30mm} +\hspace*{20mm} +\begin{minipage}{60mm} +\input{Fig/wire01} +\end{minipage}\hspace{10mm}% +\begin{minipage}{60mm} +\input{Fig/wire02} +\end{minipage} + +\verb| p2=[1,2,1]; p2=[1,0,1/2];|\\ +\verb| flag1=true : flag2=false flag1=false : flag2=false | + +\hspace*{20mm} +\begin{minipage}{60mm} +\input{Fig/wire03} +\end{minipage}\hspace{10mm}% +\begin{minipage}{60mm} +\input{Fig/wire04} +\end{minipage} -cutcube +{\bf Cutcube} \verb| Hn=3; |\\ \verb| Putaxes3d(Hn); |\\ @@ -5060,10 +5085,6 @@ add next script (right figure) \itemket{Examples} \mbox{} Cross section of cone. -\vspace{\baselineskip} -\begin{layer}{150}{0} -\putnotese{70}{0}{\input{Fig/sfcut}} -\end{layer} \verb|fd=[|\\ \verb| "p",|\\ \verb| "x=r*cos(t)","y=r*sin(t)","z=2*(2-r)",|\\ @@ -5072,7 +5093,11 @@ Cross section of cone. \verb|Startsurf(); |\\ \verb|Sfbdparadata("1",fd);|\\ \verb|Sfcutparadatacdy("1","y+2*z=3",fd);|\\ -\verb|ExeccmdC("1");|\\ +\verb|ExeccmdC("1");| + +\begin{center} +\input{Fig/sfcut} +\end{center} \end{cmd} %--------------Partcrv3d------------------------------ @@ -5276,10 +5301,6 @@ Return the points A,B on the plane which is passing through the point P and orth Draw point A,B,C,D by draw tool of Cinderella. -\begin{layer}{120}{0} -\putnotese{100}{20}{ \input{Fig/perpplane}} -\end{layer} - \verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\ \verb| Putpoint3d(["O",[0,0,0]]); |\\ \verb| Putpoint3d(["P",[1,1,1]]); |\\ @@ -5293,7 +5314,11 @@ Draw point A,B,C,D by draw tool of Cinderella. \verb| Spaceline("1",[A,B,C,D,A]); |\\ \verb| Arrowdata([O,P],["dr,2"]); |\\ \verb| Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); |\\ -\verb| Skeletonparadata("1"); |\\ +\verb| Skeletonparadata("1"); | + +\begin{center} +\input{Fig/perpplane} +\end{center} \end{cmd} %-------------Perppt------------------------------- @@ -5517,10 +5542,6 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t \itemket{Details} The position is the space coordinate. Other than that it is the same as Letter(). \itemket{Examples} \mbox{} -\begin{layer}{150}{0} -\putnotese{110}{10}{ \input{Fig/letter3d}} -\end{layer} - \verb|Putpoint3d("A",2*[0,0,2*sqrt(6)/3]);|\\ \verb|Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\ \verb|Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\ @@ -5533,7 +5554,9 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t \verb|Letter3d([A3d,"ne","A",B3d,"w","B",C3d,"se","C",D3d,"e","D"]);|\\ \verb|Letter3d(M3d,"sw","M",["Color=blue"]);|\\ - +\begin{center} +\input{Fig/letter3d} +\end{center} \end{cmd} \newpage @@ -5818,7 +5841,8 @@ Find on the screen (not in the space) intersection points (\verb|tmp_1|, \verb|t \hyperlink{wireparadata}{Wireparadata} \> draw the surface by wire frame data with performing hidden line processing.\\ \hyperlink{xyzax3data}{Xyzax3data} \> draw the coordinate axis.\\ \hyperlink{xyzcoord}{Xyzcoord} \> return the 3D-coordinate of the point P.\\ - +\hyperlink{setangle}{Setangle} \>Set TH and FI\\ +\hyperlink{getangle}{Getangle}\>Get TH and FI\\ \end{tabbing} \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex index 815762ae62c..26e1fdb5f63 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex @@ -4,6 +4,7 @@ % \usepackage{amsmath,newtxmath} \usepackage[dvipdfmx]{graphicx,color} \usepackage{wrapfig} +\usepackage{jsverb} \usepackage[dvipdfmx,bookmarks=false,colorlinks=true,linkcolor=blue]{hyperref} \setmargin{20}{20}{15}{25} \usepackage{setspace} @@ -15,7 +16,7 @@ \author{\ketcindy\ Project Team} \maketitle -\begin{center} - 第3.2版 -\end{center} +\begin{center}- 第3.2版 -\end{center} \hypertarget{index}{} \tableofcontents @@ -33,14 +34,14 @@ \vspace{\baselineskip} \hypertarget{ketinit}{} -\item[関数] Ketinit(options) -\item[機能] \ketcindy を初期化する。平面図形ではDrawスロットに,空間図形ではInitialization スロットの冒頭に記述する必要がある。 -\item[説明] option 作業サブフォルダ,縦方向の倍率と描画領域を設定する。\\ +\item[関数]Ketinit(options) +\item[機能]\ketcindy を初期化する。平面図形ではDrawスロットに,空間図形ではInitialization スロットの冒頭に記述する必要がある。 +\item[説明]option 作業サブフォルダ,縦方向の倍率と描画領域を設定する。\\ \phantom{option }通常は不要で,\verb|Ketinit()| だけでよい。\\ 【例】 -\verb|Ketinit()| :サブフォルダ\verb|"fig"|,倍率1,描画領域 $-5 \leq x \leq 5 , -5 \leq y \leq 5$ +\verb|Ketinit()| :サブフォルダ\verb|"fig"|,倍率1,描画領域 $-5 \leq x \leq 5 , -5 \leq y \leq 5$ \verb|Ketinit("")| : サブフォルダはcindyファイルと同じ @@ -53,9 +54,9 @@ \vspace{\baselineskip} \hypertarget{setfiles}{} -\item[関数] Setfiles(filename) -\item[機能] 出力するファイル名の設定 -\item[説明] 出力するTexのファイル名を指定する。 +\item[関数]Setfiles(filename) +\item[機能]出力するファイル名の設定 +\item[説明]出力するTexのファイル名を指定する。 出力するファイル名は 初期設定では,作図しているCinderellaのファイル名。 @@ -63,49 +64,49 @@ これに対し,triangle.cdy で作図しているときに,grav.tex で出力したい場合は -\hspace{10mm} \verb|Setfiles("grav");| +\hspace{10mm}\verb|Setfiles("grav");| とすると,grav.tex ができる。 \vspace{\baselineskip} \hypertarget{setparent}{} -\item[関数] Setparent(filename) -\item[機能] Parent ボタンで出力するファイル名の設定 -\item[説明] Figpdf() を使ってParent ボタンで出力するTexのファイル名を指定する。 +\item[関数]Setparent(filename) +\item[機能]Parent ボタンで出力するファイル名の設定 +\item[説明]Figpdf() を使ってParent ボタンで出力するTexのファイル名を指定する。 Parent ボタンで出力するファイル名は 初期設定がないので,指定する必要がある。 たとえば,triangle.cdy で作図しているときに,図サイズの grav.pdf を作る場合, -\hspace{10mm} \verb|Setparent("grav");| +\hspace{10mm} \verb|Setparent("grav");| -とすると,図のTeXファイル triangle.tex と PDFを作る grav.tex ができ,ここから grav.pdf ができる。 +とすると,図のTeXファイルtriangle.tex と PDFを作る grav.tex ができ,ここから grav.pdf ができる。 \vspace{\baselineskip} \hypertarget{changework}{} -\item[関数] Changework(パス名) -\item[機能] 作業ディレクトリを指定(変更)する -\item[説明] 作業ディレクトリは, 初期設定では,現在作図しているファイルのあるフォルダ(ディレクトリ)の fig フォルダである。これを変更する。 +\item[関数]Changework(パス名) +\item[機能]作業ディレクトリを指定(変更)する +\item[説明]作業ディレクトリは, 初期設定では,現在作図しているファイルのあるフォルダ(ディレクトリ)の fig フォルダである。これを変更する。 \vspace{\baselineskip} \hypertarget{addpackage}{} -\item[関数] Addpackage(パッケージ名) -\item[機能] TeXのパッケージを追加する -\item[説明] プレビュー用のTeXソースにパッケージを追加する。 +\item[関数]Addpackage(パッケージ名) +\item[機能]TeXのパッケージを追加する +\item[説明]プレビュー用のTeXソースにパッケージを追加する。 \vspace{\baselineskip} - 【例】emath パッケージを追加する。 + 【例】emathパッケージを追加する。 -\hspace{10mm} \verb|Addpackage("emath"); | +\hspace{10mm}\verb|Addpackage("emath"); | または -\hspace{10mm} \verb|Addpackage(["emath"]); | +\hspace{10mm}\verb|Addpackage(["emath"]); | により, - プレビュー用のTeXのプリアンブルに - -\hspace{10mm} \verb| \usepackage{emath}| +プレビュー用のTeXのプリアンブルに + +\hspace{10mm}\verb| \usepackage{emath}| が追加されて,emath のコマンドが利用できる。 @@ -117,12 +118,12 @@ Parent ボタンで出力するファイル名は 初期設定がないので, \vspace{\baselineskip} \hypertarget{usegraphics}{} -\item[関数] Usegraphics("pict2e") -\item[機能] TeXのグラフィクスパッケージを \verb|"pict2e"| に変更する -\item[説明] デフォルトのパッケージは \verb|"tpic"| であるが,これを\verb|"pict2e"| に変更する。 +\item[関数]Usegraphics("pict2e") +\item[機能]TeXのグラフィクスパッケージを\verb|"pict2e"| に変更する +\item[説明]デフォルトのパッケージは \verb|"tpic"| であるが,これを\verb|"pict2e"| に変更する。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage @@ -132,9 +133,9 @@ Parent ボタンで出力するファイル名は 初期設定がないので, \vspace{\baselineskip} \begin{description} \hypertarget{addax}{} -\item[関数] Addax(0または1) -\item[機能] 座標軸の表示 -\item[説明] 引数が1のとき座標軸を描き,0のとき描かない。 +\item[関数]Addax(0または1) +\item[機能]座標軸の表示 +\item[説明]引数が1のとき座標軸を描き,0のとき描かない。 初期設定は1で,座標軸を描かない場合のみ \verb|Addax(0)| とすればよい。 \vspace{\baselineskip} @@ -143,18 +144,18 @@ Parent ボタンで出力するファイル名は 初期設定がないので, 左図が 初期設定(座標軸表示) Addax(0) をつけると右図になる。 \begin{verbatim} - Listplot([B,A,C]); - Letter([A,"ne","A",B,"se","B",C,"se","C"]); +Listplot([B,A,C]); +Letter([A,"ne","A",B,"se","B",C,"se","C"]); \end{verbatim} \vspace{\baselineskip} -\hspace{10mm} \input{Fig/addax1} \input{Fig/addax2} +\hspace{10mm} \input{Fig/addax1}\input{Fig/addax2} \hypertarget{setax}{} -\item[関数] Setax() -\item[機能] 座標軸の書式を設定する。 -\item[説明] Cinderellaの描画面には反映されない。(座標軸は描かれない) +\item[関数]Setax() +\item[機能]座標軸の書式を設定する。 +\item[説明]Cinderellaの描画面には反映されない。(座標軸は描かれない) 引数はリストで与え,要素は順番に @@ -162,17 +163,17 @@ Parent ボタンで出力するファイル名は 初期設定がないので, 矢印の大きさの倍率を指定するときは,"a0.5"のようにする。\\ また,矢印のスタイルは Setarrowで指定する。 -2. 横軸名 初期設定は \verb|"x"| +2. 横軸名 初期設定は \verb|"x"| -3. 横軸名の位置 初期設定は \verb|"e"| +3. 横軸名の位置 初期設定は \verb|"e"| -4. 縦軸名 初期設定は \verb|"y"| +4. 縦軸名 初期設定は \verb|"y"| -5. 縦軸名の位置 初期設定は \verb|"n"| +5. 縦軸名の位置 初期設定は \verb|"n"| -6. 原点名 初期設定は \verb|"O"|(文字として書かれる) +6. 原点名 初期設定は \verb|"O"|(文字として書かれる) -7. 原点名の位置 初期設定は \verb|"sw"| +7. 原点名の位置 初期設定は \verb|"sw"| 8. 線種 @@ -180,7 +181,7 @@ Parent ボタンで出力するファイル名は 初期設定がないので, 10. ラベルの色 -それぞれダブルクウォートでくくる。色は,色名が使える。"red" など。 +それぞれダブルクォートでくくる。色は,色名が使える。"red" など。 10の引数のうちn番目だけを指定する場合は,[n,"内容"]で指定できる。 @@ -188,16 +189,16 @@ Parent ボタンで出力するファイル名は 初期設定がないので, \vspace{\baselineskip} 【例】座標軸の先端を矢印にし,原点の北西にOを書く。 - + \hspace{10mm} \verb|Setax(["a","","","","","","nw"]);| 【例】原点の北西にOを書く。 -\hspace{10mm} \verb|Setax([7,"nw"]);| +\hspace{10mm}\verb|Setax([7,"nw"]);| 【例】軸を赤の点線にする。 -\hspace{10mm} \verb|Setax(["","","","","","","","do","red"]);| +\hspace{10mm}\verb|Setax(["","","","","","","","do","red"]);| 【例】先端を矢印にし,横軸を$\theta$,縦軸を$x$にして矢じりの左側に書く。 @@ -209,81 +210,83 @@ Parent ボタンで出力するファイル名は 初期設定がないので, \vspace{\baselineskip} \hypertarget{drwxy}{} -\item[関数] Drwxy(), Drwxy(options) -\item[機能] 指定する手順で座標軸を描く -\item[説明] 座標軸は 初期設定では最後に描かれるが,座標軸上に白抜きの点を表示するなど,先に描くことが必要な場合に用いる。描画面には座標軸は表示されない。 +\item[関数]Drwxy(), Drwxy(options) +\item[機能]指定する手順で座標軸を描く +\item[説明]座標軸は 初期設定では最後に描かれるが,座標軸上に白抜きの点を表示するなど,先に描くことが必要な場合に用いる。描画面には座標軸は表示されない。 options は次のリストである。\\ \hspace*{10mm}["Origin=",\ "Xrng=",\ "Yrng="] +\begin{layer}{150}{0} +\putnotese{75}{10}{\scalebox{0.8} {\input{Fig/drwxy}}} +\end{layer} + 【例】点$(-\pi,\ 0)$と$(\pi,\ 0)$を白抜きの点で表示する。 \begin{verbatim} - Setax([7,"se"]); - Setpt(5); - Pointdata("1",[[-pi,0]],["Inside=0"]); - Drwxy(); - Plotdata("1","sin(x)","x",["dr","Num=200"]); - Pointdata("2",[[pi,0]],["Inside=0"]); +Setax([7,"se"]); +Setpt(5); +Pointdata("1",[[-pi,0]],["Inside=0"]); +Drwxy(); +Plotdata("1","sin(x)","x",["dr","Num=200"]); +Pointdata("2",[[pi,0]],["Inside=0"]); \end{verbatim} - このスクリプトでは,\verb| Pointdata("1",[[-pi,0]],["Inside=0"]);| を実行したのち座標軸を描き,次に,$y=\sin x$ のグラフを描いてから,再び \verb| ["Inside=0"]);|にして実行するので,点($-\pi$,0) の上を座標軸が通り,点($\pi$,0)は座標軸とグラフの上を通るので白抜きになる。\\ - -\begin{center} \input{Fig/drwxy}\end{center} +このスクリプトでは,\verb| Pointdata("1",[[-pi,0]],["Inside=0"]);| を実行したのち座標軸を描き,次に,$y=\sin x$ のグラフを描いてから,再び \verb| ["Inside=0"]);|にして実行するので,点($-\pi$,0) の上を座標軸が通り,点($\pi$,0)は座標軸とグラフの上を通るので白抜きになる。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{definecolor}{} -\item[関数] Definecolor(色名 , 定義のリスト) -\item[機能] 色名を定義する -\item[説明] ユーザー命名の色名を定義する。定義リストは RGBまたはCMYKのリスト +\item[関数]Definecolor(色名 , 定義のリスト) +\item[機能]色名を定義する +\item[説明]ユーザー命名の色名を定義する。定義リストは RGBまたはCMYKのリスト -各色0〜1の範囲で指定する。定義した色名は,Setcolor(color,options) で使うことができる。 +各色0〜1の範囲で指定する。定義した色名は,Setcolor(color,options)で使うことができる。 なお,\ketcindy では,68色を色名で使うことができる。色の名称は\hyperlink{colorcodelist}{カラーコード一覧} 参照。 \vspace{\baselineskip} - 【例】暗い紫色を darkmaz の名称で定義して使う。 +【例】暗い紫色を darkmaz の名称で定義して使う。 \begin{verbatim} - Definecolor("darkmaz",[0.8,0,0.8]); - Setcolor("darkmaz"); +Definecolor("darkmaz",[0.8,0,0.8]); +Setcolor("darkmaz"); \end{verbatim} \vspace{\baselineskip} \hypertarget{setcolor}{} -\item[関数] Setcolor(color,options) -\item[機能] 描画色の設定 -\item[説明] 引数colorはカラーコードまたは色の名称。 +\item[関数]Setcolor(color,options) +\item[機能]描画色の設定 +\item[説明]引数colorはカラーコードまたは色の名称。 カラーコードはRGBまたはCMYKをリストで与える。各色0〜1。 - + 色の名称は\hyperlink{colorcodelist}{カラーコード一覧} の68色が指定できる。 \vspace{\baselineskip} -【例】 Cinderellaの描画ツールとCindyScriptで線分AB,ACを60°の角をなすように描いておき,点DとEを弧の両端になるように設定して +【例】Cinderellaの描画ツールとCindyScriptで線分AB,ACを60°の角をなすように描いておき,点DとEを弧の両端になるように設定して \begin{verbatim} - Setcolor([1,0,0]); - Circledata([A,D],["Rng=[0,pi/3]"]); - Arrowhead(E,[-1,0.8],[2,1]); +Setcolor([1,0,0]); +Circledata([A,D],["Rng=[0,pi/3]"]); +Arrowhead(E,[-1,0.8],[2,1]); \end{verbatim} を実行すると,矢じりつきの弧を赤で表示することができる。 - -1行目は,\verb|Setcolor("red");| でもよい。 + +1行目は,\verb|Setcolor("red");|でもよい。 座標軸を描く場合は,このあと \verb|Setcolor("black")| で黒に戻しておかないと,座標軸が赤で表示されてしまうので要注意。 \vspace{\baselineskip} \hspace{20mm} \includegraphics[width=3.5cm,bb=0 0 161 134]{Fig/setcolor.pdf} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{deffun}{} -\item[関数] Deffun(関数名 , 定義のリスト) -\item[機能] 関数を定義する -\item[説明] 関数定義は,CindyScript の関数定義 f(x):=式 でもできるが,Deffun()を使うことにより,Rでこの関数を利用することができる。目的に応じて使い分けるとよい。 +\item[関数]Deffun(関数名 , 定義のリスト) +\item[機能]関数を定義する +\item[説明]関数定義は,CindyScript の関数定義 f(x):=式 でもできるが,Deffun()を使うことにより,Rでこの関数を利用することができる。目的に応じて使い分けるとよい。 式のリストには if文を用いた場合分けの関数式を記述することもできる。 @@ -299,21 +302,21 @@ Plotdata("1","f(x)","x"); \vspace{\baselineskip} \hspace{20mm}\scalebox{0.9}{\input{Fig/deffun01}} - + \vspace{\baselineskip} - 【例】$f(x)=\left\{\begin{array}{l}1 (x\geq 0)\\ -1 (x<0)\\ \end{array}\right.$ を定義してグラフを描く。 +【例】$f(x)=\left\{\begin{array}{l}1 (x\geq 0)\\ -1 (x<0)\\ \end{array}\right.$ を定義してグラフを描く。 \begin{verbatim} - Deffun("f(x)",["regional(y)","if(x>=0,y=1,y=-1)","y"]); - Plotdata("1","f(x)","x",["Dis=1","Num=100"]; +Deffun("f(x)",["regional(y)","if(x>=0,y=1,y=-1)","y"]); +Plotdata("1","f(x)","x",["Dis=1","Num=100"]; \end{verbatim} \vspace{\baselineskip} \hspace{20mm}\scalebox{0.9}{\input{Fig/deffun02}} - if 文はネストすることができる。 +if 文はネストすることができる。 \begin{verbatim} - Deffun("f(x)",["regional y","if(x>1,y=1,if(x>-1,y=x,y=-1))","y"]); +Deffun("f(x)",["regional y","if(x>1,y=1,if(x>-1,y=x,y=-1))","y"]); \end{verbatim} \vspace{\baselineskip} @@ -322,43 +325,43 @@ Plotdata("1","f(x)","x"); \vspace{\baselineskip} \hypertarget{defvar}{} -\item[関数] Defvar(文字列) -\item[機能] 変数を定義する -\item[説明] 変数の定義をRと共有する。 +\item[関数]Defvar(文字列) +\item[機能]変数を定義する +\item[説明]変数の定義をRと共有する。 -【例】 \verb|Defvar("const=3");| +【例】\verb|Defvar("const=3");| \vspace{\baselineskip} - 複数の変数を定義するときはリストにする。 - -【例】 \verb|Defvar([“a”,3,”b”,1]);| +複数の変数を定義するときはリストにする。 + +【例】\verb|Defvar([“a”,3,”b”,1]);| \vspace{\baselineskip} \hypertarget{fontsize}{} -\item[関数] Fontsize(記号) -\item[機能] フォントサイズを設定する -\item[説明] 次に Fontsize() を実行するまで有効\\ - 記号は,"t" , "ss" , "f", "s" , "n" , "la", "La", "LA", "h" , "H"\\ +\item[関数]Fontsize(記号) +\item[機能]フォントサイズを設定する +\item[説明]次に Fontsize() を実行するまで有効\\ +記号は,"t" , "ss" , "f", "s" , "n" , "la","La", "LA", "h" , "H"\\ 【例】作図ツールの「点を加える」で,A〜Gの点をとっておく。小さい方からいくつか表示する。 \begin{verbatim} - Pointdata("1",[A,B,C,D,E,F,G],["Size=2"]); - Fontsize("t"); Letter([A,"s2","A"]); - Fontsize("ss"); Letter([B,"s2","B"]); - Fontsize("s"); Letter([C,"s2","C"]); - Fontsize("la"); Letter([D,"s2","D"]); - Fontsize("La"); Letter([E,"s2","E"]); - Fontsize("h"); Letter([F,"s2","F"]); - Fontsize("H"); Letter([G,"s2","G"]); +Pointdata("1",[A,B,C,D,E,F,G],["Size=2"]); +Fontsize("t"); Letter([A,"s2","A"]); +Fontsize("ss"); Letter([B,"s2","B"]); +Fontsize("s"); Letter([C,"s2","C"]); +Fontsize("la"); Letter([D,"s2","D"]); +Fontsize("La"); Letter([E,"s2","E"]); +Fontsize("h"); Letter([F,"s2","F"]); +Fontsize("H"); Letter([G,"s2","G"]); \end{verbatim} \input{Fig/fontsize} \vspace{\baselineskip} \hypertarget{setpt}{} \hypertarget{ptsize}{} -\item[関数] Ptsize(n) , Setpt(n) -\item[機能] 表示する点の大きさを設定する。 -\item[説明] Ptsize() と Setpt() は同じである。 初期設定は1 +\item[関数]Ptsize(n) , Setpt(n) +\item[機能]表示する点の大きさを設定する。 +\item[説明]Ptsize() と Setpt() は同じである。 初期設定は1 全体の点の大きさを設定する。点の大きさを個々に変えたい場合は,sizeオプションを用いる。 @@ -366,113 +369,119 @@ Plotdata("1","f(x)","x"); 【例】1から4までの点の大きさ あらかじめ,Cinderellaの作図ツールで点A,B,C,Dを作図しておく。 + +\begin{layer}{150}{0} +\putnotese{60}{5}{\input{Fig/pointsize}} +\end{layer} + \begin{verbatim} - Pointdata("1",A,["Size=1"]); - Pointdata("2",B,["Size=2"]); - Pointdata("3",C,["Size=3"]); - Pointdata("4",D,["Size=4"]); +Pointdata("1",A,["Size=1"]); +Pointdata("2",B,["Size=2"]); +Pointdata("3",C,["Size=3"]); +Pointdata("4",D,["Size=4"]); \end{verbatim} -\hspace{10mm}\input{Fig/pointsize} +%\hspace{10mm}\input{Fig/pointsize} \hypertarget{setarrow}{} -\item[関数] Setarrow(size,angle,position,cut,segstyle) -\item[機能] 矢線の形状の設定をする。 -\item[説明] 引数は,順に,矢じりの大きさ, 開き角, 矢じり位置, 切り込み位置, 線種と表示色 +\item[関数]Setarrow(size,angle,position,cut,segstyle) +\item[機能]矢線の形状の設定をする。 +\item[説明]引数は,順に,矢じりの大きさ, 開き角, 矢じり位置, 切り込み位置, 線種と表示色 それぞれの意味と値は,\hyperlink{arrowdata}{Arrowdata()} を参照のこと。 \vspace{\baselineskip} \hypertarget{setmarklen}{} -\item[関数] Setmarklen(数) -\item[機能] 座標軸の目盛の長さを設定する -\item[説明] \hyperlink{htickmark}{Htickmark()} , Vtickmark() で座標軸に目盛を入れるとき,その長さを設定する。 +\item[関数]Setmarklen(数) +\item[機能]座標軸の目盛の長さを設定する +\item[説明] \hyperlink{htickmark}{Htickmark()} , Vtickmark() で座標軸に目盛を入れるとき,その長さを設定する。 \vspace{\baselineskip} \hypertarget{setorigin}{} -\item[関数] Setorigin(座標) -\item[機能] 描画する座標軸の原点を設定(移動)する。座標系は変化しない。 -\item[説明] 描画する座標軸の原点を引数の座標とする。座標は点の識別名でもよい。 +\item[関数]Setorigin(座標) +\item[機能]描画する座標軸の原点を設定(移動)する。座標系は変化しない。 +\item[説明]描画する座標軸の原点を引数の座標とする。座標は点の識別名でもよい。 \vspace{\baselineskip} 【例】原点を (3,2) として座標軸を描く。 -\hspace{10mm} \verb|Setorigin([3,2]);| +\hspace{10mm}\verb|Setorigin([3,2]);| 原点を点Aの位置にして座標軸を描く。 -\hspace{10mm} \verb|Setorigin(A);| +\hspace{10mm}\verb|Setorigin(A);| \vspace{\baselineskip} - 【例】原点は(3,2)に移動するが,スクリプトではもとの座標系を使う。 +【例】原点は(3,2)に移動するが,スクリプトではもとの座標系を使う。 \begin{verbatim} - Setorigin([3,2]); - Listplot([A,B,C,A]); - Pointdata("1",[1,1],["Size=3"]); - Letter([[1,1],"s2","P"]); +Setorigin([3,2]); +Listplot([A,B,C,A]); +Pointdata("1",[1,1],["Size=3"]); +Letter([[1,1],"s2","P"]); \end{verbatim} - 左が実行時のCinderellaの画面,右が\TeX の結果。\\ +左が実行時のCinderellaの画面,右が\TeX の結果。\\ -\hspace{10mm} \includegraphics[bb=0 0 299.02 250.01, width=4cm]{Fig/setorigin.pdf} \input{Fig/setorigin} +\hspace{10mm} \includegraphics[bb=0 0 299.02 250.01, width=4cm]{Fig/setorigin.pdf} +\hspace{5mm}\input{Fig/setorigin} \vspace{\baselineskip} \hypertarget{setpen}{} -\item[関数] Setpen(数) -\item[機能] 線の太さの初期値を設定する +\item[関数]Setpen(数) +\item[機能]線の太さの初期値を設定する \verb|Listplot()| などの描画関数のオプション \verb|dr| で,個々の太さは指定できる。 \vspace{\baselineskip} \hypertarget{setscaling}{} -\item[関数] Setscaling(倍率) -\item[機能] 縦方向の倍率を設定する。倍率は実数またはリスト。実数の場合は縦方向,リストの場合は[横方向,縦方向]の指定となる。 -\item[説明] 2次関数の応用問題などでは,グラフが縦に大きくなる場合があり,$y$軸方向のスケーリングを変えたいことがよくある。次のスクリプトは,$f(x)=-x^2+10x$ のグラフを縦軸方向を半分にして描くものである。 +\item[関数]Setscaling(倍率) +\item[機能]縦方向の倍率を設定する。倍率は実数またはリスト。実数の場合は縦方向,リストの場合は[横方向,縦方向]の指定となる。 +\item[説明]2次関数の応用問題などでは,グラフが縦に大きくなる場合があり,$y$軸方向のスケーリングを変えたいことがよくある。次のスクリプトは,$f(x)=-x^2+10x$ のグラフを縦軸方向を半分にして描くものである。 \begin{layer}{150}{0} \putnotese{80}{5}{\input{Fig/setscaling}} \end{layer} \begin{verbatim} - Setscaling(0.5); - A.xy=[0,25/4]; - B.xy=[5/2,25/4]; - C.xy=[5/2,0]; - Listplot([A,B],["do"]); - Listplot([C,B],["do"]); - Plotdata("1","-2*x^2+10*x","x"); - Letter([[5,0],"s2w","5",[0,25/2],"w2", - "$\frac{25}{2}$",C,"s4","$\frac{5}{2}$"]); +Setscaling(0.5); +A.xy=[0,25/4]; +B.xy=[5/2,25/4]; +C.xy=[5/2,0]; +Listplot([A,B],["do"]); +Listplot([C,B],["do"]); +Plotdata("1","-2*x^2+10*x","x"); +Letter([[5,0],"s2w","5",[0,25/2],"w2", +"$\frac{25}{2}$",C,"s4","$\frac{5}{2}$"]); \end{verbatim} - ここで,点A,Bの座標が +ここで,点A,Bの座標が \begin{verbatim} - A.xy=[0,25/4]; - B.xy=[5/2,25/4]; +A.xy=[0,25/4]; +B.xy=[5/2,25/4]; \end{verbatim} となっていることに注意されたい。$y$座標をあらかじめ半分にしている。すなわち,Cinderellaで作図した幾何要素に対してはSetscalingは無効である。これは,Putpoint関数を用いて点の位置を決めても同じである。 たとえば,次のスクリプトでは,Cinderellaの画面上では2本の線分が点Bでつながるが,書き出された\TeX の図では離れてしまう。 \begin{verbatim} - Setscaling(0.5); - Putpoint("A",[0,2]); - Putpoint("B",[2,2]); - Listplot([A,B]); - Listplot("1",[[0,0],[2,2]]); +Setscaling(0.5); +Putpoint("A",[0,2]); +Putpoint("B",[2,2]); +Listplot([A,B]); +Listplot("1",[[0,0],[2,2]]); \end{verbatim} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{setunitlen}{} -\item[関数] Setunitlen(文字列) -\item[機能] 単位長を設定する。 初期設定は 1cm。 +\item[関数]Setunitlen(文字列) +\item[機能]単位長を設定する。 初期設定は 1cm。 この関数は,スクリプトの初めの方に書くのがよい。 - + 【例】Setunitlen("8mm") - + \vspace{\baselineskip} \hypertarget{setwindow}{} -\item[関数] Setwindow() -\item[機能] 出力する描画領域を設定する -\item[説明] 出力する描画領域は,通常は2点SWとNEを対角とする矩形領域である。 +\item[関数]Setwindow() +\item[機能]出力する描画領域を設定する +\item[説明]出力する描画領域は,通常は2点SWとNEを対角とする矩形領域である。 この2点をドラッグすることによりビジュアルに描画領域を決められる。 @@ -480,7 +489,7 @@ Plotdata("1","f(x)","x"); また,表を作成したときは,表の範囲が出力範囲として優先される(Tabledata()を実行したとき)ので,表外に図を描いた場合は,最後にこの関数で出力範囲を指定して書き出す。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} @@ -491,12 +500,10 @@ Plotdata("1","f(x)","x"); 描画関数は曲線などを作図する関数である。 -基本的な書式は +基本的な書式は次の通り。 \hspace{20mm} 関数名(name , 点リストなど , options); -である。 - nameは,プロットデータの名称で,関数ごとに決められた頭部のあとに付けられる。たとえば,線分を描く Listplot() でできるプロットデータは,頭部が"sg"であり,nameを"1"とすれば,"sg1" という名称のプロットデータができる。name指定は不要の場合もあり,その場合は \ketcindy が自動的に名称を作成する。なお,name に演算記号は使えないので,番号として負の数は使えない。 点リストなどには,点の座標,点の識別名,複数の点のリスト,複数の点を示す文字列などがあり,関数によって異なる。点はCinderellaで作図した幾何要素の点を利用できる。 @@ -507,13 +514,13 @@ optionsは,線種・表示する文字列・解像度・出力の有無など \begin{tabbing} 1234\=5678901234567\=\kill - \> "dr, n" \>太さnの実線で描く。\\ - \> "da,m,n" \>破線を描く。\\ - \> \> mは破線の長さ,nは破線の間隔 (m,nは省略可)\\ - \> \>m,n オプションはCinderellaの描画面には反映されない。\\ - \> "id,m,n" \>ギャップからはじまる破線を描く。\\ - \> "do,m,n" \>点線で描く。\\ - \> \>mは点の間隔,nは太さ (m,nは省略可) +\>"dr, n" \>太さnの実線で描く。\\ +\>"da,m,n"\>破線を描く。\\ +\>\> mは破線の長さ,nは破線の間隔(m,nは省略可)\\ +\> \>m,n オプションはCinderellaの描画面には反映されない。\\ +\>"id,m,n" \>ギャップからはじまる破線を描く。\\ +\>"do,m,n"\>点線で描く。\\ +\>\>mは点の間隔,nは太さ(m,nは省略可) \end{tabbing} 描画色指定は,RGBまたはCMYKのリストで指定するか,色名を用いる。 @@ -522,22 +529,22 @@ optionsは,線種・表示する文字列・解像度・出力の有無など 出力の有無は \begin{tabbing} - 1234\=567890123\=\kill - \> "notex" \>Cinderella画面上の図形を出力しない\\ - \> "nodisp" \>Cinderella画面上にも出力しない +1234\=567890123\=\kill + \>"notex"\>Cinderella画面上の図形を出力しない\\ + \>"nodisp" \>Cinderella画面上にも出力しない \end{tabbing} "nodisp"は画面上にも,Rへのデータにも出力されないが,プロットデータは作成されるので,プロットデータだけを利用したい場合に有効である。 -\hspace{10mm}【例】 \verb|pdata=Circledata([A,B],["nodisp"]);| +\hspace{10mm}【例】\verb|pdata=Circledata([A,B],["nodisp"]);| として,後にプロットデータ pdata を利用する。 その他,次のようなオプションがある。 \begin{tabbing} - 1234\=567890123\=\kill - \> "Size=n" \>点の大きさ,線の太さの指定\\ - \> "Num=n" \>曲線の場合の分割数(プロットデータの個数+1)\\ +1234\=567890123\=\kill + \>"Size=n"\>点の大きさ,線の太さの指定\\ + \>"Num=n"\>曲線の場合の分割数(プロットデータの個数+1)\\ \end{tabbing} %=========== 点・直線 ====================== @@ -546,9 +553,9 @@ optionsは,線種・表示する文字列・解像度・出力の有無など \vspace{\baselineskip} \hypertarget{pointdata}{} -\item[関数] Pointdata(name , 点リスト , options) -\item[機能] 点のデータを作成する。 -\item[説明] 与えられた座標の点データを作成する。オプションは"Size=","Color=","Inside"。 +\item[関数]Pointdata(name , 点リスト , options) +\item[機能]点のデータを作成する。 +\item[説明]与えられた座標の点データを作成する。オプションは"Size=","Color=","Inside"。 Inside オプションは,点の内部についての指定。ただし,Cinderellaの描画面には反映されない。 @@ -570,7 +577,7 @@ Inside オプションは,点の内部についての指定。ただし,Cind (2) 作図した点A,Bについて,点データを作る。 \hspace{10mm} \verb|Pointdata("1",[A,B]);| - + \hspace{5mm}A,Bが作図されていない場合は作成されない。 \hspace{5mm}Cinderellaの描画面上では既存の点A,Bに黒の点が重なって表示される。 @@ -578,39 +585,41 @@ Inside オプションは,点の内部についての指定。ただし,Cind (3) Aの位置に大きさ4で点を作る。 \hspace{10mm} \verb|Pointdata("1",A,["size=4"]);| - + (4) 点データを作り,TeXにオプション0(白抜き)で描く -\hspace{10mm} \verb|Pointdata("1",[A,B],["Inside=0"]);| - +\hspace{10mm}\verb|Pointdata("1",[A,B],["Inside=0"]);| + (5) 点データを作るが,TeXには出力しない -\hspace{10mm} \verb|Pointdata("1",[[3,4],[5,6]],["notex"]);| +\hspace{10mm}\verb|Pointdata("1",[[3,4],[5,6]],["notex"]);| + +(6)点データを作るが,TeXには出力せず画面上にも表示しない。 -(6) 点データを作るが,TeXには出力せず画面上にも表示しない。 - \hspace{10mm} \verb|Pointdata("1",[[3,4],[5,6]],["nodisp"]);| +\begin{layer}{150}{0} +\putnotese{90}{5}{ \input{Fig/pointdata}} +\end{layer} + (7) 節点を明示した木を描く \begin{verbatim} - Ptsize(3); - Pointdata("1",[[1,2],[3,4],[5,2]]); - Listplot("1",[[0,0],[1,2],[3,4],[5,2],[4,0]]); - Listplot("2",[[1,2],[2,0]]); - Listplot("3",[[5,2],[6,0]]); +Ptsize(3); +Pointdata("1",[[1,2],[3,4],[5,2]]); +Listplot("1",[[0,0],[1,2],[3,4],[5,2],[4,0]]); +Listplot("2",[[1,2],[2,0]]); +Listplot("3",[[5,2],[6,0]]); \end{verbatim} - - \begin{center} \input{Fig/pointdata} \end{center} 注) 幾何点の有無など,付録の「\hyperlink{mkpttable}{点の作図についての比較表}」を参照のこと。 -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %\vspace{\baselineskip} %\hypertarget{drwpt}{} -%\item[関数] Drwpt(点,option), Drawpoint(点,options) -%\item[機能] 点を表示する -%\item[説明] 座標または幾何点の識別名を与えて点を表示する。これだけではCinderellaの描画面には描かれないので,描画面にも表示するにはCinderellaの作図ツールで作図するか,Pointdata() または Putpoint() を用いる。 +%\item[関数]Drwpt(点,option), Drawpoint(点,options) +%\item[機能]点を表示する +%\item[説明]座標または幾何点の識別名を与えて点を表示する。これだけではCinderellaの描画面には描かれないので,描画面にも表示するにはCinderellaの作図ツールで作図するか,Pointdata() または Putpoint() を用いる。 %複数の点の場合は座標または識別名はリストで与える。 @@ -632,49 +641,49 @@ Inside オプションは,点の内部についての指定。ただし,Cind %【例】線分ABの右端(B)を白抜きで表示する %\begin{layer}{150}{0} -%\putnotese{50}{8}{ \input{Fig/drawpoint}} +%\putnotese{50}{8}{\input{Fig/drawpoint}} %\end{layer} %\begin{verbatim} - % Ptsize(5); -% Listplot([A,B]); -% Drawpoint(B,0); + % Ptsize(5); +%Listplot([A,B]); +%Drawpoint(B,0); %\end{verbatim} -%※ Drawpoint([A,B],0); とすれば,両端が白抜きになる。 +%※Drawpoint([A,B],0);とすれば,両端が白抜きになる。 %\vspace{\baselineskip} %{\bf 点の表示方法} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{putpoint}{} -\item[関数] Putpoint(点名 , 座標1 ,座標2 ) -\item[機能] 点を作る -\item[説明] 識別名が点名の点を,既存でなければ座標1に作る。既存ならば座標2に移動する。Texには出力されない。 +\item[関数]Putpoint(点名 , 座標1 ,座標2 ) +\item[機能]点を作る +\item[説明]識別名が点名の点を,既存でなければ座標1に作る。既存ならば座標2に移動する。Texには出力されない。 \vspace{\baselineskip} 【例】点Aを作る。 (1,1) に固定点Aを作る。 この点は動かすことができない。 -\hspace{10mm} \verb|Putpoint("A",[1,1]);| +\hspace{10mm} \verb|Putpoint("A",[1,1]);| - (1,1)に自由点を作るには次のようにする。 - -\hspace{10mm} \verb|Putpoint("A",[1,1],[A.x,A.y]);| +(1,1)に自由点を作るには次のようにする。 + +\hspace{10mm}\verb|Putpoint("A",[1,1],[A.x,A.y]);| - この点は座標2の効果により,自由点となり,ドラッグして動かすことができる。 +この点は座標2の効果により,自由点となり,ドラッグして動かすことができる。 \vspace{\baselineskip} 注)点名は半角アルファベットとする。数字や漢字でもCinderellaでは点ができるが,Rでエラーとなる。 \vspace{\baselineskip} \hypertarget{putintersect}{} -\item[関数] Putintersect(点名 , PD1 , PD2 , [No] ) -\item[機能] 2曲線の交点を作る -\item[説明] PD1,PD2は2曲線のプロットデータ名。作成される点は幾何点。 +\item[関数]Putintersect(点名 , PD1 , PD2 , [No] ) +\item[機能]2曲線の交点を作る +\item[説明]PD1,PD2は2曲線のプロットデータ名。作成される点は幾何点。 描画範囲に交点が1つだけのとき,第4引数がなくても交点が作られる。 @@ -683,55 +692,57 @@ Inside オプションは,点の内部についての指定。ただし,Cind 次の例は,3次曲線と直線の交点を3つとも取ったものである。 \begin{layer}{150}{0} -\putnotese{80}{5}{ \input{Fig/putintersect}} +\putnotese{80}{5}{\input{Fig/putintersect}} \end{layer} \begin{verbatim} - Plotdata("1","x^3-4*x","x",["Num=200"]); - Plotdata("2","1/2*x+1","x"); - Putintersect("P","gr1","gr2",1); - Putintersect("Q","gr1","gr2",2); - Putintersect("R","gr1","gr2",3); - Pointdata("1",[P,Q,R],["size=4"]); +Plotdata("1","x^3-4*x","x",["Num=200"]); +Plotdata("2","1/2*x+1","x"); +Putintersect("P","gr1","gr2",1); +Putintersect("Q","gr1","gr2",2); +Putintersect("R","gr1","gr2",3); +Pointdata("1",[P,Q,R],["size=4"]); \end{verbatim} + +\vspace{\baselineskip} 交点が存在しない場合は,「No intersect point」がコンソールに表示される。 \vspace{\baselineskip} \hypertarget{putoncurve}{} -\item[関数] PutonCurve(点の名前, プロットデータ, options) -\item[機能] 曲線上に点を乗せる。 -\item[説明] 点が存在しない場合は新たに作る。すでにその点が存在する場合は,その点の$x$座標を使う。初期値の$x$座標の 初期設定は 0。 +\item[関数]PutonCurve(点の名前, プロットデータ, options) +\item[機能]曲線上に点を乗せる。 +\item[説明]点が存在しない場合は新たに作る。すでにその点が存在する場合は,その点の$x$座標を使う。初期値の$x$座標の 初期設定は 0。 optionsは,$x$座標の範囲をリストで与える。 \vspace{\baselineskip} 【例】アステロイド上の動点P をとる。 \begin{verbatim} - Paramplot("1","[2*cos(t)^3,2*sin(t)^3]","t=[0,2*pi]"); - PutonCurve("P","gp1",[-1,1]); +Paramplot("1","[2*cos(t)^3,2*sin(t)^3]","t=[0,2*pi]"); +PutonCurve("P","gp1",[-1,1]); \end{verbatim} 点Pがアステロイド上にでき,この点はドラッグするとアステロイド上を $-1 \leq x\leq 1$ の範囲で動かすことができる。ただし,-1,1の付近はy座標の判断の関係でぴったりはいかない。 \begin{center} \input{Fig/putoncurve.tex} \end{center} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{putonline}{} -\item[関数] PutonLine(点名 , 座標1 ,座標2 ) -\item[機能] 直線上に点を作る -\item[説明] 座標1,座標2を通る直線上に点名の点を作る。できた点は直線に対してインシデントとなる。 +\item[関数]PutonLine(点名 , 座標1 ,座標2 ) +\item[機能]直線上に点を作る +\item[説明]座標1,座標2を通る直線上に点名の点を作る。できた点は直線に対してインシデントとなる。 \vspace{\baselineskip} -【例】 点A,\ Bを通る直線上に点Pをとる。 +【例】点A,\ Bを通る直線上に点Pをとる。 - \verb|PutonLine("P",A,B);| +\verb|PutonLine("P",A,B);| \vspace{\baselineskip} \hypertarget{putonseg}{} -\item[関数] PutonSeg(点名 , 座標1 ,座標2 ) -\item[機能] 線分上に点を作る -\item[説明] 座標1,座標2を端点とする線分上に点名の点を作る。できた点は線分に対してインシデントとなる。指定した点がすでに存在する場合は動かさない。 +\item[関数]PutonSeg(点名 , 座標1 ,座標2 ) +\item[機能]線分上に点を作る +\item[説明]座標1,座標2を端点とする線分上に点名の点を作る。できた点は線分に対してインシデントとなる。指定した点がすでに存在する場合は動かさない。 \vspace{\baselineskip} 【例】 @@ -744,19 +755,19 @@ optionsは,$x$座標の範囲をリストで与える。 \verb|PutonSeg("C",[[-1,0],[2,2]]);| -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{reflectpoint}{} -\item[関数] Reflectpoint(点,対称点または対称軸) -\item[機能] 点の鏡映の座標を返す。 -\item[説明] 点を指定された点または軸に関して対称移動した点の座標を返す。対称軸は[ 点1, 点2 ]で指定 +\item[関数]Reflectpoint(点,対称点または対称軸) +\item[機能]点の鏡映の座標を返す。 +\item[説明]点を指定された点または軸に関して対称移動した点の座標を返す。対称軸は[ 点1, 点2 ]で指定 \vspace{\baselineskip} 【例】点A〜Fを作図しておき,C〜FをAの鏡映の位置に配置する。 \begin{layer}{150}{0} -\putnotese{70}{10}{ \input{Fig/reflectpoint}} +\putnotese{70}{10}{\scalebox{0.9}{\input{Fig/reflectpoint}}} \end{layer} \hspace{5mm} CはBに関してAと対称な点 @@ -768,40 +779,40 @@ optionsは,$x$座標の範囲をリストで与える。 \hspace{5mm} Fは直線CEに関してAと対称な点 \begin{verbatim} - C.xy=Reflectpoint(A,B); - D.xy=Reflectpoint(A,[[2,3]]); - E.xy=Reflectpoint([-1,1],[[1,0]]); - F.xy=Reflectpoint(A,[C,E]); - Lineplot([C,E],["do"]); +C.xy=Reflectpoint(A,B); +D.xy=Reflectpoint(A,[[2,3]]); +E.xy=Reflectpoint([-1,1],[[1,0]]); +F.xy=Reflectpoint(A,[C,E]); +Lineplot([C,E],["do"]); \end{verbatim} \vspace{\baselineskip} 注)鏡映はCinderellaの作図ツールでも作成することができる。場合によってはCinderellaで作図する方が簡明である。 -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{rotatepoint}{} -\item[関数] Rotatepoint(点 ,角度 , 中心) -\item[機能] 点の位置を回転する -\item[説明] 点を,中心で示された点の周りに回転した座標を返す。角度は弧度法で与える +\item[関数]Rotatepoint(点 ,角度 , 中心) +\item[機能]点の位置を回転する +\item[説明]点を,中心で示された点の周りに回転した座標を返す。角度は弧度法で与える \vspace{\baselineskip} 【例】点A〜Eは作図しておき,C〜Eをそれぞれの位置に配置する。 \begin{layer}{150}{0} -\putnotese{75}{10}{ \input{Fig/rotatepoint}} +\putnotese{75}{5}{ \scalebox{0.8}{\input{Fig/rotatepoint}}} \end{layer} \begin{spacing}{1.5} 点CはAを,Bに関して$\dfrac{2}{3}\pi $だけ回転した点 - + 点Dは点(5,2)を,Bに関して$\dfrac{\pi}{3}$ だけ回転した点 \end{spacing} 点Eは点(3,0)をAに関して $-\dfrac{\pi}{4} $だけ回転した点 \begin{verbatim} - C.xy=Rotatepoint(A,2*pi/3,B); - D.xy=Rotatepoint((5,2),pi/3,B); - E.xy=Rotatepoint([3,0],-pi/4,A); +C.xy=Rotatepoint(A,2*pi/3,B); +D.xy=Rotatepoint((5,2),pi/3,B); +E.xy=Rotatepoint([3,0],-pi/4,A); \end{verbatim} 注)図の点線は位置関係を示すためのもの。 @@ -809,9 +820,9 @@ optionsは,$x$座標の範囲をリストで与える。 \vspace{\baselineskip} \hypertarget{scalepoint}{} -\item[関数] Scalepoint(点,比率ベクトル,中心) -\item[機能] 点の位置の拡大・縮小を行う -\item[説明] 点を,指定された中心を原点とする座標系で,比率ベクトルの分だけ拡大・縮小した位置の座標を返す。 +\item[関数]Scalepoint(点,比率ベクトル,中心) +\item[機能]点の位置の拡大・縮小を行う +\item[説明]点を,指定された中心を原点とする座標系で,比率ベクトルの分だけ拡大・縮小した位置の座標を返す。 \vspace{\baselineskip} 【例】点A〜Fは作図ツールで適当な位置にとっておく。 @@ -822,17 +833,17 @@ optionsは,$x$座標の範囲をリストで与える。 点Fを,点Aを原点を中心にベクトル$\overrightarrow{OC} $で示された比率の位置に置く。 \begin{verbatim} - D.xy=Scalepoint(A,[3,2],[0,0]); - E.xy=Scalepoint(A,[3,2],B); - F.xy=Scalepoint(A,C.xy,[0,0]); - Arrowdata("1",[[0,0],C]); - Pointdata("1",[A,B,C,D,E,F],["size=2"]); - Letter([A,"e2","A("+A.x+","+A.y+")"]); - Letter([B,"e2","B("+B.x+","+B.y+")"]); - Letter([C,"e2","C("+C.x+","+C.y+")"]); - Letter([D,"e2","D("+D.x+","+D.y+")"]); - Letter([E,"e2","E("+E.x+","+E.y+")"]); - Letter([F,"e2","F("+F.x+","+F.y+")"]); +D.xy=Scalepoint(A,[3,2],[0,0]); +E.xy=Scalepoint(A,[3,2],B); +F.xy=Scalepoint(A,C.xy,[0,0]); +Arrowdata("1",[[0,0],C]); +Pointdata("1",[A,B,C,D,E,F],["size=2"]); +Letter([A,"e2","A("+A.x+","+A.y+")"]); +Letter([B,"e2","B("+B.x+","+B.y+")"]); +Letter([C,"e2","C("+C.x+","+C.y+")"]); +Letter([D,"e2","D("+D.x+","+D.y+")"]); +Letter([E,"e2","E("+E.x+","+E.y+")"]); +Letter([F,"e2","F("+F.x+","+F.y+")"]); \end{verbatim} \vspace{\baselineskip} \begin{center} \input{Fig/scalepoint} \end{center} @@ -841,97 +852,93 @@ optionsは,$x$座標の範囲をリストで与える。 \vspace{\baselineskip} \hypertarget{translatepoint}{} -\item[関数] Translatepoint(点 , 移動ベクトル) -\item[機能] 点を平行移動する -\item[説明] 点を移動ベクトルで示された分だけ平行移動した点の座標を返す +\item[関数]Translatepoint(点 , 移動ベクトル) +\item[機能]点を平行移動する +\item[説明]点を移動ベクトルで示された分だけ平行移動した点の座標を返す \vspace{\baselineskip} 【例】点A〜Dは作図しておく。 -点Cを点Aを$x$軸方向に2 , $y$軸方向に3 +点Cを点Aを$x$軸方向に2 , $y$軸方向に3だけ平行移動した点にする。 -だけ平行移動した点にする。 - -点Dを点Aをベクトル$\overrightarrow{OB} $だけ - -平行移動した点にする。 +点Dを点Aをベクトル$\overrightarrow{OB} $だけ平行移動した点にする。 \begin{verbatim} - C.xy=Translatepoint(A,[2,3]); - D.xy=Translatepoint(A,B.xy); +C.xy=Translatepoint(A,[2,3]); +D.xy=Translatepoint(A,B.xy); \end{verbatim} -\hspace{20mm} \input{Fig/translatepoint} +\hspace{20mm} \scalebox{0.9}{\input{Fig/translatepoint}} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{arrowdata}{} -\item[関数] Arrowdata(name,[始点 , 終点] , options) -\item[機能] 2点間を結ぶ矢線を描く。 -\item[説明] name は,座標を数値で与えるときに必要。幾何要素の識別名で与えるときはなくてもよい。 +\item[関数]Arrowdata(name,[始点 , 終点] , options) +\item[機能]2点間を結ぶ矢線を描く。 +\item[説明]name は,座標を数値で与えるときに必要。幾何要素の識別名で与えるときはなくてもよい。 optionsは矢じりの形状などの指定。 - + \hspace{10mm} [ 矢じりの大きさ, 開き角, 矢じり位置,切り込み位置, 線種, 線の表示色,トリミング] のリストで与える。矢じりの大きさから切り込み位置までは数で,後方のオプションを指定するときは,前方も書く。 - + 開き角は60分法で与える。ただし,° はつけない。5未満の時は18°の倍数指定とする。 - + 矢じり位置は,線分の長さを1とした始点からの距離。 切り込み位置は,0のとき三角形の矢じり,1のとき線のみの矢じりとなる。 - + ただし,Cinderellaの画面上には全ては反映されない。たとえば,太さ指定をしても画面上では太さは同じ。 -トリミング : "Cutend=m" または "Cutend=[m,n]" で,右辺が数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。 +トリミング :"Cutend=m" または "Cutend=[m,n]" で,右辺が数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。 これらの設定は,\hyperlink{setarrow}{Setarrow()} で初期設定を変更することができる。 \vspace{\baselineskip} 【例】オプションの設定とその結果を示す。 - + \begin{verbatim} - Arrowdata("1",[A,B]); - Arrowdata("2",[[1,0],[2,3]],[2]); - Arrowdata("3",[[2,0],[3,3]],[3,45]); - Arrowdata("4",[[3,0],[4,3]],[3,1,0.5]); - Arrowdata("5",[[4,0],[5,3]],[3,1,1,0.5]); - Arrowdata("6",[[5,0],[6,3]],[3,1,1,1]); - Arrowdata("7",[[6,0],[7,3]],[3,"dr,2"]); - Arrowdata("8",[[7,0],[8,3]],[3,1,1,0.5,"Color=red"]); +Arrowdata("1",[A,B]); +Arrowdata("2",[[1,0],[2,3]],[2]); +Arrowdata("3",[[2,0],[3,3]],[3,45]); +Arrowdata("4",[[3,0],[4,3]],[3,1,0.5]); +Arrowdata("5",[[4,0],[5,3]],[3,1,1,0.5]); +Arrowdata("6",[[5,0],[6,3]],[3,1,1,1]); +Arrowdata("7",[[6,0],[7,3]],[3,"dr,2"]); +Arrowdata("8",[[7,0],[8,3]],[3,1,1,0.5,"Color=red"]); \end{verbatim} -\hspace{20mm} \input{Fig/arrowdata} +\hspace{20mm}\input{Fig/arrowdata} 【例】2つの円を矢線で結ぶ。 - + \begin{layer}{150}{0} -\putnotese{75}{0}{ \input{Fig/trimarrow}} +\putnotese{75}{0}{\input{Fig/trimarrow}} \end{layer} \hspace{20mm} \begin{verbatim} - Circledata("1",[A,A.xy+[0.5,0]]); - Circledata("2",[B,B.xy+[0.7,0]]); - Arrowdata([A,B],["Cutend=[0.5,0.7]"]); - Letter([A,"c","A",B,"c","B"]); + Circledata("1",[A,A.xy+[0.5,0]]); + Circledata("2",[B,B.xy+[0.7,0]]); + Arrowdata([A,B],["Cutend=[0.5,0.7]"]); + Letter([A,"c","A",B,"c","B"]); \end{verbatim} - Cinderellaの作図ツールで2点ABをとっておく。 +Cinderellaの作図ツールで2点ABをとっておく。 円A,Bの半径が同じ(たとえば0.5)であれば,\verb|Arrowdata([A,B],["Cutend=0.5"]);| でよい。 \vspace{\baselineskip} \hypertarget{setarrow}{} -\item[関数] Setarrow([arrowsize,angle,position,cut,linestyle]) -\item[機能] Arrowdata,Arrowheadで描く矢印のスタイルを設定する。 -\item[説明] arrowsize,angle,position,cut,linestyleは,順に大きさ(1),開き角(18),位置(1),切り込み(0),矢線スタイル("dr")である。(カッコ内はデフォルト値) +\item[関数]Setarrow([arrowsize,angle,position,cut,linestyle]) +\item[機能]Arrowdata,Arrowheadで描く矢印のスタイルを設定する。 +\item[説明]arrowsize,angle,position,cut,linestyleは,順に大きさ(1),開き角(18),位置(1),切り込み(0),矢線スタイル("dr")である。(カッコ内はデフォルト値) -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{arrowhead}{} -\item[関数] Arrowhead(点 , 方向 , options) , Arrowhead(点 , プロットデータ,options) -\item[機能] 点に矢じりだけを描く -\item[説明] 指定された位置に,指定された方向を向いた矢じりだけを描く。 +\item[関数]Arrowhead(点 , 方向 , options) , Arrowhead(点 , プロットデータ,options) +\item[機能]点に矢じりだけを描く +\item[説明]指定された位置に,指定された方向を向いた矢じりだけを描く。 点は座標または幾何要素名。方向は原点から見て座標[a,b]の方向。 @@ -939,16 +946,16 @@ optionsは [大きさ,矢じりの開き角,形状と位置] のリスト。 矢じりの開き角は60分法で片側半分の角。 -形状は, "f" :塗りつぶしの三角形( 初期設定)または " l " : ラインのみ。 +形状は, "f" :塗りつぶしの三角形( 初期設定)または" l " : ラインのみ。 ただし,塗りつぶし矢じりは画面上では塗りつぶしにならない。 位置は,"t"( 初期設定)または "c" , "b" \begin{tabbing} 1234\=567890123\=\kill - \>"t" は矢じりの先端が終点に一致\\ - \>"c" は三角形の中心が終点と一致\\ - \>"b" は終点が矢じりの底辺にのる。 +\>"t" は矢じりの先端が終点に一致\\ +\>"c" は三角形の中心が終点と一致\\ +\>"b" は終点が矢じりの底辺にのる。 \end{tabbing} プロットデータを指定したときは,曲線上の点に矢じりをつける。 @@ -1003,15 +1010,15 @@ optionsは [大きさ,矢じりの開き角,形状と位置] のリスト。 \vspace{\baselineskip} \hypertarget{lineplot}{} -\item[関数] Lineplot(name , 2点のリスト , options) -\item[機能] 2点のリストで示された点を結ぶ直線を描く。 -\item[説明] 2点のリストは座標または幾何要素の名前で与える。 +\item[関数]Lineplot(name , 2点のリスト , options) +\item[機能]2点のリストで示された点を結ぶ直線を描く。 +\item[説明]2点のリストは座標または幾何要素の名前で与える。 options は次の通り。 -線種 "dr, n" , "da,m,n" , "do,m,n" +線種"dr, n", "da,m,n" , "do,m,n" - "+" 半直線を描く。 + "+"半直線を描く。 "dr" , "da" , "do" と "+" はリストにして両方指定することができる。 @@ -1031,84 +1038,84 @@ Cinderellaの描画ツールで2点A,Bをとっておき,直線ABを引く optionの働きの例 \begin{tabbing} 1234\=56789012345678901234567890123456789\=\kill - \> \verb|Lineplot([A,B],["dr,0.5","+"]);| \>Aを端点とする半直線を引く\\ - \> \verb|Lineplot([C,D],["dr,2"]);| \>直線CDを太さ2で描く\\ - \> \verb|Lineplot([E,F],["da"]);| \>直線EFを破線で描く\\ - \> \verb|Lineplot([G,H],["do"]);| \>直線GHを点線で描く + \> \verb|Lineplot([A,B],["dr,0.5","+"]);|\>Aを端点とする半直線を引く\\ + \> \verb|Lineplot([C,D],["dr,2"]);|\>直線CDを太さ2で描く\\ + \> \verb|Lineplot([E,F],["da"]);| \>直線EFを破線で描く\\ + \> \verb|Lineplot([G,H],["do"]);|\>直線GHを点線で描く \end{tabbing} 結果は,次図左上から。 \vspace{\baselineskip} \hspace{20mm} \input{Fig/lineplot} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{listplot}{} -\item[関数] Listplot(name , 点のリスト , options) -\item[機能] 点のリストで示された点を結ぶ。 -\item[説明] 点のリストは座標または幾何要素名のリストで与える。点が,座標ではなく幾何要素名の場合は,nameは省略可 +\item[関数]Listplot(name , 点のリスト , options) +\item[機能]点のリストで示された点を結ぶ。 +\item[説明]点のリストは座標または幾何要素名のリストで与える。点が,座標ではなく幾何要素名の場合は,nameは省略可 プロットデータの名前は,"sg" に引数の name を付加したものとなる。 options は次の通り。 -線種 "dr, n" , "da,m,n" , "do,m,n" +線種 "dr, n", "da,m,n" , "do,m,n" -トリミング : "Cutend=m" または "Cutend=[m,n]" +トリミング :"Cutend=m" または "Cutend=[m,n]" 数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。 \begin{tabbing} 1234567890123456789012345678901234\=\kill - optionsの使用例\\ - \verb|Listplot([A,B]);| \>線分ABを描く。太さは 初期設定。\\ - \verb|Listplot([C,D],["dr,2"]);| \>線分CDを描く。太さ2\\ - \verb|Listplot([E,F],["da"]);| \>線分EFを破線で描く\\ - \verb|Listplot([G,H],["da,3,1"]);| \>線分GHを破線で描く。線を長く\\ - \verb|Listplot([K,L],["da,1,3"]);| \>線分KLを破線で描く。間隔を空ける\\ - \verb|Listplot([M,N],["do"]);| \>線分MNを点線で描く。\\ - \verb|Listplot([O,P],["do,3"]);| \>線分OPを点線で描く。間隔を空ける\\ - \verb|Listplot([Q,R],["do,3,3"]);| \>線分QRを点線で描く。間隔を空けて太く\\ +optionsの使用例\\ +\verb|Listplot([A,B]);|\>線分ABを描く。太さは 初期設定。\\ +\verb|Listplot([C,D],["dr,2"]);| \>線分CDを描く。太さ2\\ +\verb|Listplot([E,F],["da"]);| \>線分EFを破線で描く\\ +\verb|Listplot([G,H],["da,3,1"]);| \>線分GHを破線で描く。線を長く\\ +\verb|Listplot([K,L],["da,1,3"]);|\>線分KLを破線で描く。間隔を空ける\\ +\verb|Listplot([M,N],["do"]);|\>線分MNを点線で描く。\\ +\verb|Listplot([O,P],["do,3"]);| \>線分OPを点線で描く。間隔を空ける\\ +\verb|Listplot([Q,R],["do,3,3"]);| \>線分QRを点線で描く。間隔を空けて太く\\ 結果は次図左から。 \end{tabbing} - \begin{center} \input{Fig/listplot3}\end{center} +\begin{center} \scalebox{0.9}{\input{Fig/listplot3}}\end{center} 【例】三角形を描く。 - Cinderellaの作図ツールで三角形ABCを描いておく。あるいは,単に3点A,B,Cをとるだけでもよい。 +Cinderellaの作図ツールで三角形ABCを描いておく。あるいは,単に3点A,B,Cをとるだけでもよい。 \begin{layer}{150}{0} -\putnotese{75}{0}{ \input{Fig/listplot1}} +\putnotese{75}{0}{\input{Fig/listplot1}} \end{layer} \hspace{20mm} \begin{verbatim} - Addax(0); - Listplot([A,B,C,A]); +Addax(0); +Listplot([A,B,C,A]); \end{verbatim} 点の位置は座標で指定してもよい。 その場合は name が必要。 -\hspace{10mm} \verb|Listplot("1",[[0,0],[2,0],[1,2],[0,0]]);| +\verb| Listplot("1",[[0,0],[2,0],[1,2],[0,0]]);| \vspace{\baselineskip} 【例】2つの円を線分で結ぶ。 - + \begin{layer}{150}{0} -\putnotese{75}{0}{ \input{Fig/trimseg}} +\putnotese{75}{0}{\input{Fig/trimseg}} \end{layer} \hspace{20mm} \begin{verbatim} - Circledata("1",[A,A.xy+[0.5,0]]); - Circledata("2",[B,B.xy+[0.7,0]]); - Listplot([A,B],["Cutend=[0.5,0.7]"]); - Letter([A,"c","A",B,"c","B"]); + Circledata("1",[A,A.xy+[0.5,0]]); + Circledata("2",[B,B.xy+[0.7,0]]); + Listplot([A,B],["Cutend=[0.5,0.7]"]); + Letter([A,"c","A",B,"c","B"]); \end{verbatim} - Cinderellaの作図ツールで2点ABをとっておく。 +Cinderellaの作図ツールで2点ABをとっておく。 円A,Bの半径が同じであれば,\verb|Listplot([A,B],["Cutend=0.5"]);| でよい。 @@ -1118,21 +1125,21 @@ optionの働きの例 \vspace{\baselineskip} 【例】有限フーリエ級数展開 - \[\cfrac{\pi}{2}+\sum_{n=0}^{30} \cfrac{1-(-1)^n}{n}\sin nx\] + \[\cfrac{\pi}{2}+\sum_{n=0}^{30} \cfrac{1-(-1)^n}{n}\sin nx\] 次のようにCindyscriptで関数を定義し,プロットデータpd を作って引数に渡す。 \begin{verbatim} - f(x):=( - s=pi/2; - repeat(30,n,s=s+(1-(-1)|^n)/n*sin(n*x)); - ); - pd=apply(0..200,t, - x=-2*pi+t*4*pi/200; - [x,f(x)]; - ); - Listplot("1",pd); - Expr([[-2*pi,-0.5],"s","-2\pi",[-pi,-0.5],"s","-\pi",[pi,-0.5],"s", - "\pi",[2*pi,-0.5],"s","2\pi",[0,pi],"w2","\pi"]); +f(x):=( +s=pi/2; +repeat(30,n,s=s+(1-(-1)|^n)/n*sin(n*x)); +); +pd=apply(0..200,t, +x=-2*pi+t*4*pi/200; +[x,f(x)]; +); +Listplot("1",pd); +Expr([[-2*pi,-0.5],"s","-2\pi",[-pi,-0.5],"s","-\pi",[pi,-0.5],"s", +"\pi",[2*pi,-0.5],"s","2\pi",[0,pi],"w2","\pi"]); \end{verbatim} \vspace{\baselineskip} @@ -1141,14 +1148,14 @@ optionの働きの例 \vspace{\baselineskip} リストの長さには制限がある。たとえば,タートルグラフィクスを用いたシェルピンスキーのギャスケットでは200くらいずつのリストに分割する。 - \hspace{20mm}\scalebox{0.9}{ \input{Fig/listplot2}} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \hspace{20mm}\scalebox{0.8}{ \input{Fig/listplot2}} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mksegments}{} -\item[関数] Mksegments() -\item[機能] すべての幾何線分のPD を作成 -\item[説明] Cinderellaの「線分を加える」ツールで描いたすべての線分をそのままプロットデータとする。たとえば,線分ABを作ると,プロットデータsgABが作成される。その後,インスペクタで点Bの識別名を変更(たとえばQに)すると,プロットデータ名も変更される。線分はすでに描かれていてもよい。 +\item[関数]Mksegments() +\item[機能]すべての幾何線分のPD を作成 +\item[説明]Cinderellaの「線分を加える」ツールで描いたすべての線分をそのままプロットデータとする。たとえば,線分ABを作ると,プロットデータsgABが作成される。その後,インスペクタで点Bの識別名を変更(たとえばQに)すると,プロットデータ名も変更される。線分はすでに描かれていてもよい。 \vspace{\baselineskip} 【例】等比数列の例題 @@ -1161,13 +1168,13 @@ optionの働きの例 これを繰り返す。\verb|Mksegments()| を書いておけば,\verb|Listplot([A,B,C]| などを書かなくても,作図ができた時点で,図のデータができる。 -\includegraphics[bb=0.00 0.00 438.02 327.02,width=5cm]{Fig/gpro01.pdf} \input{Fig/gpro02} +\includegraphics[bb=0.00 0.00 438.02 327.02,width=5.5cm]{Fig/gpro01.pdf} \input{Fig/gpro02} \vspace{\baselineskip} \hypertarget{framedata}{} -\item[関数] Framedata(name , リスト,options) -\item[機能] 矩形を描く -\item[説明] リストの形は2通り。 +\item[関数]Framedata(name , リスト,options) +\item[機能]矩形を描く +\item[説明]リストの形は2通り。 その1:[中心 ,横 , 縦] で,矩形を描く。横,縦は中心からの距離。 @@ -1182,11 +1189,11 @@ optionの働きの例 以下にいくつか例を示す \begin{tabbing} 1234567890123456789012345678901234\=\kill - \verb|Framedata("1");| \> 描画範囲(SW,NE)と同一の矩形を描く\\ - \verb|Framedata("2",[[0,0],2,2]);| \> 原点を中心とする縦横幅4の正方形を描く\\ - \verb|Framedata("3",[A,1.5,1.2]);| \> 点Aを中心とする横3,縦2.4の矩形を描く。(図左)\\ - \verb|Framedata([B,C]);| \> 点Bを中心,点Cを頂点とする矩形を描く。(図中央)\\ - \verb|Framedata([D,E],["corner"]); | \> 点D,Eを対角点とする矩形を描く。(図右) +\verb|Framedata("1");|\> 描画範囲(SW,NE)と同一の矩形を描く\\ +\verb|Framedata("2",[[0,0],2,2]);| \> 原点を中心とする縦横幅4の正方形を描く\\ +\verb|Framedata("3",[A,1.5,1.2]);|\> 点Aを中心とする横3,縦2.4の矩形を描く。(図左)\\ +\verb|Framedata([B,C]);|\> 点Bを中心,点Cを頂点とする矩形を描く。(図中央)\\ +\verb|Framedata([D,E],["corner"]); |\>点D,Eを対角点とする矩形を描く。(図右) \end{tabbing} \begin{center}\includegraphics[bb=0.00 0.00 348.15 106.16,width=12cm]{Fig/Framedata.pdf}\end{center} @@ -1194,20 +1201,20 @@ optionの働きの例 \vspace{\baselineskip} \hypertarget{polygonplot}{} -\item[関数] Polygonplot(name , 点リスト , 整数,options) -\item[機能] 2点を半径とする円に内接する正多角形を描く。 -\item[説明] 点リストを[A,B] とすると,Aを中心とする半径ABの円周上に点をとって正多角形を描く。ただし円は描かない。A,B は座標でもよい。 +\item[関数]Polygonplot(name , 点リスト , 整数,options) +\item[機能]2点を半径とする円に内接する正多角形を描く。 +\item[説明]点リストを[A,B] とすると,Aを中心とする半径ABの円周上に点をとって正多角形を描く。ただし円は描かない。A,B は座標でもよい。 -点リストが座標ではなく作図してある点の名称のとき,オプションに "Geo=y" をつけると,頂点の幾何点を作る。幾何点の名称はBに番号を付けたものとなる。整数でない数を指定した場合は,きちんと閉じない折れ線が描かれる。 +点リストが座標ではなく作図してある点の名称のとき,オプションに"Geo=y" をつけると,頂点の幾何点を作る。幾何点の名称はBに番号を付けたものとなる。整数でない数を指定した場合は,きちんと閉じない折れ線が描かれる。 \vspace{\baselineskip} 【例】点リストとoptionの違いによる作図と,TeXの図を示す。 \begin{verbatim} - Addax(0); - Polygonplot("1",[[-4,1],[-4,3]],7); - Polygonplot("2",[A,B],7); - Polygonplot("3",[C,D],7,["Geo=y"]); +Addax(0); +Polygonplot("1",[[-4,1],[-4,3]],7); +Polygonplot("2",[A,B],7); +Polygonplot("3",[C,D],7,["Geo=y"]); \end{verbatim} \hspace{10mm}\includegraphics[bb=0.00 0.00 541.03 175.01,width=10cm]{Fig/polygonplot2.pdf} @@ -1223,22 +1230,22 @@ optionの働きの例 【例】ABを1辺とする正五角形を描く。 \begin{verbatim} - n=5; - pti=[complex(A),complex(B)]; - th=2*pi/n; - repeat(n-2,s, - z1=pti_s; - z2=pti_(s+1); - z=z2+(z2-z1)*(cos(th)+i*sin(th)); - pti=append(pti,z); - ); - pt=apply(pti,gauss(#)); - pt=append(pt,A.xy); - Listplot("1",pt); +n=5; +pti=[complex(A),complex(B)]; +th=2*pi/n; +repeat(n-2,s, +z1=pti_s; +z2=pti_(s+1); +z=z2+(z2-z1)*(cos(th)+i*sin(th)); +pti=append(pti,z); +); +pt=apply(pti,gauss(#)); +pt=append(pt,A.xy); +Listplot("1",pt); \end{verbatim} ptiは,各頂点に対応する複素数のリスト,ptが各頂点の座標のリストである。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage @@ -1247,13 +1254,13 @@ ptiは,各頂点に対応する複素数のリスト,ptが各頂点の座標 \begin{description} \hypertarget{bezier}{} -\item[関数] Bezier(名前,節点リスト,制御点リスト,[オプション] ) -\item[機能] ベジェ曲線を描く -\item[説明] 制御点は,各区間に対して,3次の場合2個,2次の場合1個のリストで与える。 +\item[関数]Bezier(名前,節点リスト,制御点リスト,[オプション] ) +\item[機能]ベジェ曲線を描く +\item[説明]制御点は,各区間に対して,3次の場合2個,2次の場合1個のリストで与える。 オプションは -"Num=n" : 節点間の分割数(分点数 $-1$)を指定できる。 ベジェ曲線とスプライト曲線の関数は節点間が短い場合が多いので初期設定は10になっている。Plotdata()などと違い,大きい数(200など)を指定すると,全体の分割数が増大して描画時間がかかるようになってしまうので注意。 +"Num=n": 節点間の分割数(分点数 $-1$)を指定できる。 ベジェ曲線とスプライト曲線の関数は節点間が短い場合が多いので初期設定は10になっている。Plotdata()などと違い,大きい数(200など)を指定すると,全体の分割数が増大して描画時間がかかるようになってしまうので注意。 \vspace{\baselineskip} 【例】 @@ -1301,7 +1308,7 @@ Bezier("3",[A,B,C],[[D],[E,F]]); 全て同じ次数の場合,次のようにしてもよい. -Bezier("4", [A,B,C,D], [E,F,G,H,K,L] ); +Bezier("4", [A,B,C,D], [E,F,G,H,K,L] ); \begin{layer}{150}{0} \putnotese{20}{2}{\input{Fig/checkbe7}} @@ -1321,17 +1328,17 @@ Bezier("6",[A,B,C],[[D],[E,F]],["Num=40","da"]); Numを(ベクトルとして)区間ごとに与えることもできる。 -Bezier("1", [A,B,C,D], [E,F,G,H,K,L] , [ "Num=[2,3,4]"]); +Bezier("1", [A,B,C,D], [E,F,G,H,K,L] , [ "Num=[2,3,4]"]); \hspace{10mm} \input{Fig/checkbe8} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{beziersmooth}{} -\item[関数] Beziersmooth(名前,節点リスト,[オプション] ) -\item[機能] 節点間を3次ベジェ曲線でスムーズに結んだ曲線を描く -\item[説明] 節点をはさむ制御点は1直線上にとる(したがって,1つは半自由点で,直線上しか動けない)。 +\item[関数]Beziersmooth(名前,節点リスト,[オプション] ) +\item[機能]節点間を3次ベジェ曲線でスムーズに結んだ曲線を描く +\item[説明]節点をはさむ制御点は1直線上にとる(したがって,1つは半自由点で,直線上しか動けない)。 制御点は自動的に配置される。その後,節点や制御点を動かして,描きたいものにする。 \vspace{\baselineskip} @@ -1356,9 +1363,9 @@ Beziersmooth("1",[A,B,C,D]); \vspace{\baselineskip} \hypertarget{beziersym}{} -\item[関数] Beziersym(名前,節点リスト,[オプション] ) -\item[機能] 節点間を3次ベジェ曲線でスムーズに結んだ曲線を描く -\item[説明] 節点をはさむ制御点は節点に関し対称(片方は表示されず,動かせない)。 +\item[関数]Beziersym(名前,節点リスト,[オプション] ) +\item[機能]節点間を3次ベジェ曲線でスムーズに結んだ曲線を描く +\item[説明]節点をはさむ制御点は節点に関し対称(片方は表示されず,動かせない)。 制御点は自動的に配置される。その後,節点や制御点を動かして描きたいものにする。 【例】 @@ -1379,9 +1386,9 @@ C2p と C3p は表示されず,動かせない。 \vspace{\baselineskip} \hypertarget{mkbeziercrv}{} -\item[関数] Mkbeziercrv(名前, [節点リスト,制御点リスト] のリスト,options ) -\item[機能] 複数のベジェ曲線を描く -\item[説明] [節点リスト,制御点リスト] が1つの場合は,Bezier()と同じ。 +\item[関数]Mkbeziercrv(名前, [節点リスト,制御点リスト] のリスト,options ) +\item[機能]複数のベジェ曲線を描く +\item[説明][節点リスト,制御点リスト] が1つの場合は,Bezier()と同じ。 \vspace{\baselineskip} 【例】ベジェ曲線を2つ描く。 @@ -1390,22 +1397,22 @@ C2p と C3p は表示されず,動かせない。 \input{Fig/checkmc1} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mkbezierptcrv}{} -\item[関数] Mkbezierptcrv(節点リストptlist,[オプション] ) -\item[機能] ベジェ曲線を描く -\item[説明] 制御点は,自動的に配置される。 +\item[関数]Mkbezierptcrv(節点リストptlist,[オプション] ) +\item[機能]ベジェ曲線を描く +\item[説明]制御点は,自動的に配置される。 -複数の場合は [ ptlist1, ptlist2.... ] +複数の場合は[ ptlist1, ptlist2.... ] 名前は,A から順に自動的につける。 オプション -"Deg=...” 次数指定ができる。( 初期設定は3次) +"Deg=...”次数指定ができる。( 初期設定は3次) -"Num=..." 各区間の区間数(分点数ー1)を指定できる。( 初期設定は10) +"Num=..."各区間の区間数(分点数ー1)を指定できる。( 初期設定は10) \vspace{5mm} @@ -1450,7 +1457,7 @@ Deg=2 とすると2次になる。 \putnotese{0}{10}{ \input{Fig/checkb10}} \end{layer} -複数の場合は [ ptlist1, ptlist2.... ] +複数の場合は[ ptlist1, ptlist2.... ] \verb|Mkbezierptcrv([[A,B,C],[D,E,F,G]]);| @@ -1458,41 +1465,41 @@ Deg=2 とすると2次になる。 \vspace{\baselineskip} \hypertarget{bspline}{} -\item[関数] Bspline(名前,制御点リスト,[オプション] ) -\item[機能] 2次B-spline曲線を描く -\item[説明] 節点は自動的に計算され,表示されない +\item[関数]Bspline(名前,制御点リスト,[オプション] ) +\item[機能]2次B-spline曲線を描く +\item[説明]節点は自動的に計算され,表示されない \vspace{\baselineskip} 【例】\verb|Bspline("1",[A,B,C,D,E])| -これは, \verb|Bezier("1",[A,(B+C)/2,(C+D)/2,E],[B,C,D])| と同じ。曲線の名前が bz1 ではなくbzb1 となる。 +これは, \verb|Bezier("1",[A,(B+C)/2,(C+D)/2,E],[B,C,D])|と同じ。曲線の名前が bz1 ではなくbzb1 となる。 通常のB-spline曲線の端の制御点の代わりに,端点を動かせるようにしている。 - \begin{center} \input{Fig/checkbs1}\end{center} +\begin{center} \input{Fig/checkbs1}\end{center} 【例】\verb|Bspline("1",[A,B,C,D,A]);| リストの最初と最後が同じ場合は閉曲線になる。 - + \verb|Bezier("1",[(D+A)/2,(A+B)/2,(B+C)/2,(C+D)/2,(D+A)/2],[A,B,C,D]);| と同じ。 - \begin{center} \input{Fig/checkbs2}\end{center} +\begin{center} \input{Fig/checkbs2}\end{center} 参照:\hyperlink{ospline}{Ospline:大島のスプラインを描く} \vspace{\baselineskip} \hypertarget{crspline}{} -\item[関数] CRspline(名前,節点リスト,[オプション] ) -\item[機能] 単独のCatmull-Rom スプライン曲線を描く +\item[関数]CRspline(名前,節点リスト,[オプション] ) +\item[機能]単独のCatmull-Rom スプライン曲線を描く \item[説明] 自由点は,節点のみで,制御点は節点から作られ移動はできない。 - + オプションに,通常のオプションのほか,次が使える。 -\verb|size ->n| : 画面上での線の太さを指定する。 +\verb|size ->n|:画面上での線の太さを指定する。 【例】\verb|CRspline("1",[A,B,C,D]);| @@ -1500,16 +1507,16 @@ Deg=2 とすると2次になる。 \vspace{\baselineskip} \hypertarget{ospline}{} -\item[関数] Ospline(名前,制御点リスト,[オプション] ) -\item[機能] 大島のspline曲線を描く -\item[説明] 制御点を通るスプライン曲線を描く +\item[関数]Ospline(名前,制御点リスト,[オプション] ) +\item[機能]大島のspline曲線を描く +\item[説明]制御点を通るスプライン曲線を描く リストの最初と最後が同じ場合は閉曲線になる。 \vspace{\baselineskip} -【例】\verb|Ospline("1",[A,B,C,D,E]);| \verb|Ospline("1",[A,B,C,D,A]);| +【例】\verb|Ospline("1",[A,B,C,D,E]);|\verb|Ospline("1",[A,B,C,D,A]);| - \input{Fig/ospline1} \input{Fig/ospline2} + \input{Fig/ospline1}\input{Fig/ospline2} \vspace{\baselineskip} スプライン曲線については次も参照されたい:\hyperlink{bspline}{Bspline:Bスプラインを描く} @@ -1517,52 +1524,52 @@ Deg=2 とすると2次になる。 \vspace{\baselineskip} \hypertarget{circledata}{} -\item[関数] Circledata(name,リスト,options) -\item[機能] 円または多角形を描く。 -\item[説明] 中心の点と,円周上の1点,または3点をリストで与えて円を描く。 +\item[関数]Circledata(name,リスト,options) +\item[機能]円または多角形を描く。 +\item[説明]中心の点と,円周上の1点,または3点をリストで与えて円を描く。 中心と円周上の点を,座標ではなく幾何要素名で指定する場合は name は省略可。 optionsは以下のものをリストで与える。省略した場合は実線で円が描かれる。 \begin{tabbing} 1234\=567890123456789012\=\kill - \> "Rng=[$\theta_1,\theta_2$]" \>角$\theta_1$から$\theta_2$の範囲の弧を描く。角は弧度法で与える。\\ - \> "Num=分割数" \>円を描くときの分割数。値が小さい場合は多角形になる。\\ - \> 線種 \>"dr, n" , "da,m,n" , "do,m,n" + \>"Rng=[$\theta_1,\theta_2$]"\>角$\theta_1$から$\theta_2$の範囲の弧を描く。角は弧度法で与える。\\ + \>"Num=分割数"\>円を描くときの分割数。値が小さい場合は多角形になる。\\ + \>線種\>"dr, n", "da,m,n" , "do,m,n" \end{tabbing} \begin{tabbing} 1234\=56789012345678901234567890\=\kill 【例】いろいろな円を描く。\\ - \>原点中心,半径2の円 \> \verb|Circledata("1",[[0,0],[2,0]]);|\\ - \>A中心,半径ABの円 \> \verb|Circledata([A,B]);|\\ - \>A中心,半径2の円 \> \verb|Circledata("1",[A,A+[2,0]]);|\\ - \>3点A,B,Cを通る円 \> \verb|Circledata([A,B,C]);|\\ + \>原点中心,半径2の円\> \verb|Circledata("1",[[0,0],[2,0]]);|\\ + \>A中心,半径ABの円\> \verb|Circledata([A,B]);|\\ + \>A中心,半径2の円\> \verb|Circledata("1",[A,A+[2,0]]);|\\ + \>3点A,B,Cを通る円\> \verb|Circledata([A,B,C]);|\\ \>下図左より,オプションに "dr,2" , "da" , "do" をつけた場合。 \end{tabbing} \hspace{10mm} \input{Fig/circledata1} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - \verb|Circledata([A,B,C]);| で,3点A,B,Cを通る円を描いたとき,できた円の中心は \verb|Pointdata("1",[crABCcenter]);| で作図できる。 + \verb|Circledata([A,B,C]);| で,3点A,B,Cを通る円を描いたとき,できた円の中心は \verb|Pointdata("1",[crABCcenter]);| で作図できる。 \vspace{\baselineskip} 【例】A中心,半径AB,中心角60°の弧を描く。 -\hspace{10mm} \verb|Circledata([A,B],["Rng=[0,pi/3]"]); | +\hspace{10mm}\verb|Circledata([A,B],["Rng=[0,pi/3]"]); | \vspace{\baselineskip} 【例】A中心,半径AB,中心角60°の扇型を描く。点A,B,Cを適当に取っておく。 - + \begin{verbatim} - th=arctan2(B-A); - C.xy=Rotatepoint(B,pi/3,A); - Circledata([A,B],[Assign("Rng=[th,th+pi/3]","th",th)]); - Listplot([B,A,C]); - Letter([A,"s","A",B,"e","B",C,"nw","C"]); +th=arctan2(B-A); +C.xy=Rotatepoint(B,pi/3,A); +Circledata([A,B],[Assign("Rng=[th,th+pi/3]","th",th)]); +Listplot([B,A,C]); +Letter([A,"s","A",B,"e","B",C,"nw","C"]); \end{verbatim} \begin{center} -\includegraphics[bb=0.00 0.00 180.01 177.01,width=4cm"] {Fig/circledata3.pdf}\hspace{12mm} \input{Fig/circledata2} +\includegraphics[bb=0.00 0.00 180.01 177.01,width=4cm"] {Fig/circledata3.pdf}\hspace{12mm}\input{Fig/circledata2} \end{center} 1行目は,ABが$x$軸となす角を arctan2 関数 によって求めている。 @@ -1570,15 +1577,15 @@ optionsは以下のものをリストで与える。省略した場合は実線 \vspace{\baselineskip} 【例】弧を太く描く - \verb|Circledata([C,D],["dr,3","Rng=[0,pi/3]"]);| +\verb|Circledata([C,D],["dr,3","Rng=[0,pi/3]"]);| - 円はNが大きな値の正N多角形として描いている。optionの ["Num=数値"] によってその細かさを指定できる。Nの値が小さければ正多角形が描けることになる。 +円はNが大きな値の正N多角形として描いている。optionの ["Num=数値"] によってその細かさを指定できる。Nの値が小さければ正多角形が描けることになる。 \vspace{\baselineskip} 【例】A中心,半径ABの円と,その円に内接する正六角形 \begin{verbatim} - Circledata("1",[A,B]); - Circledata("2",[A,B],["Num=6"]); +Circledata("1",[A,B]); +Circledata("2",[A,B],["Num=6"]); \end{verbatim} ここで,同じ[A,B]を使うため,nameを付与して区別する必要がある。(下図左) @@ -1587,34 +1594,34 @@ optionsは以下のものをリストで与える。省略した場合は実線 \verb|Circledata("2",[A,B],["Num=6","Rng=[pi/6,13/6*pi]"]);| \hspace{10mm} \input{Fig/circledata4} -\hspace{5mm} \input{Fig/circledata5} +\hspace{5mm}\input{Fig/circledata5} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mkcircles}{} -\item[関数] Mkcircles() -\item[機能] すべての幾何円のPD を作成 -\item[説明] Cinderellaの「円を加える」ツール(3種類いずれでも)で描いたすべての円をそのままプロットデータとする。たとえば,中心A,円周上の点をBとした円を作ると,プロットデータcrABが作成される。その後,インスペクタで点Bの識別名を変更(たとえばQに)すると,プロットデータ名も変更される。円はすでに描かれていてもよい。 +\item[関数]Mkcircles() +\item[機能]すべての幾何円のPD を作成 +\item[説明]Cinderellaの「円を加える」ツール(3種類いずれでも)で描いたすべての円をそのままプロットデータとする。たとえば,中心A,円周上の点をBとした円を作ると,プロットデータcrABが作成される。その後,インスペクタで点Bの識別名を変更(たとえばQに)すると,プロットデータ名も変更される。円はすでに描かれていてもよい。 \vspace{\baselineskip} \hypertarget{ellipseplot}{} -\item[関数] Ellipseplot(name,点リスト ,定義域, options) -\item[機能] 焦点と通る点を与えて楕円を描く。 -\item[説明] 点リストで2つの焦点と通る点を与える。点はCinderellaの幾何点が使える。 +\item[関数]Ellipseplot(name,点リスト ,定義域, options) +\item[機能]焦点と通る点を与えて楕円を描く。 +\item[説明]点リストで2つの焦点と通る点を与える。点はCinderellaの幾何点が使える。 + +また,通る点のかわりに,焦点からの距離の和を実数で与えることもできる。 - また,通る点のかわりに,焦点からの距離の和を実数で与えることもできる。 - - 実際には,媒介変数表示$x=a \cos \theta,y=b \sin \theta$ を,回転・平行移動して描いている。定義域はこのときの$t$の定義域で,省略も可能。省略したときの初期値は[-5,5] +実際には,媒介変数表示$x=a \cos \theta,y=b \sin \theta$ を,回転・平行移動して描いている。定義域はこのときの$t$の定義域で,省略も可能。省略したときの初期値は[-5,5] \vspace{\baselineskip} 【例】点A,Bを焦点とする楕円を描く。 -\verb|Ellipseplot("1",[A,B,C]);| 点Cを通る楕円を描く。 +\verb|Ellipseplot("1",[A,B,C]);| 点Cを通る楕円を描く。 -\verb|Ellipseplot("1",[A,B,4]);| 焦点からの距離の和が4である楕円を描く。 +\verb|Ellipseplot("1",[A,B,4]);| 焦点からの距離の和が4である楕円を描く。 -\verb|Ellipseplot("1",[A,B,C],"[0,pi]");| 楕円の半分を描く。 +\verb|Ellipseplot("1",[A,B,C],"[0,pi]");| 楕円の半分を描く。 \vspace{\baselineskip} 【例】Cinderellaの作図ツールを使う @@ -1633,74 +1640,72 @@ optionsは以下のものをリストで与える。省略した場合は実線 \vspace{\baselineskip} \begin{layer}{150}{0} -\putnotese{75}{5}{ \includegraphics[bb=0 0 272.01 240.01, width=5cm]{Fig/ellipsecindy.pdf}} +\putnotese{75}{5}{ \includegraphics[bb=0 0 272.01 240.01, width=4cm]{Fig/ellipsecindy.pdf}} \end{layer} \hspace{50mm} \begin{verbatim} - Ellipseplot("1",[A,B,C]); - Lineplot([C,D]); - Lineplot([C,E]); - Arrowdata([A,C]); - Arrowdata([C,B]); - Anglemark([A,C,B]); - Expr([A,"s2","F_1",B,"s2","F_2"]); +Ellipseplot("1",[A,B,C]); +Lineplot([C,D]); +Lineplot([C,E]); +Arrowdata([A,C]); +Arrowdata([C,B]); +Anglemark([A,C,B]); +Expr([A,"s2","F_1",B,"s2","F_2"]); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/ellipseplot1}\end{center} +\begin{center} \scalebox{0.9}{\input{Fig/ellipseplot1}}\end{center} + +また,接線,法線を描かず,この楕円上に点D,E,・・をとり(個数は任意)次のスクリプトを書けば,何本かの光線が一方の焦点を出て他方の焦点に集まる様子を描くことができる。 - また,接線,法線を描かず,この楕円上に点D,E,・・をとり(個数は任意)次のスクリプトを書けば,何本かの光線が一方の焦点を出て他方の焦点に集まる様子を描くことができる。 - -\begin{layer}{150}{0} - \putnotese{70}{0}{\scalebox{0.9}{ \input{Fig/ellipseplot2}}} -\end{layer} \begin{verbatim} - Ellipseplot("1",[A,B,C]); - Listplot([A,C,B]); - Listplot([A,D,B]); - Listplot([A,E,B]); - Expr([A,"s2","F_1",B,"s2","F_2"]); +Ellipseplot("1",[A,B,C]); +Listplot([A,C,B]); +Listplot([A,D,B]); +Listplot([A,E,B]); +Expr([A,"s2","F_1",B,"s2","F_2"]); \end{verbatim} -\vspace{10mm} +\begin{center} \scalebox{0.9}{\input{Fig/ellipseplot2}} \end{center} + \hypertarget{hyperbolaplot}{} -\item[関数] Hyperbolaplot(name,点リスト ,定義域, options) -\item[機能] 焦点と通る点を与えて双曲線を描く。 -\item[説明] 点リストで2つの焦点と通る点を与える。点はCinderellaの幾何点が使える。 +\item[関数]Hyperbolaplot(name,点リスト ,定義域, options) +\item[機能]焦点と通る点を与えて双曲線を描く。 +\item[説明]点リストで2つの焦点と通る点を与える。点はCinderellaの幾何点が使える。 また,通る点のかわりに,焦点からの距離の差を実数で与えることもできる。 実際には,ハイパボリック関数を用いた媒介変数表示 $x=\cosh t,y=\sinh t$を回転・平行移動している。 -optionとして,"Asy=線種" を与えると,漸近線を指定した線種で表示する。 初期設定では漸近線は非表示。 - +optionとして,"Asy=線種"を与えると,漸近線を指定した線種で表示する。 初期設定では漸近線は非表示。 + \vspace{\baselineskip} 【例】点A,Bを焦点とする双曲線を描く。 -\verb|Hyperbolaplot("1",[A,B,C]);| 点Cを通る双曲線を描く。 +\verb|Hyperbolaplot("1",[A,B,C]);| 点Cを通る双曲線を描く。 -\verb|Hyperbolaplot("1",[A,B,2]);| 焦点からの距離の差が2の双曲線を描く。 +\verb|Hyperbolaplot("1",[A,B,2]);|焦点からの距離の差が2の双曲線を描く。 -\verb|Hyperbolaplot("1",[A,B,C],["Asy=do"]);| 漸近線を点線で描く。 +\verb|Hyperbolaplot("1",[A,B,C],["Asy=do"]);| 漸近線を点線で描く。 \vspace{\baselineskip} \hspace{20mm} \scalebox{0.9}{\input{Fig/hyper1}} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{parabolaplot}{} -\item[関数] Parabolaplot(name,点リスト ,定義域, options) -\item[機能] 点リスト[A,B,C]で示された焦点,準線で決まる放物線を描く。 -\item[説明] 焦点Aと準線BCで決定する放物線を描く。 +\item[関数]Parabolaplot(name,点リスト ,定義域, options) +\item[機能]点リスト[A,B,C]で示された焦点,準線で決まる放物線を描く。 +\item[説明]焦点Aと準線BCで決定する放物線を描く。 - 実際には,2次関数 $y=x^2$のグラフを回転・平行移動して描いており,定義域は,$y=x^2$での定義域と考えてよい。定義域は省略することもできる。省略したときの初期値は[-5,5] +実際には,2次関数 $y=x^2$のグラフを回転・平行移動して描いており,定義域は,$y=x^2$での定義域と考えてよい。定義域は省略することもできる。省略したときの初期値は[-5,5] \vspace{\baselineskip} 【例】点Aを焦点,直線BCを準線とする放物線を描く \hspace{10mm}\verb|Parabolaplot("1",[A,B,C]); | - + 定義域を $-4 \leq x \leq 4$ とする。 \hspace{10mm} \verb|Parabolaplot("1",[A,B,C],"[-4,4]");| @@ -1713,7 +1718,7 @@ optionとして,"Asy=線種" を与えると,漸近線を指定した線種 【例】放物線上の2点で引かれた接線と放物線で囲まれた領域を斜線で描く。 Cinderellaの作図ツールに,焦点と準線で放物線を描くものがある。また,点の極線を描くツールがある。(モードメニュー / 直線 / 点の極線)これを利用すると,放物線上にとった点をインシデントにできるので,インタラクティブに図を変更することができる。このCinderellaの作図機能と合わせて,次の手順で図を描く。 - + まず,焦点A(0,1)と準線$y=-1$:BCを作図する。次に「焦点と準線で決まる放物線」ツールを選び,点Aと直線BCを指定すると,放物線が描かれる。方程式では$y=\dfrac{1}{4}x^2$の放物線である。 次に,放物線上に点D,Eをとる。Cinderellaの作図機能を用いているので,この2点は放物線上だけを動かすことができる。(インシデント) @@ -1722,14 +1727,14 @@ Cinderellaの作図ツールに,焦点と準線で放物線を描くものが \vspace{\baselineskip} \begin{center} \includegraphics[bb=0 0 482.02 413.02 , width=6cm]{Fig/parabolaplot.pdf} \end{center} - + \vspace{\baselineskip} - 以上で作図ができたので,次のスクリプトを書いて実行する。 +以上で作図ができたので,次のスクリプトを書いて実行する。 \begin{verbatim} - Parabolaplot("1",[A,B,C]); - Lineplot([D,F]); - Lineplot([E,F]); - Hatchdata("1",["iii"],[["gr1para","s"],["lnEF","n"],["lnDF","n"]]); +Parabolaplot("1",[A,B,C]); +Lineplot([D,F]); +Lineplot([E,F]); +Hatchdata("1",["iii"],[["gr1para","s"],["lnEF","n"],["lnDF","n"]]); \end{verbatim} これで,次図ができる。このあと,文字などは適当に追加する。 @@ -1739,35 +1744,35 @@ Cinderellaの作図ツールに,焦点と準線で放物線を描くものが なお,Cinderellaの作図ツールで放物線を描かず,焦点Aと準線上の点B,Cだけを用意して,次のスクリプトで描くこともできる。 \begin{verbatim} - Parabolaplot("1",[A,B,C]); - Putoncurve("D","gr1para"); - Putoncurve("E","gr1para"); - Tangentplot("1","gr1para","x="+D.x); - Tangentplot("2","gr1para","x="+E.x); - Hatchdata("1",["iii"],[["gr1para","s"],["lntn1","n"],["lntn2","n"]]); +Parabolaplot("1",[A,B,C]); +Putoncurve("D","gr1para"); +Putoncurve("E","gr1para"); +Tangentplot("1","gr1para","x="+D.x); +Tangentplot("2","gr1para","x="+E.x); +Hatchdata("1",["iii"],[["gr1para","s"],["lntn1","n"],["lntn2","n"]]); \end{verbatim} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %\vspace{\baselineskip} \hypertarget{ovaldata}{} -\item[関数] Ovaldata(name, 点リスト,options) -\item[機能] 角を丸くした矩形を描く -\item[説明] 中心と対角の1点を指定し,角を丸くした矩形を描く +\item[関数]Ovaldata(name, 点リスト,options) +\item[機能]角を丸くした矩形を描く +\item[説明]中心と対角の1点を指定し,角を丸くした矩形を描く optionsは,角の落とし具合と線種など。 初期設定は0.2 \vspace{\baselineskip} 【例】いくつかの例を示す。 \begin{verbatim} - Ovaldata("1", [A,B]); - Ovaldata("2", [C,D],[0]); - Ovaldata("3", [E,F],[1,"dr,3"]); - Ovaldata("4", [G,H],[1.5,"da"]); +Ovaldata("1", [A,B]); +Ovaldata("2", [C,D],[0]); +Ovaldata("3", [E,F],[1,"dr,3"]); +Ovaldata("4", [G,H],[1.5,"da"]); \end{verbatim} -\begin{center} \input{Fig/ovaldata}\end{center} +\begin{center} \scalebox{0.9}{\input{Fig/ovaldata}}\end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %\newpage \end{description} % ====== 関数のグラフ ============== @@ -1776,45 +1781,45 @@ optionsは,角の落とし具合と線種など。 初期設定は0.2 \vspace{\baselineskip} \hypertarget{plotdata}{} -\item[関数] Plotdata(name , 式 , 変数と定義域 , options) -\item[機能] 関数のグラフを描く。プロットデータの名前は,gr -\item[説明] 式で表された関数のグラフを,指定された定義域で描く。 +\item[関数]Plotdata(name , 式 , 変数と定義域 , options) +\item[機能]関数のグラフを描く。プロットデータの名前は,gr +\item[説明]式で表された関数のグラフを,指定された定義域で描く。 式,定義域は " " でくくって文字列とする。定義域はx=に続いてリストで指定。 options は次の通り。 \begin{tabbing} 12345678901234567890123\=\kill - 線種 \>"dr, n" , "da,m,n" , "do,m,n"\\ - "Num=数値" \>描画時の分割数\\ - "Dis=数値" \>値が指定数値以上ジャンプする場合は不連続点とみなす。\\ - "Exc=数値リスト \>リストで示された点は除外する。\\ - "Exc=関数" \>関数の零点は除外する。\\ - "Color=RGB" \>色指定。RGBはCMYKでもよい。 +線種\>"dr, n", "da,m,n" , "do,m,n"\\ +"Num=数値"\>描画時の分割数\\ +"Dis=数値" \>値が指定数値以上ジャンプする場合は不連続点とみなす。\\ +"Exc=数値リスト \>リストで示された点は除外する。\\ +"Exc=関数"\>関数の零点は除外する。\\ +"Color=RGB"\>色指定。RGBはCMYKでもよい。 \end{tabbing} - 【例】2次関数 $f(x)=x^2-2x$ のグラフを定義域指定なしで描く。 - -\hspace{10mm} \verb|Plotdata("1","x^2-2*x","x");| +【例】2次関数 $f(x)=x^2-2x$ のグラフを定義域指定なしで描く。 + +\hspace{10mm}\verb|Plotdata("1","x^2-2*x","x");| \vspace{\baselineskip} -\hspace{20mm} \scalebox{0.9}{\input{Fig/plotdata1}} +\hspace{20mm} \scalebox{0.8}{\input{Fig/plotdata1}} \verb|Plotdata("1","x^2-2*x","x",["Color=[1,0,0]"]);| とすると赤で描かれる。 \vspace{\baselineskip} - 【例】三角関数 $2\sin \left(2x-\dfrac{\pi}{4} \right)$ のグラフを,定義域 $0 \leq x \leq 2 \pi$で描く。 - +【例】三角関数 $2\sin \left(2x-\dfrac{\pi}{4} \right)$ のグラフを,定義域 $0 \leq x \leq 2 \pi$で描く。 + \hspace{10mm} \verb|Plotdata("3","2*sin(2*x-pi/4)","x=[0,2*pi]");| \vspace{\baselineskip} -\hspace{20mm} \input{Fig/plotdata2} +\hspace{20mm}\input{Fig/plotdata2} %\vspace{\baselineskip} - CindyScript では,plot( 式 , 定義域 ); で描くが, \ketcindy を用いるときは,CindyScript のplot 関数のかわりに,このPlotdata を使えばよい。 - +CindyScript では,plot( 式 , 定義域 ); で描くが, \ketcindy を用いるときは,CindyScript のplot 関数のかわりに,このPlotdata を使えばよい。 + 軸に数字を入れるのであれば,Letter() を用いる。 \vspace{\baselineskip} @@ -1823,8 +1828,8 @@ optionsの使用例 1234\=567890123456789012345678901234567890123456\=\kill \> \verb|Plotdata("1","sin(x)+3","x");| \> 初期設定\\ \> \verb|Plotdata("2","sin(x)+2","x",["dr,2"]);| \> 同じく,太さ2で描く\\ - \> \verb|Plotdata("3","sin(x)+1","x",["da"]);| \> 同じく,破線で描く\\ - \> \verb|Plotdata("4","sin(x)","x",["do"]);| \> 同じく,点線で描く + \> \verb|Plotdata("3","sin(x)+1","x",["da"]);|\> 同じく,破線で描く\\ + \> \verb|Plotdata("4","sin(x)","x",["do"]);|\> 同じく,点線で描く \end{tabbing} 結果は次図上から。 @@ -1839,13 +1844,13 @@ Num=分割数の指定 \hspace{20mm}\scalebox{0.8}{ \input{Fig/plotdata4}} 不連続点の指定 - + Dis オプションにより,値がジャンプする不連続点を線で結ばないようにする。Numオプションと合わせて使うと効果が上がる。 \vspace{\baselineskip} - 【例】$f(x)=$tan$x$ のグラフは,そのままではあたかも漸近線が描かれたようになるが,これは,不連続点の前後をそのまま結んでいるためである。(下図左) +【例】$f(x)=$tan$x$ のグラフは,そのままではあたかも漸近線が描かれたようになるが,これは,不連続点の前後をそのまま結んでいるためである。(下図左) \begin{verbatim} - Plotdata("1","tan(x)","x",["Num=200","Dis=50"]); +Plotdata("1","tan(x)","x",["Num=200","Dis=50"]); \end{verbatim} のように,"Dis" オプションを使えば余分な線が描かれなくなる。(下図右) @@ -1855,107 +1860,108 @@ Dis オプションにより,値がジャンプする不連続点を線で結 \vspace{\baselineskip} 【例】ガウス記号 [$x$] で表される関数(床関数 : floor())のグラフ。 \begin{verbatim} - Plotdata("1","floor(x)","x",["Num=100","Dis=0.9"]); - Drwxy(); - repeat(7,s,start -> -2, - Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]); - ); +Plotdata("1","floor(x)","x",["Num=100","Dis=0.9"]); +Drwxy(); +repeat(7,s,start -> -2, +Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]); +); \end{verbatim} \hspace{40mm}\input{Fig/plotdata5} なお,ここで,Pointdata() のname を text(s+3) としているのは,sが -2 から始まるので,name は1から始まるようにするためである。name に負の数は使えないので。 \vspace{\baselineskip} - 関数に文字係数がついており,文字係数の値を変化させながらグラフを描くには,Assign を使うか,Defvar で変数を定義する。 - +関数に文字係数がついており,文字係数の値を変化させながらグラフを描くには,Assign を使うか,Defvar で変数を定義する。 + \vspace{\baselineskip} - 【例】直線 $y=bx-b^2$ の係数$b$を変化させて描き,包絡線をうかびあがらせる。 -\begin{verbatim} - repeat(50,t, - cb=t/5-5; - Plotdata(text(t),Assign("b*x-b^2","b",cb),"x"); - ); -\end{verbatim} +【例】直線 $y=bx-b^2$ の係数$b$を変化させて描き,包絡線をうかびあがらせる。 + \begin{layer}{150}{0} -\putnotese{80}{0}{\input{Fig/assign}} +\putnotese{95}{3}{\scalebox{0.8}{{\input{Fig/assign}}}} \end{layer} +\begin{verbatim} +repeat(50,t, + cb=t/5-5; + Plotdata(text(t),Assign("b*x-b^2","b",cb),"x"); +); +\end{verbatim} または \begin{verbatim} - Defvar("b"); - repeat(50,t, - b=t/5-5; - Plotdata(text(t),"b*x-b^2","x"); - ); +Defvar("b"); +repeat(50,t, + b=t/5-5; + Plotdata(text(t),"b*x-b^2","x"); +); \end{verbatim} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{implicitplot}{} -\item[関数] Implicitplot(name,式,xの定義域,yの定義域, options) -\item[機能] 陰関数のグラフを描く。 -\item[説明] 陰関数の式を与えてグラフを描く。式,定義域とも文字列。 +\item[関数]Implicitplot(name,式,xの定義域,yの定義域, options) +\item[機能]陰関数のグラフを描く。 +\item[説明]陰関数の式を与えてグラフを描く。式,定義域とも文字列。 options は,"r","m","Wait=n" が指定できる。Wait の初期値は10。 "r","m"に関しては,オプションなしのとき - i) データファイルがなければ,新しく作る - - ii) データファイルが既にあればそれを読み込む - -"m" のとき,強制的にデータファイルを作り直す。 +i) データファイルがなければ,新しく作る + +ii) データファイルが既にあればそれを読み込む + +"m"のとき,強制的にデータファイルを作り直す。 "r" のとき,すでにあるデータファイルを読み込む。 \vspace{\baselineskip} 【例】楕円を描く。 \begin{verbatim} - Implicitplot("1","x^2-x*y+2*y^2=4","x=[-3,3]","y=[-2,2]"); +Implicitplot("1","x^2-x*y+2*y^2=4","x=[-3,3]","y=[-2,2]"); \end{verbatim} \vspace{\baselineskip} -\hspace{20mm}\input{Fig/implicit1} +\hspace{20mm}\scalebox{0.9}{\input{Fig/implicit1}} \vspace{\baselineskip} \hypertarget{deqplot}{} -\item[関数] Deqplot(name,式,変数名,初期値,options) -\item[機能] 微分方程式の解曲線を描く -\item[説明] 微分方程式と初期値を与えて解曲線を描く。 +\item[関数]Deqplot(name,式,変数名,初期値,options) +\item[機能]微分方程式の解曲線を描く +\item[説明]微分方程式と初期値を与えて解曲線を描く。 \vspace{\baselineskip} 【例】$y''=-y$で,初期値が$x=0$のとき$y=1,y'=0$ の解曲線 - \verb|Deqplot("1","y``=-y","x",0, [1,0]); | +\verb|Deqplot("1","y''=-y","x",0, [1,0]); | -注) \verb|`| はバッククウォート。ここからカットアンドペーストするときは注意。 +注) 微分記号のプライムは,シングルクォートまたはバッククォート。 \vspace{\baselineskip} -\hspace{20mm} \input{Fig/deqplot1} +\hspace{20mm}\input{Fig/deqplot1} \vspace{\baselineskip} 【例】$y'=y*(1-y)$で,$x=0$のとき,$y=0.5$の解曲線 - \verb|Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]);| + \verb|Deqplot("2","y'=y*(1-y)","x",0, 0.5,["Num=100"]);| \vspace{\baselineskip} -\hspace{20mm} \input{Fig/deqplot2} +\hspace{20mm}\input{Fig/deqplot2} \vspace{\baselineskip} 【例】$[x,y]'=[x(1-y),0.3y(x-1)]$で,変数は$t$,$t=0$(区間の左端)のときの$x, y$の値が1と0.5 であるときの解曲線 \begin{verbatim} - Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]", - [1,0.5],["Num=200"]); +Deqplot("3","[x,y]'=[x*(1-y),0.3*y*(x-1)]","t=[0,20]", +[1,0.5],["Num=200"]); \end{verbatim} \vspace{\baselineskip} -\hspace{20mm} \input{Fig/deqplot3} +\hspace{20mm}\input{Fig/deqplot3} \vspace{\baselineskip} \hypertarget{paramplot}{} -\item[関数] Paramplot(name , 式 , 変数と定義域,options) -\item[機能] 媒介変数表示の曲線を描く。 -\item[説明] 式は""でくくった媒介変数表示のリストで与える。 +\item[関数]Paramplot(name , 式 , 変数と定義域,options) +\item[機能]媒介変数表示の曲線を描く。 +\item[説明]式は""でくくった媒介変数表示のリストで与える。 定義域も " " でくくって文字列とし,t=に続いてリストで指定する。 @@ -1967,24 +1973,24 @@ options は線種が有効 \hspace{10mm} \verb|Paramplot("1","[t-sin(t),1-cos(t)]","t=[0,2*pi]");| \vspace{\baselineskip} -\hspace{20mm} \input{Fig/paramplot1} +\hspace{20mm}\input{Fig/paramplot1} \vspace{\baselineskip} 【例】optionsの使用例。左から, 初期設定,太線,破線,点線の楕円 \begin{verbatim} - Paramplot("1","[2*cos(t)-5,sin(t)]","t=[0,2*pi]"); - Paramplot("2","[2*cos(t),sin(t)]","t=[0,2*pi]",["dr,2"]); - Paramplot("3","[2*cos(t)+5,sin(t)]","t=[0,2*pi]",["da"]); - Paramplot("4","[2*cos(t)+10,sin(t)]","t=[0,2*pi]",["do"]); +Paramplot("1","[2*cos(t)-5,sin(t)]","t=[0,2*pi]"); +Paramplot("2","[2*cos(t),sin(t)]","t=[0,2*pi]",["dr,2"]); +Paramplot("3","[2*cos(t)+5,sin(t)]","t=[0,2*pi]",["da"]); +Paramplot("4","[2*cos(t)+10,sin(t)]","t=[0,2*pi]",["do"]); \end{verbatim} \begin{center} \input{Fig/paramplot2} \end{center} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{polarplot}{} -\item[関数] Polarplot(name , 式 , 変数と定義域,options) -\item[機能] 極座標表示$r=f(\theta)$の曲線を描く。 +\item[関数]Polarplot(name , 式 , 変数と定義域,options) +\item[機能]極座標表示$r=f(\theta)$の曲線を描く。 \vspace{\baselineskip} 【例】カージオイド曲線を描く。 @@ -1992,13 +1998,13 @@ options は線種が有効 \hspace{20mm}\verb|Polarplot("1","2*(1+cos(t))","t=[0,2*pi]",["Num=200"]);| \vspace{\baselineskip} -\begin{center}\scalebox{0.9}{\input{Fig/cardioid1}}\end{center} +\begin{center}\scalebox{0.7}{\input{Fig/cardioid1}}\end{center} \vspace{\baselineskip} \hypertarget{periodfun}{} -\item[関数] Periodfun(定義式,周期,options) -\item[機能] 周期関数のグラフを描く。戻り値はMaxima形式の式とperiodのリスト。 -\item[説明] 周期関数の式を定義してグラフを描く。 +\item[関数]Periodfun(定義式,周期,options) +\item[機能]周期関数のグラフを描く。戻り値はMaxima形式の式とperiodのリスト。 +\item[説明]周期関数の式を定義してグラフを描く。 定義式は,関数式(文字列),区間,分割数のリスト。 この関数固有のオプションは "Con=" で,不連続点を線で結ぶか否かと,その時の色。 @@ -2013,34 +2019,34 @@ options は線種が有効 【例】矩形関数のグラフ \begin{verbatim} - defL=["0",[-1,0],1,"1",[0,1],1]; - Periodfun(defL, 2,["dr,2"]); - memori=apply(-5..5,x,[x,text(x)]); - memori=flatten(remove(memori,[[0,"0"]])); - Htickmark(memori); - Vtickmark([1,"1"]); +defL=["0",[-1,0],1,"1",[0,1],1]; +Periodfun(defL, 2,["dr,2"]); +memori=apply(-5..5,x,[x,text(x)]); +memori=flatten(remove(memori,[[0,"0"]])); +Htickmark(memori); +Vtickmark([1,"1"]); \end{verbatim} \hspace{20mm}\input{Fig/periodfun.tex} \vspace{\baselineskip} -一方を放物線にした場合 +一方を放物線にした場合 \begin{verbatim} - defL=["0",[-1,0],1,"x^2",[0,1],50]; - Periodfun(defL, 2, ["Con=n","dr,2"]); - memori=apply(-5..5,x,[x,text(x)]); - memori=flatten(remove(memori,[[0,"0"]])); - Htickmark(memori); - Vtickmark([1,"1"]); +defL=["0",[-1,0],1,"x^2",[0,1],50]; +Periodfun(defL, 2, ["Con=n","dr,2"]); +memori=apply(-5..5,x,[x,text(x)]); +memori=flatten(remove(memori,[[0,"0"]])); +Htickmark(memori); +Vtickmark([1,"1"]); \end{verbatim} \hspace{20mm}\input{Fig/periodfun2.tex} \vspace{\baselineskip} \hypertarget{fourierseries}{} -\item[関数] Fourierseries(name,係数,周期,項数) -\item[機能] フーリエ級数のグラフを描く。 -\item[説明] $a_0+\displaystyle{\sum _{n=1} ^{\infty}(a_n \cos nx + b_n \sin nx)}$ を描く。 +\item[関数]Fourierseries(name,係数,周期,項数) +\item[機能]フーリエ級数のグラフを描く。 +\item[説明]$a_0+\displaystyle{\sum _{n=1} ^{\infty}(a_n \cos nx + b_n \sin nx)}$ を描く。 係数は $a_0,a_n,b_n$ のリストで,それぞれの要素は文字列とする。 この関数固有のオプションは "Con=y/n" で,不連続点を破線で結ぶか否か。 初期設定は y。 @@ -2050,7 +2056,7 @@ options は線種が有効 \vspace{\baselineskip} 【例】矩形波のフーリエ近似 \begin{verbatim} - Fourierseries("1",["1/2","0","(1-(-1)^n)/(pi*n)"],2,6,["Num=200"]); + Fourierseries("1",["1/2","0","(1-(-1)^n)/(pi*n)"],2,6,["Num=200"]); \end{verbatim} \begin{center} @@ -2059,13 +2065,13 @@ options は線種が有効 \vspace{\baselineskip} \hypertarget{tangentplot}{} -\item[関数] Tangentplot(name , PD , 位置 , options) -\item[機能] 接線を描く。プロットデータの名前は,lntn -\item[説明] 曲線PDの指定した位置での接線を描く。位置は "x=n" で指定する。 +\item[関数]Tangentplot(name , PD , 位置 , options) +\item[機能]接線を描く。プロットデータの名前は,lntn +\item[説明]曲線PDの指定した位置での接線を描く。位置は "x=n" で指定する。 使用例は\hyperlink{parabolaplot}{Parabolaplot}の例を参照。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} %\newpage @@ -2075,46 +2081,46 @@ options は線種が有効 \vspace{\baselineskip} \hypertarget{expr}{} -\item[関数] Expr([座標 , 位置 , 文字列],option) -\item[機能] \TeX 記法の文字列を与えて数式を書く。 -\item[説明] Letterで文字列の前後に\$ \$をおくのと同じ。 +\item[関数]Expr([座標 , 位置 , 文字列],option) +\item[機能]\TeX 記法の文字列を与えて数式を書く。 +\item[説明]Letterで文字列の前後に\$ \$をおくのと同じ。 -導関数の記号は,$'$(シングルクウォート)を用いる。 +導関数の記号は,$'$(シングルクォート)を用いる。 複数の箇所に文字を書く場合は,Letter() と同様,引数をリストにして与える。 optionは フォントサイズで,["size=32"] のように指定する。 \vspace{\baselineskip} -【例】 $f(x)=\dfrac{1}{4} x^2$ とその導関数 $f'(x)=\dfrac{1}{2} x$ の式,軸上に必要な数を入れる。 +【例】$f(x)=\dfrac{1}{4} x^2$とその導関数 $f'(x)=\dfrac{1}{2} x$ の式,軸上に必要な数を入れる。 \begin{verbatim} - Expr([[-3,3],"e","f(x)=\frac{1}{4} x^2",[3,1.5],"s2e2", - "f‘(x)=\frac{1}{2}x",[2,0],"s","2",[0,1],"w","1"]); +Expr([[-3,3],"e","f(x)=\frac{1}{4} x^2",[3,1.5],"s2e2", +"f‘(x)=\frac{1}{2}x",[2,0],"s","2",[0,1],"w","1"]); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/expr}\end{center} +\begin{center} \input{Fig/expr}\end{center} -【例】 対数関数の定積分の記号および積分値を図に書き込む。 +【例】対数関数の定積分の記号および積分値を図に書き込む。 \begin{verbatim} - Expr([Q+[0.2,0],"ne","\displaystyle \int_a^b \log x\,dx="+ - text(L.x*(log(L.x)-1)-G.x*(log(G.x)-1)) ]); +Expr([Q+[0.2,0],"ne","\displaystyle \int_a^b \log x\,dx="+ +text(L.x*(log(L.x)-1)-G.x*(log(G.x)-1)) ]); \end{verbatim} \verb|L.x*(log(L.x)-1)-G.x*(log(G.x)-1)| は,点L,G(図の$a,b$)をドラッグして 積分範囲を決めるようにしているので,そこから計算した値。 - 矢線は \verb| Arrowdata(Q,P); | で表示している。矢線の始点がQ + 矢線は \verb|Arrowdata(Q,P); | で表示している。矢線の始点がQ \vspace{\baselineskip} \begin{center} \input{Fig/intlog}\end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{exprrot}{} -\item[関数] Exprrot(座標 , 向き , 方向,文字列,option) -\item[機能] \TeX 記法の文字列を与えて傾いた数式を書く。 -\item[説明] 「座標」の位置に,指定された向きで数式を書く。 +\item[関数]Exprrot(座標 , 向き , 方向,文字列,option) +\item[機能]\TeX 記法の文字列を与えて傾いた数式を書く。 +\item[説明]「座標」の位置に,指定された向きで数式を書く。 向きはベクトルで与える。 @@ -2125,28 +2131,28 @@ optionは フォントサイズで,["size=32"] のように指定する。 optionは フォントサイズで,["size=32"] のように指定する。 \begin{verbatim} - Exprrot([3,2],[2,-1],"t0n1","\sqrt{3}"); - Exprrot(C,B-A,"\frac{2}{3}"); +Exprrot([3,2],[2,-1],"t0n1","\sqrt{3}"); +Exprrot(C,B-A,"\frac{2}{3}"); \end{verbatim} \vspace{\baselineskip} \hspace{10mm}\includegraphics[bb=0.00 0.00 181.01 131.01,width=4cm]{Fig/exprrot.pdf} \hspace{10mm} \input{Fig/exprrot} \vspace{\baselineskip} -\hypertarget{letter}{}\item[関数] Letter([位置, 方向, 文字列],option) -\item[機能] 文字列を表示する -\item[説明] 「位置(座標)」と方向で指定された場所に文字を書き込む。 +\hypertarget{letter}{}\item[関数]Letter([位置, 方向, 文字列],option) +\item[機能]文字列を表示する +\item[説明]「位置(座標)」と方向で指定された場所に文字を書き込む。 位置(座標)は点の名前で指定することもできる。 -場所は上下左右を東西南北で表し, n/s/w/e/c の方向で表す。cは中央。 +場所は上下左右を東西南北で表し, n/s/w/e/c の方向で表す。cは中央。 -% \begin{center} \input{Fig/letter4} +%\begin{center} \input{Fig/letter4} 指定位置からの距離を,数値で与えることもでき,e2, e3 は e より少し離して置く。 複数の文字列をリストの形にして渡すことができる。 - 注)導関数の記号$'$は,数式モード(\$ ではさむ)で$'$(シングルクウォート)を用いる。 +注)導関数の記号$'$は,数式モード(\$ ではさむ)で$'$(シングルクォート)を用いる。 optionは フォントサイズで,["size=32"] のように指定する。 @@ -2161,73 +2167,73 @@ Letter(位置, 方向, 文字列,option) 座標 (2,1) の南東にPを表示 -\hspace{10mm} \verb|Letter([[2,1] ,"se","P"]);| - +\hspace{10mm}\verb|Letter([[2,1] ,"se","P"]);| + 点Cを中央としてCを表示 -\hspace{10mm} \verb|Letter([C ,"c", "C"]);| +\hspace{10mm}\verb|Letter([C ,"c", "C"]);| 点Aの南西にA,Eの南に数式を表示 -\hspace{10mm} \verb|Letter([A,"sw","A",E,"s","$ f(x)=\frac{1}{4} x^2 $"]);| +\hspace{10mm}\verb|Letter([A,"sw","A",E,"s","$ f(x)=\frac{1}{4} x^2 $"]);| \vspace{\baselineskip} -\hypertarget{letterrot}{}\item[関数] Letterrot(座標, 方向ベクトル,移動量, 文字列,option) -\item[機能] 文字列を回転して表示する -\item[説明] 座標で示された位置に,方向ベクトルで指定された向きに回転して文字を書き込む。 +\hypertarget{letterrot}{}\item[関数]Letterrot(座標, 方向ベクトル,移動量, 文字列,option) +\item[機能]文字列を回転して表示する +\item[説明]座標で示された位置に,方向ベクトルで指定された向きに回転して文字を書き込む。 第3引数は微小移動量で,略すこともできる。 optionは フォントサイズで,["size=32"] のように指定する。 \begin{verbatim} - Letterrot(C,B-A,"t2n5","AB"); +Letterrot(C,B-A,"t2n5","AB"); \end{verbatim} 移動量を略して -\hspace{10mm} \verb|Letterrot(C,B-A,"AB");| +\hspace{10mm}\verb|Letterrot(C,B-A,"AB");| とすることもできる。この場合は,微小な移動はされない。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\newpage +%\newpage \end{description} % ====== マーキング ============== \subsubsection{マーキング} \begin{description} \hypertarget{anglemark}{} -\item[関数] Anglemark(name,点リスト , options) -\item[機能] 点リストで示された角に弧の形状の角の印をつける。 -\item[説明] Listplot() などと同様,点リストが点名の場合はnameは省略できる。弧を描かず文字だけを入れる場合は options に "nodisp" を指定する。 +\item[関数]Anglemark(name,点リスト , options) +\item[機能]点リストで示された角に弧の形状の角の印をつける。 +\item[説明]Listplot() などと同様,点リストが点名の場合はnameは省略できる。弧を描かず文字だけを入れる場合は options に "nodisp" を指定する。 optionsは次の通り。 -数値 角の印の大きさ。 初期設定は1 +数値角の印の大きさ。 初期設定は1 -線種 "dr, n" , "da,m,n" , "do,m,n" +線種"dr, n", "da,m,n" , "do,m,n" "Expr=文字" または "Letter=文字" : 文字を入れる -"Expr=位置 , 文字" : 位置を指定して文字を入れる。位置は頂点からの距離。 +"Expr=位置 , 文字": 位置を指定して文字を入れる。位置は頂点からの距離。 \vspace{\baselineskip} 【例】三角形の内角に印をいれ,文字を書き込む。(下図左) \begin{verbatim} - Listplot([A,B,C,A]); - Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); - Anglemark([B,A,C]); - Anglemark([C,B,A],["Expr=\theta"]); - Anglemark([A,C,B],[2,"dr,3","Expr=2,\alpha"]); +Listplot([A,B,C,A]); +Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); +Anglemark([B,A,C]); +Anglemark([C,B,A],["Expr=\theta"]); +Anglemark([A,C,B],[2,"dr,3","Expr=2,\alpha"]); \end{verbatim} 【例】三角形の内角に弧を描かず,$\circ$ だけ書き込む。(下図右) \begin{verbatim} - Listplot([A,B,C,A]); - Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); - Anglemark([C,B,A],["Expr=\circ","nodisp"]); +Listplot([A,B,C,A]); +Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); +Anglemark([C,B,A],["Expr=\circ","nodisp"]); \end{verbatim} @@ -2237,57 +2243,56 @@ optionsは次の通り。 \vspace{\baselineskip} \hypertarget{paramark}{} -\item[関数] Paramark(name,点リスト , options) -\item[機能] 点リストで示された角に平行四辺形の形状の角の印をつける。 -\item[説明] Listplot() などと同様,点リストが点名の場合はnameは省略できる。 +\item[関数]Paramark(name,点リスト , options) +\item[機能]点リストで示された角に平行四辺形の形状の角の印をつける。 +\item[説明]Listplot() などと同様,点リストが点名の場合はnameは省略できる。 optionsは次の通り。 -数値 角の印の大きさ。 初期設定は1 +数値角の印の大きさ。 初期設定は1 -線種 "dr, n" , "da,m,n" , "do,m,n" +線種"dr, n", "da,m,n" , "do,m,n" -"Expr=文字" : 文字を入れる +"Expr=文字": 文字を入れる -"Expr=位置 , 文字" : 位置を指定して文字を入れる。位置は頂点からの距離。 +"Expr=位置 , 文字": 位置を指定して文字を入れる。位置は頂点からの距離。 \vspace{\baselineskip} \begin{layer}{150}{0} -\putnotese{85}{0}{ \input{Fig/paramark}} +\putnotese{85}{0}{ \scalebox{0.8}{\input{Fig/paramark}}} \end{layer} - 【例】三角形の内角に印をいれ,文字を書き込む。 \begin{verbatim} - Listplot([A,B,C,A]); - Paramark([A,B,C]); - Paramark([C,A,B],[3,"Expr=\alpha"]); - Paramark([B,C,A],["dr,2","Expr=2,\theta"]); - + Listplot([A,B,C,A]); + Paramark([A,B,C]); + Paramark([C,A,B],[3,"Expr=\alpha"]); + Paramark([B,C,A],["dr,2","Expr=2,\theta"]); + \end{verbatim} ※角の印には弧の形状のものもある。\hyperlink{anglemark}{Anglemark()} を参照のこと。\\ \vspace{\baselineskip} \hypertarget{bowdata}{} -\item[関数] Bowdata(name,点リスト , options) -\item[機能] 弓形を描く -\item[説明] 点リストで与えられた2点を結ぶ弓形を描く。Listplot() などと同様,点リストが点名の場合はnameは省略できる。 +\item[関数]Bowdata(name,点リスト , options) +\item[機能]弓形を描く +\item[説明]点リストで与えられた2点を結ぶ弓形を描く。Listplot() などと同様,点リストが点名の場合はnameは省略できる。 2点を反時計回りに回る方向に弓形を描く。 -optionsは,[曲がり , 空白サイズ , 文字, 線種] +optionsは,[曲がり , 空白サイズ, 文字, 線種] -曲がり は弧の曲がり具合の指定。 初期設定は1 +曲がりは弧の曲がり具合の指定。 初期設定は1 -空白サイズ は中央にあける空白の大きさ +空白サイズは中央にあける空白の大きさ 文字は,"Expr=文字" -また,"Expr=微小移動 , 文字" で位置を指定して文字を入れる。 +また,"Expr=微小移動 , 文字"で位置を指定して文字を入れる。 -微小移動は t n +微小移動は tn t は線分方向の微小移動。移動量は数字をつける。正負が可。 @@ -2298,13 +2303,13 @@ optionsは,[曲がり , 空白サイズ , 文字, 線種] \putnotese{85}{5}{ \input{Fig/bowdata}} \end{layer} -【例】 三角形ABCの各辺に弓形マークをつけ記号を入れる。 +【例】三角形ABCの各辺に弓形マークをつけ記号を入れる。 \begin{verbatim} - Listplot([A,B,C,A]); - Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); - Bowdata([A,B]); - Bowdata([B,C],[1,"Expr=t0n3,a"]); - Bowdata([C,A],[2,1.2,"Expr=10","da"]); +Listplot([A,B,C,A]); +Letter([A,"n1","A",B,"w1","B",C,"e1","C"]); +Bowdata([A,B]); +Bowdata([B,C],[1,"Expr=t0n3,a"]); +Bowdata([C,A],[2,1.2,"Expr=10","da"]); \end{verbatim} \vspace{\baselineskip} @@ -2316,54 +2321,52 @@ optionsは,[曲がり , 空白サイズ , 文字, 線種] 以下にいくつか例を示す。 \begin{verbatim} - Bowdata([B,A],[1,1,"Exprrot=a"]); - Bowdata([D,C],[1,1,"Exprrot=t3n0,a"]); - Bowdata([F,E],[1,1,"Exprrot=t-3n0,a"]); - Bowdata([H,G],[1,1,"Exprrot=t0n3,a"]); - Bowdata([L,K],[1,1,"Exprrot=t0n0r,a"]); - Bowdata([N,M],[1,1,"Exprrot=t3n0r,a"]); +Bowdata([B,A],[1,1,"Exprrot=a"]); +Bowdata([D,C],[1,1,"Exprrot=t3n0,a"]); +Bowdata([F,E],[1,1,"Exprrot=t-3n0,a"]); +Bowdata([H,G],[1,1,"Exprrot=t0n3,a"]); +Bowdata([L,K],[1,1,"Exprrot=t0n0r,a"]); +Bowdata([N,M],[1,1,"Exprrot=t3n0r,a"]); \end{verbatim} -\hspace{10mm} \input{Fig/bowdata2} +\hspace{10mm} \scalebox{0.7}{\input{Fig/bowdata2}} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{drawsegmark}{} -\item[関数] Drawsegmark(name,リスト,options)または Segmark(name,リスト,options) -\item[機能] 線分に印をつける -\item[説明] リストで与えられた2点を端点とする線分に印をつける。印には4種類がある。 +\item[関数]Drawsegmark(name,リスト,options)または Segmark(name,リスト,options) +\item[機能]線分に印をつける +\item[説明]リストで与えられた2点を端点とする線分に印をつける。印には4種類がある。 optionsは \begin{tabbing} 1234\=56789012\=345678901234567890\=\kill \> Type=n \>:印の種類 n=1〜4\\ - \> Width \>:二本線のときの線の幅 + \> Width\>:二本線のときの線の幅 \end{tabbing} - 【例】四角形ABCDを描き線分に印をつける。 - +【例】四角形ABCDを描き線分に印をつける。 + \begin{layer}{150}{0} -\putnotese{90}{5}{ \input{Fig/segmark}} +\putnotese{90}{0}{ \input{Fig/segmark}} \end{layer} \hspace{50mm} \begin{verbatim} - Listplot([A,B,C,D,A]); - Segmark("1",[A,B],["Type=1"]); - Segmark("2",[B,C],["Type=2","Width=1.5"]); - Segmark("3",[C,D],["Type=3"]); - Segmark("4",[D,A],["Type=4"]); +Listplot([A,B,C,D,A]); +Segmark("1",[A,B],["Type=1"]); +Segmark("2",[B,C],["Type=2","Width=1.5"]); +Segmark("3",[C,D],["Type=3"]); +Segmark("4",[D,A],["Type=4"]); \end{verbatim} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{htickmark}{} -\item[関数] Htickmark([横座標 , 方向 , 文字]) -\item[機能] 横軸に目盛と文字を書く。 -\item[説明] 引数は位置(横座標),方向,文字。複数点の情報を[ ]内にまとめて記入できる。方向を省略すると "s1"になる。微調整は描画面には反映されないので,PDFにして確認する。 +\item[関数]Htickmark([横座標 , 方向 , 文字]) +\item[機能]横軸に目盛と文字を書く。 +\item[説明]引数は位置(横座標),方向,文字。複数点の情報を[ ]内にまとめて記入できる。方向を省略すると "s1"になる。微調整は描画面には反映されないので,PDFにして確認する。 目盛の長さは \hyperlink{setmarklen}{Setmarklen()} で設定できる。 \vspace{\baselineskip} -【例】 方向指定の例 - -\hspace{10mm} \verb|Htickmark([1,"1",2,"n1","2",3,"se","3",4,"4"]);| +【例】 方向指定の例:\verb|Htickmark([1,"1",2,"n1","2",3,"se","3",4,"4"]);| \vspace{\baselineskip} \begin{center} @@ -2371,84 +2374,85 @@ optionsは \end{center} %\vspace{\baselineskip} -【例】 -5から5までの目盛を打つ。 - Cindyscriptのリスト処理を使って,次のように引数のリストを作って渡す。 +【例】-5から5までの目盛を打つ。 +Cindyscriptのリスト処理を使って,次のように引数のリストを作って渡す。 \begin{verbatim} - memori=apply(-5..5,x,[x,text(x)]); - memori=flatten(remove(memori,[[0,"0"]])); - Htickmark(memori); +memori=apply(-5..5,x,[x,text(x)]); +memori=flatten(remove(memori,[[0,"0"]])); +Htickmark(memori); \end{verbatim} 1行目,apply のカッコ内の -5..5 でリスト[-5,-4,-3,-2,-1,0,1,2,3,4,5] ができる。それを用いて,applyで[数, 数の文字] からなるリストができる。text(x) はxを文字にする関数。2行目で,このリストから,[0,"0"]を除き,リストを平滑化する。 結果は次のようになる。 -\begin{center} \scalebox{0.9}{\input{Fig/htickmark}}\end{center} +\begin{center} \scalebox{0.8}{\input{Fig/htickmark}}\end{center} \hypertarget{vtickmark}{} -\item[関数] Vtickmark([横座標 , 方向 , 文字]) -\item[機能] 縦軸に目盛と文字を書く。 -\item[説明] Htickmarkと同様。縦軸に目盛を書く。方向を省略すると "w1"になる。 +\item[関数]Vtickmark([横座標 , 方向 , 文字]) +\item[機能]縦軸に目盛と文字を書く。 +\item[説明]Htickmarkと同様。縦軸に目盛を書く。方向を省略すると "w1"になる。 \vspace{\baselineskip} 【例】点$(0,\ 1),\ (0,\ 2)$の西側に$1,\ 2$を表示する。 -\hspace{10mm} \verb|Vtickmark([1,"1",2,"2"]);| +\hspace{10mm}\verb|Vtickmark([1,"1",2,"2"]);| \vspace{\baselineskip} \hypertarget{rulerscale}{} -\item[関数] Rulerscale(始点 ,横軸目盛 , 縦軸目盛) -\item[機能] 目盛を打つ -\item[説明] 始点の位置を縦横の起点として目盛りを打つ。目盛はリストで与える。 - ["r",a,b,c,d] の形式では,aからbまでc間隔で,倍率dの目盛を打つ。 - ["f",n1,"str",n2,"str",・・] の形式では,nと"str"がセットで,nの位置に"str"を書く。ただし,位置はCinderellaの描画面の原点を0とする。 - - Listplot() とともに用いると,座標軸とは異なる線分に目盛を打つことができる。 - - Framedata() とともに用いると矩形に目盛を打つことができる。 - +\item[関数]Rulerscale(始点 ,横軸目盛 , 縦軸目盛) +\item[機能]目盛を打つ +\item[説明]始点の位置を縦横の起点として目盛りを打つ。目盛はリストで与える。 +["r",a,b,c,d]の形式では,aからbまでc間隔で,倍率dの目盛を打つ。 +["f",n1,"str",n2,"str",・・] の形式では,nと"str"がセットで,nの位置に"str"を書く。ただし,位置はCinderellaの描画面の原点を0とする。 + +Listplot() とともに用いると,座標軸とは異なる線分に目盛を打つことができる。 + +Framedata() とともに用いると矩形に目盛を打つことができる。 + \vspace{\baselineskip} 【例】x軸上の (2,1) から (9,1) まで線分を引き,1目盛を10として目盛を打つ。 \begin{verbatim} - Listplot("1",[[2,1],[9,1]]); - Rulerscale([2,1],["r",2,9,1,10],[]); -\end{verbatim} - \begin{center} \input{Fig/ruler1} \end{center} +Listplot("1",[[2,1],[9,1]]); +Rulerscale([2,1],["r",2,9,1,10],[]); +\end{verbatim} +\vspace{\baselineskip} +\begin{center} \scalebox{0.9}{\input{Fig/ruler1}} \end{center} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} 【例】Aを原点に置いた矩形枠を描き,横に0,1,2,3,4,5,縦に d1,d2 の目盛を打つ。 \begin{verbatim} - Framedata("1",[A,B],["corner"]); - Rulerscale(A,["r",0,5,1],["f",1,"d1",3,"d2"]); -\end{verbatim} - \begin{center} \input{Fig/ruler} \end{center} +Framedata("1",[A,B],["corner"]); +Rulerscale(A,["r",0,5,1],["f",1,"d1",3,"d2"]); +\end{verbatim} +\begin{center}\scalebox{0.9}{ \input{Fig/ruler}} \end{center} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage -% ==プロットデータの操作=================== +%==プロットデータの操作=================== \subsection{プロットデータの操作} \begin{description} \hypertarget{addgraph}{} -\item[関数] AddGraph(name ,プロットデータのリスト,option) -\item[機能] 複数のプロットデータをまとめる -\item[説明] 複数のプロットデータをまとめて扱う。たとえば,円と,円周上の点の2つのプロットデータをまとめて扱えば,平行移動や回転で,それらのプロットデータをまとめて平行移動や回転ができる。Joincrvs()では,プロットデータをつなげて1つのプロットデータにするが,AddGraph()では,それぞれのプロットデータからなるリスト(リストのリスト)にする。(プロットデータは座標のリストである) +\item[関数]AddGraph(name ,プロットデータのリスト,option) +\item[機能]複数のプロットデータをまとめる +\item[説明]複数のプロットデータをまとめて扱う。たとえば,円と,円周上の点の2つのプロットデータをまとめて扱えば,平行移動や回転で,それらのプロットデータをまとめて平行移動や回転ができる。Joincrvs()では,プロットデータをつなげて1つのプロットデータにするが,AddGraph()では,それぞれのプロットデータからなるリスト(リストのリスト)にする。(プロットデータは座標のリストである) 引数には,プロットデータ名を文字列化して渡す。たとえば,円のプロットデータが cr1 のとき,"cr1" とする。 \vspace{\baselineskip} 【例】サイクロイドの図を描く。 \begin{verbatim} - Setpt(3); - Circledata("1",[[0,1],[0,0]]); - Pointdata("1",[0,0]); - AddGraph("1",["[pt1]","cr1"],["nodisp"]); - nn=32; - forall(1..nn, - t=2*pi/nn*#; - Rotatedata(text(#),"ad1",-t,[[0,1],"nodisp"]); - Translatedata(text(#),"rt"+text(#),[t,0],["dr,0.3"]); - ); +Setpt(3); +Circledata("1",[[0,1],[0,0]]); +Pointdata("1",[0,0]); +AddGraph("1",["[pt1]","cr1"],["nodisp"]); +nn=32; +forall(1..nn, +t=2*pi/nn*#; +Rotatedata(text(#),"ad1",-t,[[0,1],"nodisp"]); +Translatedata(text(#),"rt"+text(#),[t,0],["dr,0.3"]); +); \end{verbatim} \vspace{\baselineskip} @@ -2456,31 +2460,31 @@ optionsは ここで,AddGraph()の引数に与えるプロットデータのリストで,点のプロットデータ pt1 を"[pt1]" としていることに注意。円のプロットデータが,点の座標のリストであるのに対し,点のプロットデータは一つの座標だけなので,このようにしてリスト化して渡す。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{changestyle}{} -\item[関数] Changestyle(PDリスト, options) -\item[機能] 描画オプションを変更する -\item[説明] 複数の図形の描画オプションを一括して変更する。 +\item[関数]Changestyle(PDリスト, options) +\item[機能]描画オプションを変更する +\item[説明]複数の図形の描画オプションを一括して変更する。 \vspace{\baselineskip} 【例】線分AB,円ABの線を破線にして\TeX に書き出さないようにする。 \hspace{10mm} \verb|Changestyle(["sgAB","crAB"],["da","notex"]);| - + \vspace{\baselineskip} \hypertarget{invert}{} -\item[関数] Invert(PD) -\item[機能] プロットデータを逆順にする +\item[関数]Invert(PD) +\item[機能]プロットデータを逆順にする \vspace{\baselineskip} \hypertarget{joincrvs}{} -\item[関数] Joincrvs(name, プロットデータのリスト, options) -\item[機能] 隣接する曲線プロットデータ のリストを繋いで1本の曲線を作る。 -\item[説明] 曲線のリストは隣接する順番で指定する。 +\item[関数]Joincrvs(name, プロットデータのリスト, options) +\item[機能]隣接する曲線プロットデータ のリストを繋いで1本の曲線を作る。 +\item[説明]曲線のリストは隣接する順番で指定する。 -optionsは線種 "dr, n" , "da,m,n" , "do,m,n" +optionsは線種"dr, n", "da,m,n" , "do,m,n" \vspace{\baselineskip} 【例】線分$y=x\ (-\sqrt{2} \leq x \leq \sqrt{2})$と半円で得られる閉曲線を描いて黄色で塗る。 @@ -2492,41 +2496,41 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" \end{layer} \begin{verbatim} - Plotdata("1","x","x=[-sqrt(2),sqrt(2)]"); - B.xy=[sqrt(2),sqrt(2)]; - Circledata("2",[A,B],["Rng=[pi/4,pi/4*5]"]); - Joincrvs("1",["gr1","cr2"]); - Shade(["join1"],["Color=yellow"]); +Plotdata("1","x","x=[-sqrt(2),sqrt(2)]"); +B.xy=[sqrt(2),sqrt(2)]; +Circledata("2",[A,B],["Rng=[pi/4,pi/4*5]"]); +Joincrvs("1",["gr1","cr2"]); +Shade(["join1"],["Color=yellow"]); \end{verbatim} \vspace{5mm} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{partcrv}{} -\item[関数] Partcrv(name, A, B, プロットデータ, options) -\item[機能] 曲線プロットデータ上の点A, B の間の部分曲線を描く。 -\item[説明] 2点A, Bの順序は曲線の向きと同一であること。曲線の向きは,$y=f(x)$のグラフではx座標が増加する向き。 +\item[関数]Partcrv(name, A, B, プロットデータ, options) +\item[機能]曲線プロットデータ上の点A, B の間の部分曲線を描く。 +\item[説明]2点A, Bの順序は曲線の向きと同一であること。曲線の向きは,$y=f(x)$のグラフではx座標が増加する向き。 -optionsは線種 "dr, n" , "da,m,n" , "do,m,n" +optionsは線種"dr, n", "da,m,n" , "do,m,n" \vspace{\baselineskip} 【例】放物線を点線で描き,一部を実線で描く。 - - \verb|Plotdata("1", "x^2", "x", ["do"]);| (プロットデータの名前はgr1となる) - - \verb|Partcrv("1", [0,0], [1,1], "gr1");| + +\verb|Plotdata("1", "x^2", "x", ["do"]);|(プロットデータの名前はgr1となる) + +\verb|Partcrv("1", [0,0], [1,1], "gr1");| \begin{center} \input{Fig/partcrv1} \end{center} 【例】円の一部を実線で描く。円のプロットデータは指定した円周上の点から反時計回りの順にできる。点Aは円の中心,Bは円周上の点とする。点P,Qは適当な位置に作図しておく。 \begin{verbatim} - Circledata([A,B], ["do"]); - Plotdata("1", "x^2", "x", ["do"]); - tmp=Intersectcrvs("crAB","gr1"); - P.xy=tmp_1; - Q.xy=tmp_2; - Partcrv("1", P, Q, "crAB"); - Partcrv("2", Q, P, "crAB"); +Circledata([A,B], ["do"]); +Plotdata("1", "x^2", "x", ["do"]); +tmp=Intersectcrvs("crAB","gr1"); +P.xy=tmp_1; +Q.xy=tmp_2; +Partcrv("1", P, Q, "crAB"); +Partcrv("2", Q, P, "crAB"); \end{verbatim} \vspace{\baselineskip} \hspace{10mm} \input{Fig/partcrv3} \hspace{10mm} \input{Fig/partcrv4} @@ -2540,33 +2544,33 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" \putnotese{85}{0}{\input{Fig/partcrv}} \end{layer} \begin{verbatim} - Circledata("1",[[0,2],[0,0]],["da"]); - Plotdata("1","x^2","x",["do"]); - tmp=Intersectcrvs("cr1","gr1"); - Partcrv("2",tmp_2,tmp_1,"gr1",["dr,2"]); - +Circledata("1",[[0,2],[0,0]],["da"]); +Plotdata("1","x^2","x",["do"]); +tmp=Intersectcrvs("cr1","gr1"); +Partcrv("2",tmp_2,tmp_1,"gr1",["dr,2"]); + \end{verbatim} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %\vspace{\baselineskip} \hypertarget{enclosing}{} -\item[関数] Enclosing(name , PDリスト , [開始位置, 交点計算の許容限界1, 2]) -\item[機能] 複数の曲線から閉曲線を作る。 -\item[説明] 開始位置は,最初と最後の曲線の交点が複数あるときに指定する。 +\item[関数]Enclosing(name , PDリスト , [開始位置, 交点計算の許容限界1, 2]) +\item[機能]複数の曲線から閉曲線を作る。 +\item[説明]開始位置は,最初と最後の曲線の交点が複数あるときに指定する。 開始点は近くに取ればよい。許容限界は,通常は指定しなくてよい。 \vspace{\baselineskip} 【例】放物線と直線で囲まれる領域に色を塗るために Shade() を使う。 \begin{verbatim} - Plotdata("1","x^2","x"); - Lineplot("1",[[0,0],[1,0]]); // axis x - Lineplot("2",[[2,0],[2,1]]); - Enclosing("1",["Invert(gr1)","ln1","ln2"],["nodisp"]); - Shade(["en1"],["Color=red"]); +Plotdata("1","x^2","x"); +Lineplot("1",[[0,0],[1,0]]);// axis x +Lineplot("2",[[2,0],[2,1]]); +Enclosing("1",["Invert(gr1)","ln1","ln2"],["nodisp"]); +Shade(["en1"],["Color=red"]); \end{verbatim} \vspace{\baselineskip} \begin{center} \input{Fig/enclosing} \end{center} @@ -2574,17 +2578,17 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" \vspace{\baselineskip} 注)閉曲線のとりかたでは,出発点を原点にした反時計回りまたは時計回りにすると - 反時計回りで \verb|Enclosing("1",["ln1","ln2","Invert(gr1)"]);| +反時計回りで\verb|Enclosing("1",["ln1","ln2","Invert(gr1)"]);| - 時計回りで \verb|Enclosing("1",["gr1","Invert(ln2)","Invert(ln1)"]);| +時計回りで\verb|Enclosing("1",["gr1","Invert(ln2)","Invert(ln1)"]);| -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{hatchdata}{} -\item[関数] Hatchdata(name , 方向リスト , プロットデータ , options) -\item[機能] 閉曲線の内部に斜線を引く。 -\item[説明] 引数は,曲線名,内部外部のパターンを与える''i'',''o''の文字列,閉曲線を与える曲線と領域の内部を定める方向のリストとオプション。\\ +\item[関数]Hatchdata(name , 方向リスト , プロットデータ , options) +\item[機能]閉曲線の内部に斜線を引く。 +\item[説明]引数は,曲線名,内部外部のパターンを与える''i'',''o''の文字列,閉曲線を与える曲線と領域の内部を定める方向のリストとオプション。\\ オプション(カッコ内はデフォルト値)\\ 角度(45),間隔(1),\verb|"Max=(20)"| 斜線の最大本数,\\ \verb|"No=点リスト"| 点リストの点が選ばれているときは実行しない\\ @@ -2594,39 +2598,39 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" \vspace{\baselineskip} 【例】円の内部。(次図左) \begin{verbatim} - Circledata([A,B],["dr"]); - Hatchdata("1",["i"],[["crAB"]],["dr,0.7"]); +Circledata([A,B],["dr"]); +Hatchdata("1",["i"],[["crAB"]],["dr,0.7"]); \end{verbatim} 【例】3つの閉曲線の内側・外側のパターンが同一である領域(次図右) \begin{verbatim} - Circledata([A,B],["dr"]); - Paramplot("1","[4*cos(t),2*sin(t)]","t=[0,2*pi]"); - Paramplot("2","[2*cos(t),4*sin(t)]","t=[0,2*pi]"); - Hatchdata("1",["ioi"],[["crAB"],["gp1"],["gp2"]],["dr,0.7"]); - Hatchdata("2",["iio"],[["crAB"],["gp1"],["gp2"]],["dr,0.7"]); +Circledata([A,B],["dr"]); +Paramplot("1","[4*cos(t),2*sin(t)]","t=[0,2*pi]"); +Paramplot("2","[2*cos(t),4*sin(t)]","t=[0,2*pi]"); +Hatchdata("1",["ioi"],[["crAB"],["gp1"],["gp2"]],["dr,0.7"]); +Hatchdata("2",["iio"],[["crAB"],["gp1"],["gp2"]],["dr,0.7"]); \end{verbatim} \vspace{\baselineskip} -\hspace{5mm} \input{Fig/hatch1} \hspace{5mm} \input{Fig/hatch2} +\hspace{5mm} \input{Fig/hatch1} \hspace{5mm} \input{Fig/hatch2} 【例】複数の領域。 \begin{verbatim} - Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"]); - Listplot([A,B]); - Listplot([A,C]); - Hatchdata("1",["ii"],[["sgAB","n"],["gr1","s"]],["dr,0.7"]); - Hatchdata("2",["ii"],[["sgAC","s"],["gr1","n"]],["dr,0.7"]); +Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"]); +Listplot([A,B]); +Listplot([A,C]); +Hatchdata("1",["ii"],[["sgAB","n"],["gr1","s"]],["dr,0.7"]); +Hatchdata("2",["ii"],[["sgAC","s"],["gr1","n"]],["dr,0.7"]); \end{verbatim} \begin{center} \begin{center} \input{Fig/hatch3} \end{center} \end{center} -【例】複数の領域 その2。 +【例】複数の領域その2。 \begin{verbatim} - Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"]); - Listplot([A,B]); - Listplot([A,C]); - Hatchdata("1",["iio"],[["sgAB","s"],["sgAC","n"],["gr1","n"]]); +Plotdata("1","2*sin(x)","x=[-pi,3*pi]",["Num=100"]); +Listplot([A,B]); +Listplot([A,C]); +Hatchdata("1",["iio"],[["sgAB","s"],["sgAC","n"],["gr1","n"]]); \end{verbatim} \begin{center} \begin{center} \input{Fig/hatch4} \end{center} @@ -2635,19 +2639,19 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" 【例】3次曲線と接線で囲まれた領域 - 点Aを原点付近に作図しておく。 -\begin{verbatim} - Deffun("f(x)",["regional(y)","y=x^3-2*x","y"]); - Plotdata("1","f(x)","x",["Num=100"]); - Putoncurve("A","gr1"); - coef=Derivative("f(x)","x",A.x); - Defvar(["coef",coef]); - Deffun("g(x)",["regional(y)","y=coef*(x-A.x)+A.y","y"]); - Plotdata("2","g(x)","x",["Num=1"]); - if(!Isptselected(A), - Enclosing("1",["gr2","Invert(gr1)"],[A,"nodisp"]); - Hatchdata("1",["i"],[["en1"]]); - ); +点Aを原点付近に作図しておく。 +\begin{verbatim} +Deffun("f(x)",["regional(y)","y=x^3-2*x","y"]); +Plotdata("1","f(x)","x",["Num=100"]); +Putoncurve("A","gr1"); +coef=Derivative("f(x)","x",A.x); +Defvar(["coef",coef]); +Deffun("g(x)",["regional(y)","y=coef*(x-A.x)+A.y","y"]); +Plotdata("2","g(x)","x",["Num=1"]); +if(!Isptselected(A), + Enclosing("1",["gr2","Invert(gr1)"],[A,"nodisp"]); + Hatchdata("1",["i"],[["en1"]]); +); \end{verbatim} \begin{layer}{150}{0} @@ -2671,44 +2675,44 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" \vspace{\baselineskip} 【例】円の内部または円と直線で区切られた図形 -\verb|Circledata([A,B]);| のプロットデータ crAB を用いて,下図左から +\verb|Circledata([A,B]);|のプロットデータ crAB を用いて,下図左から \verb|Hatchdata("1",["i"],[["crAB"]]);| 円内に傾き$45^{\circ}$の斜線を引く \verb|Hatchdata("2",["i"],[["crAB"]],[-40,2]);| 傾き$-40^{\circ}$,間隔を2倍に -\verb|Hatchdata("3",["i"],[["crAB"]],["dr,0.5"]);| 線の太さを0.3倍に +\verb|Hatchdata("3",["i"],[["crAB"]],["dr,0.5"]);|線の太さを0.3倍に \verb|Hatchdata("4",["i"],[["crAB"]],[-45,2,"dr,0.3"]);| -\input{Fig/HatchZuKita1.tex} +\input{Fig/HatchZuKita1.tex} 円のオプションに "notex"をつけた場合と,破線で描いた場合。 \begin{verbatim} - Circledata([A,B],["notex"]); - Circledata([A,B],["da"]); +Circledata([A,B],["notex"]); +Circledata([A,B],["da"]); \end{verbatim} -\hspace{10mm} \input{Fig/HatchZuKita7.tex} \input{Fig/HatchZuKita8.tex} +\hspace{10mm} \input{Fig/HatchZuKita7.tex}\input{Fig/HatchZuKita8.tex} 直線で分けられた領域を作り,対角の上下にハッチをかける。線を描き分ける。 \begin{verbatim} - Circledata([A,B]); - Lineplot("1",[A,B]); - Lineplot("2",[A,C]); - Hatchdata("1",["iii"],[["crAB"],["ln1","n"],["ln2","n"]]); - Hatchdata("2",["iii"],[["crAB"],["ln1","s"],["ln2","s"]],[90,0.5]); + Circledata([A,B]); + Lineplot("1",[A,B]); + Lineplot("2",[A,C]); + Hatchdata("1",["iii"],[["crAB"],["ln1","n"],["ln2","n"]]); + Hatchdata("2",["iii"],[["crAB"],["ln1","s"],["ln2","s"]],[90,0.5]); \end{verbatim} -\hspace{40mm} \input{Fig/HatchZuKita9.tex} +\hspace{40mm}\input{Fig/HatchZuKita9.tex} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -\vspace{\baselineskip} +%\vspace{\baselineskip} \hypertarget{dotfilldata}{} -\item[関数] Dotfilldata(name , 方向リスト , プロットデータ , options) -\item[機能] 領域を点で敷き詰める。 -\item[説明] Rとデータの授受をおこなって描画する。書式はHatchdata()と同様。 +\item[関数]Dotfilldata(name , 方向リスト , プロットデータ , options) +\item[機能]領域を点で敷き詰める。 +\item[説明]Rとデータの授受をおこなって描画する。書式はHatchdata()と同様。 オプションは,ドットの密度で 0.1〜0.8 程度。 初期設定は0.3。 @@ -2717,31 +2721,31 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n" Partcrv() と Enclosing() で閉曲線を作って点を敷き詰める。 -\begin{layer}{150}{0} -\putnotese{75}{5}{ \input{Fig/dotfill}} -\end{layer} \begin{verbatim} - r=3; - p0=r*[cos(pi/2),sin(pi/2)]; - p1=r*[cos(-pi/6),sin(-pi/6)]; - p2=r*[cos(-3*pi/4),sin(-3*pi/4)]; - Circledata("1",[[0,0],[r,0]]); - Listplot("1",[[0,0],p0]); - Listplot("2",[[0,0],p1]); - Listplot("3",[[0,0],p2]); - Partcrv("1",p1,p0,"cr1"); - Enclosing("1",["sg2","part1","Invert(sg1)"],[[0,0]]); - Partcrv("2",p2,p1,"cr1"); - Enclosing("2",["sg3","part2","Invert(sg2)"],[[0,0]]); - Dotfilldata("1",["i"],[["en1"]]); - Dotfilldata("2",["i"],[["en2"]],[0.1]); +r=3; +p0=r*[cos(pi/2),sin(pi/2)]; +p1=r*[cos(-pi/6),sin(-pi/6)]; +p2=r*[cos(-3*pi/4),sin(-3*pi/4)]; +Circledata("1",[[0,0],[r,0]]); +Listplot("1",[[0,0],p0]); +Listplot("2",[[0,0],p1]); +Listplot("3",[[0,0],p2]); +Partcrv("1",p1,p0,"cr1"); +Enclosing("1",["sg2","part1","Invert(sg1)"],[[0,0]]); +Partcrv("2",p2,p1,"cr1"); +Enclosing("2",["sg3","part2","Invert(sg2)"],[[0,0]]); +Dotfilldata("1",["i"],[["en1"]]); +Dotfilldata("2",["i"],[["en2"]],[0.1]); \end{verbatim} +\begin{layer}{150}{0} +\putnotese{80}{-60}{\scalebox{0.9}{ \input{Fig/dotfill}}} +\end{layer} \vspace{\baselineskip} \hypertarget{shade}{} -\item[関数] Shade(("名前"), プロットデータのリスト , options) -\item[機能] 閉曲線で囲まれた領域を塗りつぶす。 -\item[説明] 第1引数には,閉曲線を与える曲線分のプロットデータ名を並べる。 +\item[関数]Shade(("名前"), プロットデータのリスト , options) +\item[機能]閉曲線で囲まれた領域を塗りつぶす。 +\item[説明]第1引数には,閉曲線を与える曲線分のプロットデータ名を並べる。 デフォルトでは,Joincrvsを使って閉曲線を作っている。ただし,プロットデータのリストに "Invert()"が入っていれば,Enclosingを使う。 @@ -2749,70 +2753,70 @@ Partcrv() と Enclosing() で閉曲線を作って点を敷き詰める。 optionの Color は,Cinderellaの画面上での描画色をリストで与える。濃さを指定したい場合は色名やRGBではなくCMYKにする。 optionsには,他に,「Enclosingを使うか(''Enc=y/n'')」,Enclosingのときの開始点,描画色 がある。 - + 複数のShadeを使うときは,名前をつける。 \vspace{\baselineskip} 【例】$y=2\sin x$のグラフと直線$y=1$ とで囲まれた部分に黒0.2の濃さで色を塗る。 \begin{verbatim} - Setax([7,"nw"]); - Plotdata("1","2*sin(x)","x",["Num=100"]); - Lineplot("1",[[0,1],[1,1]]); - Enclosing("1",["ln1","Invert(gr1)"],[[2,1],"nodisp"]); - Shade(["en1"],["Color=[0,0,0,0.2]"]); +Setax([7,"nw"]); +Plotdata("1","2*sin(x)","x",["Num=100"]); +Lineplot("1",[[0,1],[1,1]]); +Enclosing("1",["ln1","Invert(gr1)"],[[2,1],"nodisp"]); +Shade(["en1"],["Color=[0,0,0,0.2]"]); \end{verbatim} \begin{center} \input{Fig/shade} \end{center} 正弦曲線と直線の交点は簡単に計算できるので,次のように Partcrv() で部分曲線を求め,Enclosingで閉曲線を求めずにShadeを使ってもよい。 \begin{verbatim} - Plotdata("1","2*sin(x)","x",["Num=100"]); - Lineplot("1",[[0,1],[1,1]]); - Partcrv("1",[5*pi/6,1],[13*pi/6,1],"gr1"); - Shade(["ln1","Invert(part1)"],[[2.5,1],"Color=0.2*[1,0,0,1]"]); +Plotdata("1","2*sin(x)","x",["Num=100"]); +Lineplot("1",[[0,1],[1,1]]); +Partcrv("1",[5*pi/6,1],[13*pi/6,1],"gr1"); +Shade(["ln1","Invert(part1)"],[[2.5,1],"Color=0.2*[1,0,0,1]"]); \end{verbatim} \vspace{\baselineskip} 【例】2つの放物線で囲まれた部分を赤で塗る。 \begin{verbatim} - Plotdata("1","x^2-1","x=[-3,3]"); - Plotdata("2","x^2/2","x=[-3,3]"); - Shade(["gr2","Invert(gr1)"],[[-1.5,1],"Color=[1,0,0]","alpha->0.4"]); +Plotdata("1","x^2-1","x=[-3,3]"); +Plotdata("2","x^2/2","x=[-3,3]"); +Shade(["gr2","Invert(gr1)"],[[-1.5,1],"Color=[1,0,0]","alpha->0.4"]); \end{verbatim} ここで,\verb|alpha->0.4| は画面上の色濃度指定。 \vspace{\baselineskip} -\begin{center} \input{Fig/shade01} \end{center} - +\begin{center}\scalebox{0.9}{\input{Fig/shade01}} \end{center} + %\vspace{\baselineskip} 【例】同心円をリング状に塗る。 - 下図右のように,同心円をリング状に塗るが,円2つだけでは閉曲線はできない。そこで,左図のように,円の描き始めを線分で結んで閉曲線を作る。このとき,向きを考えて,Joincrvsで結ぶように,''Enc=n''をつける。線分は非表示にしたいので,\verb|"nodisp"|オプションをつけておく。なお,点Aを適当な位置に作図しておく。 +下図右のように,同心円をリング状に塗るが,円2つだけでは閉曲線はできない。そこで,左図のように,円の描き始めを線分で結んで閉曲線を作る。このとき,向きを考えて,Joincrvsで結ぶように,''Enc=n''をつける。線分は非表示にしたいので,\verb|"nodisp"|オプションをつけておく。なお,点Aを適当な位置に作図しておく。 \begin{verbatim} - r1=2; - r2=1.5; - Circledata("1",[A,A+[r1,0]]); - Circledata("2",[A,A+[r2,0]]); - Listplot("1",[A+[r1,0],A+[r2,0]],["nodisp"]); - Shade(["cr1","sg1","Invert(cr2)","Invert(sg1)"],["Enc=n","Color=green"]); +r1=2; +r2=1.5; +Circledata("1",[A,A+[r1,0]]); +Circledata("2",[A,A+[r2,0]]); +Listplot("1",[A+[r1,0],A+[r2,0]],["nodisp"]); +Shade(["cr1","sg1","Invert(cr2)","Invert(sg1)"],["Enc=n","Color=green"]); \end{verbatim} -\begin{center} \input{Fig/greenring} \end{center} +\begin{center}\input{Fig/greenring} \end{center} その他,\hyperlink{joincrvs}{Joincrvs() の例}も参照のこと -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{reflectdata}{} -\item[関数] Reflectdata(name , プロットデータ , 対称点または対称軸,options) -\item[機能] プロットデータの鏡映を作成 -\item[説明] プロットデータを指定された点または軸に関して対称移動する。 +\item[関数]Reflectdata(name , プロットデータ , 対称点または対称軸,options) +\item[機能]プロットデータの鏡映を作成 +\item[説明]プロットデータを指定された点または軸に関して対称移動する。 - 対称点は座標または,点の識別名。ただし,対称点を座標で示すときは要素がひとつのリストにする。 - - 対称軸はリスト[ 点1, 点2 ] で指定。 +対称点は座標または,点の識別名。ただし,対称点を座標で示すときは要素がひとつのリストにする。 + +対称軸はリスト[ 点1, 点2 ]で指定。 \vspace{\baselineskip} 【例】中心A , 半径ABの円を描き,そのプロットデータを用いて鏡映を描く。 @@ -2824,23 +2828,23 @@ optionsには,他に,「Enclosingを使うか(''Enc=y/n'')」,Enclosing 直線DEに関して対称な円を破線 \begin{verbatim} - Circledata([A,B]); - Reflectdata("1","crAB",[C]); - Reflectdata("2","crAB",[[-1,2]],["dr,2"]); - Reflectdata("3","crAB",[D,E],["da"]); +Circledata([A,B]); +Reflectdata("1","crAB",[C]); +Reflectdata("2","crAB",[[-1,2]],["dr,2"]); +Reflectdata("3","crAB",[D,E],["da"]); \end{verbatim} \vspace{\baselineskip} \begin{center} \input{Fig/reflectdata} \end{center} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{rotatedata}{} -\item[関数] Rotatedata(name , プロットデータ ,角度 , [中心 , options]) -\item[機能] プロットデータの位置を回転する -\item[説明] 図形を,中心で示された点の周りに回転する。角度は弧度法で与える +\item[関数]Rotatedata(name , プロットデータ ,角度 , [中心 , options]) +\item[機能]プロットデータの位置を回転する +\item[説明]図形を,中心で示された点の周りに回転する。角度は弧度法で与える - 中心とoptionsはまとめてリストで与える。 +中心とoptionsはまとめてリストで与える。 \begin{spacing}{1.5} 【例】中心A , 半径ABの円を描き,次のように回転して線種を変えて描く。 @@ -2848,109 +2852,109 @@ optionsには,他に,「Enclosingを使うか(''Enc=y/n'')」,Enclosing 点Cを中心に$\dfrac{\pi}{2} $,点(1,5)を中心に$\dfrac{\pi}{3}$ , 点Dを中心に $-\dfrac{\pi}{3} $ \end{spacing} \begin{verbatim} - Circledata([A,B]); - Rotatedata("1","crAB",pi/2,[C]); - Rotatedata("2","crAB",pi/3,[[1,5],"dr,2"]); - Rotatedata("3","crAB",-pi/3,[D,"da"]); + Circledata([A,B]); + Rotatedata("1","crAB",pi/2,[C]); + Rotatedata("2","crAB",pi/3,[[1,5],"dr,2"]); + Rotatedata("3","crAB",-pi/3,[D,"da"]); \end{verbatim} \vspace{\baselineskip} \begin{center}\scalebox{0.9}{ \input{Fig/rotatedata} }\end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{scaledata}{} -\item[関数] Scaledata(name , プロットデータ,x方向比率 , y方向比率 , [中心 , options]) -\item[機能] 図形の位置を拡大・縮小する -\item[説明] 図形の位置をプロットデータを用いて指定された比率で拡大・縮小する +\item[関数]Scaledata(name , プロットデータ,x方向比率 , y方向比率 , [中心 , options]) +\item[機能]図形の位置を拡大・縮小する +\item[説明]図形の位置をプロットデータを用いて指定された比率で拡大・縮小する + +比率は [x方向比率 , y方向比率] のリストで与えてもよい。 + +中心とoptionsはまとめてリストで与える。optionsは線種 - 比率は [x方向比率 , y方向比率] のリストで与えてもよい。 - - 中心とoptionsはまとめてリストで与える。optionsは線種 - \vspace{\baselineskip} 【例】点A(2,1),B(1,1),C(-1,-1),D(3,-1) を作図しておく。 Aを中心とする半径ABの円のプロットデータを作り, - + 原点中心に$x$軸方向に3,$y$軸方向に2拡大する。 Cを中心に$x$軸方向に3,$y$軸方向に2拡大し,実線で太く描く。 原点中心にベクトル$\overrightarrow{OD} $だけ拡大し,破線で描く。 \begin{verbatim} - Circledata([A,B]); - Scaledata("1","crAB",3,2,[[0,0]]); - Scaledata("2","crAB",3,2,[C,"dr,2"]); - Scaledata("3","crAB",[D.x,D.y],[[0,0],"da"]); +Circledata([A,B]); +Scaledata("1","crAB",3,2,[[0,0]]); +Scaledata("2","crAB",3,2,[C,"dr,2"]); +Scaledata("3","crAB",[D.x,D.y],[[0,0],"da"]); \end{verbatim} \begin{center} \input{Fig/scaledata} \end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{translatedata}{} -\item[関数] Translatedata(name , プロットデータ , 移動ベクトル , options) -\item[機能] プロットデータを平行移動する -\item[説明] プロットデータを移動ベクトルで示された分だけ平行移動する。 +\item[関数]Translatedata(name , プロットデータ , 移動ベクトル , options) +\item[機能]プロットデータを平行移動する +\item[説明]プロットデータを移動ベクトルで示された分だけ平行移動する。 \vspace{\baselineskip} 【例】点A,B,C,Dを作図ツールでとっておく。 - \verb|Circledata([A,B]);| でできる円(crAB)を - +\verb|Circledata([A,B]);| でできる円(crAB)を + x軸方向に2,y軸方向に3だけ平行移動して実線で描く。 - + ベクトル$\overrightarrow{OC} $だけ平行移動し,実線で太く描く。 ベクトル$\overrightarrow{OD} $だけ平行移動し,破線で描く。 \begin{verbatim} - Circledata([A,B]); - Translatedata("1","crAB",[2,3]); - Translatedata("2","crAB",C,["dr,2"]); - Translatedata("3","crAB",D,["da"]); +Circledata([A,B]); +Translatedata("1","crAB",[2,3]); +Translatedata("2","crAB",C,["dr,2"]); +Translatedata("3","crAB",D,["da"]); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/translatedata} \end{center} +\begin{center} \input{Fig/translatedata} \end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{intersectcrvs}{} -\item[関数] Intersectcrvs(プロットデータ1, プロットデータ2) -\item[機能] 2曲線の交点リストを取得する。 -\item[説明] オプションとして,共有点があるかどうかを判断するための限界値があるが,通常は使わない。 +\item[関数]Intersectcrvs(プロットデータ1, プロットデータ2) +\item[機能]2曲線の交点リストを取得する。 +\item[説明]オプションとして,共有点があるかどうかを判断するための限界値があるが,通常は使わない。 \vspace{\baselineskip} 【例】円と曲線の交点をP,Qとする。 \begin{layer}{150}{0} -\putnotese{80}{5}{ \input{Fig/Intersectcrvs1}} +\putnotese{80}{0}{ \input{Fig/Intersectcrvs1}} \end{layer} \begin{verbatim} - Plotdata("1", "sin(x)", "x", ["Num=100"]); - Circledata([A, B]); - tmp=Intersectcrvs("gr1","crAB"); - P.xy=tmp_1; - Q.xy=tmp_2; +Plotdata("1", "sin(x)", "x", ["Num=100"]); +Circledata([A, B]); +tmp=Intersectcrvs("gr1","crAB"); +P.xy=tmp_1; +Q.xy=tmp_2; \end{verbatim} この関数は,交点のデータのリストを返すので,tmp=[ [ -0.37, -0.36 ], [ 2.13, 0.85 ] ] のように値が返ってくる。交点の順序は PD1, PD2 の順序と曲線の向きによって決まる。曲線の向きは,$y=f(x)$のグラフではx座標が増加する向きで,パラメーター表示曲線ではパラメータの増加する向き。また,PD1 上から探し始めて PD2 との交点を拾っていく。 -交点がひとつの場合も tmp=[ [ 2.45, 0.63 ] ] と2重のリストに入っているので,点として取出すには \verb|P.xy=tmp_1; | とする。 +交点がひとつの場合も tmp=[ [ 2.45, 0.63 ] ] と2重のリストに入っているので,点として取出すには \verb|P.xy=tmp_1; |とする。 \vspace{\baselineskip} 注)交点の算出は,数式処理によるのではなく,プロットデータからの数値探索のアルゴリズムによっている。 \vspace{\baselineskip} \hypertarget{intersectcrvspp}{} -\item[関数] IntersectcrvsPp(プロットデータ1, プロットデータ2) -\item[機能] 2曲線の交点のパラメータリストを取得する。 -\item[説明] 2曲線の交点の座標とパラメータのリストを返す。 +\item[関数]IntersectcrvsPp(プロットデータ1, プロットデータ2) +\item[機能]2曲線の交点のパラメータリストを取得する。 +\item[説明]2曲線の交点の座標とパラメータのリストを返す。 Intersectcrvs() との違いは,パラメータがあるかどうかである。 @@ -2959,26 +2963,26 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである 2点A(-1,1),B(2.4) を作図しておく。 \begin{verbatim} - Plotdata("1","x^2","x"); - Lineplot([A,B]); - p1=Intersectcrvs("gr1","lnAB"); - p2=IntersectcrvsPp("gr1","lnAB"); - println("p1="+p1); - println("p2="+p2); +Plotdata("1","x^2","x"); +Lineplot([A,B]); +p1=Intersectcrvs("gr1","lnAB"); +p2=IntersectcrvsPp("gr1","lnAB"); +println("p1="+p1); +println("p2="+p2); \end{verbatim} とすると,コンソールには \begin{verbatim} - p1=[[-1,1],[2,4]] - p2=[[[-1,1],17.68,1],[[2,4],42.66,1]] +p1=[[-1,1],[2,4]] +p2=[[[-1,1],17.68,1],[[2,4],42.66,1]] \end{verbatim} と表示される。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{nearestpt}{} -\item[関数] Nearestpt(PD1,PD2) -\item[機能] 2曲線に対し,最も近い点とそのパラメータ,距離のリストを返す -\item[説明] 戻り値は,それぞれの曲線上の点の座標とプロットデータ中の位置,その距離からなるリスト。 +\item[関数]Nearestpt(PD1,PD2) +\item[機能]2曲線に対し,最も近い点とそのパラメータ,距離のリストを返す +\item[説明]戻り値は,それぞれの曲線上の点の座標とプロットデータ中の位置,その距離からなるリスト。 \vspace{\baselineskip} 【例】2つの放物線上の点の最短距離とその位置を求める。 @@ -2986,31 +2990,31 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである 点A,Bを作図ツールでとっておく。 \begin{layer}{150}{0} -\putnotese{80}{5}{ \input{Fig/nearestpt}} +\putnotese{80}{-10}{ \input{Fig/nearestpt}} \end{layer} \begin{verbatim} - Plotdata("1", "x^2+2", "x=[-2,2]"); - Plotdata("2", "-(x-2)^2+1","x=[0,4]"); - plist=Nearestpt("gr1","gr2"); - A.xy=plist_1; - B.xy=plist_3; - Listplot([A,B],["do"]); - Pointdata("1",[A,B],["Size=2"]); - Letter([A,"n2w","A",B,"s2e","B",(A+B)/2,"e",text(plist_5)]); +Plotdata("1", "x^2+2", "x=[-2,2]"); +Plotdata("2", "-(x-2)^2+1","x=[0,4]"); +plist=Nearestpt("gr1","gr2"); +A.xy=plist_1; +B.xy=plist_3; +Listplot([A,B],["do"]); +Pointdata("1",[A,B],["Size=2"]); +Letter([A,"n2w","A",B,"s2e","B",(A+B)/2,"e",text(plist_5)]); \end{verbatim} ここで plistに代入されたリストは次のようになっている。 -\hspace{10mm} [[0.4,2.16],31,[1.58,0.82],20.73,1.78] +\hspace{10mm}[[0.4,2.16],31,[1.58,0.82],20.73,1.78] なお,距離 1.78 は小数点以下第3位を四捨五入して表示されている。 \vspace{\baselineskip} \hypertarget{nearestptcrv}{} -\item[関数] Nearestptcrv(座標, プロットデータ) -\item[機能] 点に最も近いプロットデータの点を求める -\item[説明] 第1引数の座標に最も近い曲線プロットデータ上の点の座標を返す。 +\item[関数]Nearestptcrv(座標, プロットデータ) +\item[機能]点に最も近いプロットデータの点を求める +\item[説明]第1引数の座標に最も近い曲線プロットデータ上の点の座標を返す。 \vspace{\baselineskip} 【例】点(3,0)に最も近い $y=x^2$ 上の点を求める。 @@ -3022,39 +3026,39 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである \end{layer} \begin{verbatim} - Plotdata("1", "x^2", "x"); - B.xy=Nearestptcrv(A.xy,"gr1"); - Listplot([A,B],["do"]); - Ptsize(2); - Pointdata("1",[A,B]); - Letter([A,"ne","A",B,"nw","B"]); +Plotdata("1", "x^2", "x"); +B.xy=Nearestptcrv(A.xy,"gr1"); +Listplot([A,B],["do"]); +Ptsize(2); +Pointdata("1",[A,B]); +Letter([A,"ne","A",B,"nw","B"]); \end{verbatim} 注)第1引数は座標なので,\verb|A| ではなく \verb|A.xy| としなければならない。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{numptcrv}{} -\item[関数] Numptcrv (プロットデータ) -\item[機能] プロットデータの個数を返す -\item[説明] Cindyscript で length(PD)とするのと同じ +\item[関数]Numptcrv (プロットデータ) +\item[機能]プロットデータの個数を返す +\item[説明]Cindyscript で length(PD)とするのと同じ \vspace{\baselineskip} 【例】 Implicit() と Paramplot() でそれぞれ楕円を描いたときのプロットデータの順序を比較する。 - ただし,TeXには書き出さない。 - -\begin{verbatim} - Slider("A-C-B",[0,-2],[6,-2]); - Implicitplot("1","x^2+4*y^2=4","x=[-2,2]","y=[-2,2]",["do"]); - Paramplot("1","[2*cos(t)+5,sin(t)]","t=[0,2*pi]",["do","Num=140"]); - println([Numptcrv(imp1),Numptcrv(gp1)]); - n=floor(C.x*2); - repeat(n,s,start->0, - t=s*10+1; - draw(imp1_t,color->hue(s/10)); - draw(gp1_t,color->hue(s/10)); - ); +ただし,TeXには書き出さない。 + +\begin{verbatim} +Slider("A-C-B",[0,-2],[6,-2]); +Implicitplot("1","x^2+4*y^2=4","x=[-2,2]","y=[-2,2]",["do"]); +Paramplot("1","[2*cos(t)+5,sin(t)]","t=[0,2*pi]",["do","Num=140"]); +println([Numptcrv(imp1),Numptcrv(gp1)]); +n=floor(C.x*2); +repeat(n,s,start->0, +t=s*10+1; +draw(imp1_t,color->hue(s/10)); +draw(gp1_t,color->hue(s/10)); +); \end{verbatim} \begin{center} @@ -3067,48 +3071,48 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである \vspace{\baselineskip} \hypertarget{paramoncrv}{} -\item[関数] Paramoncrv(点の座標, 曲線の名前) -\item[機能] 曲線上の点のパラメータ値を返す。 -\item[説明] 曲線は折れ線として描かれ,曲線上の各点はこの折れ線の節点を基準としたパラメータ値を持つ。パラメータ値は整数部分が節点の番号,小数部分が節間の位置を表す。 +\item[関数]Paramoncrv(点の座標, 曲線の名前) +\item[機能]曲線上の点のパラメータ値を返す。 +\item[説明]曲線は折れ線として描かれ,曲線上の各点はこの折れ線の節点を基準としたパラメータ値を持つ。パラメータ値は整数部分が節点の番号,小数部分が節間の位置を表す。 \vspace{\baselineskip} 【例】図のような点PからQに至る円周上の5等分点を節点とする折れ線cr1において,$n$番目の線分上の点は$n\leq t\leq n+1$の範囲のパラメータ値を持つ。 たとえば,図の点$\mathrm{A}$は2番目の線分上にあり,この値は -\begin{layer}{150}{0} -\putnotese{80}{0}{ \input{Fig/paramoncrv}} -\end{layer} - \begin{verbatim} - println(Paramoncrv(A.xy,"cr1")); -\end{verbatim} - + println(Paramoncrv(A.xy,"cr1")); +\end{verbatim} + によってコンソールに表示される。(たとえば2.45)。 点Aの位置を動かすとパラメータ値は変わる。 -\vspace{20mm} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\vspace{\baselineskip} +\begin{center} + \input{Fig/paramoncrv} +\end{center} + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{pointoncrv}{} -\item[関数] Pointoncrv(点のパラメータ値, PD) -\item[機能] 曲線上のパラメータ値を持つ点の座標を返す。 -\item[説明] 曲線(折れ線)上の節点を基準としたパラメータ値により点の位置が定まる。 +\item[関数]Pointoncrv(点のパラメータ値, PD) +\item[機能]曲線上のパラメータ値を持つ点の座標を返す。 +\item[説明]曲線(折れ線)上の節点を基準としたパラメータ値により点の位置が定まる。 \vspace{\baselineskip} 【例】図のような点$\mathrm{P}$から$\mathrm{Q}$に至る半円周上の5等分点を節点とする折れ線cr1において,パラメータ値$4.5$を持つ点$\mathrm{A}$は4番目の線分の中点である。したがって \begin{verbatim} - Circledata("0",[[0,0],[2,0]],["do"]); - Circledata("1",[[0,0],[2,0]],["Num=5","Rng=[0,pi]"]); - tmp=Pointoncurve(4.5,"cr1"); - Pointdata("1",tmp,["Size=3"]); - Letter([tmp,"nw","A",[2,0],"se","P",[-2,0],"sw","Q"]); +Circledata("0",[[0,0],[2,0]],["do"]); +Circledata("1",[[0,0],[2,0]],["Num=5","Rng=[0,pi]"]); +tmp=Pointoncurve(4.5,"cr1"); +Pointdata("1",tmp,["Size=3"]); +Letter([tmp,"nw","A",[2,0],"se","P",[-2,0],"sw","Q"]); \end{verbatim} - + によって,点Aを中点に置くことができる。 \vspace{\baselineskip} @@ -3116,9 +3120,9 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである %\vspace{\baselineskip} \hypertarget{ptcrv}{} -\item[関数] Ptcrv(n,プロットデータ) -\item[機能] 曲線プロットデータのn 番目の節点を返す -\item[説明] Cindyscript の PD\_n と同じ +\item[関数]Ptcrv(n,プロットデータ) +\item[機能]曲線プロットデータのn 番目の節点を返す +\item[説明]Cindyscript の PD\_n と同じ \vspace{\baselineskip} 【例】楕円上の点で分割する。あからじめ必要な点を作図しておく。 @@ -3127,61 +3131,61 @@ Intersectcrvs() との違いは,パラメータがあるかどうかである \putnotese{70}{10}{ \input{Fig/ptcrv}} \end{layer} \begin{verbatim} - Circledata([O,P],["do","Num=100","notex"]); - Scaledata("1","crOP",4/3,1); - F.xy=[-sqrt(7),0]; - A=Ptcrv(9,sc1); - B=Ptcrv(16,sc1); - Listplot("1",[A,F,B],["da"]); - Partcrv("1",A,B,"sc1",["dr,3"]); - Shade(["part1","sg1"],0.1); - Arrowhead(B,"sc1",[1.5]); - Letter([A,"ne","A",B,"ne","B",F,"s2","F"]); +Circledata([O,P],["do","Num=100","notex"]); +Scaledata("1","crOP",4/3,1); +F.xy=[-sqrt(7),0]; +A=Ptcrv(9,sc1); +B=Ptcrv(16,sc1); +Listplot("1",[A,F,B],["da"]); +Partcrv("1",A,B,"sc1",["dr,3"]); +Shade(["part1","sg1"],0.1); +Arrowhead(B,"sc1",[1.5]); +Letter([A,"ne","A",B,"ne","B",F,"s2","F"]); \end{verbatim} - -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{ptstart}{} -\item[関数] Ptstart(プロットデータ) , Ptend(プロットデータ) -\item[機能] プロットデータの最初の点,最後の点を取得する。 -\item[説明] プロットデータの最初の点,最後の点の座標を返す。 +\item[関数]Ptstart(プロットデータ) , Ptend(プロットデータ) +\item[機能]プロットデータの最初の点,最後の点を取得する。 +\item[説明]プロットデータの最初の点,最後の点の座標を返す。 \vspace{\baselineskip} 【例】定義域を限定したグラフの両端の点を取得し線分ABを引く。 \begin{verbatim} - Deffun("f(x)",["regional(y)","y=x^2","y"]); - Plotdata("1","f(x)","x",["do"]); - Plotdata("2","f(x)","x=[-1,2]"); - Lineplot("1",[Ptstart(gr2),Ptend(gr2)],["do"]); - Listplot("1",[Ptstart(gr2),Ptend(gr2)]); - Letter([A,"w2","A",B,"e2","B"]); +Deffun("f(x)",["regional(y)","y=x^2","y"]); +Plotdata("1","f(x)","x",["do"]); +Plotdata("2","f(x)","x=[-1,2]"); +Lineplot("1",[Ptstart(gr2),Ptend(gr2)],["do"]); +Listplot("1",[Ptstart(gr2),Ptend(gr2)]); +Letter([A,"w2","A",B,"e2","B"]); \end{verbatim} \vspace{\baselineskip} \begin{center} \input{Fig/ptstart} \end{center} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{readoutdata}{} -\item[関数] ReadOutData(ファイル名) -\item[機能] 外部データをプロットデータとして読み込む -\item[説明] CやRなどで作成したKeTCindy形式のデータファイルを読み込む。 +\item[関数]ReadOutData(ファイル名) +\item[機能]外部データをプロットデータとして読み込む +\item[説明]CやRなどで作成したKeTCindy形式のデータファイルを読み込む。 引数を省略した場合は,Fheadで定義したファイル名のテキストファイルから読み込む。 ファイル名にはコンマで区切ってパスを与えることができる。たとえば, \verb|ReadOutData("/datafolder","file.txt"); | - + KeTCindy形式のデータとは 変数名// \\ - start// (リストの始まり) \\ + start//(リストの始まり) \\ [ , , ], …. // (個々のデータ2か3次元) \\ … \\ end// (リストの終わり) \\ start// (次のリストの始まり) \\ - … \\ +… \\ end// \\ 変数名// \\ start// \\ @@ -3191,9 +3195,9 @@ KeTCindy形式のデータとは の形式のテキストファイル。 \hypertarget{readcsv}{} -\item[関数] Readcsv(path,filename,option) -\item[機能] csvファイルを読む。 -\item[説明] csvファイルを読みこむ。戻り値は読み込んだデータのリスト。 +\item[関数]Readcsv(path,filename,option) +\item[機能]csvファイルを読む。 +\item[説明]csvファイルを読みこむ。戻り値は読み込んだデータのリスト。 第1引数の path は,ファイルを作業フォルダ( 初期設定は fig )に置いた場合は省略することができる。そうでない場合は,フルパスで指定する。たとえば,"/Users/Hoge/Desktop" @@ -3202,19 +3206,19 @@ option は,"Flat=" で,"Flat=y" の場合は,読み込んだデータを 【例】次のようなCSVファイル sample.csvを読み込むとする。 \begin{verbatim} - 12,14,15,18,13 - 9,13,17,21 +12,14,15,18,13 +9,13,17,21 \end{verbatim} つまり,2行分のデータである。 \begin{verbatim} - data=Readcsv("sample.csv"); +data=Readcsv("sample.csv"); \end{verbatim} とすると, \begin{verbatim} - data=[[12,14,15,18,13],[9,13,17,21]] +data=[[12,14,15,18,13],[9,13,17,21]] \end{verbatim} となる。 @@ -3222,30 +3226,30 @@ option は,"Flat=" で,"Flat=y" の場合は,読み込んだデータを したがって,1行目のデータだけ取り出したい場合は \begin{verbatim} - dt1=data_1; +dt1=data_1; \end{verbatim} とする。 \hypertarget{readlines}{} -\item[関数] Readlines(path,filename,option) -\item[機能] テキストファイルを1行ずつ読む。 -\item[説明] テキストファイルを1行ずつ読みこむ。戻り値は読み込んだ文字列のリスト。 +\item[関数]Readlines(path,filename,option) +\item[機能]テキストファイルを1行ずつ読む。 +\item[説明]テキストファイルを1行ずつ読みこむ。戻り値は読み込んだ文字列のリスト。 第1引数の path は,ファイルを作業フォルダ( 初期設定は fig )に置いた場合は省略することができる。そうでない場合は,フルパスで指定する。たとえば,"/Users/Hoge/Desktop" \vspace{\baselineskip} \hypertarget{writeoutdata}{} -\item[関数] WriteOutData(ファイル名,PDリスト) -\item[機能] 外部データに書き出す -\item[説明] プロットデータをKeTCindy形式のデータファイルに書き出す。出力先の 初期設定は作業フォルダ。 +\item[関数]WriteOutData(ファイル名,PDリスト) +\item[機能]外部データに書き出す +\item[説明]プロットデータをKeTCindy形式のデータファイルに書き出す。出力先の 初期設定は作業フォルダ。 【例】 放物線と円のプロットデータを書き出す。 \begin{verbatim} - Plotdata("1", "x^2","x"); - Circledata("1",[[0,0],[1,0]]); - WriteOutData("figdata.txt",["gr1",gr1,"cr1",cr1]); + Plotdata("1", "x^2","x"); + Circledata("1",[[0,0],[1,0]]); + WriteOutData("figdata.txt",["gr1",gr1,"cr1",cr1]); \end{verbatim} 書き出されたファイルの中身は次のようになっている。 @@ -3265,16 +3269,16 @@ start// [[0.87631,-0.48175],[0.92978,-0.36812],・・,[1,0]]// end//// \end{verbatim} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{extractdata}{} -\item[関数] Extractdata(データ名,属性) -\item[機能] ReadOutData() で読み込んだデータに属性をつける。 -\item[説明] ReadOutData() で読み込んだデータには,線種などの属性がついていないので,そのままでは表示されない。そこで,この関数により属性をつけて表示する。 +\item[関数]Extractdata(データ名,属性) +\item[機能]ReadOutData() で読み込んだデータに属性をつける。 +\item[説明]ReadOutData() で読み込んだデータには,線種などの属性がついていないので,そのままでは表示されない。そこで,この関数により属性をつけて表示する。 \begin{verbatim} - ReadOutData("figdata.txt"); - Extractdata("gr1",["da"]); +ReadOutData("figdata.txt"); +Extractdata("gr1",["da"]); \end{verbatim} \end{description} @@ -3285,82 +3289,82 @@ end//// \begin{description} \hypertarget{derivative}{} -\item[関数] Derivative(関数式 , 変数 , 値) -\item[機能] 関数の微分係数を求める -\item[説明] 関数式で与えられた関数の,「変数=値」における微分係数を求める。 +\item[関数]Derivative(関数式 , 変数 , 値) +\item[機能]関数の微分係数を求める +\item[説明]関数式で与えられた関数の,「変数=値」における微分係数を求める。 値は,点の座標を用いることができる。点Aのx座標であれば, A.x とする。 \vspace{\baselineskip} 【例】3次曲線上の点Aで接線を引く。点A,Bは作図ツールで適当にとっておく。 \begin{verbatim} - Deffun("f(x)",["regional(y)","y=x^3-4*x","y"]); - coef=Derivative("f(x)","x",A.x); - A.y=f(A.x); - B.y=coef*(B.x-A.x)+A.y; - Plotdata("1","f(x)","x",["Num=200"]); - Lineplot([A,B]); - Letter([A,"ne","A"]); +Deffun("f(x)",["regional(y)","y=x^3-4*x","y"]); +coef=Derivative("f(x)","x",A.x); +A.y=f(A.x); +B.y=coef*(B.x-A.x)+A.y; +Plotdata("1","f(x)","x",["Num=200"]); +Lineplot([A,B]); +Letter([A,"ne","A"]); \end{verbatim} %\vspace{\baselineskip} - \begin{center} \input{Fig/derivative} \end{center} +\begin{center} \input{Fig/derivative} \end{center} %\vspace{\baselineskip} なお,曲線のプロットデータを用いて,微分係数を求めることもできる。 -書式は,Derivative(PD , 値) で,次のように使う。(上の例と同じ図ができる) +書式は,Derivative(PD ,値) で,次のように使う。(上の例と同じ図ができる) \begin{verbatim} - Deffun("f(x)",["regional(y)","y=x^3-4*x","y"]); - Plotdata("1","f(x)","x",["Num=200"]); - coef=Derivative("gr1","x="+A.x); - A.y=f(A.x); - B.y=coef*(B.x-A.x)+A.y; - Lineplot([A,B]); - Letter([A,"ne","A"]); + Deffun("f(x)",["regional(y)","y=x^3-4*x","y"]); + Plotdata("1","f(x)","x",["Num=200"]); + coef=Derivative("gr1","x="+A.x); + A.y=f(A.x); + B.y=coef*(B.x-A.x)+A.y; + Lineplot([A,B]); + Letter([A,"ne","A"]); \end{verbatim} また,曲線の接線については,\hyperlink{tangentplot}{Tangentplot}も参照されたい。 -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{integrate}{} -\item[関数] integrate(関数式 , 変数$=$範囲 , options) -\item[関数] integrate(PD , 範囲 , options) -\item[機能] 関数式またはプロットデータで与えられた関数(データ)の数値積分の値を求める。 -\item[説明] optionsは次の通り。 +\item[関数]integrate(関数式 , 変数$=$範囲 , options) +\item[関数]integrate(PD , 範囲 , options) +\item[機能]関数式またはプロットデータで与えられた関数(データ)の数値積分の値を求める。 +\item[説明]optionsは次の通り。 - "Rule=s" : シンプソン法による。 初期設定は大島ベジェ公式。 - - "Num=数値" : 分割数の指定。初期値は 100 +"Rule=s":シンプソン法による。 初期設定は大島ベジェ公式。 + +"Num=数値":分割数の指定。初期値は 100 \vspace{\baselineskip} 【例】$f(x)=x^3-2x^2+2$ について,0から3までの定積分の値を求める。 \begin{verbatim} - f(x):=x^3-2*x^2+2; - val=Integrate("f(x)","x=[0,3]"); - println(val); //8.25が表示される +f(x):=x^3-2*x^2+2; +val=Integrate("f(x)","x=[0,3]"); + println(val);//8.25が表示される \end{verbatim} \vspace{\baselineskip} 【例】上の例と同じ関数をプロットデータで指定する。 \begin{verbatim} - plotdata("1","x^3-2*x^2+2","x"); - println(Integrate("gr1",[0,3])); +plotdata("1","x^3-2*x^2+2","x"); +println(Integrate("gr1",[0,3])); \end{verbatim} -数値積分ではなく,数式処理として定積分の値を求める場合は,Maxima を利用する。\hyperlink{calcbyM}{CalcbyM} +数値積分ではなく,数式処理として定積分の値を求める場合は,Maxima を利用する。\hyperlink{calcbyM}{CalcbyM} を参照。 \vspace{\baselineskip} \hypertarget{inversefun}{} -\item[関数] Inversefun(関数 , 範囲 , 値) -\item[機能] 関数の逆関数値を求める -\item[説明] 関数は文字列で,関数式もしくは定義された関数名とする。\\ - 指定された範囲の中で逆関数値を求める。存在しない場合は一方の端点を戻り値とし,コンソールに「not found」と表示される。 - +\item[関数]Inversefun(関数 , 範囲 , 値) +\item[機能]関数の逆関数値を求める +\item[説明]関数は文字列で,関数式もしくは定義された関数名とする。\\ +指定された範囲の中で逆関数値を求める。存在しない場合は一方の端点を戻り値とし,コンソールに「not found」と表示される。 + 数式処理ではなく数値探索のアルゴリズムを使っているので,単調関数でない場合は範囲をできるだけ狭くとるとよい。値が複数ある場合は,小さいほうが返される。 @@ -3368,7 +3372,7 @@ end//// 【例】\verb|x=Inversefun("sin(x)","x=[0,pi/2]",0.5);| 実行すると $x=0.5236$ となる。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} @@ -3376,31 +3380,31 @@ end//// %==========値の取得と入出力========================= \subsection{値の取得と入出力} - 計算値やプロットデータの値を取得したり,R用とのデータのやりとりをする。 +計算値やプロットデータの値を取得したり,R用とのデータのやりとりをする。 \begin{description} \hypertarget{asin}{} -\item[関数] Asin(実数),Acos(実数) -\item[機能] 逆三角関数の値を求める。 -\item[説明] CindyScriptの組み込み関数に,arcsin(x),arccos(x) があるが,xの絶対値が1より大きい場合は虚数を返す。このことがRではエラーになるので,計算誤差により1よりわずかに大きくなる場合のために用意した関数。 +\item[関数]Asin(実数),Acos(実数) +\item[機能]逆三角関数の値を求める。 +\item[説明]CindyScriptの組み込み関数に,arcsin(x),arccos(x) があるが,xの絶対値が1より大きい場合は虚数を返す。このことがRではエラーになるので,計算誤差により1よりわずかに大きくなる場合のために用意した関数。 \vspace{\baselineskip} \hypertarget{sqr}{} -\item[関数] Sqr(実数) -\item[機能] 平方根を求める。 -\item[説明] CindyScriptの組み込み関数に,sqrt(x) があるが,xが負の場合は虚数を返す。これに対し,xが負の場合は0を返すようにした関数。計算誤差により1よりわずかに大きくなる場合のために用意した。 +\item[関数]Sqr(実数) +\item[機能]平方根を求める。 +\item[説明]CindyScriptの組み込み関数に,sqrt(x) があるが,xが負の場合は虚数を返す。これに対し,xが負の場合は0を返すようにした関数。計算誤差により1よりわずかに大きくなる場合のために用意した。 \vspace{\baselineskip} \hypertarget{bbdata}{} -\item[関数] BBdata(ファイル名,option) -\item[機能] 画像ファイルのサイズを求める -\item[説明] TeX文書において,inputgraphics コマンドで画像を貼り込むときのBBサイズを求める。 -TeX処理系の extractbb を用いて画像ファイルからBBデータを作り,テキストファイルとして作業ディレクトリに書き出す。これを読んで,コンソールに ingludegarphics のコマンドを書き出す。これをそのままコピーすればよい。 なお,bbの値は整数値ではなく,高精細の値を小数点以下2桁に四捨五入して示される。 画像ファイルは,PDFに限らず,PNG,JPGなどでもよい。 - +\item[関数]BBdata(ファイル名,option) +\item[機能]画像ファイルのサイズを求める +\item[説明]TeX文書において,inputgraphics コマンドで画像を貼り込むときのBBサイズを求める。 +TeX処理系の extractbb を用いて画像ファイルからBBデータを作り,テキストファイルとして作業ディレクトリに書き出す。これを読んで,コンソールに ingludegarphics のコマンドを書き出す。これをそのままコピーすればよい。 なお,bbの値は整数値ではなく,高精細の値を小数点以下2桁に四捨五入して示される。画像ファイルは,PDFに限らず,PNG,JPGなどでもよい。 + optionは,幅または高さの指定。 -"w=40mm" で width=40mm が,"h=40mm" で height=40mm が付加される。 +"w=40mm" でwidth=40mm が,"h=40mm"で height=40mm が付加される。 \vspace{\baselineskip} 【例】 @@ -3411,67 +3415,67 @@ optionは,幅または高さの指定。 \vspace{\baselineskip} \hypertarget{cindyname}{} -\item[関数] Cindyname() -\item[機能] 作図中のファイル名を取得する。 -\item[説明] たとえば,現在作図しているファイル名が 「polygon.cdy」のとき,"polygon" を返す。 - +\item[関数]Cindyname() +\item[機能]作図中のファイル名を取得する。 +\item[説明]たとえば,現在作図しているファイル名が 「polygon.cdy」のとき,"polygon" を返す。 + \vspace{\baselineskip} \hypertarget{crossprod}{} -\item[関数] Crossprod(リスト,リスト) -\item[機能] 2つのベクトルの外積を求める。 -\item[説明] Cindyscriptの組み込み関数 cross(リスト,リスト)と同じ。 +\item[関数]Crossprod(リスト,リスト) +\item[機能]2つのベクトルの外積を求める。 +\item[説明]Cindyscriptの組み込み関数 cross(リスト,リスト)と同じ。 \vspace{\baselineskip} 【例】\verb|Crossprod([1,0,0],[1,1,1]);| - - 結果は [0,-1,1]\\ + +結果は[0,-1,1]\\ \vspace{\baselineskip} \hypertarget{dotprod}{} -\item[関数] Dotprod(リスト,リスト) -\item[機能] 2つのベクトルの内積を求める。 -\item[説明] Cindyscriptでは,積の演算で内積が求められる。 +\item[関数]Dotprod(リスト,リスト) +\item[機能]2つのベクトルの内積を求める。 +\item[説明]Cindyscriptでは,積の演算で内積が求められる。 \vspace{\baselineskip} - 【例】\verb|Dotprod([1,2,3],[1,-1,1]);| - - 結果は 2 - - [1,2,3]*[1,-1,1] でも同じ結果を得る。 +【例】\verb|Dotprod([1,2,3],[1,-1,1]);| + +結果は2 + +[1,2,3]*[1,-1,1] でも同じ結果を得る。 \vspace{\baselineskip} \hypertarget{findarea}{} -\item[関数] Findarea(プロットデータ) -\item[機能] プロットデータで囲まれる部分の面積を求める。 -\item[説明] 閉曲線をなすプロットデータで囲まれる部分の面積を求める。大島のベジェ公式を用いている。 +\item[関数]Findarea(プロットデータ) +\item[機能]プロットデータで囲まれる部分の面積を求める。 +\item[説明]閉曲線をなすプロットデータで囲まれる部分の面積を求める。大島のベジェ公式を用いている。 \vspace{\baselineskip} 【例】楕円の面積を求めて表示する。 \begin{verbatim} - Paramplot("1","[3*cos(t),2*sin(t)]","t=[0,2*pi]"); - area=Findarea("gp1"); - println(Sprintf(area,6)); +Paramplot("1","[3*cos(t),2*sin(t)]","t=[0,2*pi]"); +area=Findarea("gp1"); +println(Sprintf(area,6)); \end{verbatim} コンソールに面積 18.849536 が表示される。 \vspace{\baselineskip} \hypertarget{findlength}{} -\item[関数] Findlength(プロットデータ) -\item[機能] プロットデータの曲線の長さを求める。 -\item[説明] プロットデータが描く曲線の長さを求める。大島のベジェ公式を用いている。 +\item[関数]Findlength(プロットデータ) +\item[機能]プロットデータの曲線の長さを求める。 +\item[説明]プロットデータが描く曲線の長さを求める。大島のベジェ公式を用いている。 \vspace{\baselineskip} 【例】円周の長さを求めて表示する。 \begin{verbatim} - Circledata("1",[[0,0],[2,0]]); - len=Findlength("cr1"); - println(Sprintf(len,6)); +Circledata("1",[[0,0],[2,0]]); +len=Findlength("cr1"); +println(Sprintf(len,6)); \end{verbatim} コンソールに 12.558097 が表示される。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage @@ -3481,9 +3485,9 @@ optionは,幅または高さの指定。 \begin{description} \hypertarget{tabledata}{} -\item[関数] Tabledata(name , 縦横データ, 除外線 , options) -\item[機能] 表の枠を作成し,表のデータlist を返す -\item[説明] Cinderellaの描画面上に左下を原点とする表を作成する。 +\item[関数]Tabledata(name , 縦横データ, 除外線 , options) +\item[機能]表の枠を作成し,表のデータlist を返す +\item[説明]Cinderellaの描画面上に左下を原点とする表を作成する。 他の関数との引数の整合性,\ketpic のコマンドとの整合性などから,先頭にnameの引数をつけるが,実際にはあまり利用しないので,空文字""でもよい。 @@ -3496,34 +3500,34 @@ optionsは線種と"notex"など,および "Rng=n"。 縦横データには,次の2通りの書式がある。いずれも同じ表を作成する。 \vspace{\baselineskip} -(1) 横のセル数 , 縦のセル数 , 表の横幅 , 表の縦幅 を指定する。除外線なし。 +(1) 横のセル数 , 縦のセル数 , 表の横幅 , 表の縦幅を指定する。除外線なし。 \begin{verbatim} - Tabledata("",4,5,80,50,[]); +Tabledata("",4,5,80,50,[]); \end{verbatim} - + (2) 横と縦の幅を指定したリストを使う \begin{verbatim} - Yoko=[20,20,20,20]; - Tate=[10,10,10,10,10]; - Tabledata("",Yoko,Tate,[]); +Yoko=[20,20,20,20]; +Tate=[10,10,10,10,10]; +Tabledata("",Yoko,Tate,[]); \end{verbatim} 幅はCinderellaの描画面の0.1を単位とする。 -作成された表には,行,列の制御点がつく。画面上では,横罫線の番号 r0,r1,・・・ 縦罫線の番号 c0,c1,・・・と見ることもできる。また,縦幅,横幅が数字で示される。ただし,これらは\TeX には出力されない。 +作成された表には,行,列の制御点がつく。画面上では,横罫線の番号 r0,r1,・・・縦罫線の番号 c0,c1,・・・と見ることもできる。また,縦幅,横幅が数字で示される。ただし,これらは\TeX には出力されない。 また,作表はCinderellaの描画面上では座標平面上に置かれるが,\TeX への出力は座標平面上には置かないことが多いので,座標軸は非表示としている。 \hspace{25mm} 描画面 \hspace{45mm} TeX -\hspace{5mm}\includegraphics[bb=0 0 403.52 249.51 , width=5cm]{Fig/table01.pdf} \hspace{10mm} \input{Fig/table02} +\hspace{5mm}\includegraphics[bb=0 0 403.52 249.51 , width=5cm]{Fig/table01.pdf} \hspace{10mm}\input{Fig/table02} - 表のサイズ・行幅・列幅は,作成後にそれぞれの制御点をドラッグすることにより任意に変えることができる。 +表のサイズ・行幅・列幅は,作成後にそれぞれの制御点をドラッグすることにより任意に変えることができる。 \vspace{\baselineskip} 除外線は,除外するセルの罫線を,rとc で位置指定する。 - + \hspace{10mm} 横罫線の場合,横罫線の番号,範囲(から,まで) \hspace{10mm} 縦罫線の場合,縦罫線の番号,範囲(から,まで) @@ -3533,47 +3537,47 @@ optionsは線種と"notex"など,および "Rng=n"。 \vspace{\baselineskip} 【例】4つの罫線を非表示にする \begin{verbatim} - Rmv=["r1c0c1","c3r0r1","c3r3r5","r4c2c4"]; - Tabledata("",4,5,80,50,Rmv); +Rmv=["r1c0c1","c3r0r1","c3r3r5","r4c2c4"]; +Tabledata("",4,5,80,50,Rmv); \end{verbatim} - + で,次の表ができる。 - + \vspace{\baselineskip} -\hspace{20mm} \includegraphics[bb=0 0 392.02 251.51 , width=6cm]{Fig/table03.pdf} +\hspace{20mm}\includegraphics[bb=0 0 392.02 251.51 , width=6cm]{Fig/table03.pdf} \vspace{\baselineskip} <補足> -Tabledata()関数は,制御点r0,r1,・・・,c0,c1,・・・ がなければ新しく作り,すでに存在する場合はそのままとする。したがって,一度表を作成したのち,行数・列数を修正して作り直す場合は,一度既存の点を消去する必要がある。そのためには,「すべての点を選択する」ツールをクリックして点を消去するのがよい。クリックすると,消去後すぐに新規作成される。(誤って「すべての要素を選択する」を選ばないこと) - +Tabledata()関数は,制御点r0,r1,・・・,c0,c1,・・・がなければ新しく作り,すでに存在する場合はそのままとする。したがって,一度表を作成したのち,行数・列数を修正して作り直す場合は,一度既存の点を消去する必要がある。そのためには,「すべての点を選択する」ツールをクリックして点を消去するのがよい。クリックすると,消去後すぐに新規作成される。(誤って「すべての要素を選択する」を選ばないこと) + 他の点が描画されている場合は,表の部分だけドラッグで選択するか,表示メニューの「式による表示」で一覧表を出して,制御点を選択して消去する。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{tabledatalight}{} -\item[関数] Tabledatalight(name , 縦横データ, 除外線 , options) -\item[機能] 幾何点を持たない表の枠を作成し,表のデータlist を返す -\item[説明] Tabledata()がCinderellaの幾何点を生成するのに対し,Tabledatalight()は幾何点を生成しない。 +\item[関数]Tabledatalight(name , 縦横データ, 除外線 , options) +\item[機能]幾何点を持たない表の枠を作成し,表のデータlist を返す +\item[説明]Tabledata()がCinderellaの幾何点を生成するのに対し,Tabledatalight()は幾何点を生成しない。 幾何点を作成しないメリットは,スクリプトだけで全体の縦横幅を変更できること。デメリットはインタラクティブな微調整ができないこと。 - + optionとして,ラベルのスキップ値(スキップするところは表示されない)を指定することができる。ただし,ラベルはCinderellaの画面上だけの問題。 - + \vspace{\baselineskip} - 【例】1つおきにスキップして,r1,r3,c1,c2 を非表示とする。 +【例】1つおきにスキップして,r1,r3,c1,c2 を非表示とする。 \begin{verbatim} - Yoko=[20,20,20,20]; - Tate=[10,10,10,10,10]; - Tabledatalight("",Yoko,Tate,[],[2]); +Yoko=[20,20,20,20]; +Tate=[10,10,10,10,10]; +Tabledatalight("",Yoko,Tate,[],[2]); \end{verbatim} - + \vspace{\baselineskip} \hypertarget{changetablestyle}{} -\item[関数] ChangeTablestyle(罫線リスト, 変更オプション) -\item[機能] Table の罫線の描画オプションを変更 -\item[説明] 罫線の部分的に指定して描画オプションを変更できる。 +\item[関数]ChangeTablestyle(罫線リスト, 変更オプション) +\item[機能]Table の罫線の描画オプションを変更 +\item[説明]罫線の部分的に指定して描画オプションを変更できる。 \vspace{\baselineskip} 【例】 @@ -3584,96 +3588,96 @@ optionとして,ラベルのスキップ値(スキップするところは \vspace{\baselineskip} \hspace{20mm}\includegraphics[bb=0.00 0.00 324.00 174.00,width=50mm]{Fig/changetable.pdf} - + \vspace{\baselineskip} \hypertarget{findcell}{} -\item[関数] Findcell(列番号, 行番号) -\item[機能] セルの情報list(中心,横幅/2,縦幅/2)を返す -\item[説明] 列番号,行番号は左上のセルを1列1行として数える。 +\item[関数]Findcell(列番号, 行番号) +\item[機能]セルの情報list(中心,横幅/2,縦幅/2)を返す +\item[説明]列番号,行番号は左上のセルを1列1行として数える。 \vspace{\baselineskip} 【例】\verb|Tabledata(4,5,80,50,[]);| - \verb|println(Findcell(tb,2,1));| - - とすると,2列1行のセルの中心の座標と横幅の半分,縦幅の半分の値がリストとしてコンソールに表示される。結果は [[3,4.5],1,0.5] +\verb|println(Findcell(tb,2,1));| + +とすると,2列1行のセルの中心の座標と横幅の半分,縦幅の半分の値がリストとしてコンソールに表示される。結果は [[3,4.5],1,0.5] \vspace{\baselineskip} \hypertarget{putcell}{} -\item[関数] Putcell (列番号, 行番号, 位置, 文字データ) -\item[機能] セルに文字列を入れる -\item[説明] 複数のセルにまたぐ位置指定の場合,列番号,行番号は,セル左上と右下の制御点の名称で指定する。 +\item[関数]Putcell (列番号, 行番号, 位置, 文字データ) +\item[機能]セルに文字列を入れる +\item[説明]複数のセルにまたぐ位置指定の場合,列番号,行番号は,セル左上と右下の制御点の名称で指定する。 + +位置はc, r, l, t, b (中央center , 右right , 左left , 上top , 下bottom ) -位置は c, r, l, t, b (中央center , 右right , 左left , 上top , 下bottom ) - 位置の例を以下に示す。 \begin{verbatim} - Tabledata("",5,2,100,40,["c1r1r2","c4r1r2"]); - Putcell(1,1,"c","A"); - Putcell(2,1,"r","B"); - Putcell(3,1,"l","C"); - Putcell(4,1,"t","D"); - Putcell(5,1,"b","E"); - Putcell("c0r1","c2r2","c","F"); - Putcell("c2r1","c3r2","lb","G"); - Putcell("c3r1","c5r2","rt","H"); +Tabledata("",5,2,100,40,["c1r1r2","c4r1r2"]); +Putcell(1,1,"c","A"); +Putcell(2,1,"r","B"); +Putcell(3,1,"l","C"); +Putcell(4,1,"t","D"); +Putcell(5,1,"b","E"); +Putcell("c0r1","c2r2","c","F"); +Putcell("c2r1","c3r2","lb","G"); +Putcell("c3r1","c5r2","rt","H"); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/putcell} \end{center} +\begin{center} \input{Fig/putcell} \end{center} - ※r0,c0,・・は画面に表示される番号 +※r0,c0,・・は画面に表示される番号 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{putcol}{} -\item[関数] PutcoL (列番号, 文字位置,文字列リスト) -\item[機能] 1列に順に文字を書き入れる -\item[説明] 列番号で指定した列に,第1行から順に文字列リストの文字を書き入れる\\ - 数の場合はダブルクウォートでくくらなくてもよい。 - - セルを飛ばす場合は,ヌル文字列 "" を書く。 - +\item[関数]PutcoL (列番号, 文字位置,文字列リスト) +\item[機能]1列に順に文字を書き入れる +\item[説明]列番号で指定した列に,第1行から順に文字列リストの文字を書き入れる\\ +数の場合はダブルクォートでくくらなくてもよい。 + +セルを飛ばす場合は,ヌル文字列 "" を書く。 + \vspace{\baselineskip} \hypertarget{putcolexpr}{} -\item[関数] PutcoLexpr (列番号, 文字位置,文字列リスト) -\item[機能] 1列に順に文字を書き入れる -\item[説明] 文字列に\TeX 書式を使うことができる +\item[関数]PutcoLexpr (列番号, 文字位置,文字列リスト) +\item[機能]1列に順に文字を書き入れる +\item[説明]文字列に\TeX 書式を使うことができる \vspace{\baselineskip} \hypertarget{putrow}{} -\item[関数] Putrow (行番号, 文字位置,文字列リスト) -\item[機能] 1行に順に文字を書き入れる -\item[説明] 行番号で指定した行に,第1列から順に文字列リストの文字を書き入れる。 +\item[関数]Putrow (行番号, 文字位置,文字列リスト) +\item[機能]1行に順に文字を書き入れる +\item[説明]行番号で指定した行に,第1列から順に文字列リストの文字を書き入れる。 \vspace{\baselineskip} \hypertarget{putrowexpr}{} -\item[関数] Putrowexpr (行番号, 文字位置,文字列リスト) -\item[機能] 1行に順に文字を書き入れる -\item[説明] 文字列に\TeX 書式を使うことができる +\item[関数]Putrowexpr (行番号, 文字位置,文字列リスト) +\item[機能]1行に順に文字を書き入れる +\item[説明]文字列に\TeX 書式を使うことができる 文字を入れる例を示す。 \begin{verbatim} - Tabledata("",5,3,100,45,["c1r1r2","r1c2c3","r2c2c3"]); - PutcoL(3,"c",["A","B","C"]); - PutcoLexpr(4,"l",["x^2","y=\sqrt{x^3}"]); - Putrow(1,"c",[1,"二"]); - Putrowexpr(3,"c",["","\frac{\pi}{2}","","","\sum{x^2}"]); +Tabledata("",5,3,100,45,["c1r1r2","r1c2c3","r2c2c3"]); +PutcoL(3,"c",["A","B","C"]); +PutcoLexpr(4,"l",["x^2","y=\sqrt{x^3}"]); +Putrow(1,"c",[1,"二"]); +Putrowexpr(3,"c",["","\frac{\pi}{2}","","","\sum{x^2}"]); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/putcol} \end{center} +\begin{center} \input{Fig/putcol} \end{center} - ※ r0,c0,・・は画面に表示される番号。 +※ r0,c0,・・は画面に表示される番号。 グラフや文を入れた表の作成例 - PutcoLexpr(),Putrowexpr() では,数式だけでなく,一般の\TeX の文を入れることができる。 - また,グラフの位置を適当に合わせて描画することにより,表のセルの中にグラフを入れることができる。 +PutcoLexpr(),Putrowexpr() では,数式だけでなく,一般の\TeX の文を入れることができる。 +また,グラフの位置を適当に合わせて描画することにより,表のセルの中にグラフを入れることができる。 \vspace{\baselineskip} - 【例】2次関数のグラフと2次方程式の判別式の関係 - +【例】2次関数のグラフと2次方程式の判別式の関係 + セルの中にグラフを描く例。実際には,セルの位置にグラフを描く。 x軸を描くための点A〜Fは作図ツールでとっておく。 @@ -3682,17 +3686,17 @@ x軸を描くための点A〜Fは作図ツールでとっておく。 \vspace{\baselineskip} \begin{verbatim} - Tabledata("",3,3,120,60,[],["dr,2"]); - ChangeTablestyle(["r1c0c3"],["dr"]); - ChangeTablestyle(["r2c0c3"],["da"]); - Plotdata("1","(x-2)^2+0.5","x=[0.5,3.5]"); - Plotdata("2","(x-6)^2+1","x=[4.5,7.5]"); - Plotdata("3","(x-10)^2+1.5","x=[8.5,11.5]"); - Listplot([A,B]); - Listplot([C,D]); - Listplot([E,F]); - Putrowexpr(1,"c",["D>0","D=0","D<0"]); - Putrow(2,"c",["2点で交わる","接する","共有点なし"]); +Tabledata("",3,3,120,60,[],["dr,2"]); +ChangeTablestyle(["r1c0c3"],["dr"]); +ChangeTablestyle(["r2c0c3"],["da"]); +Plotdata("1","(x-2)^2+0.5","x=[0.5,3.5]"); +Plotdata("2","(x-6)^2+1","x=[4.5,7.5]"); +Plotdata("3","(x-10)^2+1.5","x=[8.5,11.5]"); +Listplot([A,B]); +Listplot([C,D]); +Listplot([E,F]); +Putrowexpr(1,"c",["D>0","D=0","D<0"]); +Putrow(2,"c",["2点で交わる","接する","共有点なし"]); \end{verbatim} \vspace{\baselineskip} @@ -3702,43 +3706,43 @@ x軸を描くための点A〜Fは作図ツールでとっておく。 \vspace{\baselineskip} 【例】増減表とグラフ - 関数の増減表とグラフを1つの表の中に入れた例。 -\begin{verbatim} - Tate=[6,6,10,6,10,6,40]; - Yoko=[30,6,6,6]; - Rmv=["c1r0r1","c2r0r1","c3r0r1","c4r0r1","c5r0r1", "r1c6c7", - "r2c6c7","r3c6c7"]; - Tabledata("",Tate,Yoko,Rmv,["dr"]) - Tlistplot("23d",["c1r2","c2r3"]); - Tlistplot("23u",["c1r3","c2r2"]); - Putrowexpr(2,"c",["x",0,"\cdots","\tfrac{1}{4}","\cdots",4]); - Putrowexpr(3,"c",["y`","","-",0,"+"]); - Putrowexpr(4,"c",["y",0,"\searrow","-\tfrac{1}{4}","\nearrow",2]); - Putcell(1,1,"l2t2","{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y`= - \dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$|より\vspace{1mm}\\\hspace*{2zw}$x= - \dfrac{1}{4}$\vspace{1mm}\\増減表は次のようになる\end{minipage}}" ); - Plotdata("1","x-sqrt(x)","x=[0,3]",["do","notex"]); - Listplot("2",[[0,0],[3,0]],["do","notex"]); - Listplot("3",[[0,-0.5],[0,3]],["do","notex"]); - Translatedata("1","gr1",[4.9,1],["dr"]); - Translatedata("2","sg2",[4.9,1],["dr"]); - Translatedata("3","sg3",[4.9,1],["dr"]); - Letter(Ptend(tr2),"e1","\small{$x$}"); - Letter(Ptend(tr3),"n1","\small{$y$}"); - Letter(Ptstart(tr2),"w1","\small O"); - Expr(Ptend(tr1),"nw-2","y=x-\sqrt{x}"); +関数の増減表とグラフを1つの表の中に入れた例。 +\begin{verbatim} +Tate=[6,6,10,6,10,6,40]; +Yoko=[30,6,6,6]; +Rmv=["c1r0r1","c2r0r1","c3r0r1","c4r0r1","c5r0r1", "r1c6c7", +"r2c6c7","r3c6c7"]; +Tabledata("",Tate,Yoko,Rmv,["dr"]) +Tlistplot("23d",["c1r2","c2r3"]); +Tlistplot("23u",["c1r3","c2r2"]); +Putrowexpr(2,"c",["x",0,"\cdots","\tfrac{1}{4}","\cdots",4]); +Putrowexpr(3,"c",["y`","","-",0,"+"]); +Putrowexpr(4,"c",["y",0,"\searrow","-\tfrac{1}{4}","\nearrow",2]); +Putcell(1,1,"l2t2","{\small\begin{minipage}{44mm}$y=x-\sqrt{x}$\\$y`= +\dfrac{2\sqrt{x}-1}{2\sqrt{x}}=0$|より\vspace{1mm}\\\hspace*{2zw}$x= +\dfrac{1}{4}$\vspace{1mm}\\増減表は次のようになる\end{minipage}}" ); +Plotdata("1","x-sqrt(x)","x=[0,3]",["do","notex"]); +Listplot("2",[[0,0],[3,0]],["do","notex"]); +Listplot("3",[[0,-0.5],[0,3]],["do","notex"]); +Translatedata("1","gr1",[4.9,1],["dr"]); +Translatedata("2","sg2",[4.9,1],["dr"]); +Translatedata("3","sg3",[4.9,1],["dr"]); +Letter(Ptend(tr2),"e1","\small{$x$}"); +Letter(Ptend(tr3),"n1","\small{$y$}"); +Letter(Ptstart(tr2),"w1","\small O"); +Expr(Ptend(tr1),"nw-2","y=x-\sqrt{x}"); \end{verbatim} \begin{center} \input{Fig/tablesample2} \end{center} - + \vspace{\baselineskip} - 【例】凹凸を含めた増減表 +【例】凹凸を含めた増減表 \begin{verbatim} - Tabledata("",8,4,80,40,[]); - Putrowexpr(1,c,["x","\cdots","-1","\cdots","0","\cdots","1","\cdots"]); - Putrowexpr(2,c,["y`","+","+","+","0","-","-","-"]); - Putrowexpr(3,c,["y``","+","0","-","-","-","0","+"]); - Putrowexpr(4,c,["y","\nelarrow","\frac{1}{\sqrt{e}}","\nerarrow", - "1","\serarrow","\frac{1}{\sqrt{e}}","\selarrow"]); +Tabledata("",8,4,80,40,[]); +Putrowexpr(1,c,["x","\cdots","-1","\cdots","0","\cdots","1","\cdots"]); +Putrowexpr(2,c,["y`","+","+","+","0","-","-","-"]); +Putrowexpr(3,c,["y``","+","0","-","-","-","0","+"]); +Putrowexpr(4,c,["y","\nelarrow","\frac{1}{\sqrt{e}}","\nerarrow", +"1","\serarrow","\frac{1}{\sqrt{e}}","\selarrow"]); \end{verbatim} \begin{center} \input{Fig/zogen3} \end{center} %\vspace{\baselineskip} @@ -3748,25 +3752,25 @@ nelarrow,nerarrow,selarrow,serarrow,NELarrow,NERarrow,SELarrow,SERrarrow があ なお,これらの矢印はCindyTeXにはないので,Cinderellaの描画面には表示されない。 -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \vspace{\baselineskip} \hypertarget{tgrid}{} -\item[関数] Tgrid(セルラベル) -\item[機能] 表のセルの座標を返す -\item[説明] 指定されたセルの左上の座標を返す。実際には,セルラベルは罫線を示しているので,指定した罫線の交点(格子点)ということもできる。 +\item[関数]Tgrid(セルラベル) +\item[機能]表のセルの座標を返す +\item[説明]指定されたセルの左上の座標を返す。実際には,セルラベルは罫線を示しているので,指定した罫線の交点(格子点)ということもできる。 \vspace{\baselineskip} \hypertarget{tlistplot}{} -\item[関数] Tlistplot(セルラベル1,セルラベル2) -\item[機能] 指定された2つの格子点を線分で結ぶ -\item[説明] セルに斜線を引くのに用いる。 +\item[関数]Tlistplot(セルラベル1,セルラベル2) +\item[機能]指定された2つの格子点を線分で結ぶ +\item[説明]セルに斜線を引くのに用いる。 \vspace{\baselineskip} 【例】\verb|Tlistplot(["c0r1","c1r2"]);| - + \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} @@ -3777,134 +3781,134 @@ nelarrow,nerarrow,selarrow,serarrow,NELarrow,NERarrow,SELarrow,SERrarrow があ %\vspace{\baselineskip} %\hypertarget{makeshell}{} -%\item[関数] Makeshell(ファイル名) / Makebat(ファイル名) -%\item[機能] Macの場合はシェルファイル,Windowsの場合はバッチファイルを書き出す。 -%\item[説明] 書き出されるファイルについては,figいったんフォルダを空にしてから確かめられたい。 +%\item[関数]Makeshell(ファイル名) / Makebat(ファイル名) +%\item[機能]Macの場合はシェルファイル,Windowsの場合はバッチファイルを書き出す。 +%\item[説明]書き出されるファイルについては,figいったんフォルダを空にしてから確かめられたい。 \hypertarget{assign}{} -\item[関数] Assign(文字列,文字,文字) -\item[機能] 文字列の中のある文字を他の文字で置き換える -\item[説明] 第1引数の文字列中の第2引数の文字を,第3引数の文字で置き換える。 +\item[関数]Assign(文字列,文字,文字) +\item[機能]文字列の中のある文字を他の文字で置き換える +\item[説明]第1引数の文字列中の第2引数の文字を,第3引数の文字で置き換える。 第3引数が数値の場合,文字列に変換される。 第2引数と,第3引数をリストにして,複数の置き換えをすることができる。 \vspace{\baselineskip} - 【例】\verb|a*x| を\verb|1.3*x| とした文字列を返す。次のいずれも同じ結果になる。 +【例】\verb|a*x| を\verb|1.3*x| とした文字列を返す。次のいずれも同じ結果になる。 \begin{verbatim} - Assign("x^2+a*x","a","1.3"); - Assign("x^2+a*x","a",1.3); + Assign("x^2+a*x","a","1.3"); + Assign("x^2+a*x","a",1.3); \end{verbatim} \vspace{\baselineskip} - 【例】直線 $y=bx-b^2$ の係数$b$を変化させて描き,包絡線をうかびあがらせる。 +【例】直線 $y=bx-b^2$ の係数$b$を変化させて描き,包絡線をうかびあがらせる。 \begin{verbatim} - repeat(50,t, - cb=t/5-5; - Plotdata(text(t),Assign("b*x-b^2","b",cb),"x"); - ); + repeat(50,t, +cb=t/5-5; +Plotdata(text(t),Assign("b*x-b^2","b",cb),"x"); + ); \end{verbatim} %\vspace{\baselineskip} \begin{center} \input{Fig/assign} \end{center} \vspace{\baselineskip} - 【例】文字で表された $x$ と $y$ の係数をまとめて数値で置き換える。 +【例】文字で表された $x$ と $y$ の係数をまとめて数値で置き換える。 \begin{verbatim} - Assign("a*x^2+b*x",["a",1,"b",2]); + Assign("a*x^2+b*x",["a",1,"b",2]); \end{verbatim} %\vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -% =========== commented to com2th() ========== +% ===========commentedto com2th() ========== \begin{comment} \vspace{\baselineskip} \hypertarget{com0th}{} -\item[関数] Com0th(文字列) -\item[機能] RのOpenfileの前に置くコマンド(文字列)を定義する。 -\item[説明] 【例】\verb|Com0th("Setax('a')");| +\item[関数]Com0th(文字列) +\item[機能]RのOpenfileの前に置くコマンド(文字列)を定義する。 +\item[説明]【例】\verb|Com0th("Setax('a')");| Openfileの前の部分の先頭に書き出す。これにより, \ketcindy でサポートされていないR版\ketpic のコマンドを利用することができる。 - + \vspace{\baselineskip} \hypertarget{com1st}{} -\item[関数] Com1st(文字列) -\item[機能] RのOpenfileの前に置くコマンド(文字列)を定義する。 -\item[説明] 【例】\verb|Com1st("Setax('a')");|\\ - これにより, \ketcindy でサポートされていないR版\ketpic のコマンドを利用することができる。 +\item[関数]Com1st(文字列) +\item[機能]RのOpenfileの前に置くコマンド(文字列)を定義する。 +\item[説明]【例】\verb|Com1st("Setax('a')");|\\ +これにより, \ketcindy でサポートされていないR版\ketpic のコマンドを利用することができる。 \vspace{\baselineskip} \hypertarget{com2nd}{} -\item[関数] Com2nd(文字列) -\item[機能] RのOpenfileのあとに置くコマンド(文字列)を定義する。 +\item[関数]Com2nd(文字列) +\item[機能]RのOpenfileのあとに置くコマンド(文字列)を定義する。 \vspace{\baselineskip} \hypertarget{com2ndpre}{} -\item[関数] Com2ndpre(文字列) -\item[機能] RのOpenfileのあとに置くコマンド(文字列)を定義する。 +\item[関数]Com2ndpre(文字列) +\item[機能]RのOpenfileのあとに置くコマンド(文字列)を定義する。 Openfileの直後(グループの先頭に)書き出す。 \end{comment} -% =========== ここまで コメント化 ========== +% =========== ここまで コメント化========== \hypertarget{colorcode}{} -\item[関数] Colorcode(種別1,種別2, カラーコード) -\item[機能] 種別1から種別2へカラーコードを変換する。戻り値は変換されたコード。 -\item[説明] 種別は,"rgb","cmyk","hsv"のいずれか。 +\item[関数]Colorcode(種別1,種別2, カラーコード) +\item[機能]種別1から種別2へカラーコードを変換する。戻り値は変換されたコード。 +\item[説明]種別は,"rgb","cmyk","hsv"のいずれか。 \vspace{\baselineskip} 【例】変換例をいくつか示す。 RGBの[1,0,0]をCMYKに変換したコードをコンソールに表示する。 \begin{verbatim} - col=Colorcode("rgb","cmyk",[1,0,0]); - println(col); +col=Colorcode("rgb","cmyk",[1,0,0]); +println(col); \end{verbatim} CMYKの[0,1,1,0]をRGBに変換したコードをコンソールに表示する。 \begin{verbatim} - col=Colorcode("cmyk","rgb",[0,1,1,0]); - println(col); +col=Colorcode("cmyk","rgb",[0,1,1,0]); +println(col); \end{verbatim} - + RGBの[1,0,0]をHSVに変換したコードをコンソールに表示する。 \begin{verbatim} - col=Colorcode("rgb","hsv",[1,0,0]); - println(col); +col=Colorcode("rgb","hsv",[1,0,0]); +println(col); \end{verbatim} \vspace{\baselineskip} \hypertarget{dqq}{} -\item[関数] Dqq(文字列) -\item[機能] 文字列の前後に\verb|"|をつける。 +\item[関数]Dqq(文字列) +\item[機能]文字列の前後に\verb|"|をつける。 \begin{verbatim} - str="abc"; - str2=Dqq(str); - println([str,str2]); +str="abc"; +str2=Dqq(str); +println([str,str2]); \end{verbatim} \vspace{\baselineskip} \hypertarget{factorial}{} -\item[関数] Factorial(n) -\item[機能] 正の整数$n$の階乗を計算する。 +\item[関数]Factorial(n) +\item[機能]正の整数$n$の階乗を計算する。 \vspace{\baselineskip} \hypertarget{norm}{} -\item[関数] Norm(ベクトル), Norm(ベクトル1, ベクトル2) -\item[機能] ベクトル(2つのベクトルの場合は差の大きさ)の大きさを計算する。 +\item[関数]Norm(ベクトル), Norm(ベクトル1, ベクトル2) +\item[機能]ベクトル(2つのベクトルの場合は差の大きさ)の大きさを計算する。 \vspace{\baselineskip} \hypertarget{figpdf}{} -\item[関数] Figpdf(option) -\item[機能] 出力枠サイズのPDFを作る。 -\item[説明] \ketcindy では,通常,出力された fig.tex ファイルを閲覧するPDFをA4サイズで作成する。これに対し,Figpdf()を実行すると,出力サイズのPDFを作成する。閲覧用だけではなくワープロなどにに貼り込むときにそのまま使用できる。ただし,そのための親子プロセスを生成して実行するため,次の手続き(1)(2)が必要となる。 +\item[関数]Figpdf(option) +\item[機能]出力枠サイズのPDFを作る。 +\item[説明]\ketcindy では,通常,出力された fig.tex ファイルを閲覧するPDFをA4サイズで作成する。これに対し,Figpdf()を実行すると,出力サイズのPDFを作成する。閲覧用だけではなくワープロなどにに貼り込むときにそのまま使用できる。ただし,そのための親子プロセスを生成して実行するため,次の手続き(1)(2)が必要となる。 \vspace{\baselineskip} (1) Setparent(filename)で,出力するPDF用のファイル名を設定する。 @@ -3914,10 +3918,10 @@ RGBの[1,0,0]をHSVに変換したコードをコンソールに表示する。 \vspace{\baselineskip} たとえば,fig.cdy で作図しているとき, \begin{verbatim} - Setparent("pic"); +Setparent("pic"); \end{verbatim} とすると,fig.tex を表示した pic.pdf が作成される。pic.pdf が目的のPDF。 - + このファイル名は 作図しているCinderellaのファイル名,または Setfiles() で指定したファイル名とは異なるものにする。 optionは,マージン(余白)と平行移動量。指定しない場合は 初期設定値。 @@ -3932,58 +3936,58 @@ optionは,マージン(余白)と平行移動量。指定しない場合 【例】余白の設定 \begin{tabbing} 1234\=567890123456789012345678901234\=\kill - \> \verb|Figpdf([5,5,10,10]);| \> 左右に5mm,上下10mmの余白\\ - \> \verb|Figpdf([[5,10]]);| \> 右に5mm,下に10mm平行移動して表示\\ - \> \verb|Figpdf([5,8,10,10,[5,-5]]);| \> 左5mm,右8mm,上下10mmの余白,\\ - \> \> 右に5mm,上に5mm平行移動して表示 + \> \verb|Figpdf([5,5,10,10]);|\> 左右に5mm,上下10mmの余白\\ + \> \verb|Figpdf([[5,10]]);|\>右に5mm,下に10mm平行移動して表示\\ + \> \verb|Figpdf([5,8,10,10,[5,-5]]);| \> 左5mm,右8mm,上下10mmの余白,\\ +\>\> 右に5mm,上に5mm平行移動して表示 \end{tabbing} - + なお,座標軸を表示する場合,右側は最低3mmの余白を設定しないと軸の文字が入らない。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{help}{} -\item[関数] Help(文字列) -\item[機能] 関数の使用例を取得する -\item[説明] 文字列で始まる関数の使用例をコンソールに表示する。 +\item[関数]Help(文字列) +\item[機能]関数の使用例を取得する +\item[説明]文字列で始まる関数の使用例をコンソールに表示する。 \hspace{10mm} \verb|println(Help("L"));| - - のようにすると,コンソールに,次のように「L」で始まる関数の使用例が表示される。 + +のようにすると,コンソールに,次のように「L」で始まる関数の使用例が表示される。 \begin{verbatim} - Letter([C,"c","Graph of $f(x)$"]); - Letter([C,"c","xy"],["size->30"]); - 文字を書き込む - Letterrot(C,B-A,"AB"); - Letterrot(C,B-A,"t0n5","AB"); - Letterrot(C,B-A,0,5,"AB"); - 傾いた文字を書き込む - ・・・・ +Letter([C,"c","Graph of $f(x)$"]); +Letter([C,"c","xy"],["size->30"]); + 文字を書き込む +Letterrot(C,B-A,"AB"); +Letterrot(C,B-A,"t0n5","AB"); +Letterrot(C,B-A,0,5,"AB"); + 傾いた文字を書き込む + ・・・・ \end{verbatim} \vspace{\baselineskip} \hypertarget{helpkey}{} -\item[関数] Helpkey(文字列) -\item[機能] 関数の使用例をキーワードで検索する -\item[説明] 文字列に与えたキーワードで関数の使用例を検索し,コンソールに表示する。 +\item[関数]Helpkey(文字列) +\item[機能]関数の使用例をキーワードで検索する +\item[説明]文字列に与えたキーワードで関数の使用例を検索し,コンソールに表示する。 \vspace{\baselineskip} -【例】\verb|Helpkey("直線");| とすると,コンソールに次のように表示される。 +【例】\verb|Helpkey("直線");|とすると,コンソールに次のように表示される。 \begin{verbatim} - IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw"); - IntersectsgpL("R","P-Q","A-B-C"); - IntersectsgpL("R","P-Q","A-B-C","put"); - 空間の直線と平面の交点 - Lineplot("1",[[2,1],[3,3]]); - ・・・・ +IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw"); +IntersectsgpL("R","P-Q","A-B-C"); +IntersectsgpL("R","P-Q","A-B-C","put"); + 空間の直線と平面の交点 +Lineplot("1",[[2,1],[3,3]]); + ・・・・ \end{verbatim} \vspace{\baselineskip} \hypertarget{indexall}{} -\item[関数] Indexall(str1,str2); -\item[機能] 文字列 str1 から str2 を検索しその位置をすべて返す -\item[説明] Cindyscriptの indexof() の拡張版。indexof() が最初に見つかった位置を返すのに対し,Indexall()は存在する位置をすべてリストにして返す。 +\item[関数]Indexall(str1,str2); +\item[機能]文字列 str1 から str2 を検索しその位置をすべて返す +\item[説明]Cindyscriptの indexof() の拡張版。indexof() が最初に見つかった位置を返すのに対し,Indexall()は存在する位置をすべてリストにして返す。 \vspace{\baselineskip} 【例】str="abcabcabc" から "b"を検索する。 @@ -3994,26 +3998,26 @@ optionは,マージン(余白)と平行移動量。指定しない場合 \vspace{\baselineskip} \hypertarget{isptselected}{} -\item[関数] Isptselected(点名)または Ptselected(点名) -\item[機能] 点が選択されていれば true,そうでなければ false を返す。 -\item[説明] 点名はリストで与える。引数はなしにすることも可能で,その場合はすべての点が対象。 +\item[関数]Isptselected(点名)または Ptselected(点名) +\item[機能]点が選択されていれば true,そうでなければ false を返す。 +\item[説明]点名はリストで与える。引数はなしにすることも可能で,その場合はすべての点が対象。 KeTCindyの関数の中には処理に時間がかかるものがある。その場合,点をドラッグするなど,画面上で操作をするとその都度再計算されるために,動きが非常に遅くなる。そこで,ドラッグする点をこの関数で指定すれば,ドラッグしている間は処理されないようにすることができる。 \vspace{\baselineskip} 【例】点Aを原点近くにとっておき,次のスクリプトを実行する。 -\verb| Deffun("f(x)",["regional(y)","y=x^3-2*x","y"]);|\\ -\verb| Plotdata("1","f(x)","x",["Num=100"]);|\\ -\verb| Putoncurve("A","gr1");|\\ -\verb| coef=Derivative("f(x)","x",A.x);|\\ -\verb| Defvar(["coef",coef]);|\\ -\verb| Deffun("g(x)",["regional(y)","y=coef*(x-A.x)+A.y","y"]);|\\ -\verb| Plotdata("2","g(x)","x",["Num=1"]);|\\ -\verb| if(!Ptselected(A),|\\ -\verb| Enclosing("1",["gr2","Invert(gr1)"],[A,"nodisp"]);|\\ -\verb| Hatchdata("1",["i"],[["en1"]]);|\\ -\verb| );| +\verb|Deffun("f(x)",["regional(y)","y=x^3-2*x","y"]);|\\ +\verb|Plotdata("1","f(x)","x",["Num=100"]);|\\ +\verb|Putoncurve("A","gr1");|\\ +\verb|coef=Derivative("f(x)","x",A.x);|\\ +\verb|Defvar(["coef",coef]);|\\ +\verb|Deffun("g(x)",["regional(y)","y=coef*(x-A.x)+A.y","y"]);|\\ +\verb|Plotdata("2","g(x)","x",["Num=1"]);|\\ +\verb|if(!Ptselected(A),|\\ +\verb|Enclosing("1",["gr2","Invert(gr1)"],[A,"nodisp"]);|\\ +\verb|Hatchdata("1",["i"],[["en1"]]);|\\ +\verb|);| \vspace{\baselineskip} \hspace{5mm} 点Aをドラッグ中(選択状態)\hspace{5mm} 点A以外をクリックして選択状態を解除 @@ -4023,34 +4027,33 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その \vspace{\baselineskip} \hypertarget{slider}{} -\item[関数] Slider(名称,位置1,位置2) -\item[機能] スライダを作成する -\item[説明] 名称は "A-C-B" の形で,端点をA,B,スライダ点をCとしたスライダを作る。 - -端点A,Bの位置を,位置1,位置2で指定する。 +\item[関数]Slider(名称,位置1,位置2) +\item[機能]スライダを作成する +\item[説明]名称は "A-C-B" の形で,端点をA,B,スライダ点をCとしたスライダを作る。 +端点A,Bの位置を,位置1,位置2で指定する。単に"C"としたときは端点をとらない。 スライダにより取得したい値は,点Cの座標(たとえば C.x)を利用する。 点A,B,Cはあらかじめ作図しておく必要はない。既にある場合はその点を使う。 \vspace{\baselineskip} -【例】2つのスライダを用意し,$y=a\sin(x-b)$ のa,b をインタラクティブに変化させる。 - -\verb|Slider("A-C-B",[-5,-2],[5,-2]); | // \verb|C| is movable.\\ -\verb|Slider("D-F-E",[-6,-2],[-6,2]); | // \verb|F| is movable.\\ +【例】2つのスライダを用意し,$y=a\sin(x-b)$ のa,b を変化させる。 + +\verb|Slider("A-C-B",[-5,-2],[5,-2]);| // \verb|C| is movable.\\ +\verb|Slider("D-F-E",[-6,-2],[-6,2]);| // \verb|F| is movable.\\ \verb|Plotdata("1",Assign("y=a*sin(x-b)",["a",F.y,"b",C.x]),"x"); | -\vspace{\baselineskip} +\vspace{2mm} \hspace{15mm} -\includegraphics[bb=0.00 0.00 445.02 193.01,height=40mm]{Fig/slider.pdf} +\includegraphics[bb=0.00 0.00 445.02 193.01,height=35mm]{Fig/slider.pdf} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{sprintf}{} -\item[関数] Sprintf(実数,長さ) -\item[機能] 小数点以下の長さを固定した文字列に変換 -\item[説明] 実数を,小数点n位までの数とした文字列に変換する +\item[関数]Sprintf(実数,長さ) +\item[機能]小数点以下の長さを固定した文字列に変換 +\item[説明]実数を,小数点n位までの数とした文字列に変換する \vspace{\baselineskip} 【例】円周率 @@ -4058,44 +4061,44 @@ KeTCindyの関数の中には処理に時間がかかるものがある。その Sprintf(pi,2) は 3.14 を返す Sprintf(pi,7) は 3.1415927 を返す - + 注)pi は Cindyscriptの予約変数で,円周率を表す。\vspace{\baselineskip} \vspace{\baselineskip} \hypertarget{textformat}{} -\item[関数] Textformat(数,桁数) -\item[機能] 小数点以下の桁数を指定して数を文字列化する。 -\item[説明] 第1引数は数のリストでもよい。数のリストの場合は,戻り値は,対応する数値を指定係数にした後,リストを文字列化する。Cindyscriptの組み込み関数にも,format()という同様の関数があるが,format() は文字列のリストを返す。 +\item[関数]Textformat(数,桁数) +\item[機能]小数点以下の桁数を指定して数を文字列化する。 +\item[説明]第1引数は数のリストでもよい。数のリストの場合は,戻り値は,対応する数値を指定係数にした後,リストを文字列化する。Cindyscriptの組み込み関数にも,format()という同様の関数があるが,format() は文字列のリストを返す。 \vspace{\baselineskip} 【例】円周率を小数点以下5位までで文字列化する。 \hspace{10mm} \verb|Textformat(pi,5);| \hspace{10mm} \verb|format(pi,5);| - + 戻り値は,いずれも \verb|"3.14159"| \vspace{\baselineskip} 【例】第1引数がリストのときの,format() との戻り値の違い。 -\hspace{10mm} \verb| dt=[1/6,0.5];|\\ -\hspace{10mm} \verb| Textformat(dt,4); | // 戻り値は "[ 0.1667 , 0.5 ]" \\ -\hspace{10mm} \verb| format(dt,4); | // 戻り値は [ "0.1667" , "0.5" ] \\ +\hspace{10mm} \verb|dt=[1/6,0.5];|\\ +\hspace{10mm} \verb|Textformat(dt,4); | // 戻り値は "[ 0.1667 , 0.5 ]" \\ +\hspace{10mm} \verb|format(dt,4); | // 戻り値は [ "0.1667" , "0.5" ] \\ \vspace{\baselineskip} \hypertarget{texcom}{} -\item[関数] Texcom(\TeX コード) -\item[機能] \TeX のコードを書き出す -\item[説明] 任意の\TeX のコードを書き出す +\item[関数]Texcom(\TeX コード) +\item[機能]\TeX のコードを書き出す +\item[説明]任意の\TeX のコードを書き出す \vspace{\baselineskip} \hypertarget{windispg}{} -\item[関数] Windispg() または Windisp(データのリスト) -\item[機能] 定義されているプロットデータをCinderella画面に黒線で描く -\item[説明] Windispg()は,スクリプトの最後に置くことで,出力される部分だけが黒で描かれるので,出力図を確認することができる。ただし,Letter()関数で表示した点の名称などがCinderellaで作図したラベルと重なって表示されて見にくくなることもある。この関数を実行しなくても出力には影響しない。 +\item[関数]Windispg()またはWindisp(データのリスト) +\item[機能]定義されているプロットデータをCinderella画面に黒線で描く +\item[説明]Windispg()は,スクリプトの最後に置くことで,出力される部分だけが黒で描かれるので,出力図を確認することができる。ただし,Letter()関数で表示した点の名称などがCinderellaで作図したラベルと重なって表示されて見にくくなることもある。この関数を実行しなくても出力には影響しない。 Windisp(データのリスト)は,Rから \ketcindy 用に出力されたファイルを ReadOutData()関数で読み込んだときに,必要なプロットデータ列だけを表示するのに用いる。 - + ReadOutData("filename.txt") でデータを読み込むと,そのデータに含まれるプロットデータ列が,コンソールに \hspace{10mm}Outdata of filename.txt : [Gfn,Gdfn,Gh] @@ -4119,94 +4122,94 @@ ReadOutData("filename.txt") でデータを読み込むと,そのデータに たとえば,sg1, gr1, crABが定義されているとき, \hspace{10mm}\verb|Windispg(["sg1","gr1"]);| - + とすれば,sg1,gr1のみが表示される。 -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{viewtex}{} -\item[関数] Viewtex() -\item[機能] \TeX のソースファイルを書き出す。引数なし。 -\item[説明] グローバル変数Fheadで定義したファイル名に "main" を付加した\TeX のソースファイルとバッチファイル(Macの場合はシェルファイル)を作成する。 +\item[関数]Viewtex() +\item[機能]\TeX のソースファイルを書き出す。引数なし。 +\item[説明]グローバル変数Fheadで定義したファイル名に "main" を付加した\TeX のソースファイルとバッチファイル(Macの場合はシェルファイル)を作成する。 \vspace{\baselineskip} \hypertarget{workprocess}{} -\item[関数] Workprocess() -\item[機能] 作図の経過を取得する -\item[説明] 作図ツールを用いた作図の経過を取得する。 +\item[関数]Workprocess() +\item[機能]作図の経過を取得する +\item[説明]作図ツールを用いた作図の経過を取得する。 \verb|println(Workproccess());| - - とすると,コンソールに作図手順が表示される。 + +とすると,コンソールに作図手順が表示される。 \vspace{\baselineskip} \hypertarget{op}{} -\item[関数] Op(n,list or str) -\item[機能] リストまたは文字列から要素を抜き出す -\item[説明] 第2引数のリストまたは文字列のn番目の要素(文字)を返す。 +\item[関数]Op(n,list or str) +\item[機能]リストまたは文字列から要素を抜き出す +\item[説明]第2引数のリストまたは文字列のn番目の要素(文字)を返す。 Cindyscriptの アンダーバーの演算子 (list\_n , str\_n) と同様。 \vspace{\baselineskip} \hypertarget{strsplit}{} -\item[関数] Strsplit(文字列 , 文字) -\item[機能] 文字列を分解する。 -\item[説明] 第1引数の文字列を第2引数の文字の位置で分解したリストを返す。 +\item[関数]Strsplit(文字列 , 文字) +\item[機能]文字列を分解する。 +\item[説明]第1引数の文字列を第2引数の文字の位置で分解したリストを返す。 \vspace{\baselineskip} 【例】文字aで区切って分解する。 -\verb| str="abcadeaf";| \\ -\verb| strL=Strsplit(str,"a"); | // [” ”,”bc”,”de”,”f”] を返す。 +\verb|str="abcadeaf";| \\ +\verb|strL=Strsplit(str,"a"); |//[” ”,”bc”,”de”,”f”] を返す。 同様の関数に,Cindyscriptの tokenize(文字列,文字列)がある。tokenize() の第2引数は文字列や,文字のリストでもよい。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage -%第11節 他の数式処理ソフトとの連携 ============================= +%第11節 他の数式処理ソフトとの連携============================= \section{他の数式処理ソフトなどとの連携} \subsection{Rとの連携} -Rは主に統計解析のためのソフトウェアで, binorm(二項分布),pois(ポアソン),unif(一様分布),chisq(カイ2乗),f(F分布),t(t分布)など,多くの確率分布をサポートしている。 +Rは主に統計解析のためのソフトウェアで,binorm(二項分布),pois(ポアソン),unif(一様分布),chisq(カイ2乗),f(F分布),t(t分布)など,多くの確率分布をサポートしている。 + +\ketcindy では,kc.bat/shによってコマンドをRに渡し,結果をテキストファイルで受け取る。このとき,Rとのやりとりで,次のようなファイルが作業ディレクトリに作成される。 - \ketcindy では,kc.bat/shによってコマンドをRに渡し,結果をテキストファイルで受け取る。このとき,Rとのやりとりで,次のようなファイルが作業ディレクトリに作成される。 - 拡張子 r :r用のファイル 拡張子 dat,拡張子 txt:データファイル このデータのやり取りに関する次のオプションがある。 - オプションなしまたは,”” のとき - - i) データファイルがなければ,新しく作る - - ii) データファイルが既にあればそれを読み込む - - "m" のとき,強制的にデータファイルを作り直す。 - - "r" のとき,すでにあるデータファイルを読み込む。 - +オプションなしまたは,”” のとき + +i) データファイルがなければ,新しく作る + +ii) データファイルが既にあればそれを読み込む + +"m"のとき,強制的にデータファイルを作り直す。 + +"r" のとき,すでにあるデータファイルを読み込む。 + \vspace{\baselineskip} \begin{description} \hypertarget{boxplot}{} -\item[関数] Boxplot(名前,データ,垂直位置,箱の高さ,option) -\item[機能] 箱ひげ図を描く -\item[説明] データは,リストで渡す場合とファイル名を渡してファイルから読み込む場合がある。データファイルは csv 形式とする。 +\item[関数]Boxplot(名前,データ,垂直位置,箱の高さ,option) +\item[機能]箱ひげ図を描く +\item[説明]データは,リストで渡す場合とファイル名を渡してファイルから読み込む場合がある。データファイルは csv 形式とする。 \vspace{\baselineskip} 【例】乱数で作成した5未満の実数のデータを箱ひげ図にする。 \begin{verbatim} - dt1=apply(1..100,5*random()); - Boxplot("1",dt1,1,1/2); +dt1=apply(1..100,5*random()); +Boxplot("1",dt1,1,1/2); \end{verbatim} \vspace{\baselineskip} \hspace{20mm} \input{Fig/boxplot01} @@ -4214,145 +4217,145 @@ Rは主に統計解析のためのソフトウェアで, binorm(二項分 \vspace{\baselineskip} 【例】外部ファイルとして用意したデータを読み込んで箱ひげ図にする。 \begin{verbatim} - Boxplot("2","datafile.csv",3,1/2); +Boxplot("2","datafile.csv",3,1/2); \end{verbatim} \vspace{\baselineskip} 複数列から成るcsvファイルを読み込むには,Readcsvを使う。csvファイルは,作業フォルダ( 初期設定は fig )に入れておく。戻り値は読み込んだファイル。 - + データの値を画面に入るように調節するには,dt1/20 のようにしてリサイズする。 また,Framedata(),Rulerscale() を併用することで目盛を入れることができる。Framedata() のために,表示領域の対角点A,BをCinderellaの作図ツールで作図しておく。 \begin{verbatim} - data=Readcsv("datafile.csv"); - dt1=apply(data,#_1); - dt2=apply(data,#_2); - Boxplot("1",dt1/20,1,1/2); - Boxplot("2",dt2/20,3,1/2); - Framedata("1",[A,B],["corner"]); - Rulerscale(A,["r",0,6,1],["f",1,"\mbox{dt1}",3,"\mbox{dt2}"]); +data=Readcsv("datafile.csv"); +dt1=apply(data,#_1); +dt2=apply(data,#_2); +Boxplot("1",dt1/20,1,1/2); +Boxplot("2",dt2/20,3,1/2); +Framedata("1",[A,B],["corner"]); +Rulerscale(A,["r",0,6,1],["f",1,"\mbox{dt1}",3,"\mbox{dt2}"]); \end{verbatim} %\vspace{\baselineskip} \begin{center} \input{Fig/boxplot} \end{center} 注)一度実行した後,データを書き直すと,図が更新されないので,"m" オプションをつけて - Boxplot("1",dt1/20,1,1/2,["m"]); とすると,図が更新される。データを書き出すときは,もう一度 "m" オプションをはずして実行してから Figure ボタンを押す。これは,データの作成タイミングの関係。 +Boxplot("1",dt1/20,1,1/2,["m"]); とすると,図が更新される。データを書き出すときは,もう一度 "m" オプションをはずして実行してから Figure ボタンを押す。これは,データの作成タイミングの関係。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{rfun}{} -\item[関数] Rfun(name,コマンド, 引数, option) -\item[機能] Rの1つのコマンドを実行して結果を返す -\item[説明] バッチファイル kc.bat / シェルファイル kc.sh を利用してRとデータをやり取りし,計算結果を取得する。結果は,変数 R+name に入り,コンソールにも表示される。 +\item[関数]Rfun(name,コマンド, 引数, option) +\item[機能]Rの1つのコマンドを実行して結果を返す +\item[説明]バッチファイル kc.bat / シェルファイル kc.sh を利用してRとデータをやり取りし,計算結果を取得する。結果は,変数 R+name に入り,コンソールにも表示される。 \vspace{\baselineskip} 【例】Rを用いて標準正規分布から10個の乱数を発生し,戻り値から平均値と標準偏差を求めてコンソールに表示する。 \begin{verbatim} - Rfun("1","rnorm",[10]); - nx=length(R1); - mx=sum(R1)/nx; - sx=sqrt(R1*R1/nx-mx^2); - println("平均:"+format(mx,4)+" 標準偏差:"+format(sx,4)); +Rfun("1","rnorm",[10]); +nx=length(R1); +mx=sum(R1)/nx; +sx=sqrt(R1*R1/nx-mx^2); +println("平均:"+format(mx,4)+"標準偏差:"+format(sx,4)); \end{verbatim} \hypertarget{calcbyr}{} -\item[関数] CalcbyR(変数名,コマンド列,option) -\item[機能] Rのコマンドを実行して結果を返す -\item[説明] バッチファイル kc.bat / シェルファイル kc.sh を利用してRとデータをやり取りし,計算結果を取得する。 +\item[関数]CalcbyR(変数名,コマンド列,option) +\item[機能]Rのコマンドを実行して結果を返す +\item[説明]バッチファイル kc.bat / シェルファイル kc.sh を利用してRとデータをやり取りし,計算結果を取得する。 - コマンド列は,"戻り値=コマンド",[引数] の2つをセットとして並べる。 - - 最後の行の結果が戻り値として第1引数の変数名に代入される。"戻り値1::戻り値2・・",[] の形(戻り値1,戻り値2・・は各コマンドの戻り値)でコマンドを書くと,戻り値1,・・のリストとなる。戻り値が一つの場合は実数。"=値",[] の形の場合,「値」がそのまま戻り値となる。 +コマンド列は,"戻り値=コマンド",[引数] の2つをセットとして並べる。 + +最後の行の結果が戻り値として第1引数の変数名に代入される。"戻り値1::戻り値2・・",[]の形(戻り値1,戻り値2・・は各コマンドの戻り値)でコマンドを書くと,戻り値1,・・のリストとなる。戻り値が一つの場合は実数。"=値",[] の形の場合,「値」がそのまま戻り値となる。 \vspace{\baselineskip} 【例】Rを用いてN(50,$5^2$)から10個の乱数を発生し,平均と不偏分散もRで計算してその結果をコンソールに表示する。 \begin{verbatim} - cmdL=[ - "tmp1=rnorm",[10,50,5], - "tmp2=mean",["tmp1"], - "tmp3=var",["tmp1"], - "tmp1::tmp2::tmp3",[] - ]; - CalcbyR("rd",cmdL); - dt=rd_1; - mx=rd_2; - vx=rd_3; - println("データ:"+dt); - println("平均:"+format(mx,4)+" 不偏分散:"+format(vx,4)); -\end{verbatim} - CalcbyR()によって,データと平均,不偏分散からなるリストが作成されるので,mxに平均,vxに不偏分散を代入している。\verb|rd_(-1)| は,リスト rd の末尾の要素。 - +cmdL=[ +"tmp1=rnorm",[10,50,5], +"tmp2=mean",["tmp1"], +"tmp3=var",["tmp1"], +"tmp1::tmp2::tmp3",[] +]; +CalcbyR("rd",cmdL); +dt=rd_1; +mx=rd_2; +vx=rd_3; +println("データ:"+dt); +println("平均:"+format(mx,4)+"不偏分散:"+format(vx,4)); +\end{verbatim} +CalcbyR()によって,データと平均,不偏分散からなるリストが作成されるので,mxに平均,vxに不偏分散を代入している。\verb|rd_(-1)| は,リスト rd の末尾の要素。 + \vspace{\baselineskip} 【例】Rでポアソン分布から200個の乱数をとり,標本平均の分布の様子=分散が小さくなって,正規分布に近づいている様子=をヒストグラムで見る。分散はRで求めた不偏分散に (n-1)/n をかけて再計算してコンソールに表示する。 \begin{verbatim} - cmdL=[ - "tmp1=rpois",[200,5], - "tmp2=mean",["tmp1"], - "tmp3=var",["tmp1"], - "=c(tmp2,tmp3,tmp1)",[] - ]; - CalcbyR("rd",cmdL); - dt=rd_(3..length(rd)); - n=length(dt); - mx=rd_1; - vx=rd_2*(n-1)/n; - sx=sqrt(vx); - println(dt); - println(["m="+format(mx,4),"v="+format(vx,4)]); - Setscaling(1/5); - Histplot("1",dt,["Breaks=seq(0,14,1)","dr,0.5"]); -\end{verbatim} -\vspace{\baselineskip} - \begin{center} \input{Fig/poison01} \end{center} +cmdL=[ +"tmp1=rpois",[200,5], +"tmp2=mean",["tmp1"], +"tmp3=var",["tmp1"], +"=c(tmp2,tmp3,tmp1)",[] +]; +CalcbyR("rd",cmdL); +dt=rd_(3..length(rd)); +n=length(dt); +mx=rd_1; +vx=rd_2*(n-1)/n; +sx=sqrt(vx); +println(dt); +println(["m="+format(mx,4),"v="+format(vx,4)]); +Setscaling(1/5); +Histplot("1",dt,["Breaks=seq(0,14,1)","dr,0.5"]); +\end{verbatim} +\vspace{\baselineskip} +\begin{center} \input{Fig/poison01} \end{center} \vspace{\baselineskip} 【例】ポアソン分布で乱数を2000個発生させ,10個ずつの平均をRで計算し,ヒストグラムを作る。 \begin{verbatim} - cmdL=[ - "tmp1=rpois",[2000,5], - "tmp2=c()",[], - "for(k in 1:200){",[], - " tmp=tmp1[(10*(k-1)+1):(10*k)]",[], - " tmp2=c(tmp2,mean(tmp))",[], - "}",[], - "=tmp2",[] - ]; - CalcbyR("rd2",cmdL); - Setscaling(1/10); - Histplot("2",rd2); -\end{verbatim} - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +cmdL=[ +"tmp1=rpois",[2000,5], +"tmp2=c()",[], +"for(k in 1:200){",[], +"tmp=tmp1[(10*(k-1)+1):(10*k)]",[], +"tmp2=c(tmp2,mean(tmp))",[], +"}",[], +"=tmp2",[] +]; +CalcbyR("rd2",cmdL); +Setscaling(1/10); +Histplot("2",rd2); +\end{verbatim} + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{histplot}{} -\item[関数] Histplot(name,data,option) -\item[機能] Rを利用してヒストグラムを描く -\item[説明] dataはリストにして作成するか,外部ファイルからReadcsv()で読み込む。 +\item[関数]Histplot(name,data,option) +\item[機能]Rを利用してヒストグラムを描く +\item[説明]dataはリストにして作成するか,外部ファイルからReadcsv()で読み込む。 戻り値は,階級境界値と,対応する度数のリスト。 階級境界値(ブレークポイント)は,自動的に設定される(スタージェスの公式による)が,オプションで, \verb|"breaks=[0,10,20,30,40,50,60,70,80,90,100]"| - + などと指定することもできる。 - この他のオプションは - - "Den=yes/no":密度の指定(初期値は no) - - "Rel=yes/no":相対度数にする/しない(初期値は no) - +この他のオプションは + +"Den=yes/no":密度の指定(初期値は no) + +"Rel=yes/no":相対度数にする/しない(初期値は no) + \vspace{\baselineskip} 【例】csvファイル(datafile.csv)を読み込み,ヒストグラムを作る。Framedata() と Rulerscale()を併用して,目盛付きの枠の中に表示する。表示枠の対角点A,BはCinderellaの作図ツールで作図しておく。 \begin{verbatim} - Addax(0); - Setscaling(5); - Setunitlen("0.6mm"); - data=Readcsv("datafile.csv"); - Histplot("1",data,[""]); - Framedata("1",[A,B],["corner"]); - Rulerscale(A,["r",0,100,10],["r",0,15,5]); +Addax(0); +Setscaling(5); +Setunitlen("0.6mm"); +data=Readcsv("datafile.csv"); +Histplot("1",data,[""]); +Framedata("1",[A,B],["corner"]); +Rulerscale(A,["r",0,100,10],["r",0,15,5]); \end{verbatim} - \begin{center} \input{Fig/histgram} \end{center} +\begin{center} \input{Fig/histgram} \end{center} 2行目と3行目は,データに合わせて縦方向を5倍にし,TeXの単位長を0.6mmにしている。 @@ -4360,22 +4363,22 @@ Den,Rel オプションをyes にしたときは,Setscaling(100)くらいに csvファイルが複数のデータからなる場合は, - \verb|dt1=data_1;| -として,リストの第1要素を取得する。第2要素のヒストグラムであれば \verb|data_2| とする。 +\verb|dt1=data_1;| +として,リストの第1要素を取得する。第2要素のヒストグラムであれば\verb|data_2| とする。 \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \hypertarget{plotdatar}{} -\item[関数] PlotdataR(name,式,変数) -\item[機能] Rの関数のグラフを描く -\item[説明] Cindyscriptの組み込み関数にはない関数のグラフをRを利用して描く。 +\item[関数]PlotdataR(name,式,変数) +\item[機能]Rの関数のグラフを描く +\item[説明]Cindyscriptの組み込み関数にはない関数のグラフをRを利用して描く。 \vspace{\baselineskip} 【例】平均5, 標準偏差2の正規分布の密度関数と分布関数のグラフを描く。 \begin{verbatim} - PlotdataR(“1”, “dnorm(x,5,2)”, ”x=[0,10]”); - PlotdataR(“2”, ”pnorm(x,5,2)”, ”x=[0,10]”); +PlotdataR(“1”, “dnorm(x,5,2)”, ”x=[0,10]”); +PlotdataR(“2”, ”pnorm(x,5,2)”, ”x=[0,10]”); \end{verbatim} \hspace{20mm} \input{Fig/plotdatar1} @@ -4384,10 +4387,10 @@ csvファイルが複数のデータからなる場合は, 点A,BはCinderellaの作図ツールで作図しておき,点Aをグラフ上のおよその位置に置いてから実行する。 \begin{verbatim} - PlotdataR("1","dnorm(x)","x=[-5,5]"); - PutonCurve("A","grR1",[-3,3]); - Putpoint("B",[A.x,0]); - Listplot("1",[A,B]); +PlotdataR("1","dnorm(x)","x=[-5,5]"); +PutonCurve("A","grR1",[-3,3]); +Putpoint("B",[A.x,0]); +Listplot("1",[A,B]); \end{verbatim} 2行目の最後の引数の[-3,3]は,その範囲を動かすことを意味する。 @@ -4396,45 +4399,45 @@ Aはグラフ上を動かすことができて,Bはそれに伴って動く。 \vspace{\baselineskip} 【例】上と同様で,x軸上の点を自由点Aとし,曲線上にBを置く。 \begin{verbatim} - PlotdataR("1","dnorm(x)","x=[-5,5]"); - PlotdataR("1","dnorm(x)","x=[-5,5]"); - A.xy=[A.x,0]; - Lineplot("1",[A,A+[0,1]],["nodisp"]); - Putintersect("B","grR1","ln1"); - Listplot("1",[A,B]); +PlotdataR("1","dnorm(x)","x=[-5,5]"); +PlotdataR("1","dnorm(x)","x=[-5,5]"); +A.xy=[A.x,0]; +Lineplot("1",[A,A+[0,1]],["nodisp"]); +Putintersect("B","grR1","ln1"); +Listplot("1",[A,B]); \end{verbatim} \vspace{\baselineskip} 【例】前の例のグラフで,ABの左側にShadeをかけ,Shadeの部分の面積を求める。Pの値を表示する位置に,Cinderellaの作図ツールで点Cをとっておく。 \begin{verbatim} - PlotdataR("1","dnorm(x)","x=[-5,5]",["Num=100"]); - Putpoint("A",[0,0],[A.x,0]); - Lineplot("1",[A,A+[0,1]],["nodisp"]); - Putintersect("B","grR1","ln1"); - Listplot("1",[A,B]); - Listplot("2",[[-5,0],[5,0]],"nodisp"); - Enclosing("1",["Invert(grR1)","sg2","sg1"],[B,"notex"]); - Shade(["en1"],["Color=[0.2,0,0,0]"]); - tmp=0.5+Integrate("grR1",[0,A.x]); - Expr([A,"s",text(A.x),C,"e","P="+text(tmp)]); +PlotdataR("1","dnorm(x)","x=[-5,5]",["Num=100"]); +Putpoint("A",[0,0],[A.x,0]); +Lineplot("1",[A,A+[0,1]],["nodisp"]); +Putintersect("B","grR1","ln1"); +Listplot("1",[A,B]); +Listplot("2",[[-5,0],[5,0]],"nodisp"); +Enclosing("1",["Invert(grR1)","sg2","sg1"],[B,"notex"]); +Shade(["en1"],["Color=[0.2,0,0,0]"]); +tmp=0.5+Integrate("grR1",[0,A.x]); +Expr([A,"s",text(A.x),C,"e","P="+text(tmp)]); \end{verbatim} - \begin{center} \input{Fig/rshade} \end{center} +\begin{center} \input{Fig/rshade} \end{center} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{plotdiscr}{} -\item[関数] PlotdiscR(name,式,変数) -\item[機能] Rを利用して離散型のグラフを描く -\item[説明] dbinom (二項分布),dpois(ポアソン分布),dgeom(幾何分布)など離散型確率分布のグラフを描く。 +\item[関数]PlotdiscR(name,式,変数) +\item[機能]Rを利用して離散型のグラフを描く +\item[説明]dbinom (二項分布),dpois(ポアソン分布),dgeom(幾何分布)など離散型確率分布のグラフを描く。 \vspace{\baselineskip} 【例】二項分布のグラフと正規分布のグラフを比較する。 \begin{verbatim} - Setscaling(20); - PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]"); - PlotdataR("1","dnorm(x,10*0.4,sqrt(10*0.4*0.6))","x=[0,10]",["do"]); +Setscaling(20); +PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]"); +PlotdataR("1","dnorm(x,10*0.4,sqrt(10*0.4*0.6))","x=[0,10]",["do"]); \end{verbatim} \vspace{\baselineskip} \begin{center} \scalebox{0.9}{\input{Fig/binvsnormal}} \end{center} @@ -4445,19 +4448,19 @@ PlotdiscR("2","dpois(k,4)","k=[0,10]"); PlotdiscR("3","dgeom(k,0.3)","k=[0,10]"); \end{verbatim} %\vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{scatterplot}{} -\item[関数] Scatterplot(name,filename/datalist,option1,option2) -\item[機能] 2次元データを読み込み,散布図を描く -\item[説明] 外部ファイル filename(csv形式)を読み,散布図を描く。 +\item[関数]Scatterplot(name,filename/datalist,option1,option2) +\item[機能]2次元データを読み込み,散布図を描く +\item[説明]外部ファイル filename(csv形式)を読み,散布図を描く。 外部ファイルの2次元データとは,次の形のcsvファイル。(行末はLFまたはCR) \begin{verbatim} - 2.3, 4.5 (LF) - 3.2, 7 (LF) - 2.0, 6.8 (LF) + 2.3, 4.5 (LF) + 3.2, 7 (LF) + 2.0, 6.8 (LF) \end{verbatim} @@ -4471,15 +4474,15 @@ datalistの場合は,次の形。 第1オプションは,回帰直線を描くかどうかと点のスタイル。 "Reg=no" : 回帰直線を描くかどうか(yes/no) 初期値は yes - + 第2オプションは,相関係数と回帰直線の式を表示する位置と,回帰直線のスタイル。 -位置は,幾何点の名称でもよい。 - +位置は,幾何点の名称でもよい。 + \vspace{\baselineskip} 【例】data.csv を読んで散布図を描き,回帰直線を引く。 \begin{verbatim} - Scatterplot("1","data.csv"); +Scatterplot("1","data.csv"); \end{verbatim} だけで描ける。オプションをつけた例は次。 @@ -4489,9 +4492,9 @@ datalistの場合は,次の形。 点を青で大きさ2とし,回帰直線を緑で表示する。 \begin{verbatim} - Scatterplot("1","data.csv",["Size=4","Color=blue"],[A,"Color=green"]); - Listplot("1",[[0,7],[0,0],[7,0]]); - Rulerscale([0,0],["r",0,7,1],["r",1,7,1]); +Scatterplot("1","data.csv",["Size=4","Color=blue"],[A,"Color=green"]); +Listplot("1",[[0,7],[0,0],[7,0]]); +Rulerscale([0,0],["r",0,7,1],["r",1,7,1]); \end{verbatim} \vspace{\baselineskip} @@ -4500,136 +4503,136 @@ datalistの場合は,次の形。 \end{description} \newpage -% Maximaとの連携 ================================== +%Maximaとの連携================================== \subsection{Maximaとの連携} Maximaは数式処理ソフトで,\ketcindy においては微積分の計算など,Cindyscriptでは不十分な点を補うことができる。 - \ketcindy では,kc.bat/shによってコマンドをMaximaに渡し,結果をテキストファイルで受け取る。このとき,Maximaとのやりとりで,次のようなファイルが作業ディレクトリに作成される。 - +\ketcindy では,kc.bat/shによってコマンドをMaximaに渡し,結果をテキストファイルで受け取る。このとき,Maximaとのやりとりで,次のようなファイルが作業ディレクトリに作成される。 + 拡張子 max :Maxima用のファイル 拡張子 txt:データファイル このデータのやり取りに関する次のオプションがある。 - オプションなしまたは,”” のとき - - i) データファイルがなければ,新しく作る - - ii) データファイルが既にあればそれを読み込む - - "m" のとき,強制的にデータファイルを作り直す。 - - "r" のとき,すでにあるデータファイルを読み込む。 - - このとき,ファイルの読み書きで不具合があると,数秒の後「==$>$ file.txt not generated (5 s ) 」のようなエラーメッセージがコンソールに表示される。このような場合は作業ディレクトリの設定などを確認していただきたい。この待ち時間については,Waitオプションで設定することもできる。 - +オプションなしまたは,”” のとき + +i) データファイルがなければ,新しく作る + +ii) データファイルが既にあればそれを読み込む + +"m"のとき,強制的にデータファイルを作り直す。 + +"r" のとき,すでにあるデータファイルを読み込む。 + +このとき,ファイルの読み書きで不具合があると,数秒の後「==$>$ file.txt not generated (5 s ) 」のようなエラーメッセージがコンソールに表示される。このような場合は作業ディレクトリの設定などを確認していただきたい。この待ち時間については,Waitオプションで設定することもできる。 + \begin{description} \hypertarget{calcbyM}{} -\item[関数] CalcbyM(name,コマンド,option) -\item[機能] Maximaのスクリプトを実行する -\item[説明] 第2引数はMaximaで実行するコマンド。 +\item[関数]CalcbyM(name,コマンド,option) +\item[機能]Maximaのスクリプトを実行する +\item[説明]第2引数はMaximaで実行するコマンド。 コマンドと引数リストの繰り返しからなるリスト(例えばcmdL)を作って,一度に実行する。 - -戻り値はない。(未定義値) 結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 - + +戻り値はない。(未定義値)結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 + \vspace{\baselineskip} 【例】$\sin x$ とその導関数を表示する。結果は 変数 fdf に f とdf のリストが代入される。 \begin{verbatim} - cmdL=[ - "f:sin(x)", [], - "df:diff",["sin(x)","x"], - "f::df",[] - ]; - CalcbyM("fdf",cmdL); - println(fdf); +cmdL=[ +"f:sin(x)", [], +"df:diff",["sin(x)","x"], +"f::df",[] +]; +CalcbyM("fdf",cmdL); +println(fdf); \end{verbatim} \vspace{\baselineskip} - 実行すると,コンソールに,[sin(x),cos(x)] と表示される。 - +実行すると,コンソールに,[sin(x),cos(x)]と表示される。 + \vspace{\baselineskip} 【例】2次方程式 $x^2-x-4=0$の解を求める。 \begin{verbatim} - cmdL=[ - "ans:solve",["x^2-x-4","x"], - "ans",[] - ]; - CalcbyM("ans",cmdL); - println("ans="+ans); +cmdL=[ +"ans:solve",["x^2-x-4","x"], +"ans",[] +]; +CalcbyM("ans",cmdL); +println("ans="+ans); \end{verbatim} - コンソールには - - ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] - - が表示される。 - +コンソールには + +ans=[x = -(sqrt(17)-1)/2,x = (sqrt(17)+1)/2] + +が表示される。 + \vspace{\baselineskip} {\bf 応用例1:曲線の接線を引く} \vspace{\baselineskip} - $f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 - +$f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 + Maximaでその処理を行うコマンドを定義し,CalcbyMで実行する。 \begin{verbatim} - fx="(exp(x)+exp(-x))/2"; - cmdL=[ - "df:diff",[fx,"x"], - "c:ev",["df","x=a"], - "b:ev",[fx,"x=a"], - "eq:c*(x-a)+b",[], - "eq",[] - ]; - CalcbyM("tn1",cmdL); - println(tn1); +fx="(exp(x)+exp(-x))/2"; +cmdL=[ +"df:diff",[fx,"x"], +"c:ev",["df","x=a"], +"b:ev",[fx,"x=a"], +"eq:c*(x-a)+b",[], +"eq",[] +]; +CalcbyM("tn1",cmdL); +println(tn1); \end{verbatim} - コンソールには +コンソールには \begin{verbatim} - (%e^a-%e^-a)*(x-a))/2+(%e^a+%e^-a)/2 +(%e^a-%e^-a)*(x-a))/2+(%e^a+%e^-a)/2 \end{verbatim} が表示される。\\ - この,CalcbyMの戻り値 tn1 を用いて,曲線上の1点Aにおける接線のグラフを描く。以下のスクリプトを追加する。なお,点AをCinderellaの作図ツールで適当なところにとっておく。 +この,CalcbyMの戻り値 tn1 を用いて,曲線上の1点Aにおける接線のグラフを描く。以下のスクリプトを追加する。なお,点AをCinderellaの作図ツールで適当なところにとっておく。 \begin{verbatim} - tn1=Assign(tn1,["%e^a","exp(a)","%e^-a","exp(-a)"]); - Plotdata("1",fx,"x"); - PutonCurve("A","gr1"); - tmp=Assign(tn1,["a",A.x]); - plotdata("2",tmp,"x",["Num=2"]); +tn1=Assign(tn1,["%e^a","exp(a)","%e^-a","exp(-a)"]); +Plotdata("1",fx,"x"); +PutonCurve("A","gr1"); +tmp=Assign(tn1,["a",A.x]); +plotdata("2",tmp,"x",["Num=2"]); \end{verbatim} 1行目ではMaximaで作成した式を,Cindyscriptでプロットできる式にしている。 \vspace{\baselineskip} - \begin{center} \input{Fig/maxfun01} \end{center} +\begin{center} \input{Fig/maxfun01} \end{center} \vspace{\baselineskip} - なお,接線の方程式を求めるだけであれば,Mxfun()を使うこともできる。Mxfun()の解説を参照のこと。 - +なお,接線の方程式を求めるだけであれば,Mxfun()を使うこともできる。Mxfun()の解説を参照のこと。 + \vspace{\baselineskip} {\bf 応用例2:パラメトリックの場合の接線} \vspace{\baselineskip} - 媒介変数の値を決めるために,点AをCinderellaの描画面のx軸上にとっておき,その$x$座標を媒介変数$t$の値とする。スライダを作ってもよい。 +媒介変数の値を決めるために,点AをCinderellaの描画面のx軸上にとっておき,その$x$座標を媒介変数$t$の値とする。スライダを作ってもよい。 \begin{layer}{150}{0} -\putnotese{60}{20}{ \input{Fig/maxfun02}} +\putnotese{60}{10}{ \input{Fig/maxfun02}} \end{layer} \begin{verbatim} - fn="3*cos(t)^2*[cos(t),sin(t)]"; - cmdL=[ - "f:",[fn], - "df:diff",["f","t"], - "df:trigsimp",["df"], - "tn:f+s*df",[], - "tn",[] - ]; - CalcbyM("tn2",cmdL); - Paramplot("1",fn,"t=[0,2*pi]",["Num=100"]); - gn=Assign(tn2,["t",A.x]); - Paramplot("2",gn,"s=[-3,3]"); +fn="3*cos(t)^2*[cos(t),sin(t)]"; +cmdL=[ +"f:",[fn], +"df:diff",["f","t"], +"df:trigsimp",["df"], +"tn:f+s*df",[], +"tn",[] +]; +CalcbyM("tn2",cmdL); +Paramplot("1",fn,"t=[0,2*pi]",["Num=100"]); +gn=Assign(tn2,["t",A.x]); +Paramplot("2",gn,"s=[-3,3]"); \end{verbatim} cmdLで定義しているMaximaのコマンド(trigsimp など)については,Maximaの解説書などを参照されたい。 - + \vspace{\baselineskip} 【例】定積分の値を求める。 @@ -4637,66 +4640,66 @@ cmdLで定義しているMaximaのコマンド(trigsimp など)について $\displaystyle \int _{-1} ^2 (-x^3+3x+2)dx$ の値を求める。結果は val で受け取り,Mxtex() に渡して,TeX書式にして表示する。 \begin{verbatim} - cmdL=[ - "val:integrate",["-x^3+3*x+2,x,-1,2"], - "val",[] - ]; - CalcbyM("val",cmdL); - Mxtex("1",val); - Expr([[2,2],"e","S="+tx1]); +cmdL=[ +"val:integrate",["-x^3+3*x+2,x,-1,2"], +"val",[] +]; +CalcbyM("val",cmdL); +Mxtex("1",val); +Expr([[2,2],"e","S="+tx1]); \end{verbatim} \vspace{\baselineskip} \hypertarget{mxbatch}{} -\item[関数] Mxbatch(ファイル名) -\item[機能] Maximaのファイルを実行するコマンドを作る -\item[説明] ketcindy/ketlib/maximaL にあるファイルを実行するための,CalcbyM用のコマンドを作成する。 +\item[関数]Mxbatch(ファイル名) +\item[機能]Maximaのファイルを実行するコマンドを作る +\item[説明]ketcindy/ketlib/maximaL にあるファイルを実行するための,CalcbyM用のコマンドを作成する。 ketcindy/ketlib/maximaL には,fourier\_sec.max , matoperation.max , poincare.mac の3つのファイルが入っている。たとえば,フーリエ級数を扱うときには,fourier\_sec.max を使用する。 \vspace{\baselineskip} 【例】\verb|cmd=Mxbatch("fourier_sec")| - を実行すると,cmdに,たとえば - - \verb|[batch,["/Applications/ketcindy/ketlib/maximaL/fourier_sec.max"]] | - - が代入される。(Mac/Windows および KeTCindyの設定によって異なる) - - そこで,次のように利用する。 - -\begin{verbatim} - Setax(["a"]); - Slider("A-C-B",[-5.5,-1.5],[4.5,-1.5]); - defL=["1",[-3,-2],1,"0",[-2,-1],1,"-x",[-1,1],1,"0",[1,2],1,"-1",[2,3],1]; - Drwxy(); - tmp=Periodfun(defL,1,["dr,2","Color=red"]); - fun=tmp_1; - per=tmp_2; - Htickmark([1,"n","1",2,"n","2",3,"nw","3"]); - Htickmark([-1,"-1",-2,"-2",-3,"-3"]); - cmdL=Concat(Mxbatch("fourier_sec"),[ - "Ffun(x):="+fun,[], - "c:fourier_sec_coeff",["Ffun(x)","x"], - "c[1]::c[2]::c[3]",[] - ]); - CalcbyM("ans",cmdL,[]); - nterm=round(4*(C.x-A.x)); - Fourierseries("1",ans,per,nterm,["Num=400"]); - Mxtex("2",ans_3); - Expr([[-5,-2],"e","s_n="+tx2,[4,-2],"e","n="+text(nterm)]); +を実行すると,cmdに,たとえば + +\verb|[batch,["/Applications/ketcindy/ketlib/maximaL/fourier_sec.max"]] | + +が代入される。(Mac/Windows および KeTCindyの設定によって異なる) + +そこで,次のように利用する。 + +\begin{verbatim} +Setax(["a"]); +Slider("A-C-B",[-5.5,-1.5],[4.5,-1.5]); +defL=["1",[-3,-2],1,"0",[-2,-1],1,"-x",[-1,1],1,"0",[1,2],1,"-1",[2,3],1]; +Drwxy(); +tmp=Periodfun(defL,1,["dr,2","Color=red"]); +fun=tmp_1; +per=tmp_2; +Htickmark([1,"n","1",2,"n","2",3,"nw","3"]); +Htickmark([-1,"-1",-2,"-2",-3,"-3"]); +cmdL=Concat(Mxbatch("fourier_sec"),[ +"Ffun(x):="+fun,[], +"c:fourier_sec_coeff",["Ffun(x)","x"], +"c[1]::c[2]::c[3]",[] +]); +CalcbyM("ans",cmdL,[]); +nterm=round(4*(C.x-A.x)); +Fourierseries("1",ans,per,nterm,["Num=400"]); +Mxtex("2",ans_3); +Expr([[-5,-2],"e","s_n="+tx2,[4,-2],"e","n="+text(nterm)]); \end{verbatim} \hspace{20mm}\input{Fig/mxbatch} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mxfun}{} -\item[関数] Mxfun(name,式,リスト,option) -\item[機能] Maximaの関数を実行する -\item[説明] 第2引数の「式」はMaximaの関数名。第3引数のリストは関数に渡す引数のリスト。 +\item[関数]Mxfun(name,式,リスト,option) +\item[機能]Maximaの関数を実行する +\item[説明]第2引数の「式」はMaximaの関数名。第3引数のリストは関数に渡す引数のリスト。 戻り値は,第1引数の式に1つでも文字があると文字列となる。すべて数字(+,-, . を含む)の場合は 16桁以下であれば数,それ以上の場合は文字列となる。また,戻り値は,変数 mxname にも代入される。 @@ -4706,158 +4709,158 @@ ketcindy/ketlib/maximaL には,fourier\_sec.max , matoperation.max , poincare. \vspace{\baselineskip} 【例】$10!$を求める。 - \verb|Mxfun("1","10!",[]);| - - を実行すると,コンソールに mx1 is 362880 と表示される。この値は変数 mx1 に代入されているので, - - \verb|drawtext([0,1],mx1);| - +\verb|Mxfun("1","10!",[]);| + +を実行すると,コンソールにmx1 is 362880 と表示される。この値は変数 mx1 に代入されているので, + +\verb|drawtext([0,1],mx1);| + とすればCinderellaの描画面上に表示される。mx1のかわりに,戻り値を変数に代入して使うこともできる。 \begin{verbatim} - fact10=Mxfun("1","10!",[]); - drawtext([0,1],fact10); +fact10=Mxfun("1","10!",[]); +drawtext([0,1],fact10); \end{verbatim} \vspace{\baselineskip} 【例】$f(x)=\sin x$ を微分する - \verb|Mxfun("1", "diff",["sin(x)","x"])| - - とすると - - diff(sin(x),x) - - というコマンドをMaximaに渡して,戻り値をCindyの変数mx1に代入する。 - - \verb|Mxfun("1", "diff(sin(x),x)",[]])| - - と,第1引数にまとめても同じ結果になる。ただし,この場合,第2引数は空リストとする。 - - 文字列を引数とする場合,例えば,文字列を連結するコマンドconcatでは, - - concat("a","b") - - とするが,Cindyscriptの文字列の処理の関係で,第1引数ではこの形で記述できない。 - - したがって,このような場合は,第2引数を使って - - \verb|Mxfun("1","concat",["a","b"])| +\verb|Mxfun("1", "diff",["sin(x)","x"])| + +とすると + +diff(sin(x),x) + +というコマンドをMaximaに渡して,戻り値をCindyの変数mx1に代入する。 + +\verb|Mxfun("1", "diff(sin(x),x)",[]])| + +と,第1引数にまとめても同じ結果になる。ただし,この場合,第2引数は空リストとする。 + +文字列を引数とする場合,例えば,文字列を連結するコマンドconcatでは, + +concat("a","b") + +とするが,Cindyscriptの文字列の処理の関係で,第1引数ではこの形で記述できない。 + +したがって,このような場合は,第2引数を使って + +\verb|Mxfun("1","concat",["a","b"])| - とすればよい。 - +とすればよい。 + \vspace{\baselineskip} {\bf Cindyscriptの微分との違い} - Cindyscriptでも微分はできる。たとえば, +Cindyscriptでも微分はできる。たとえば, \begin{verbatim} - f(x):=sin(x); - g(x):=d(f(#),x); - plot(g(#)); +f(x):=sin(x); +g(x):=d(f(#),x); +plot(g(#)); \end{verbatim} - とすると,cos(x)のグラフが描かれる。 - - しかし,Cindyscriptの微分が,微分の定義による数値計算であるのに対し,Maximaでは数式処理として微分ができる。 - - その意味の違いは,次のスクリプトで確かめられる。 +とすると,cos(x)のグラフが描かれる。 + +しかし,Cindyscriptの微分が,微分の定義による数値計算であるのに対し,Maximaでは数式処理として微分ができる。 + +その意味の違いは,次のスクリプトで確かめられる。 \begin{verbatim} - f(x):=sin(x); - g(x):=d(f(#),x); - println(g(x)); +f(x):=sin(x); +g(x):=d(f(#),x); +println(g(x)); \end{verbatim} - では,コンソールに表示されるのは未定義値(\_ \_ \_) である。 - +では,コンソールに表示されるのは未定義値(\_ \_ \_) である。 + 一方, \begin{verbatim} - Mxfun("1", "diff",["sin(x)","x"]); - println(mx1); +Mxfun("1", "diff",["sin(x)","x"]); +println(mx1); \end{verbatim} では,コンソールに \verb|cos(x)| と表示される。 mx1は文字列であるので, \begin{verbatim} - g(x):=parse(mx1); +g(x):=parse(mx1); \end{verbatim} とすれば,g(x)を導関数とすることができ,\verb|plot(g(#))| でグラフを描くことができる。 - また,Cindyscriptの微分では,3階か4階までの導関数が計算上の限度であるのに対し,Maximaなら何階でも微分ができるので,テイラー展開などで有利である。 - +また,Cindyscriptの微分では,3階か4階までの導関数が計算上の限度であるのに対し,Maximaなら何階でも微分ができるので,テイラー展開などで有利である。 + \vspace{\baselineskip} \vspace{\baselineskip} -例 $\sin x$ の テイラー展開を行い,グラフを表示する。 +例$\sin x$ の テイラー展開を行い,グラフを表示する。 \begin{verbatim} - Mxfun("1","taylor",["sin(x)","x",0,7],[""]); - Plotdata("1","sin(x)","x",["da"]); - Plotdata("2",mx1,"x"); +Mxfun("1","taylor",["sin(x)","x",0,7],[""]); +Plotdata("1","sin(x)","x",["da"]); +Plotdata("2",mx1,"x"); \end{verbatim} \vspace{\baselineskip} - \begin{center} \input{Fig/taylor} \end{center} +\begin{center} \input{Fig/taylor} \end{center} \vspace{\baselineskip} Mxtex() を用いて,Mxfun()の結果の mx1をTeX書式にして表示することもできる。 - \verb|Expr([[1,2],"e",Mxtex("1",mx1)]);| - +\verb|Expr([[1,2],"e",Mxtex("1",mx1)]);| + を追加すれば[1,2]の位置に式が表示される。 \vspace{\baselineskip} {\bf 応用【例】接線の方程式を作る} \vspace{\baselineskip} - $f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 - - 関数式を文字列にしておき,Assign() を用いて変数$x$を$a$に変えれば,$f(a)$の式を作ることができる。導関数についても同様にする。 - +$f(x)=\dfrac{e^x+e^{-x}}{2}$ の,$x=a$における接線の方程式を作る。 + +関数式を文字列にしておき,Assign() を用いて変数$x$を$a$に変えれば,$f(a)$の式を作ることができる。導関数についても同様にする。 + \begin{verbatim} - fx="(exp(x)+exp(-x))/2"; - gx=Mxfun("1","diff",[fx,"x"]); - fa=Assign(fx,["x","a"]); - ga=Assign(gx,["x","a"]); - tf=ga+"*(x-a)+("+fa+")"; - println(tf); +fx="(exp(x)+exp(-x))/2"; +gx=Mxfun("1","diff",[fx,"x"]); +fa=Assign(fx,["x","a"]); +ga=Assign(gx,["x","a"]); +tf=ga+"*(x-a)+("+fa+")"; +println(tf); \end{verbatim} - コンソールには +コンソールには \begin{verbatim} - (%e^a-%e^-a)/2*(x-a)+((exp(a)+exp(-a))/2) +(%e^a-%e^-a)/2*(x-a)+((exp(a)+exp(-a))/2) \end{verbatim} が表示される。 -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mxtex}{} -\item[関数] Mxtex(name,式) -\item[機能] 式をTeX書式にする -\item[説明] 第2引数の式は,直接書いた式もしくはMxfunの戻り値。これをTeXの書式にする。 +\item[関数]Mxtex(name,式) +\item[機能]式をTeX書式にする +\item[説明]第2引数の式は,直接書いた式もしくはMxfunの戻り値。これをTeXの書式にする。 戻り値は,変数 txname にも代入される。 \vspace{\baselineskip} 【例】部分分数への分解 \begin{spacing}{1.5} - 部分分数$\dfrac{x^3}{(x+1)(x+2)}$の分解をMaximaで行い,その結果をTeX書式にして画面に表示する。画面に表示された結果はそのまま\ketcindy で出力できる。 +部分分数$\dfrac{x^3}{(x+1)(x+2)}$の分解をMaximaで行い,その結果をTeX書式にして画面に表示する。画面に表示された結果はそのまま\ketcindy で出力できる。 \end{spacing} \begin{verbatim} - Mxfun("1","partfrac",["x^3/((x+1)*(x+2))","x"]); - Mxtex("1",mx1); - Expr([0,1],"e",tx1); +Mxfun("1","partfrac",["x^3/((x+1)*(x+2))","x"]); +Mxtex("1",mx1); +Expr([0,1],"e",tx1); \end{verbatim} - ここで,mx1,tx1はそれぞれMxfun("1",・・) , Mxtex"1",・・) の結果(戻り値)である。mx1,tx1 はコンソールにも表示され,tx1は次のようになっている。 +ここで,mx1,tx1はそれぞれMxfun("1",・・) , Mxtex"1",・・) の結果(戻り値)である。mx1,tx1 はコンソールにも表示され,tx1は次のようになっている。 \begin{verbatim} - \frac{8}{x+2}-\frac{1}{x+1}+x-3 +\frac{8}{x+2}-\frac{1}{x+1}+x-3 \end{verbatim} - CindyscriptはTeX書式をサポートしているのでこれで描画面に分数式が表示されるが,Texの文書では,\verb|\frac{}{}| ではなく,\verb|\dfrac{}{}|を使うことが多い。そこで,Assign()を用いて,"frac" を "dfrac" に変えれば,そのままTex文書で使える。ただし,Cindyscriptは \verb|\dfrac{}{}| をサポートしていないので,画面上では分数表記にならない。そのあたりの事情を次のスクリプトで示す。 +CindyscriptはTeX書式をサポートしているのでこれで描画面に分数式が表示されるが,Texの文書では,\verb|\frac{}{}| ではなく,\verb|\dfrac{}{}|を使うことが多い。そこで,Assign()を用いて,"frac" を "dfrac" に変えれば,そのままTex文書で使える。ただし,Cindyscriptは \verb|\dfrac{}{}| をサポートしていないので,画面上では分数表記にならない。そのあたりの事情を次のスクリプトで示す。 \begin{verbatim} - fx="x^3/((x+1)*(x+2))"; - pfx=Mxfun("1","partfrac",[fx,"x"]); - form=Mxtex("1",fx)+"="+Mxtex("2",pfx); - dform=Assign(form,["frac","dfrac"]); - Letter([0,5],"e","部分分数への分解 $"+form+"$"); - Letter([0,3],"e","部分分数への分解 $"+dform+"$"); +fx="x^3/((x+1)*(x+2))"; +pfx=Mxfun("1","partfrac",[fx,"x"]); +form=Mxtex("1",fx)+"="+Mxtex("2",pfx); +dform=Assign(form,["frac","dfrac"]); +Letter([0,5],"e","部分分数への分解$"+form+"$"); +Letter([0,3],"e","部分分数への分解$"+dform+"$"); \end{verbatim} Cinderellaの描画面では次のように表示される。 \vspace{\baselineskip} \hspace{20mm} \includegraphics[bb=0 0 347.02 116.01 , width=8cm]{Fig/mxtex01.pdf} - + \vspace{\baselineskip} 出力したTeX挿入図では次のようになる。 @@ -4869,7 +4872,7 @@ Cinderellaの描画面では次のように表示される。 Cindyscriptの文字列の関数 replace を用いて, \hspace{10mm} \verb|dform=replace(form,"frac","dfrac");| - + としてもよい。 %\vspace{10mm} @@ -4878,87 +4881,87 @@ Cindyscriptの文字列の関数 replace を用いて, 【例】2次関数のグラフを表示し,$x$軸との交点の$x$座標を表示する。 \begin{layer}{150}{0} -\putnotese{70}{50}{ \input{Fig/mxtex03}} +\putnotese{60}{20}{ \input{Fig/mxtex03}} \end{layer} \begin{verbatim} - fx="x^2-x-3"; - cmdL=[ - "ans:solve",[fx,"x"], - "ans",[] - ]; - CalcbyM("ans",cmdL); - p1=indexof(ans,"["); - p2=indexof(ans,","); - p3=indexof(ans,"]"); - s1=substring(ans,p1,p2-1); - s2=substring(ans,p2,p3-1); - s1=replace(s1,"x =",""); - s2=replace(s2,"x =",""); - Mxtex("1",s1); - Mxtex("2",s2); - Plotdata("1",fx,"x"); - Expr([-2,-0.5],"e",tx1); - Expr([2,-0.5],"e",tx2); +fx="x^2-x-3"; +cmdL=[ +"ans:solve",[fx,"x"], +"ans",[] +]; +CalcbyM("ans",cmdL); +p1=indexof(ans,"["); +p2=indexof(ans,","); +p3=indexof(ans,"]"); +s1=substring(ans,p1,p2-1); +s2=substring(ans,p2,p3-1); +s1=replace(s1,"x =",""); +s2=replace(s2,"x =",""); +Mxtex("1",s1); +Mxtex("2",s2); +Plotdata("1",fx,"x"); +Expr([-2,-0.5],"e",tx1); +Expr([2,-0.5],"e",tx2); \end{verbatim} ここで,\verb|CalcbyM("ans",cmdL);| で得られるansは,次のような文字列である。 - - \verb|"[x = -(sqrt(13)-1)/2,x = (sqrt(13)+1)/2] "| - + +\verb|"[x = -(sqrt(13)-1)/2,x = (sqrt(13)+1)/2] "| + そこで,ここから2つの式だけを抽出する作業を行ったのち,Mxtex() でTeXの式を得ている。 さらに応用として,点AをCinderellaの作図ツールで作図し, \begin{verbatim} - if(A.y<0, - fx="(x-"+text(A.x)+")^2"+guess(A.y), - fx="(x-"+text(A.x)+")^2+"+guess(A.y); - ); +if(A.y<0, +fx="(x-"+text(A.x)+")^2"+guess(A.y), +fx="(x-"+text(A.x)+")^2+"+guess(A.y); +); \end{verbatim} とすると,点Aを頂点とする放物線と軸との交点の座標が描かれる。Maximaとのデータのやり取りをするためのタイムラグがあるが,インタラクティブに放物線の位置を変えることができる。 \vspace{\baselineskip} <参考> - 2次関数のような簡単な関数であれば,Cindyscriptの roots() 関数を用いて2次方程式が解けるので,次のスクリプトでほぼ同じ動作をするものを作ることができる。「ほぼ」というのは点Aの位置によっては,guess()で解釈しきれないことがあるためである。Maximaを使えば数式処理で解を求めるので,Aがどこにあってもきれいに表示できる。 +2次関数のような簡単な関数であれば,Cindyscriptの roots() 関数を用いて2次方程式が解けるので,次のスクリプトでほぼ同じ動作をするものを作ることができる。「ほぼ」というのは点Aの位置によっては,guess()で解釈しきれないことがあるためである。Maximaを使えば数式処理で解を求めるので,Aがどこにあってもきれいに表示できる。 \begin{verbatim} - fx="x^2-2*A.x*x+A.x^2+A.y"; - cf=[A.x^2+A.y,-2*A.x,1]; - sol=roots(cf); - s1=guess(sol_2); - s2=guess(sol_1); - Mxtex("1",s1); - Mxtex("2",s2); - Plotdata("1",fx,"x"); - Expr([-2,-0.5],"e",tx1); - Expr([2,-0.5],"e",tx2); +fx="x^2-2*A.x*x+A.x^2+A.y"; +cf=[A.x^2+A.y,-2*A.x,1]; +sol=roots(cf); +s1=guess(sol_2); +s2=guess(sol_1); +Mxtex("1",s1); +Mxtex("2",s2); +Plotdata("1",fx,"x"); +Expr([-2,-0.5],"e",tx1); +Expr([2,-0.5],"e",tx2); \end{verbatim} \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \newpage -% Risa/Asirとの連携 ================================== +%Risa/Asirとの連携================================== \subsection{Risa/Asirとの連携} \begin{description} \hypertarget{calcbyA}{} -\item[関数] CalcbyA(name,コマンド,option) -\item[機能] Risa/Asirのスクリプトを実行する -\item[説明] 第2引数はRisa/Asirで実行するコマンド。 +\item[関数]CalcbyA(name,コマンド,option) +\item[機能]Risa/Asirのスクリプトを実行する +\item[説明]第2引数はRisa/Asirで実行するコマンド。 + +コマンドと引数リストの繰り返しからなるリスト(例えばcmdL)を作って,一度に実行する。 + +戻り値はない。(未定義値)結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 - コマンドと引数リストの繰り返しからなるリスト(例えばcmdL)を作って,一度に実行する。 - - 戻り値はない。(未定義値) 結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 - \vspace{\baselineskip} \hypertarget{asirfun}{} -\item[関数] Asirfun(name,式,リスト,option) -\item[機能] Risa/Asirの関数を実行する -\item[説明] 第2引数の「式」はRisa/Asirの関数名。第3引数のリストは関数に渡す引数のリスト。 +\item[関数]Asirfun(name,式,リスト,option) +\item[機能]Risa/Asirの関数を実行する +\item[説明]第2引数の「式」はRisa/Asirの関数名。第3引数のリストは関数に渡す引数のリスト。 戻り値は,第1引数の式に1つでも文字があると文字列となる。すべて数字(+,-, . を含む)の場合は 16桁以下であれば数,それ以上の場合は文字列となる。また,戻り値は,変数 asname にも代入される。 @@ -4967,29 +4970,29 @@ Cindyscriptの文字列の関数 replace を用いて, \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \newpage -% FriCASとの連携 ================================== +%FriCASとの連携================================== \subsection{FriCAS(Axiom)との連携} \begin{description} \hypertarget{calcbyF}{} -\item[関数] CalcbyF(name,コマンド,option) -\item[機能] FriCASのスクリプトを実行する -\item[説明] 第2引数はFriCASで実行するコマンド。 +\item[関数]CalcbyF(name,コマンド,option) +\item[機能]FriCASのスクリプトを実行する +\item[説明]第2引数はFriCASで実行するコマンド。 コマンドと引数リストの繰り返しからなるリスト(例えばcmdL)を作って,一度に実行する。 -戻り値はない。(未定義値) 結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 +戻り値はない。(未定義値)結果は,コマンドリストの最後に記述した変数(引数は空リスト)の値がname で指定された変数に代入される。複数の結果を戻すときは,:: で区切って記述するとリストにして代入される。 \vspace{\baselineskip} \hypertarget{frfun}{} -\item[関数] Frfun(name,式,リスト,option) -\item[機能] FriCASの関数を実行する -\item[説明] 第2引数の「式」はFriCASの関数名。第3引数のリストは関数に渡す引数のリスト。 +\item[関数]Frfun(name,式,リスト,option) +\item[機能]FriCASの関数を実行する +\item[説明]第2引数の「式」はFriCASの関数名。第3引数のリストは関数に渡す引数のリスト。 戻り値は,第1引数の式に1つでも文字があると文字列となる。すべて数字(+,-, . を含む)の場合は 16桁以下であれば数,それ以上の場合は文字列となる。また,戻り値は,変数 friname にも代入される。 @@ -4998,31 +5001,31 @@ Cindyscriptの文字列の関数 replace を用いて, \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \newpage -% MeshLabとの連携 ================================== +%MeshLabとの連携================================== \subsection{MeshLabとの連携} MeshLabは,3Dデータ(objデータなど)を読み込んでレイトレーシングで表示・編集するソフトウェアである。レイトレーシングで3Dグラフィクスを描くには,Cinderellaと親和性の高い Cindy3D を利用するのがよいが,MeshLabを使うメリットは3Dプリンタ用のSTLファイルを出力できることである。また,\ketcindy で描いた3Dの図がレイトレーシングでどのようになるのかを見ることも比較的簡単にできる。 MeshLabとの連携は,\ketcindy から Obj 形式のデータを書き出すことで行う。Mkobj**() 関数でデータを作り,Mkviewobj() 関数でMeshLabを呼び出して表示を行う。 - + なお,Mkviewobj() 関数でMeshLabを呼び出して表示を行う場合,これをDrawスロットに書くと頻繁に呼び出しが行われるため非効率となる。そこで,if(1==0,・・・) で・・・の部分にMeshLabの呼び出し関係のスクリプトを書いて,実際に呼び出すときに if(1==1,・・・)とする方法と,呼び出し関係のスクリプトを関数化してボタンに割り当てる方法がある。ketcindyパッケージに含まれる sample にボタンをつけたものがある。 - - なお,3Dであるので,Initialization スロットに - - \verb|Ketinit();| - \verb|Ketinit3d();| + +なお,3Dであるので,Initialization スロットに + +\verb|Ketinit();| +\verb|Ketinit3d();| を記述しておく。 \begin{description} \hypertarget{mkobjcmd}{} -\item[関数] Mkobjcmd(name,式,option) -\item[機能] 厚みを持たない曲面のobjファイルのためのコマンドを作成する -\item[説明] オプションは [分割数1,分割数2,表側の方向の指定] +\item[関数]Mkobjcmd(name,式,option) +\item[機能]厚みを持たない曲面のobjファイルのためのコマンドを作成する +\item[説明]オプションは [分割数1,分割数2,表側の方向の指定] 表側の方向は,変数に対して,右手系の方向が"+" @@ -5031,13 +5034,13 @@ MeshLabとの連携は,\ketcindy から Obj 形式のデータを書き出す \vspace{\baselineskip} 【例】:サドル面 \begin{verbatim} - fd=[ "z=x^2-y^2", "x=[-1,1]","y=[-1,1]"," "]; - Sf3data("1",fd); - Windispg(); - Mkobjcmd("1",fd,[40,40,"-"]); - Meshlab():=( - Mkviewobj("saddle",oc1, ["m","v"]); - ); +fd=[ "z=x^2-y^2", "x=[-1,1]","y=[-1,1]"," "]; +Sf3data("1",fd); +Windispg(); +Mkobjcmd("1",fd,[40,40,"-"]); +Meshlab():=( +Mkviewobj("saddle",oc1, ["m","v"]); +); \end{verbatim} このうち,\verb|Sf3data("1",fd); | はCinderellaの画面に表示するためであって,なくてもよい。 @@ -5045,44 +5048,44 @@ MeshLabとの連携は,\ketcindy から Obj 形式のデータを書き出す \includegraphics[bb=0 0 679.53 263.51 , width=12cm]{Fig/meshlab01.pdf} \vspace{\baselineskip} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mkobjcrvcmd}{} -\item[関数] Mkobjcrvcmd(name,PD,option) -\item[機能] 空間曲線(直線)のobjファイルのためのコマンドを作成 -\item[説明] オプションは [太さ,断面の形状(正多角形)の辺の数,断面の正面] +\item[関数]Mkobjcrvcmd(name,PD,option) +\item[機能]空間曲線(直線)のobjファイルのためのコマンドを作成 +\item[説明]オプションは [太さ,断面の形状(正多角形)の辺の数,断面の正面] 曲線は紐のようなもので表す。その断面は正多角形で, 初期設定は正6角形である。断面の正面は"xy","yz","zx"のいずれかで指定する。太くなった時に形状の差が現れる。 -例 太さ0.03で螺旋を描く +例太さ0.03で螺旋を描く \begin{verbatim} - Spacecurve("1","[(6*pi-t)/(6*pi)*cos(t),(6*pi-t)/(6*pi)*sin(t),0.1*t]", - "t=[0,6*pi]",["Num=200"]); - Windispg(); - Mkobjcrvcmd("1","sc3d1",[0.03]); - Meshlab():=( - Mkviewobj("spiral",oc1,["m","v"]); - ); +Spacecurve("1","[(6*pi-t)/(6*pi)*cos(t),(6*pi-t)/(6*pi)*sin(t),0.1*t]", +"t=[0,6*pi]",["Num=200"]); +Windispg(); +Mkobjcrvcmd("1","sc3d1",[0.03]); +Meshlab():=( +Mkviewobj("spiral",oc1,["m","v"]); +); \end{verbatim} -\verb| Mkobjcrvcmd("1","sc3d1",[0.1,8,"yz"]);| としたのが下図右。 - +\verb|Mkobjcrvcmd("1","sc3d1",[0.1,8,"yz"]);| としたのが下図右。 + \includegraphics[bb=0 0 614.53 236.51 , width=12cm]{Fig/meshlab02.pdf} - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{mkobjnrm}{} -\item[関数] Mkobjnrm(name,式) -\item[機能] 法線ベクトルのデータを作成 -\item[説明] 式は曲面を表す式。これに対し,法線ベクトルを表す式を求める。 +\item[関数]Mkobjnrm(name,式) +\item[機能]法線ベクトルのデータを作成 +\item[説明]式は曲面を表す式。これに対し,法線ベクトルを表す式を求める。 \vspace{\baselineskip} \hypertarget{mkobjplatecmd}{} -\item[関数] Mkobjplatecmd(name,面データ,options) -\item[機能] 面を描く -\item[説明] 面データを渡して面を描く。 +\item[関数]Mkobjplatecmd(name,面データ,options) +\item[機能]面を描く +\item[説明]面データを渡して面を描く。 options は,面の厚みの指定。厚みは中心線に対し,両側につけることができる。 @@ -5095,35 +5098,35 @@ options は,面の厚みの指定。厚みは中心線に対し,両側につ \putnotese{80}{15}{ \includegraphics[bb=0 0 287.01 228.01 , width=3cm]{Fig/meshlab03.pdf} } \end{layer} \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); - p1=[2,0,0]; - p2=[0,2,0]; - p3=[0,0,2]; - plane=[[p1,p2,p3],[[1,2,3]]]; - Mkobjplatecmd("1",plane,[0.05]); - Mkobjcrvcmd("2","ax3d"); - Mkviewobj("plane",Concatcmd([oc1,oc2]),["m","v"]); - \end{verbatim} +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); +p1=[2,0,0]; +p2=[0,2,0]; +p3=[0,0,2]; +plane=[[p1,p2,p3],[[1,2,3]]]; +Mkobjplatecmd("1",plane,[0.05]); +Mkobjcrvcmd("2","ax3d"); +Mkviewobj("plane",Concatcmd([oc1,oc2]),["m","v"]); +\end{verbatim} \vspace{\baselineskip} \hypertarget{mkobjpolycmd}{} -\item[関数] Mkobjpolycmd(name,PD,options) -\item[機能] 多面体を描く -\item[説明] VertexEdgeFace() の戻り値を PDとして渡して多面体を描く。 +\item[関数]Mkobjpolycmd(name,PD,options) +\item[機能]多面体を描く +\item[説明]VertexEdgeFace() の戻り値を PDとして渡して多面体を描く。 \vspace{\baselineskip} \hypertarget{mkobjsymbcmd}{} -\item[関数] Mkobjsymbcmd(PD, 実数,実数,ベクトル, ベクトル) -\item[機能] 文字等のobjデータのためのコマンドを作成 -\item[説明] 引数のPDを描く。第2引数は大きさ,第3引数は回転角,第4引数は正面方向のベクトル,第5引数はPDの中心の位置。 +\item[関数]Mkobjsymbcmd(PD, 実数,実数,ベクトル, ベクトル) +\item[機能]文字等のobjデータのためのコマンドを作成 +\item[説明]引数のPDを描く。第2引数は大きさ,第3引数は回転角,第4引数は正面方向のベクトル,第5引数はPDの中心の位置。 PDは,平面の描画コマンドによるプロットデータが使える。また,PD に半角アルファベットを文字として与えることができる。この場合,文字は n,p,q,r,t,x,y,z で,該当するフォントが data フォルダの fontF フォルダに用意されている。この中にないフォントは使えない。 \vspace{\baselineskip} \hypertarget{mkobjthickcmd}{} -\item[関数] Mkobjthickcmd(name,式) -\item[機能] 厚みを持つ曲面のobjファイルのためのコマンドを作成 -\item[説明] オプションは [分割数1,分割数2,厚み,表側の方向の指定,条件] +\item[関数]Mkobjthickcmd(name,式) +\item[機能]厚みを持つ曲面のobjファイルのためのコマンドを作成 +\item[説明]オプションは [分割数1,分割数2,厚み,表側の方向の指定,条件] 表側の方向は,変数に対して,右手系の方向が"+"。厚みを持つため,nsew のそれぞれについて, "+n+s-e-w" のように指定する。 @@ -5140,38 +5143,38 @@ PDは,平面の描画コマンドによるプロットデータが使える。 \putnotese{70}{0}{ \includegraphics[bb=0 0 287.01 189.01 , width=4cm]{Fig/meshlab06.pdf}} \end{layer} \begin{verbatim} - fd=[ - "z=(x^2+y^2)", - "x=R*cos(T)","y=R*sin(T)", - "R=[0,2]","T=[0,2*pi]","e" - ]; - Mkobjthickcmd("1",fd,[40,40,0.2,"+n+s-e-w+","assume(R>0)"]); - Mkviewobj("pala",oc1,["m","v","Wait=5"]); +fd=[ +"z=(x^2+y^2)", +"x=R*cos(T)","y=R*sin(T)", +"R=[0,2]","T=[0,2*pi]","e" +]; +Mkobjthickcmd("1",fd,[40,40,0.2,"+n+s-e-w+","assume(R>0)"]); +Mkviewobj("pala",oc1,["m","v","Wait=5"]); \end{verbatim} -%\begin{center} \includegraphics[bb=0 0 574 378 , width=5cm]{Fig/meshlab06.pdf}\end{center} +%\begin{center}\includegraphics[bb=0 0 574 378 , width=5cm]{Fig/meshlab06.pdf}\end{center} \vspace{\baselineskip} \hypertarget{mkviewobj}{} -\item[関数] Mkviewobj(name,PD, options) -\item[機能] objファイルを作成。optionにより MeshLab を立ち上げて表示する。 -\item[説明] 第2引数に複数のプロットデータを与えるときは,Concatcmd() により1つにまとめる。 +\item[関数]Mkviewobj(name,PD, options) +\item[機能]objファイルを作成。optionにより MeshLab を立ち上げて表示する。 +\item[説明]第2引数に複数のプロットデータを与えるときは,Concatcmd() により1つにまとめる。 オプションは \begin{tabbing} 12345678901234567890\=\kill - "m"または"make" \> データを作る(指定しない場合もデータがなければ作る)\\ - "v"または"view" \>MeshLabを立ち上げて表示する\\ - "W=n" \>作成するための待ち時間。n秒。これを過ぎると終了する\\ - "Unit=mm" \>Setunitlen()と連動して3Dプリンタの数値の単位をmmで指定する\\ - \>3Dプリンターがインチで認識する場合は "Unit=in" とする。\\ +"m"または"make"\> データを作る(指定しない場合もデータがなければ作る)\\ +"v"または"view"\>MeshLabを立ち上げて表示する\\ +"W=n"\>作成するための待ち時間。n秒。これを過ぎると終了する\\ +"Unit=mm"\>Setunitlen()と連動して3Dプリンタの数値の単位をmmで指定する\\ +\>3Dプリンターがインチで認識する場合は "Unit=in" とする。\\ \end{tabbing} \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \newpage -% 表計算ソフトとの連携 ================================== +%表計算ソフトとの連携================================== \subsection{表計算ソフトとの連携} 表計算ソフトでは,複数のセルを選択してコピー(Windowsでは Crtl+ C ,Macでは Command+C)すると,セルの内容はtab区切りのテキストデータとしてクリップボードにコピーされる。これをCindyscriptエディタにペーストすることで表計算ソフトのデータを\ketcindy で利用できる。逆に,Cindyscriptのコンソールへの出力を表計算ソフトのシートにコピーすることもできる。 @@ -5179,36 +5182,36 @@ PDは,平面の描画コマンドによるプロットデータが使える。 \begin{description} \hypertarget{tab2list}{} -\item[関数] Tab2list(str,option) -\item[機能] str の内容をリストに変換する -\item[説明] tabやコンマ区切りになっている文字列 str をリストに変換する。 +\item[関数]Tab2list(str,option) +\item[機能]str の内容をリストに変換する +\item[説明]tabやコンマ区切りになっている文字列 str をリストに変換する。 optionは,次の通り。 - Blank=a :NULLのセルをaに置き換える。 + Blank=a:NULLのセルをaに置き換える。 -Sep=b :セパレータ(区切り文字)を b とする。 初期設定は tabコード +Sep=b:セパレータ(区切り文字)を b とする。 初期設定は tabコード 次のような手順で表計算ソフトやCSVファイルからデータを\ketcindy に移すことができる。 \vspace{\baselineskip} (1) Cindyscriptエディタで,適当な文字変数を用意する。 - たとえば,data=""; - +たとえば,data=""; + \vspace{\baselineskip} \hspace{10mm} \includegraphics[bb=0 0 429.02 149.01 , width=7cm]{Fig/tab2list02.pdf} \vspace{\baselineskip} (2) 表計算ソフトで,適当な範囲を指定しクリップボードにコピーする。 - Windowsなら Ctrl+C,Macなら Command+C - +Windowsなら Ctrl+C,Macなら Command+C + \vspace{\baselineskip} \hspace{10mm} \includegraphics[bb=0 0 371.02 154 , width=7cm]{Fig/tab2list01.pdf} \vspace{\baselineskip} -(3) data=""; のダブルクウォートの間にペーストする。 +(3) data=""; のダブルクォートの間にペーストする。 最後の行は右図のように," の前で改行されていてもよい。 @@ -5216,55 +5219,55 @@ Sep=b :セパレータ(区切り文字)を b とする。 初期設定 \hspace{10mm} \includegraphics[bb=0 0 369.02 118.01 , width=6cm]{Fig/tab2list00.pdf} \hspace{10mm} \includegraphics[bb=0 0 374.02 138.01 , width=6cm]{Fig/tab2list001.pdf} - + \vspace{\baselineskip} (4) この文字変数 data に対し,Tab2list(data) を実行すると,行列を表すリストが返される。 これを適当な変数に代入し,作表コマンドで表にするなど,目的に応じて利用する。 - + 数値だけなら行列として計算もできる。 \vspace{\baselineskip} \hspace{10mm} \includegraphics[bb=0 0 622.53 228.51 , width=10cm]{Fig/tab2list03.pdf} \vspace{\baselineskip} - 空文字のセル(NULL)が含まれる場合, 初期設定ではそのまま空文字になるが,アンケート処理などで無回答を0にしたいような場合は - +空文字のセル(NULL)が含まれる場合, 初期設定ではそのまま空文字になるが,アンケート処理などで無回答を0にしたいような場合は + \hspace{10mm}\verb|dlist=Tab2list(data,["Blank=0"];| とする。 CSVファイルからCSV形式(コンマ区切り)のデータをコピーした場合は -\hspace{10mm} \verb|dlist=Tab2list(data,["Sep=,"];| - +\hspace{10mm}\verb|dlist=Tab2list(data,["Sep=,"];| + とする。 なお,文字列をセパレータで区切ってリスト化するCindyscriptの関数に tokenize()がある。上の例で, \hspace{10mm} \verb|dlist=tokenize(data,[unicode("000a"),unicode("0009")]);| - + とすると,改行コード(000a)とtabコード(0009)で切り分けてリスト化する。このとき,リストの各要素はつぎのようになる。 文字列→文字列 - -数値形式の文字→実数 【例】 14 → 整数14 12.3 → 実数12.3 -計算式の形 → 文字列 【例】 437-0023 → 437-0023 (文字列) +数値形式の文字→実数【例】 14 → 整数1412.3 → 実数12.3 + +計算式の形→文字列【例】 437-0023 →437-0023 (文字列) これに対し,Tab2list()では,計算式の形の文字列は数値と見なして計算結果を取得する。 \vspace{\baselineskip} -【例】 437-0023 → 414 (数値) +【例】 437-0023 →414 (数値) -したがって,郵便番号や日付(28/12/5)のようなものは計算されてしまうので,tokenize() を用いるのがよい。なお,tokenize()の場合,空行は空リストになるので,最後の行でダブルクウォートの前で改行されていると空リストが入る。 +したがって,郵便番号や日付(28/12/5)のようなものは計算されてしまうので,tokenize() を用いるのがよい。なお,tokenize()の場合,空行は空リストになるので,最後の行でダブルクォートの前で改行されていると空リストが入る。 \vspace{\baselineskip} \hypertarget{dispmat}{} -\item[関数] Dispmat(list) -\item[機能] リストを行列の形でtab区切りにしてコンソールに表示する。 -\item[説明] 行列を表すリスト (たとえば dlist) を引数としてDispmat(dlist) を実行すると,コンソールに行列型で内容が表示される。 +\item[関数]Dispmat(list) +\item[機能]リストを行列の形でtab区切りにしてコンソールに表示する。 +\item[説明]行列を表すリスト (たとえば dlist) を引数としてDispmat(dlist) を実行すると,コンソールに行列型で内容が表示される。 実際にはTAB区切りの文字列。(println としなくても直接コンソールに表示される) @@ -5276,13 +5279,13 @@ Sep=b :セパレータ(区切り文字)を b とする。 初期設定 \vspace{\baselineskip} \hypertarget{writecsv}{} -\item[関数] Writecsv(namelist, data, filename, option) -\item[機能] data の内容をCSVファイルに出力する -\item[説明] ベクトルまたは行列となっている data を、filenameのファイル名としてCSVファイルに書き出す。 +\item[関数]Writecsv(namelist, data, filename, option) +\item[機能]data の内容をCSVファイルに出力する +\item[説明]ベクトルまたは行列となっている data を、filenameのファイル名としてCSVファイルに書き出す。 optionは,次の通り。(省略できる) -Col=nn :自然数nnで指定した列数のCSVファイルとして書き出す。 +Col=nn:自然数nnで指定した列数のCSVファイルとして書き出す。 namelistは,CSVファイルの1行目に追加される項目名。省略すると"C1,C2,..."という項目名が付く。 @@ -5291,12 +5294,12 @@ namelistは,CSVファイルの1行目に追加される項目名。省略す \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \newpage -% アニメーション ================================== +%アニメーション================================== \section{アニメーションPDF} \subsection{概要} アニメーションのできるPDFを作る。 @@ -5306,22 +5309,22 @@ Cinderellaの作図機能とCindyscriptを用いてアニメーションがで 次の画面は,samplesフォルダにある「s06animation」の「s0601cycloid」のものである。これをひな形として使うのがよい。 \vspace{\baselineskip} - \includegraphics[bb=0 0 732.04 376.02 , width=12cm]{Fig/mvgaiyou01.pdf} +\includegraphics[bb=0 0 732.04 376.02 , width=12cm]{Fig/mvgaiyou01.pdf} 画面上方のボタンには,次のようなスクリプトが割り当てられている。 \begin{tabbing} - 12345678\=1234567897890123456\=\kill - Figure \>: Viewtex(); \>現在の画面のPDFデータを作る\\ - Parent \>:複数のスクリプト \>Figpdf() を使うときに使用する。\\ - ParaF \>: Parafolder(); \>アニメーションのデータを作る\\ - Anime \>: Mkanimation(); \>アニメーションPDFを作る\\ - Flip \>: Mkflipanime(); \>パラパラ動画PDFを作る +12345678\=1234567897890123456\=\kill +Figure\>: Viewtex(); \>現在の画面のPDFデータを作る\\ +Parent \>:複数のスクリプト\>Figpdf() を使うときに使用する。\\ +ParaF \>: Parafolder(); \>アニメーションのデータを作る\\ +Anime\>: Mkanimation(); \>アニメーションPDFを作る\\ +Flip \>: Mkflipanime(); \>パラパラ動画PDFを作る \end{tabbing} アニメーションの作成は,フレームを定義する関数を作成し,Mkanimation() 関数を実行する(Animeボタン)。 %たとえば,Fhead が "hoge" の場合,TeX の文書には\\ -% \verb|\begin{center} \input{hogemoviefigs.tex}|\\ +% \verb|\begin{center} \input{hogemoviefigs.tex}|\\ %で動画を挿入することができる。 %ただし,動画のできるPDFを作成するには,ドキュメントクラスと使用パッケージについて注意が必要である。 @@ -5329,7 +5332,7 @@ Cinderellaの作図機能とCindyscriptを用いてアニメーションがで %ドキュメントクラスは,article または jarticle とする。jsarticle は使えない。 %パッケージは animate に dvipdfmx オプションをつける。\\ -% \verb|\usepackage[dvipdfmx]{animate}| +%\verb|\usepackage[dvipdfmx]{animate}| なお,アニメーションPDFでアニメーションを行うにはAdobe Acrobat Reader など,アニメーションに対応したPDFリーダーが必要である。WindowsのSumatraPDF,Macの プレビューでは動かない。 @@ -5339,54 +5342,54 @@ Flipボタンを押すと,フレームに分割したPDFが生成されて表 \begin{description} \hypertarget{setpara}{} -\item[関数] Setpara(fname,funcstr,range,options1,options2) -\item[機能] アニメーションの設定をする -\item[説明] fname は出力するファイル名,funcstrは動画関数名,rangeは範囲 +\item[関数]Setpara(fname,funcstr,range,options1,options2) +\item[機能]アニメーションの設定をする +\item[説明]fname は出力するファイル名,funcstrは動画関数名,rangeは範囲 options1 はアニメーションのデータを作るための設定。 \begin{tabbing} 1234567890123\=90123456789012345678\=\kill -m/r \> データの作成 / 既存データがある場合の読み込み( 初期設定は r )\\ -Div=n \> フレーム数。初期値は25。 +m/r\> データの作成 / 既存データがある場合の読み込み( 初期設定は r )\\ +Div=n\> フレーム数。初期値は25。 \end{tabbing} options2 はアニメーションについての設定で,次の通り。 \begin{tabbing} 1234567890123\=90123456789012345678\=\kill -Frate=n \>1秒間のフレーム数。初期値は20。 \\ -Title=str \> タイトル。\\ -Scale=n \> 図の大きさの拡大率 \\ -opA \> animate.sty のためのオプション。 \\ - \> loop:loopする,controls:ボタンを表示,buttonsize:ボタンのサイズ\\ - \> step:コマ送りモード\\ - \> 初期設定は loop,controls,buttonsize=3mm\\ - \> +をつけるとモードが追加される。たとえば \verb|"OpA=+step"| で\\ - \> \verb|"OpA=[loop,controls,buttonsize=3mm,step]"| となる。 +Frate=n\>1秒間のフレーム数。初期値は20。 \\ +Title=str\> タイトル。\\ +Scale=n\> 図の大きさの拡大率 \\ +opA\> animate.sty のためのオプション。 \\ +\> loop:loopする,controls:ボタンを表示,buttonsize:ボタンのサイズ\\ +\> step:コマ送りモード\\ +\>初期設定はloop,controls,buttonsize=3mm\\ +\> +をつけるとモードが追加される。たとえば \verb|"OpA=+step"| で\\ +\>\verb|"OpA=[loop,controls,buttonsize=3mm,step]"| となる。 \end{tabbing} \vspace{\baselineskip} \item[関数] Parafolder(funcstr,fname,range,options) -\item[機能] アニメーションのフレームデータを作成する -\item[説明] funcstrは動画関数名,fname は出力するフォルダ名,rangeは範囲 +\item[機能]アニメーションのフレームデータを作成する +\item[説明]funcstrは動画関数名,fname は出力するフォルダ名,rangeは範囲 作業フォルダ(fig)内に,フレームデータを格納した fname フォルダを作る。ひな形(s0601cycloid)にある ParaF ボタンに割り当てられており,通常はそのまま使えばよい。 \vspace{\baselineskip} -\item[関数] Mkanimation(path,folder) -\item[機能] アニメーションのPDFを作る -\item[説明] 作業フォルダ(fig)内に,フレームデータを格納した fname フォルダを作り,ここからアニメーションのPDFを作る。Setpara() で設定したファイル名を fname とすると,生成する TeX ファイルは,animatefname.tex (PDF作成のTeXファイル)と animfname.tex (動画データ)で,PDFの名称は,animatefname.pdf となる。 +\item[関数]Mkanimation(path,folder) +\item[機能]アニメーションのPDFを作る +\item[説明]作業フォルダ(fig)内に,フレームデータを格納した fname フォルダを作り,ここからアニメーションのPDFを作る。Setpara() で設定したファイル名を fname とすると,生成する TeX ファイルは,animatefname.tex (PDF作成のTeXファイル)と animfname.tex (動画データ)で,PDFの名称は,animatefname.pdf となる。 ひな形(s0601cycloid)にある Anime ボタンに割り当てられており,通常はあらためて設定せずそのまま使えばよい。 \vspace{\baselineskip} -\item[関数] Mkflipanime(path,folder) -\item[機能] パラパラ動画のPDFを作る -\item[説明] 作業フォルダ(fig)内に,フレームデータを格納した fname フォルダを作り,ここからパラパラ動画のPDFを作る。Setpara() で設定したファイル名を fname とすると,生成する TeX ファイルは,flipanimefname.tex (PDF作成のTeXファイル)で,PDFの名称は,flipanimefname.pdf となる。 +\item[関数]Mkflipanime(path,folder) +\item[機能]パラパラ動画のPDFを作る +\item[説明]作業フォルダ(fig)内に,フレームデータを格納した fname フォルダを作り,ここからパラパラ動画のPDFを作る。Setpara() で設定したファイル名を fname とすると,生成する TeX ファイルは,flipanimefname.tex (PDF作成のTeXファイル)で,PDFの名称は,flipanimefname.pdf となる。 ひな形にある Flip ボタンに割り当てられており,通常はあらためて設定せずそのまま使えばよい。 \end{description} -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \subsection{制作例} @@ -5396,24 +5399,24 @@ opA \> animate.sty のためのオプション。 \\ アニメーションを定義する関数は,時間を $t$ とすれば,時刻 $t$ における図(動くものだけ)を定義する。時刻は単なる媒介変数であるので,$t$ でなく $s$ などでもよい。 \begin{verbatim} - Setax(["","","sw","","sw"]); - Slider("A-C-B",[0,YMIN-1],[2*pi,YMIN-1]); - Circledata("1",[[0,0],[0,2]]); - mf(t):=( - pt=2*[cos(t),sin(t)]; - mp=(pt+[4,0])/2; - Listplot("1",[[4,0],pt]); - Pointdata("1",[mp,pt],["Size=2"]); - if(t==0, - ptlist=[mp]; - , - ptlist=append(ptlist,mp); - ); - Letter([[4,0],"s","A",pt,"en","P",mp,"ne","Q"]); - Pointdata("2",ptlist,["Size=2","Color=red"]); - ); - mf(C.x); - Setpara("middle","mf(t)","t=[0,4*pi]"); +Setax(["","","sw","","sw"]); +Slider("A-C-B",[0,YMIN-1],[2*pi,YMIN-1]); +Circledata("1",[[0,0],[0,2]]); +mf(t):=( +pt=2*[cos(t),sin(t)]; +mp=(pt+[4,0])/2; +Listplot("1",[[4,0],pt]); +Pointdata("1",[mp,pt],["Size=2"]); +if(t==0, +ptlist=[mp]; +, +ptlist=append(ptlist,mp); +); +Letter([[4,0],"s","A",pt,"en","P",mp,"ne","Q"]); +Pointdata("2",ptlist,["Size=2","Color=red"]); +); +mf(C.x); +Setpara("middle","mf(t)","t=[0,4*pi]"); \end{verbatim} この例の場合,\verb|mf(C.x)| を実行するとスライダを動かすことでインタラクティブに軌跡を表示できる。 @@ -5428,8 +5431,8 @@ Cinderellaの画面は次のようになる。 また,次のようにオプションを指定すると,5秒間のアニメーションとなる。 - \verb| Setpara("middle","mf(t)","t=[0,4*pi]",["Div=30"],["Frate=6"]);| - +\verb| Setpara("middle","mf(t)","t=[0,4*pi]",["Div=30"],["Frate=6"]);| + \verb|["Div=150"],["Frage=30"]|とすると,やはり5秒間のアニメーションとなるが,1秒間のフレーム数が多いため,なめらかな動きとなる。これは標準的なビデオのフレームレートである。ただし,ファイルサイズは約5倍となる。 @@ -5478,19 +5481,19 @@ PDFと,関連する中間ファイルは,作業フォルダではなく,ma \begin{tabbing} 1234567890\=12345678912345678901234567890\=\kill - \>title::slide0// \> タイトルスライド。title はコマンド。\\ - \>main::三角比と三角関数// \> セクション1のタイトル。main はコマンド。\\ - \> 直角三角形と三角比// \> 1ページ目の表示内容。\\ - \> ・・・・// \\ - \> new::角の概念の拡張// \> 新しいページとタイトル。new はコマンド。\\ + \>title::slide0//\> タイトルスライド。title はコマンド。\\ + \>main::三角比と三角関数//\> セクション1のタイトル。main はコマンド。\\ + \>直角三角形と三角比//\> 1ページ目の表示内容。\\ + \>・・・・// \\ + \> new::角の概念の拡張//\> 新しいページとタイトル。new はコマンド。\\ \> enumerate::[(1)]// \> 2ページ目の表示内容。enumerate はコマンド。\\ - \> ・・・・// \\ - \> new::負の角// \> 新しいページとタイトル。\\ - \> ・・・・// \\ - \>main::三角関数のグラフ// \> セクション2のタイトル。\\ - \> $f(x)=\sin x$// \> \hspace{10mm}以下同様\\ + \> ・・・・//\\ + \> new::負の角//\> 新しいページとタイトル。\\ + \> ・・・・//\\ + \>main::三角関数のグラフ//\> セクション2のタイトル。\\ + \>$f(x)=\sin x$//\> \hspace{10mm}以下同様\\ \> new::振幅と周期// \\ - \> ・・・・// \\ + \> ・・・・//\\ \end{tabbing} %あまりスマートな方法ではないが,枠をKeTCindyで作ってレイヤーで表示 \begin{layer}{150}{0} @@ -5534,14 +5537,14 @@ wallpaper は壁紙のファイル名。壁紙ファイルはTeXのファイル 壁紙ファイルの一例 \begin{verbatim} - {\color[cmyk]{0.6,0.2,0.8,0}\huge\rm\normalsize - \newpage - \begin{layer}{120}{0} - \lineseg{0}{2}{125}{0} - \lineseg{0}{88}{125}{0} - \putnotese{0}{90}{\ketcindy} - \end{layer} - } + {\color[cmyk]{0.6,0.2,0.8,0}\huge\rm\normalsize +\newpage +\begin{layer}{120}{0} +\lineseg{0}{2}{125}{0} +\lineseg{0}{88}{125}{0} +\putnotese{0}{90}{\ketcindy} +\end{layer} +} \end{verbatim} \vspace{\baselineskip} @@ -5586,7 +5589,7 @@ wallpaper は壁紙のファイル名。壁紙ファイルはTeXのファイル \hspace{10mm}\verb|itemize//| で itemize環境の始まりを示す。記号は中黒。 - + enumerate,itemizeのいずれも \hspace{10mm}\verb|item::文//| @@ -5618,8 +5621,8 @@ para をつけると,右下にコントローラが表示され,前後に進 段階的に表示したい行の先頭に,表示する順番を,2番目以降から \begin{verbatim} - %[2,-]::text// - %[3,-]::text// +%[2,-]::text// +%[3,-]::text// \end{verbatim} のように書く。 @@ -5634,8 +5637,8 @@ para をつけると,右下にコントローラが表示され,前後に進 順表示したい項目の全体像を見せておいて,そのうちの現在までの項目を示すような場合に用いる。番号指定の前に thin をつけ, \begin{verbatim} - %thin[2,-]::text// - %thin[3,-]::text// +%thin[2,-]::text// +%thin[3,-]::text// \end{verbatim} のように書くと,現段階の項目よりあとは薄文字で表示される。 @@ -5665,17 +5668,17 @@ item とともに用いるときは,\verb|%thin[n,-]| を先に書く。 \putnotese{70}{10} {\includegraphics[bb=0.00 0.00 777.04 516.03,width=7cm]{Fig/sliderepeat.pdf} } \end{layer} \begin{verbatim} - new::プログラミング言語 // - %repeat=6,para// - \slidepage// - itemize// - item::Python// - %thin[2,-]::item::Ruby// - %thin[3,-]::item::Java// - %thin[4,-]::item::JavaScript// - %thin[5,-]::item::CindyScript// - %thin[6,-]::item::C// - end// +new::プログラミング言語 // +%repeat=6,para// +\slidepage// +itemize// +item::Python// +%thin[2,-]::item::Ruby// +%thin[3,-]::item::Java// +%thin[4,-]::item::JavaScript// +%thin[5,-]::item::CindyScript// +%thin[6,-]::item::C// +end// \end{verbatim} \vspace{\baselineskip} @@ -5719,21 +5722,21 @@ item とともに用いるときは,\verb|%thin[n,-]| を先に書く。 例) figure.texを(30,10)の位置の南東(原点は左上)に表示する。 -\hspace{10mm} \verb|putonote::se{30}{10}::figure//| +\hspace{10mm} \verb|putnote::se{30}{10}::figure//| 例) figの中のfigure.texを0.8倍にして表示する。 -\hspace{10mm} \verb|putonote::se{30}{10}::figure,0.8//| +\hspace{10mm} \verb|putnote::se{30}{10}::figure,0.8//| 例)includegraphics で figure.pdf を表示する。 -\hspace{10mm} \verb|putonote::se{30}{10}::include[width=5cm]::figure.pdf//| +\hspace{10mm} \verb|putnote::se{30}{10}::include[width=5cm]::figure.pdf//| 注)\verb|KeTpicStyle.pdf|を参照。文字などは本来の書式を用いて次のように入れる。 -\hspace{10mm} \verb|\putonotee{30}{10}{文字}//| +\hspace{10mm} \verb|\putnotee{30}{10}{文字}//| \vspace{\baselineskip} {\bf 【テキストと動画】} @@ -5789,9 +5792,9 @@ page番号を表示するときは次のようにする。 makeslide.txtのタイトルコマンドの後に,以下を追加する。 \begin{verbatim} - title::slide0(::wallpaper) - ::\usepackage{ketmedia} - ::\usepackage[dvipdfmx]{media9}// +title::slide0(::wallpaper) +::\usepackage{ketmedia} +::\usepackage[dvipdfmx]{media9}// \end{verbatim} mp3ファイルを追加するときは,\verb|\inputsound|または\verb|\inputsoundclick|を用いる。\\ @@ -5809,14 +5812,14 @@ makeslide.cdy で使う,\ketcindy の関数。 \begin{description} \hypertarget{setslidebody}{} -\item[関数] Setslidebody(bodycolor,bodystyle,density) -\item[機能] 全体の文字スタイルと薄文字の濃さ(0-1)の設定 -\item[説明] 引数の意味は次の通り。 +\item[関数]Setslidebody(bodycolor,bodystyle,density) +\item[機能]全体の文字スタイルと薄文字の濃さ(0-1)の設定 +\item[説明]引数の意味は次の通り。 \begin{tabbing} 1234567890123\=4567890\=\kill -bodycolor \> 文字色 : 初期設定は "blue"\\ -bodystyle \> フォントタイプ : 初期設定は \verb|"\Large\bf\boldmath"|\\ -density \> 薄文字の濃さ : 初期設定は 0.1 +bodycolor\> 文字色 :初期設定は "blue"\\ +bodystyle\> フォントタイプ :初期設定は \verb|"\Large\bf\boldmath"|\\ +density\> 薄文字の濃さ :初期設定は 0.1 \end{tabbing} 引数がない場合や( \verb|Setslidebody()|)この関数を書かない場合は初期値が使われる。 @@ -5827,9 +5830,9 @@ density \> 薄文字の濃さ : 初期設定は 0.1 \vspace{\baselineskip} \hypertarget{setslidehyper}{} -\item[関数] Setslidehyper("dvipdfmx",options) -\item[機能] 順表示でページ送りのコントローラを設定する。 -\item[説明] 順表示しないときもこの関数の記述は必須と考えてよい。 +\item[関数]Setslidehyper("dvipdfmx",options) +\item[機能]順表示でページ送りのコントローラを設定する。 +\item[説明]順表示しないときもこの関数の記述は必須と考えてよい。 パッケージ hyperref.styを読み込み,かつ,options の値を与える。 @@ -5852,9 +5855,9 @@ Size \> コントローラの大きさ。 初期設定は1 \vspace{\baselineskip} \hypertarget{setslidemain}{} -\item[関数] Setslidemain([letterc,boxc,boxd,framec,xpos,size]) -\item[機能] メインスライド(セクション区切り)の設定 -\item[説明] 引数の一部を 初期設定値とする場合は [,,,,3] や [,"red"] などとする。 +\item[関数]Setslidemain([letterc,boxc,boxd,framec,xpos,size]) +\item[機能]メインスライド(セクション区切り)の設定 +\item[説明]引数の一部を 初期設定値とする場合は [,,,,3] や [,"red"] などとする。 \begin{tabbing} 1234567\=4567890\=\kill letterc \> 文字の色。 初期設定は CMYKで [0.98,0.13,0,0.43]\\ @@ -5867,9 +5870,9 @@ size \> タイトルの倍率。 初期設定は 2 \vspace{\baselineskip} \hypertarget{setslidepage}{} -\item[関数] Setslidepage([letterc,boxc,boxd,framec,shadowc,xpos,size]) -\item[機能] ページの設定をする。 -\item[説明] 引数の一部を 初期設定値とする場合は [,,,,3] や [,"red"]などとする。 +\item[関数]Setslidepage([letterc,boxc,boxd,framec,shadowc,xpos,size]) +\item[機能]ページの設定をする。 +\item[説明]引数の一部を 初期設定値とする場合は [,,,,3] や [,"red"]などとする。 \begin{tabbing} 1234567\=4567890\=\kill @@ -5883,15 +5886,15 @@ size \> タイトルの倍率。 初期設定は 1.3 \vspace{\baselineskip} \hypertarget{setslidemargin}{} -\item[関数] Setslidemargin([leftmarginchange,topmarginchange]) -\item[機能] スライドの左上マージンをデフォルトから変更する場合の値。 -\item[説明] Setslidemargin([+5,-10]);(横方向に$+5$mm,縦方向に$-10$mm変更) +\item[関数]Setslidemargin([leftmarginchange,topmarginchange]) +\item[機能]スライドの左上マージンをデフォルトから変更する場合の値。 +\item[説明]Setslidemargin([+5,-10]);(横方向に$+5$mm,縦方向に$-10$mm変更) \vspace{\baselineskip} \hypertarget{settitle}{} -\item[関数] Settitle(タイトルリスト,options) -\item[機能] タイトルスライドを作る -\item[説明] タイトルリストはコンマ区切りで位置と文を文字列で与える。例を参照。 +\item[関数]Settitle(タイトルリスト,options) +\item[機能]タイトルスライドを作る +\item[説明]タイトルリストはコンマ区切りで位置と文を文字列で与える。例を参照。 「Title」ボタンをクリックすると,コンテンツファイルがない場合は新たに作る。すでにある場合は上書きせずタイトルスライドのみを作る。 Settitleのオプションは次をリストで与える。 @@ -5907,22 +5910,22 @@ Settitleのオプションは次をリストで与える。 【例】タイトルの設定 \begin{verbatim} - Settitle([ - "s{60}{20}{メインタイトル}", - "s{60}{50}{名前}", - "s{60}{60}{所属}", - "s{60}{70}{情報}" - ] , - ["Title=SlideA","Color=[1,1,0,0]"]); +Settitle([ +"s{60}{20}{メインタイトル}", +"s{60}{50}{名前}", +"s{60}{60}{所属}", +"s{60}{70}{情報}" +] , +["Title=SlideA","Color=[1,1,0,0]"]); \end{verbatim} -出力する \TeX\ ファイルに,\verb|\begin{layer}| の設定をする。 \verb|s| は,東西南北の\verb|s| 。 +出力する \TeX\ ファイルに,\verb|\begin{layer}| の設定をする。 \verb|s| は,東西南北の\verb|s|。 例のように,タイトルリストは改行すると見やすい。 \end{description} \newpage -%================== 3D 概要 =============== +%================== 3D概要 =============== \section{\ketcindy 3D} \subsection{概要} \ketcindy 3Dの画面は次のように構成される。 @@ -5944,16 +5947,16 @@ Cinderellaの描画面に,白の矩形で囲んだ領域が2つできる。NE, KeTCindy3Dでは,線や面についての陰線処理を行う。陰線処理はC言語との連携により処理を速めている。C言語を使う環境整備が必要であるが,現在はこれを標準としている。C言語が使えない場合はRで計算する関数を用いることになるが,その場合はかなり時間がかかる。(場合にもよるが2分程度) -%================== 3D 設定 =============== +%================== 3D設定 =============== \newpage \subsection{設定} \begin{description} \hypertarget{ketinit3d}{} -\item[関数] Ketinit3d() -\item[機能] KeTCindy3Dの使用宣言 -\item[説明] Cinderellaの画面を3Dモードにする。 +\item[関数]Ketinit3d() +\item[機能]KeTCindy3Dの使用宣言 +\item[説明]Cinderellaの画面を3Dモードにする。 Cinderellaの描画面に,視点移動のための2つのスライダを作る。スライダは初期位置が左端になる。スライダTHで角THETAを,スライダFIで角PHIを内部変数として定義する。 @@ -5961,14 +5964,34 @@ Cinderellaの描画面に,視点移動のための2つのスライダを作る \textcolor{red}{<重要>} - この関数は Initialization スロットに置く。Ketinit() も,平面の場合と異なり Initialization スロットに置く。KeTCindy3Dにおける変数の初期化などを行う,Start3d()はDrawスロットに書く。 - -%---------------- Start3d -------------------------------------------- +この関数は Initialization スロットに置く。Ketinit() も,平面の場合と異なり Initialization スロットに置く。KeTCindy3Dにおける変数の初期化などを行う,Start3d()はDrawスロットに書く。 + +%----------------Setangle -------------------------------------------- +\vspace{\baselineskip} +\hypertarget{setangle}{} +\item[関数]Setangle(TH,FI) +\item[機能]回転角の指定 +\item[説明]スライダで設定できる回転角(視点の位置)TH と FI を度数法で指定する。 +たとえば,\verb|Setangle(70,40)| とすると,TH,FIがその位置になる。スライダは固定されるので,再度スライダを有効にしたい場合は,コメント化して再実行する。 + +初期状態だけを決めたい場合は + +\verb| if(!Ptselected(),Setangle(70,40)); | + +または + +\verb| if(!Isangle(),Setangle(70,40)); | + +とすると,スライダは有効となり,スライダのいずれかの点を選択した状態であれば Figure ボタンも有効である。画面上のなにもないところをクリックして,点の選択状態を解除するともとに戻る。 + +回転角の取得については,\hyperlink{getangle}{回転角の取得}を参照のこと。 + +%----------------Start3d -------------------------------------------- \vspace{\baselineskip} \hypertarget{start3d}{} -\item[関数] Start3d(option) -\item[機能] 3Dの画面設定と空間点の認識 -\item[説明] 副画面を作り,幾何点を3Dの点として認識する。この関数は必須で,Drawスロットの先頭に書く。 +\item[関数]Start3d(option) +\item[機能]3Dの画面設定と空間点の認識 +\item[説明]副画面を作り,幾何点を3Dの点として認識する。この関数は必須で,Drawスロットの先頭に書く。 Cinderellaの作図ツールで,点・線分を作図すると,内部関数の Ptseg3data() によってそれらを空間の点として認識し,副画面上に対応する点をとる。ただし,始めはz座標を0とする。点の名前がAであれば,副画面上の点はAzとなる。点をポイントして選択すると副画面の上に座標が表示される。 @@ -5976,34 +5999,34 @@ Cinderellaの作図ツールで,点・線分を作図すると,内部関数 optionに,除外点のリストを与えると,その点は空間点としない。(スライダで視点を移動しても位置は変わらない) - %---------------- Startsurf -------------------------------------------- + %----------------Startsurf -------------------------------------------- \vspace{\baselineskip} \hypertarget{startsurf}{} -\item[関数] Startsurf(options) -\item[機能] 曲面描画の初期化と定数の設定 -\item[説明] options で定数を設定する。定数としては,分割数,Cのサイズ,誤差の限界を設定する。 +\item[関数]Startsurf(options) +\item[機能]曲面描画の初期化と定数の設定 +\item[説明]options で定数を設定する。定数としては,分割数,Cのサイズ,誤差の限界を設定する。 optionsがないときは,以下の 初期設定を用いる。 - [50,50],[1500,500,200],[0.01,0.1] + [50,50],[1500,500,200],[0.01,0.1] 設定後に初期値にリセットするときは,文字列 "reset" を引数に与える。 これにより,陰線処理をともなう面の描画の手順は,次のようになる。 -(1) Startsurf(); で面描画の宣言をする。 +(1)Startsurf(); で面描画の宣言をする。 (2) 描画関数でプロットデータを作る。 (3) ExeccmdC(); で,C言語を用いてまとめて描画する。 -%-------------------Xyzaxdata3d ----------------------------------------------- +%-------------------Xyzaxdata3d----------------------------------------------- \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} \hypertarget{xyzax3data}{} -\item[関数] Xyzax3data(name,xの範囲,yの範囲,zの範囲,options) -\item[機能] 座標軸を描く -\item[説明] 描画面に座標軸を描き,プロットデータ ax3d を作成する。nameは空文字列でよい。option は次の2つ。 +\item[関数]Xyzax3data(name,xの範囲,yの範囲,zの範囲,options) +\item[機能]座標軸を描く +\item[説明]描画面に座標軸を描き,プロットデータ ax3dを作成する。nameは空文字列でよい。option は次の2つ。 矢じり:"an":nは数字で矢じりの大きさ。nはなくてもよい。 @@ -6011,7 +6034,7 @@ optionsがないときは,以下の 初期設定を用いる。 【例】 初期設定の座標軸\\ \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");| - + 矢じりをつける \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");| @@ -6019,7 +6042,7 @@ optionsがないときは,以下の 初期設定を用いる。 矢じりを大きくする \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);| - + 原点のOを表示する。 \verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);| @@ -6032,42 +6055,42 @@ optionsがないときは,以下の 初期設定を用いる。 【注意】Putaxes3d() で点を取ると原点に点Oが作成される。この点名Oと表示が重複するのが煩わしい場合は,作図後にこのoptionをつけてから出力するとよい。 \end{description} -%================== 3D 描画 =============== +%================== 3D描画 =============== \newpage \subsection{描画} -%================== 3D 点・線 =============== +%================== 3D点・線 =============== \subsubsection{点・線} \begin{description} - %---------------- Drawpoint3d -------------------------------------------- + %----------------Drawpoint3d -------------------------------------------- %\hypertarget{drawpoint3d}{} -%\item[関数] Drawpoint3d(座標) -%\item[機能] 空間点を描く -%\item[説明] 引数で与えた空間座標の点を描く。この点は幾何点ではない。また,TeX にも出力されない。幾何点にするには \hyperlink{putpoint3d}{Putpoint3d()} を用いる。TeXに点を出力するには,\hyperlink{pointdata3d}{Pointdata3d()} を用いる。 +%\item[関数]Drawpoint3d(座標) +%\item[機能]空間点を描く +%\item[説明]引数で与えた空間座標の点を描く。この点は幾何点ではない。また,TeX にも出力されない。幾何点にするには \hyperlink{putpoint3d}{Putpoint3d()} を用いる。TeXに点を出力するには,\hyperlink{pointdata3d}{Pointdata3d()} を用いる。 %引数は,座標のリストにすることもできる。 %\vspace{\baselineskip} %【例】 %\begin{verbatim} -% Drawpoint3d([1,1,1]); -% Drawpoint3d([[1,1,1],[0,1,0]]); +%Drawpoint3d([1,1,1]); +%Drawpoint3d([[1,1,1],[0,1,0]]); %\end{verbatim} %\vspace{\baselineskip} - %---------------- Pointdata3d -------------------------------------------- + %----------------Pointdata3d -------------------------------------------- \hypertarget{pointdata3d}{} -\item[関数] Pointdata3d(名前,点リスト,options) -\item[機能] 点の3Dデータと2Dデータを作成し,画面と\TeX に出力する。 -\item[説明] optionsは\hyperlink{pointdata}{Pointdata()}と同様。 +\item[関数]Pointdata3d(名前,点リスト,options) +\item[機能]点の3Dデータと2Dデータを作成し,画面と\TeX に出力する。 +\item[説明]optionsは\hyperlink{pointdata}{Pointdata()}と同様。 \vspace{\baselineskip} 【例】 \begin{verbatim} - Pointdata3d("1",[[1,1,1],[0,1,0]],["Size=2","Color=red"]); +Pointdata3d("1",[[1,1,1],[0,1,0]],["Size=2","Color=red"]); \end{verbatim} \vspace{\baselineskip} @@ -6075,9 +6098,9 @@ optionsがないときは,以下の 初期設定を用いる。 \vspace{\baselineskip} %---------------- Putpoint3d---------------------------------------------- \hypertarget{putpoint3d}{} -\item[関数] Putpoint3d(リスト,option) -\item[機能] 空間に幾何点を作図する -\item[説明] 点の名称と座標を与えて点を作図する。複数の点を一度に作図できる。 +\item[関数]Putpoint3d(リスト,option) +\item[機能]空間に幾何点を作図する +\item[説明]点の名称と座標を与えて点を作図する。複数の点を一度に作図できる。 optionは,"fix"( 初期設定) または "free"。リスト ["free"] にしてもよい。 @@ -6088,78 +6111,78 @@ optionは,"fix"( 初期設定) または "free"。リスト ["free"] にして \vspace{\baselineskip} 【例】いくつか記述例を示す。 - \verb|Putpoint3d(["A",[2,1,3]]);| - - \verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");| - - \verb|Putpoint3d(["A",[2,1,3]],"free");| - +\verb|Putpoint3d(["A",[2,1,3]]);| + +\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");| + +\verb|Putpoint3d(["A",[2,1,3]],"free");| + \vspace{\baselineskip} - なお,この関数は幾何点を作るものであり,TeXには出力されない。TeXに点を出力するには,\hyperlink{pointdata}{Pointdata()} を併用する。 - - 空間における点の座標は,点名に"3d"を付加した名前の変数に代入される。たとえば,点Aの座標はA3dである。これにより,点の座標を取得できる。 +なお,この関数は幾何点を作るものであり,TeXには出力されない。TeXに点を出力するには,\hyperlink{pointdata}{Pointdata()} を併用する。 + +空間における点の座標は,点名に"3d"を付加した名前の変数に代入される。たとえば,点Aの座標はA3dである。これにより,点の座標を取得できる。 \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %---------------- Putaxes3d--------------------------------------------- + %----------------Putaxes3d--------------------------------------------- \vspace{\baselineskip} \hypertarget{putaxes3d}{} -\item[関数] Putaxes3d([x,y,z]) -\item[機能] 軸上に幾何点を作る。 -\item[説明] 引数のリスト [x,y,z] に対し,点X(x,0,0) ,Y(0,y,0) , Z(0,0,z) および 原点Oを主画面上にとり,副画面上に対応する点Xz,Yz,Zz,Oz を作る。すでに同じ名称の点がある場合は,指定された位置に移動する。 +\item[関数]Putaxes3d([x,y,z]) +\item[機能]軸上に幾何点を作る。 +\item[説明]引数のリスト [x,y,z] に対し,点X(x,0,0) ,Y(0,y,0) , Z(0,0,z) および 原点Oを主画面上にとり,副画面上に対応する点Xz,Yz,Zz,Oz を作る。すでに同じ名称の点がある場合は,指定された位置に移動する。 引数は,実数にすることもでき,Putaxes3d(a) は,Putaxes3d([a,a,a]) と同じになる。 - + \vspace{\baselineskip} 【例】 -Putaxes3d(5); 原点と,$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。 +Putaxes3d(5);原点と,$x(5,0,0),y(0,5,0),z(0,0,5)$ を作る。 -Putaxes3d([1,2,3]); 原点と,$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。 +Putaxes3d([1,2,3]);原点と,$x(1,0,0),y(0,2,0),z(0,0,3)$ を作る。 \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} - %---------------- PutonCurve3d--------------------------------------------- + %----------------PutonCurve3d--------------------------------------------- \vspace{\baselineskip} \hypertarget{putonCurve3d}{} -\item[関数] PutonCurve3d(点名,PD) -\item[機能] 空間曲線上に点をとる -\item[説明] プロットデータPDの曲線上に,点名の点をとる。 +\item[関数]PutonCurve3d(点名,PD) +\item[機能]空間曲線上に点をとる +\item[説明]プロットデータPDの曲線上に,点名の点をとる。 とった点は固定点ではなく,曲線上にインシデントとなる。したがって,ドラッグして曲線上を動かすことができる。例は \hyperlink{partcrv3d}{Partcrv3d()} を参照のこと。 %---------------- Putonseg3d---------------------------------------------- \vspace{\baselineskip} \hypertarget{putonseg3d}{} -\item[関数] Putonseg3d(点名,点1,点2) -\item[機能] 線分上に点を作る -\item[説明] 点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。指定した点がすでに存在する場合は動かさない。 +\item[関数]Putonseg3d(点名,点1,点2) +\item[機能]線分上に点を作る +\item[説明]点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。指定した点がすでに存在する場合は動かさない。 点1,点2は幾何点の名称または座標で指定する。 \vspace{\baselineskip} 【例】A(1,-1,0)とB(0,2,2) の中点に点Cをとる。つぎのいずれでもよい。 - \verb|Putonseg3d("C",A,B);| +\verb|Putonseg3d("C",A,B);| - \verb|Putonseg3d("C",[A,B]);| - - \verb|Putonseg3d("C",[[1,-1,0],[0,2,2]]);| +\verb|Putonseg3d("C",[A,B]);| + +\verb|Putonseg3d("C",[[1,-1,0],[0,2,2]]);| \vspace{\baselineskip} %------------------ Spaceline----------------------------------------------- \hypertarget{spaceline}{} -\item[関数] Spaceline(name,list) -\item[機能] 折れ線を描く -\item[説明] 点の名称または座標のリストを与えて折れ線を描く。平面での Listplot() にあたる。 +\item[関数]Spaceline(name,list) +\item[機能]折れ線を描く +\item[説明]点の名称または座標のリストを与えて折れ線を描く。平面での Listplot() にあたる。 options は線種(dr,da,do) \vspace{\baselineskip} 【例】いくつか示す。 -・Spaceline("1",[[2,5,1],[4,2,3]]); 指定された2点を結んだ線分を描く。 +・Spaceline("1",[[2,5,1],[4,2,3]]); 指定された2点を結んだ線分を描く。 -・Spaceline("2",[A,B,C,A]); 作図されている2点A,B,Cを結んだ三角形を描く。 +・Spaceline("2",[A,B,C,A]);作図されている2点A,B,Cを結んだ三角形を描く。 ・節点を表示する場合は,Pointdata3d() で描画する。 @@ -6168,9 +6191,9 @@ options は線種(dr,da,do) \putnotese{80}{10}{ \input{Fig/oresenex01}} \end{layer} \begin{verbatim} - pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; - Spaceline("1",pt); - Pointdata3d("1",pt,["Size=3"]); +pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; +Spaceline("1",pt); +Pointdata3d("1",pt,["Size=3"]); \end{verbatim} 点の名前が必要であれば @@ -6181,68 +6204,68 @@ options は線種(dr,da,do) \vspace{\baselineskip} %------------------ Spacecurve----------------------------------------------- \hypertarget{spacecurve}{} -\item[関数] Spacecurve(name,式,定義域,options) -\item[機能] 空間曲線を描く -\item[説明] 媒介変数で表された曲線を描く。optionは解像度 Num +\item[関数]Spacecurve(name,式,定義域,options) +\item[機能]空間曲線を描く +\item[説明]媒介変数で表された曲線を描く。optionは解像度 Num \vspace{\baselineskip} 【例】螺旋を描く \verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);| - + \vspace{\baselineskip} \begin{center} \input{Fig/rasen} \end{center} %---------------- Bezier3d----------------------------------------------- \hypertarget{bezier3d}{} -\item[関数] Bezier3d(name,リスト1,リスト2) -\item[機能] 空間ベジェ曲線を描く -\item[説明] 引数はリスト1が端点リスト,リスト2が制御点リスト +\item[関数]Bezier3d(name,リスト1,リスト2) +\item[機能]空間ベジェ曲線を描く +\item[説明]引数はリスト1が端点リスト,リスト2が制御点リスト 1組の端点につき,2つの制御点を使う。 \vspace{\baselineskip} 【例】いくつかの点をベジェ曲線で結ぶ - 端点A,Bに対し,制御点をD,Eとする。 - - \verb|Bezier3d("1",["A","B"],["D","E"]);| \vspace{\baselineskip} +端点A,Bに対し,制御点をD,Eとする。 + +\verb|Bezier3d("1",["A","B"],["D","E"]);| \vspace{\baselineskip} + +端点A,Bに対し,制御点をD,Eとし,端点BCに対し制御点をE,Fとする。 + +\verb|Bezier3d("1",["A","B","C"],["D","E","E","F"]);| - 端点A,Bに対し,制御点をD,Eとし,端点BCに対し制御点をE,Fとする。 - - \verb|Bezier3d("1",["A","B","C"],["D","E","E","F"]);| - 端点A,Bに対し,制御点をD,Eとし,端点BCに対し制御点をF,Gとする。(図) - \verb|Bezier3d("1",["A","B","C"],["D","E","F","G"]);| - - \begin{center} \input{Fig/bezier3d1} \end{center} +\verb|Bezier3d("1",["A","B","C"],["D","E","F","G"]);| + +\begin{center} \input{Fig/bezier3d1} \end{center} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------ Mkbezierptcrv3d----------------------------------------------- \vspace{\baselineskip} \hypertarget{mkbezierptcrv3d}{} -\item[関数] Mkbezierptcrv3d(点リスト) -\item[機能] 制御点を自動的にとる空間ベジェ曲線 -\item[説明] リストで与えた点に対し,制御点を自動的に生成してベジェ曲線を描く。 +\item[関数]Mkbezierptcrv3d(点リスト) +\item[機能]制御点を自動的にとる空間ベジェ曲線 +\item[説明]リストで与えた点に対し,制御点を自動的に生成してベジェ曲線を描く。 + +制御点は,2つの点に対して,その点を端点とする線分上に2つ作られる。これを適宜移動して任意の曲線にすることができる。\hyperlink{bezier3d}{空間ベジェ曲線 Bezier3d()} を参照のこと。 - 制御点は,2つの点に対して,その点を端点とする線分上に2つ作られる。これを適宜移動して任意の曲線にすることができる。\hyperlink{bezier3d}{空間ベジェ曲線 Bezier3d()} を参照のこと。 - \vspace{\baselineskip} 【例】\verb|Mkbezierptcrv3d(["A","B","C","D"]);|\\ - 線分AB上に2点a1p,a2p,線分BC上に2点a2p,a2q,線分CD上に2点a3p,a3qができる。 - +線分AB上に2点a1p,a2p,線分BC上に2点a2p,a2q,線分CD上に2点a3p,a3qができる。 + \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} %------------------ Skeletonparadata----------------------------------------------- \hypertarget{skeletonparadata}{} -\item[関数] Skeletonparadata(name,PDリスト,PDリスト,option) -\item[機能] 陰線処理(スケルトン処理)をおこなう -\item[説明] 描画されている線と軸について陰線処理をおこなう。 +\item[関数]Skeletonparadata(name,PDリスト,PDリスト,option) +\item[機能]陰線処理(スケルトン処理)をおこなう +\item[説明]描画されている線と軸について陰線処理をおこなう。 第2引数の線(プロットデータ)が,第3引数の線(プロットデータ)によって隠される部分を消去する。第2,第3引数を省略した場合は,すべての線について,互いの陰線処理をおこなう。optionで消去する部分の長さを指定できる。\\ 他のオプション\\ @@ -6256,11 +6279,11 @@ options は線種(dr,da,do) 次のように螺旋と線分,座標軸を描いておく。 \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]"); - Putpoint3d(["A",[0,-2,-2]]); - Putpoint3d(["B",[-1,1,3]]); - Spaceline([A,B]); - Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); +Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]"); +Putpoint3d(["A",[0,-2,-2]]); +Putpoint3d(["B",[-1,1,3]]); +Spaceline([A,B]); +Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); \end{verbatim} 座標軸のプロットデータは ax3d,線分は AB3d,螺旋は sc3d1 である。これに対し, @@ -6273,10 +6296,10 @@ options は線種(dr,da,do) 重なった部分の空きを2にする。(図中央) \hspace{10mm} \verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);| - + 螺旋によって隠れる部分だけ消去する。(図右) -\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02} +\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02} \input{Fig/skeletonparadata03} \end{center} このほか,次も可能。 @@ -6287,14 +6310,14 @@ options は線種(dr,da,do) \end{description} - -%================== 3D 多面体 =============== +\newpage +%================== 3D多面体 =============== \subsubsection{多面体} 多面体の描画について,四面体の場合を例にして説明する。 四面体は4つの面からなっている。頂点をA,B,C,Dとすると,4つの面は - + \hspace{20mm} △ABC,△ABD,△ACD,△BCD である。 @@ -6312,16 +6335,16 @@ options は線種(dr,da,do) 多面体の陰線処理は2通りある。ひとつは,多面体を線画と考えて,隠れる部分だけを処理する方法で,Skeletonparadata() を用いる。\hyperlink{concatobj}{Concatobj()} の例を参照のこと。 もうひとつは,面と考えて,面に隠れる部分を点線で描いたり,非表示にしたりする方法で,Phparadata() を用いる。 \hyperlink{phparadata}{Phparadata()}の例を参照のこと。 - + \begin{description} %-----------------Concatobj ----------------------------------------------- -\hypertarget{concatobj}{} -\item[関数] Concatobj(リスト,option) -\item[機能] いくつかのobjデータを結合する -\item[説明] 多面体の各面の頂点リストから面データ(頂点リストと面リスト)を作る。 +\hypertarget{concatobj}{} +\item[関数]Concatobj(リスト,option) +\item[機能]いくつかのobjデータを結合する +\item[説明]多面体の各面の頂点リストから面データ(頂点リストと面リスト)を作る。 -たとえば,\verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);| とすると,面データ [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] が返される。 +たとえば,\verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);| とすると,面データ[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] が返される。 \vspace{\baselineskip} 【例】4点A,B,C,Dを幾何点として作り,これを頂点とする四面体を描く。 @@ -6368,9 +6391,9 @@ phd=convexhull3d([a,b,c,d]); \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %-------------------VertexEdgeFace ----------------------------------------------- \hypertarget{vertexedgeface}{} -\item[関数] VertexEdgeFace(name,面データ,options) -\item[機能] 面データを用いて多面体を描く -\item[説明] 面データは,たとえば四面体ABCDの場合は,[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] である。 +\item[関数]VertexEdgeFace(name,面データ,options) +\item[機能]面データを用いて多面体を描く +\item[説明]面データは,たとえば四面体ABCDの場合は,[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] である。 4点A,B,C,Dをとっておき,このリストを引数に与えると,四面体が描かれる。 @@ -6387,12 +6410,12 @@ phf3d:面リスト \vspace{\baselineskip} 【例】4点A,B,C,Dを取り,正四面体ABCDを描く \begin{verbatim} - Putpoint3d("A",2*[-1,-1/sqrt(3),0]); - Putpoint3d("B",2*[1,-1/sqrt(3),0]); - Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); - Putpoint3d("D",2*[0,0,sqrt(3)]); - phd=[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]]; - VertexEdgeFace("1",phd); +Putpoint3d("A",2*[-1,-1/sqrt(3),0]); +Putpoint3d("B",2*[1,-1/sqrt(3),0]); +Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); +Putpoint3d("D",2*[0,0,sqrt(3)]); +phd=[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]]; +VertexEdgeFace("1",phd); \end{verbatim} \begin{center} \input{Fig/vertex01} \end{center} 面リストは,Congatobj() を使って作ることができる。陰線処理して描く場合も含め,\hyperlink{concatobj}{Concatobj()} の例を参照のこと。 @@ -6400,18 +6423,18 @@ phf3d:面リスト \vspace{\baselineskip} %------------------Phparadata ----------------------------------------------- \hypertarget{phparadata}{} -\item[関数] Phparadata(name,name2,options) -\item[機能] 多面体を陰線処理して描く -\item[説明] 多面体のプロットデータをVertexEdgeFace() で作る。このプロットデータに対し,隠れている面(辺)を陰線処理して表示する。第1引数は通常のname,第2引数のname2は,VertexEdgeFace() で与えたnameと同じものとする。 +\item[関数]Phparadata(name,name2,options) +\item[機能]多面体を陰線処理して描く +\item[説明]多面体のプロットデータをVertexEdgeFace() で作る。このプロットデータに対し,隠れている面(辺)を陰線処理して表示する。第1引数は通常のname,第2引数のname2は,VertexEdgeFace() で与えたnameと同じものとする。 - optionsは,全体の線種("dr,2"など)と,陰線の線種を"Hidden=線種" で指定できる。 初期設定では陰線は表示しない。 +optionsは,全体の線種("dr,2"など)と,陰線の線種を"Hidden=線種" で指定できる。 初期設定では陰線は表示しない。 \vspace{\baselineskip} \begin{layer}{150}{0} -\putnotese{80}{0}{ \input{Fig/phparadata04}} +\putnotese{80}{-5}{ \input{Fig/phparadata04}} \end{layer} -【例】 四面体を描く。 +【例】四面体を描く。 \begin{verbatim} Putpoint3d("A",2*[-1,-1/sqrt(3),0]); Putpoint3d("B",2*[1,-1/sqrt(3),0]); @@ -6428,16 +6451,16 @@ Figureボタンで描き出せば正しく出力されるので,Phparadata() \vspace{\baselineskip} 【例】切頂二十面体を描く。 -小林・鈴木・三谷による多面体データ \verb|polyhedrons_obj| を用いて,s06の切頂二十面体(サッカーボール型)を描く。 \verb|polyhedrons_obj| は KeTCindyシステムの data ディレクトリにあるので,Setdirectory() でカレントディレクトリを作業ディレクトリと切替ながら出力する。 +小林・鈴木・三谷による多面体データ\verb|polyhedrons_obj|を用いて,s06の切頂二十面体(サッカーボール型)を描く。 \verb|polyhedrons_obj| は KeTCindyシステムの data ディレクトリにあるので,Setdirectory() でカレントディレクトリを作業ディレクトリと切替ながら出力する。 \begin{verbatim} - Setdirectory( Dirhead+"/data/polyhedrons_obj"); - phd=Readobj("s06.obj",["size=3"]); - Setdirectory(Dirwork); - VertexEdgeFace("s06",phd); - Phparadata("1","s06"); +Setdirectory( Dirhead+"/data/polyhedrons_obj"); +phd=Readobj("s06.obj",["size=3"]); +Setdirectory(Dirwork); +VertexEdgeFace("s06",phd); +Phparadata("1","s06"); \end{verbatim} - VertexEdgeFace() の name は通常の "1" でもよい。その場合は,\verb|Phparadata("1","1");| とするが,わかりにくいので上のようにした。 - +VertexEdgeFace() の name は通常の "1" でもよい。その場合は,\verb|Phparadata("1","1");| とするが,わかりにくいので上のようにした。 + 実行すると,Cinderellaの描画面は次のように頂点だけが描かれる。 \vspace{\baselineskip} @@ -6447,33 +6470,33 @@ Figureボタンで描き出せば正しく出力されるので,Phparadata() \vspace{\baselineskip} 全体の線種と,陰線の線種を - + \verb|Phparadata("1","s06",["dr,2","Hidden=do"]);| で指定したのが下図右である。 - \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center} + \begin{center}\scalebox{0.8} {\input{Fig/phparadata02}} \hspace{5mm}\scalebox{0.8}{\input{Fig/phparadata03}} \end{center} 【注意】 - polyhedrons obj のデータを使って,続けて異なる多面体を描きたい場合は注意が必要である。Readobj()だけを変更して別のデータを読めばよさそうであるが,前のデータが残っていてうまくいかない。VertexEdgeFace() のname を(したがって,Phparadata()の第2引数も)書き換えるか,作業フォルダ(fig) の中身を削除してから実行する。たとえば,上のコードで切頂二十面体を描いた後,正八面体(r02)を描こうとするならば, +polyhedrons obj のデータを使って,続けて異なる多面体を描きたい場合は注意が必要である。Readobj()だけを変更して別のデータを読めばよさそうであるが,前のデータが残っていてうまくいかない。VertexEdgeFace() のname を(したがって,Phparadata()の第2引数も)書き換えるか,作業フォルダ(fig) の中身を削除してから実行する。たとえば,上のコードで切頂二十面体を描いた後,正八面体(r02)を描こうとするならば, \begin{verbatim} - Setdirectory( Dirhead+"/data/polyhedrons_obj"); - phd=Readobj("r02.obj",["size=3"]); - Setdirectory(Dirwork); - VertexEdgeFace("2",phd); - Phparadata("1","2"); +Setdirectory( Dirhead+"/data/polyhedrons_obj"); +phd=Readobj("r02.obj",["size=3"]); +Setdirectory(Dirwork); +VertexEdgeFace("2",phd); +Phparadata("1","2"); \end{verbatim} - のようにする。 - +のようにする。 + \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------- Nohiddenbyfaces ----------------------------------------------- \hypertarget{nohiddenbyfaces}{} -\item[関数] Nohiddenbyfaces(name,PD1,PD2,option1,option2) -\item[機能] 面に対し曲線を陰線処理する -\item[説明] PD2で与えられた面に対し,曲線PD1の面に隠れている部分を陰線処理する。 +\item[関数]Nohiddenbyfaces(name,PD1,PD2,option1,option2) +\item[機能]面に対し曲線を陰線処理する +\item[説明]PD2で与えられた面に対し,曲線PD1の面に隠れている部分を陰線処理する。 引数PD1を省略するとすべての曲線が対象となる。陰線処理された線は初期設定では点線で表される。この線種はoption2で変更できる。たとえば,["da"] とすると破線になる。["nodsip"] とすると,陰線は表示されない。option1は曲線全体のoptionであるので,option2 だけを指定する場合は,option1 として空リスト[ ] が必要である。 option2では,"Eps=" で,陰線処理時の許容限界を設定できる。陰線処理がうまくいかないときは,この値を \verb|Eps=10^(-4)| のように変えてみるとよい。初期設定は \verb|Eps=10^(-2)|。 @@ -6491,23 +6514,23 @@ VertexEdgeFace("1",phd); Nohiddenbyfaces("1","phf3d1"); \end{verbatim} - \verb|VertexEdgeFace("1",phd);| によって,辺,頂点,面のプロットデータが作られる。\verb|phf3d1| は,面のプロットデータである。 - +\verb|VertexEdgeFace("1",phd);| によって,辺,頂点,面のプロットデータが作られる。\verb|phf3d1| は,面のプロットデータである。 + ここで,\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); | とすると,座標軸は陰線処理されず,正四面体の辺(\verb|phe3d1|)だけが陰線処理されて破線で描かれる。四面体は太く描かれる。(下図右) - + \vspace{\baselineskip} - \begin{center} \input{Fig/nohiddenbyfaces1} \input{Fig/nohiddenbyfaces2} \end{center} +\begin{center} \input{Fig/nohiddenbyfaces1}\input{Fig/nohiddenbyfaces2} \end{center} 同様に, - \verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);| - +\verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);| + とすれば,座標軸だけが陰線処理されて破線で描かれる。 %\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} -%================== 3D 曲面 =============== +%================== 3D曲面 =============== \subsubsection{曲面} 曲面の描画には,ワイヤーフレームモデルとサーフェスモデルがある。ワイヤーフレームモデルは,曲面を編目で表すものであり,サーフェスモデルは編目のない面として,その輪郭線を描くものである。 @@ -6521,9 +6544,9 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 12345678901234567890123456789012345678\=\kill 陰線処理をしないワイヤーフレームモデル \>Sf3data(name,form,options)\\ サーフェスモデル \>Sfbdparadata(name,form,options)\\ -陰線処理をしたワイヤーフレームモデル \>Wireparadata(name,PD,form,n1,n2,options) +サーフェスモデルにワイヤーを描く \>Wireparadata(name,PD,form,n1,n2,options) \end{tabbing} -ただし,陰線処理をするためには面のデータが必要なので,Sfbdparadata() で描画した後,Wireparadata()で陰線処理して描画する。 +ワイヤーフレームモデルで陰線処理をするためには,面のデータが必要なので,Sfbdparadata() で描画した後,Wireparadata()で描画する。 また,サーフェスモデルの描画では,陰線処理に時間がかかるため,C言語の使用を前提としている。したがって,C言語を用いて描画を行う ExeccmdC() を併用する。 @@ -6543,7 +6566,7 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 (3) $x=f(u,v),y=g(u,v),z=h(u,v),$ - \hspace{5mm} 【例】式:$x=2\sin u \cos v , y=2\sin u \sin v , z=2\cos u $ + \hspace{5mm} 【例】式:$x=2\sin u \cos v , y=2\sin u \sin v, z=2\cos u $ \hspace{15mm} 定義域:$u=(0,\pi) , v=(0,2\pi)$ @@ -6555,7 +6578,7 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 \begin{center} \input{Fig/ewsn} \end{center} -この境界指定を最後に付加するが,省略することもでき,省略した場合は初期値の "ewsn" (閉区間)とする。ともに開区間とする場合は,"" を付加する。ただし,陰線処理をしない Sf3data() では,境界にも線を引くので,この指定は省略してよい。 +この境界指定を最後に付加するが,省略することもでき,省略した場合は初期値の "ewsn" (閉区間)とする。ともに開区間とする場合は,"" とする。ただし,陰線処理をしない Sf3data() では,境界にも線を引くので,この指定は無効となる。 具体的な例を示そう。 @@ -6567,7 +6590,7 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 \vspace{\baselineskip} "ew" は $1 \leq r \leq 2$ であることを示す。したがって,円錐台の上面と底面が表示される。 -これを "e" とすると $1 < r \leq 2$ となり,上面が表示されない。 +これを "e" とすると $1 <r \leq 2$ となり,上面が表示されない。 また,これを "w" とすると $1 \leq r < 2$ となり,底面が表示されない。 @@ -6578,14 +6601,16 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 \input{Fig/frustumew} \input{Fig/frustume} \input{Fig/frustumw} \input{Fig/frustumewn} +球面を描く場合はこの点で留意することがある。球面をサーフェスモデルで描くと単に円にしか見えないので,多くの場合はサーフェスモデルで描いた球面に Wireparadata() で陰線処理したワイヤーを入れることになるだろう。その場合,Wireparadata() では境界線には線を引かないので,境界指定を "s" として,境界線を引く必要がある。境界指定を "" とすると,経線が1本足りなくなるので注意されたい。具体例は,Wireparadata() に例示してある。 + \begin{description} %------------------ Sf3data ----------------------------------------------- \vspace{\baselineskip} \hypertarget{sf3data}{} -\item[関数] Sf3data(name,リスト,options) -\item[機能] 陰線処理なしの曲面をワイヤーフレームモデルで描く -\item[説明] optionsは,メッシュの密度と解像度(各変数に対応する分割数)。 +\item[関数]Sf3data(name,リスト,options) +\item[機能]陰線処理なしの曲面をワイヤーフレームモデルで描く +\item[説明]optionsは,メッシュの密度と解像度(各変数に対応する分割数)。 メッシュ密度は,縦横で "Wire=[a,b]" で指定。初期値はa,bとも20。 @@ -6599,44 +6624,44 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 【例】 $z=f(x,y)$ 型 $z=x^2-y^2$を定義域$x=[-2,2],y=[-2,2]$ で描画する。 - -\verb| fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\ -\verb| Sf3data("1",fd)|; - + +\verb| fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];|\\ +\verb| Sf3data("1",fd)|; + メッシュの数を縦横とも10,解像度をx,yとも10にすると メッシュ密度,解像度とも下げるので粗い描画となる。 \verb|Sf3data("1",fd,["Num=[10,10]","Wire=[10,10]"]);| - + \vspace{\baselineskip} 【例】$z=f(x,y),x=g(r,t),y=h(r,t)$型 次図左 - + \verb|fd=["z=4-(x^2+y^2)","x=r*cos(t)","y=r*sin(t)","r=[0,2]","t=[0,2*pi]"];| \verb|Sf3data("1",fd);| - + 次図右 \verb|fd=["z=sin(sqrt(abs(x^2+y^2)))","x=r*cos(t)","y=r*sin(t)",| -\verb| "r=[0,3]","t=[0,2*pi]"];| +\verb| "r=[0,3]","t=[0,2*pi]"];| \verb|Sf3data("1",fd);| - \begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center} +\begin{center} \input{Fig/parabola} \input{Fig/sf3ddata3} \end{center} (3) $x=f(u,v),y=g(u,v),z=h(u,v),$ 型 - この場合,(2)と区別するために,"p" を先頭につけておく。 - +この場合,(2)と区別するために,"p" を先頭につけておく。 + \vspace{\baselineskip} 【例】球面 \verb|fd=["p","x=2*sin(u)*cos(v)","y=2*sin(u)*sin(v)","z=2*cos(u)",| - + \verb|"u=[0,pi]","v=[0,2*pi]",""];| \verb|Sf3data("1",fd);| @@ -6646,9 +6671,9 @@ KeTCindyでは,それぞれ次の関数を用いて描画する。 %------------------ Sfbdparadata ----------------------------------------------- \hypertarget{sfbdparadata}{} -\item[関数] Sfbdparadata(name,式,options) -\item[機能] 陰線処理した曲面のデータを作る -\item[説明] この関数はデータを作るだけなので,表示するには ExeccmdC() を併用する。 +\item[関数]Sfbdparadata(name,式,options) +\item[機能]サーフェスモデルの輪郭線を描く +\item[説明]この関数はデータを作るだけなので,表示するには ExeccmdC() を併用する。 optionsは,"Wait=n","r","m",および線種。Wait の初期値は30。 @@ -6656,11 +6681,11 @@ optionsは,"Wait=n","r","m",および線種。Wait の初期値は30。 \hspace{5mm} オプションなしまたは,”” のとき -\hspace{10mm} i) データファイルがなければ,新しく作る - -\hspace{10mm} ii) データファイルが既にあればそれを読み込む - -\hspace{5mm}"m" のとき,強制的にデータファイルを作り直す。 +\hspace{10mm}i) データファイルがなければ,新しく作る + +\hspace{10mm}ii) データファイルが既にあればそれを読み込む + +\hspace{5mm}"m"のとき,強制的にデータファイルを作り直す。 \hspace{5mm}"r" のとき,すでにあるデータファイルを読み込む。 @@ -6673,12 +6698,12 @@ optionsは,"Wait=n","r","m",および線種。Wait の初期値は30。 %------------------- ExeccmdC ----------------------------------------------- \vspace{\baselineskip} \hypertarget{execcmdc}{} -\item[関数] ExeccmdC(name,options1,options2) -\item[機能] 曲面を表示する。戻り値は,対象にしたプロットデータのリスト。 -\item[説明] データが作成された曲面を表示する。 +\item[関数]ExeccmdC(name,options1,options2) +\item[機能]曲面を表示する。戻り値は,対象にしたプロットデータのリスト。 +\item[説明]データが作成された曲面を表示する。 options1 には"r","m", "Wait=n" と輪郭線の線種が指定できる。 - + options2 には 軸の陰線について "nodisp" または線種が指定できる。 初期設定は "do"。 options2だけを指定したい場合は,options1 を空リスト [ ] にする。 @@ -6694,32 +6719,34 @@ options2だけを指定したい場合は,options1 を空リスト [ ] にす 陰線を消去して表示 \begin{verbatim} - fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; - if(Isangle(), - Sf3data("1",fd); - , - Startsurf(); - Sfbdparadata("1",fd); - ExeccmdC("1",[],["nodisp"]); - ); +fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; +if(Isangle(), +Sf3data("1",fd); +, +Startsurf(); +Sfbdparadata("1",fd); +ExeccmdC("1",[],["nodisp"]); + ); \end{verbatim} -全体を実線で太めにして,陰線を点線で表示 +全体を実線で太めにして,陰線は初期設定の + +点線で表示。 \verb|ExeccmdC()| を変更する。 -\verb| ExeccmdC("1",["dr,2"]);| +\verb|ExeccmdC("1",["dr,2"]);| \vspace{10mm} -【例】放物面 : 式を変更する。 +【例】放物面: 式を変更する。 \begin{verbatim} - fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"]; +fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"]; \end{verbatim} 陰線を消去(下図左):\verb|ExeccmdC("1",[],["nodisp"]);| 陰線を破線で表示(下図右):\verb|ExeccmdC("1",[],["da"]);| - \begin{center} \input{Fig/sfbdpara03} \input{Fig/sfbdpara04} \end{center} - +\begin{center} \input{Fig/sfbdpara03}\input{Fig/sfbdpara04} \end{center} + 【例】曲面を2つ表示するときは,Sfbdparadata() の name は "1" と "2" にするが,まとめて \verb|ExeccmdC("1")| で表示できる。 \begin{verbatim} @@ -6740,115 +6767,108 @@ if(!ptselected(), ExeccmdC("1"); ); \end{verbatim} - \begin{center} \input{Fig/sfbdpara05} \end{center} - -\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +\begin{center} +\input{Fig/sfbdpara05} +\end{center} + +\vspace{\baselineskip} +【例】トーラスを描く:軸は非表示にしておく。 + +\begin{layer}{150}{0} +\putnotese{70}{-10}{ \input{Fig/wirepara5}} +\end{layer} + +\begin{verbatim} + fd=["p","x=(2+cos(u))*cos(v)", + "y=(2+cos(u))*sin(v)","z=sin(u)", + "u=[0,2*pi]","v=[0,2*pi]","s"]; + if(Ptselected(), + Sf3data("1",fd); +, + Startsurf(); + Sfbdparadata("1",fd); + Wireparadata("1","sfbd3d1",fd,12,12,[],["nodisp"]); + ExeccmdC("1",[],["nodisp"]); + ); +\end{verbatim} +%\vspace{\baselineskip} -%-------------------Wireparadata ----------------------------------------------- +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +%-------------------Wireparadata----------------------------------------------- \hypertarget{wireparadata}{} -\item[関数] Wireparadata(name,PD,式,整数,整数,optons) -\item[機能] Sfbdparadataで作成した曲面について,陰線処理したワイヤーフレームモデルを作る。 -\item[説明] PDは,第3引数の式で描いたワイヤフレームモデルのプロットデータ名。第4,第5引数は分割線の数。 +\item[関数]Wireparadata(name,PD,式,整数,整数,optons) +\item[機能]Sfbdparadataで作成した曲面について,陰線処理したワイヤーを描く +\item[説明]PDは,第3引数の式を用いてSfbdparadata()で描いたサーフェスモデルのプロットデータ名。第4,第5引数は分割線の数。 options には "r","m","Wait=n" が指定できる。 - + Sfbdparadata() とペアで使い,そのあとに ExeccmdC で描画する。 C言語の環境がない場合は,ExeccmdC() が使えないので,WireparadataR(name,PD,式,整数,整数,optons1,optons2) を使う。options2には陰線の表示方法について "nodisp" または線種 を指定する。 初期設定は"nodisp" 。options2のみ指定するときは,options1に [""] (空文字)を書いておく。 -\vspace{\baselineskip} +\begin{layer}{150}{0} +\putnotese{85}{5}{ \input{Fig/wirepara1}} +\end{layer} + +%\vspace{\baselineskip} 【例】 サドル面 -\begin{layer}{150}{0} -\putnotese{85}{5}{ \input{Fig/wirepara1}} -\end{layer} \begin{verbatim} - fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; - if(Isangle(), - Sf3data("1",fd); - , - Startsurf(); - Sfbdparadata("1",fd); - Wireparadata("1","sfbd3d1",fd,4,5); - ExeccmdC("1"); - ); +fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"]; +if(Isangle(), +Sf3data("1",fd); +, +Startsurf(); +Sfbdparadata("1",fd); +Wireparadata("1","sfbd3d1",fd,4,5); +ExeccmdC("1"); +); \end{verbatim} 回転放物面:次を変更 \begin{layer}{150}{0} -\putnotese{85}{0}{ \input{Fig/wirepara2}} +\putnotese{85}{-5}{ \input{Fig/wirepara2}} \end{layer} \begin{verbatim} - fd=["z=4-(x^2+y^2)","x=r*cos(t)", - "y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"]; - Wireparadata("1","sfbd3d1",fd,5,7); +fd=["z=4-(x^2+y^2)","x=r*cos(t)", +"y=r*sin(t)","r=[0,2]","t=[0,2*pi]","e"]; +Wireparadata("1","sfbd3d1",fd,5,7); \end{verbatim} \vspace{10mm} 球面 \begin{layer}{150}{0} -\putnotese{80}{0}{ \input{Fig/wirepara3}} +\putnotese{80}{15}{ \input{Fig/wirepara3}} \end{layer} \begin{verbatim} - fd=["p","x=2*sin(u)*cos(v)", - "y=2*sin(u)*sin(v)", - "z=2*cos(u)","u=[0,pi]", - "v=[0,2*pi]",""]; - Sfbdparadata("1",fd); - Wireparadata("1","sfbd3d1",fd,12,12); + fd=["p","x=sin(u)*cos(v)","y=sin(u)*sin(v)","z=cos(u)", + "u=[0,pi]","v=[0,2*pi]","s"]; + if(Ptselected(), + Sf3data("1",fd); + , + Startsurf(); + Sfbdparadata("1",fd); + Wireparadata("1","sfbd3d1",fd,12,12); + ExeccmdC("1"); + ); \end{verbatim} \vspace{8mm} -【例】球面で座標軸を陰線処理し,面の陰線は非表示で表す。 - -\begin{layer}{150}{0} -\putnotese{70}{5}{ \input{Fig/wirepara4}} -\end{layer} - -\begin{verbatim} - fd=["p","x=2*sin(u)*cos(v)", - "y=2*sin(u)*sin(v)", - "z=2*cos(u)", - "u=[0,pi]","v=[0,2*pi]",""]; - if(Isangle(), - Sf3data("1",fd); - , - Startsurf(); - Sfbdparadata("1",fd); - Wireparadata("1","sfbd3d1",fd,12,12); - Crvsfparadata("1","ax3d","sfbd3d1",fd); - ret=ExeccmdC("1"); - forall(1..length(ret), - if(indexof(ret_#,"wireh")>0, - Changestyle3d([ret_#],["nodisp"]); - ); - ); - ); -\end{verbatim} -【例】トーラスを描く - -式を次のように変え,軸は非表示にして,\verb|ExeccmdC("1",[],["nodisp"])| にする。 - -\begin{verbatim} - fd=["p","x=(2+cos(u))*cos(v)","y=(2+cos(u))*sin(v)","z=sin(u)", - "u=[0,2*pi]","v=[0,2*pi]","s"]; -\end{verbatim} -%\vspace{\baselineskip} - \begin{center} \input{Fig/wirepara5} \end{center} %------------------- Crvsfparadata ----------------------------------------------- \hypertarget{crvsfparadata}{} -\item[関数] Crvsfparadata(name,PD1,PD2,式) -\item[機能] 曲面による曲線の陰線処理を行う。 -\item[説明] 曲線PD1と曲面PD2について,PD1はPD2による陰線処理を行う。 +\item[関数]Crvsfparadata(name,PD1,PD2,式) +\item[機能]曲面による曲線の陰線処理を行う。 +\item[説明]曲線PD1と曲面PD2について,PD1はPD2による陰線処理を行う。 Crvsfparadata() のあとに ExeccmdC() でまとめて描画する。 @@ -6859,107 +6879,129 @@ options1 は分割数と誤差限界, options2 は陰線の線種。 ExeccmdC()の 初期設定では陰線は点線で表示される。(下図左) \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); - Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); - Spaceline([A,B]); - fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"]; - Startsurf(); - Sfbdparadata("1",fd); - Crvsfparadata("1","AB3d","sfbd3d1",fd); - Crvsfparadata("2","ax3d","sfbd3d1",fd); - ExeccmdC("1"); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); +Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); +Spaceline([A,B]); +fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"]; +Startsurf(); +Sfbdparadata("1",fd); +Crvsfparadata("1","AB3d","sfbd3d1",fd); +Crvsfparadata("2","ax3d","sfbd3d1",fd); +ExeccmdC("1"); \end{verbatim} ExeccmdC()の options2を ["nodisp"] にすると,陰線は非表示になる。(下図右) \begin{verbatim} - ExeccmdC("1",[],["nodisp"]); +ExeccmdC("1",[],["nodisp"]); \end{verbatim} - \begin{center} \input{Fig/crvsfparadata2} \input{Fig/crvsfparadata1} \end{center} +\begin{center}\scalebox{0.9}{ \input{Fig/crvsfparadata2}}\hspace{5mm} \scalebox{0.9}{\input{Fig/crvsfparadata1}} \end{center} 戻り値を使うと,Changestyle3d() を使って陰線のスタイル(線種,色)を変えることができる。戻り値の内容は,コンソールに「readoutdata from template3D1.txt : 」として表示されるので,これをテキストエディタで開き,操作対象を決めればよい。たとえば,上の左図で,線分ABの陰線はリストの4番目の crvsfh3d1 なので, \begin{verbatim} - ret=ExeccmdC("1"); - Changestyle3d(ret_4,["da","Color=red"]); +ret=ExeccmdC("1"); +Changestyle3d(ret_4,["da","Color=red"]); \end{verbatim} とすると,赤の破線にすることができる。 +【例】球面で座標軸を陰線処理し,球面の陰線は非表示で表す。 + +\begin{layer}{150}{0} +\putnotese{70}{-5}{ \input{Fig/wirepara4}} +\end{layer} + +\begin{verbatim} +fd=["p","x=2*sin(u)*cos(v)", + "y=2*sin(u)*sin(v)", + "z=2*cos(u)", + "u=[0,pi]","v=[0,2*pi]",""]; +if(Isangle(), +Sf3data("1",fd); +, +Startsurf(); +Sfbdparadata("1",fd); +Wireparadata("1","sfbd3d1",fd,12,12,[],["nodisp]); +Crvsfparadata("1","ax3d","sfbd3d1",fd); +ExeccmdC("1"); +); +\end{verbatim} + \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \end{description} \newpage -%================== 3D プロットデータの操作 =============== +%================== 3Dプロットデータの操作 =============== \subsection{プロットデータの操作} \begin{description} %------------------- Datalist2d ----------------------------------------------- \vspace{\baselineskip} -\hypertarget{datalist}{} -\item[関数] Datalist2d() -\item[機能] 画面上のプロットデータのリストを取得する -\item[説明] 画面に描かれているすべてのプロットデータのリストを返す。 +\hypertarget{datalist}{} +\item[関数]Datalist2d() +\item[機能]画面上のプロットデータのリストを取得する +\item[説明]画面に描かれているすべてのプロットデータのリストを返す。 空間図形は,Cinderellaの画面上に射影し表示する。そのため,KeTCindy3Dは,空間におけるプロットデータと,画面上に表示するプロットデータの2つを作っている。Datalist2d()では,画面上に表示するプロットデータのリストを返す。 \vspace{\baselineskip} 【例】 \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); - Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); - Spaceline("1",[A,B]); - println("PD="+Datalist2d()); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); +Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); +Spaceline("1",[A,B]); +println("PD="+Datalist2d()); \end{verbatim} -とすると,コンソールに PD=[ax2d,AB2d] と表示される。ax2dは座標軸のプロットデータ ax3d に,AB2d は線分ABのプロットデータ AB3d に対応している。 +とすると,コンソールにPD=[ax2d,AB2d] と表示される。ax2dは座標軸のプロットデータ ax3d に,AB2d は線分ABのプロットデータ AB3d に対応している。 %------------------- Datalist3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{datalist}{} -\item[関数] Datalist3d() -\item[機能] 空間のプロットデータのリストを取得する -\item[説明] 空間に描かれているすべてのプロットデータのリストを返す +\item[関数]Datalist3d() +\item[機能]空間のプロットデータのリストを取得する +\item[説明]空間に描かれているすべてのプロットデータのリストを返す \vspace{\baselineskip} 【例】 \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); - Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); - Spaceline("1",[A,B]); - println("PD="+Datalist3d()); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); +Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); +Spaceline("1",[A,B]); +println("PD="+Datalist3d()); \end{verbatim} -とすると,コンソールに PD=[ax3d,AB3d] と表示される。 +とすると,コンソールにPD=[ax3d,AB3d] と表示される。 \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------- Changestyle3d ----------------------------------------------- \hypertarget{changestyle3d}{} -\item[関数] Changestyle3d(リスト,リスト) -\item[機能] 3Dプロットデータの属性を変更 -\item[説明] 第1引数のプロットデータの属性を,第2引数に変更する。 +\item[関数]Changestyle3d(リスト,リスト) +\item[機能]3Dプロットデータの属性を変更 +\item[説明]第1引数のプロットデータの属性を,第2引数に変更する。 たとえば,補助線など,画面には描いてもTeXに書き出さない線を描画するときは,optionに["notex"] をつけるが,これをあとから付加したい場合に利用する。プロットデータはリストにできるので,複数のプロットデータの属性をまとめて変更することができて便利である。 \vspace{\baselineskip} 【例】4つの点で四面体の辺を描き,まとめて notex にする。点A,B,C,Dはとってあるものとする。 \begin{verbatim} - Spaceline("1",[A,B]); - Spaceline("2",[A,C]); - Spaceline("3",[B,C]); - Spaceline("4",[A,D]); - Spaceline("5",[B,D]); - Spaceline("6",[C,D]); - edges=apply(1..6,"sl3d"+text(#)); - Changestyle3d(edges,["notex"]); +Spaceline("1",[A,B]); +Spaceline("2",[A,C]); +Spaceline("3",[B,C]); +Spaceline("4",[A,D]); +Spaceline("5",[B,D]); +Spaceline("6",[C,D]); +edges=apply(1..6,"sl3d"+text(#)); +Changestyle3d(edges,["notex"]); \end{verbatim} %------------------- Intersectcrvsf ----------------------------------------------- \hypertarget{intersectcrvsf}{} -\item[関数] Intersectcrvsf(name,PD,式) -\item[機能] 曲線と曲面の交点の座標を求める -\item[説明] PDは曲線のプロットデータ。式は曲面の式。 +\item[関数]Intersectcrvsf(name,PD,式) +\item[機能]曲線と曲面の交点の座標を求める +\item[説明]PDは曲線のプロットデータ。式は曲面の式。 + +曲面は,Sfbdparadata()でデータを作成し,ExeccmdC()で表示しておく。交点の座標は,"intercrvsf"+name に代入される。コマンドの実行順序は次の例のようにする。 - 曲面は,Sfbdparadata()でデータを作成し,ExeccmdC()で表示しておく。交点の座標は,"intercrvsf"+name に代入される。コマンドの実行順序は次の例のようにする。 - \begin{layer}{150}{0} \putnotese{80}{40}{ \includegraphics[bb=0 0 149.51 121.51 , height=4cm]{Fig/Intersectcurvsf.pdf}} \end{layer} @@ -6967,52 +7009,52 @@ ExeccmdC()の options2を ["nodisp"] にすると,陰線は非表示になる \vspace{\baselineskip} 【例】回転放物面と線分の交点の座標を表示する。 \begin{verbatim} - Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]); - Spaceline("1",[A,B]); - fd=[ - "z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)", - "R=[0,2]","T=[0,2*pi]","e" - ]; - Startsurf(); - Sfbdparadata("1",fd); - Intersectcrvsf("1","sl3d1",fd); - ExeccmdC("1",[""]); - println("Intersect="+intercrvsf1); - Pointdata3d("1",intercrvsf1); +Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]); +Spaceline("1",[A,B]); +fd=[ + "z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)", + "R=[0,2]","T=[0,2*pi]","e" +]; +Startsurf(); +Sfbdparadata("1",fd); +Intersectcrvsf("1","sl3d1",fd); +ExeccmdC("1",[""]); +println("Intersect="+intercrvsf1); +Pointdata3d("1",intercrvsf1); \end{verbatim} 実行すると,コンソールに -\verb| Intersect=[[0,1.57,1.52],[0,-1.91,0.36]] | - +\verb| Intersect=[[0,1.57,1.52],[0,-1.91,0.36]] | + のように表示され,画面には交点が表示される。 %------------------- IntersectsgpL ----------------------------------------------- \vspace{\baselineskip} \hypertarget{intersectsgpL}{} -\item[関数] IntersectsgpL(点名,線分,面,描画方法) -\item[機能] 空間の線分(直線)と平面の交点を求める。 -\item[説明] 引数の線分は線分の端点を "A-B" の形もしくは空間座標のリストで与える。 +\item[関数]IntersectsgpL(点名,線分,面,描画方法) +\item[機能]空間の線分(直線)と平面の交点を求める。 +\item[説明]引数の線分は線分の端点を "A-B" の形もしくは空間座標のリストで与える。 引数の面は,面内の3点を "C-D-E" の形もしくは空間座標のリストで与える。 戻り値は,[pt,flag1,flag2,val1,val2] - + pt:直線と平面の交点の座標。直線と平面が平行で交点が存在しない場合は空リスト[] - + flag1 : 交点が線分内にあれば true ,なければ false - + flag2 : 交点が面内にあれば true,なければ false - + val1,val2 : 線分についてのパラメータ値,平面についてのパラメータ値 - + 描画方法は,"put" または "i" , "e" 。 - + \hspace{10mm} put : 幾何点を作る \hspace{10mm} i : 線分内にあれば点を描く -\hspace{10mm} e : 平面で交われば点を描く - +\hspace{10mm} e :平面で交われば点を描く + \vspace{\baselineskip} 【例】交点の有無と戻り値 @@ -7034,8 +7076,8 @@ println("flag1="+ret_2+": flag2="+ret_3); \putnotese{60}{20}{ \input{Fig/wire02}} \end{layer} \begin{verbatim} - p2=[0,0,1/2]; p2=[-1,1,1]; - flag1=false : flag2=true flag1=true : flag2=true +p2=[0,0,1/2]; p2=[-1,1,1]; +flag1=false : flag2=trueflag1=true : flag2=true \end{verbatim} \vspace{30mm} \begin{layer}{150}{0} @@ -7043,38 +7085,38 @@ println("flag1="+ret_2+": flag2="+ret_3); \putnotese{60}{20}{ \input{Fig/wire04}} \end{layer} \begin{verbatim} - p2=[1,2,1]; p2=[1,0,1/2]; - flag1=true : flag2=false flag1=false : flag2=false + p2=[1,2,1]; p2=[1,0,1/2]; + flag1=true : flag2=false flag1=false : flag2=false \end{verbatim} \vspace{30mm} 【例】立方体を平面で切った図を描く。 - いろいろな手順が考えられるが,ここでは次の手順で描く。 - + いろいろな手順が考えられるが,ここでは次の手順で描く。 + (1) 立方体の頂点をとる。1辺の長さをHnとし,軸上の点をPutaxes3d()でとる。 - + (2) 切断面を決める点E,F,Gを辺上の自由点としてPutonseg3d()でとる。 (3) E,F,Gを通る平面と,辺AC,DYとの交点をとり,M,Nとする。 (4) 全体を多面体として面データを作って描画する。 \begin{verbatim} - Hn=3; - Putaxes3d(Hn); - Putpoint3d("A",[Hn,Hn,0]); - Putpoint3d("B",[Hn,0,Hn]); - Putpoint3d("C",[Hn,Hn,Hn]); - Putpoint3d("D",[0,Hn,Hn]); - Putonseg3d("E",X,B); - Putonseg3d("F",Z,B); - Putonseg3d("G",Z,D); - IntersectsgpL("M","A-C","E-F-G","put"); - IntersectsgpL("N","D-Y","E-F-G","put"); - phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O], - [O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]); - VertexEdgeFace("1",phd); - Nohiddenbyfaces("1","phf3d1"); +Hn=3; +Putaxes3d(Hn); +Putpoint3d("A",[Hn,Hn,0]); +Putpoint3d("B",[Hn,0,Hn]); +Putpoint3d("C",[Hn,Hn,Hn]); +Putpoint3d("D",[0,Hn,Hn]); +Putonseg3d("E",X,B); +Putonseg3d("F",Z,B); +Putonseg3d("G",Z,D); +IntersectsgpL("M","A-C","E-F-G","put"); +IntersectsgpL("N","D-Y","E-F-G","put"); +phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O], +[O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]); +VertexEdgeFace("1",phd); +Nohiddenbyfaces("1","phf3d1"); \end{verbatim} スクリプトを実行後,点E,F,Gをドラッグして適当な位置の断面にする。 @@ -7082,21 +7124,21 @@ println("flag1="+ret_2+": flag2="+ret_3); できた図は下図左。これに,次のスクリプトを追加すれば,断面上方の立方体の各辺も点線で描かれる。(下図右) \begin{verbatim} - Spaceline("1",[E,B,F],["do"]); - Spaceline("2",[B,C,M],["do"]); - Spaceline("3",[C,D,N],["do"]); - Spaceline("4",[D,G],["do"]); +Spaceline("1",[E,B,F],["do"]); +Spaceline("2",[B,C,M],["do"]); +Spaceline("3",[C,D,N],["do"]); +Spaceline("4",[D,G],["do"]); \end{verbatim} -\begin{center} \input{Fig/IntersectsgpL1} \input{Fig/IntersectsgpL2} \end{center} +\begin{center} \input{Fig/IntersectsgpL1}\input{Fig/IntersectsgpL2} \end{center} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------- Sfcutparadatacdy ----------------------------------------------- \vspace{\baselineskip} \hypertarget{sfcutparadatacdy}{} -\item[関数] Sfcutparadatacdy(name,面,曲面,options) -\item[機能] 平面と曲面の交線を求める。 -\item[説明] 面の方程式はx,y,zの方程式,曲面は媒介変数表示で与える。 +\item[関数]Sfcutparadatacdy(name,面,曲面,options) +\item[機能]平面と曲面の交線を求める。 +\item[説明]面の方程式はx,y,zの方程式,曲面は媒介変数表示で与える。 \vspace{\baselineskip} 【例】円錐を平面$y+2z=3$で切った断面を表示する。 @@ -7115,7 +7157,7 @@ Sfbdparadata("1",fd); Sfcutparadatacdy("1","y+2*z=3",fd); ExeccmdC("1"); \end{verbatim} -%\begin{center} \input{Fig/sfcut} \end{center} +%\begin{center} \input{Fig/sfcut} \end{center} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} @@ -7123,24 +7165,24 @@ ExeccmdC("1"); %------------------Partcrv3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{partcrv3d}{} -\item[関数] Partcrv3d(name,始点,終点,PD) -\item[機能] 部分曲線のプロットデータを作成する -\item[説明] 曲線PDにおいて,始点から終点までのプロットデータを作成する。 +\item[関数]Partcrv3d(name,始点,終点,PD) +\item[機能]部分曲線のプロットデータを作成する +\item[説明]曲線PDにおいて,始点から終点までのプロットデータを作成する。 始点と終点は,プロットデータの番号もしくは曲線上にとった点の識別名で示す。 \vspace{\baselineskip} 【例】螺旋を描き一部分を太くする。PutonCurve3d() で螺旋上に点C,Dができるので,ドラッグして適当な位置に移動する。 \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); - Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); - PutonCurve3d("C","sc3d1"); - PutonCurve3d("D","sc3d1"); - Partcrv3d("1",C,D,"sc3d1",["dr,3"]); - Letter([C,"n2","C",D,"n2","D"]); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); +Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]); +PutonCurve3d("C","sc3d1"); +PutonCurve3d("D","sc3d1"); +Partcrv3d("1",C,D,"sc3d1",["dr,3"]); +Letter([C,"n2","C",D,"n2","D"]); \end{verbatim} - ここで,\verb|"sc3d1"| は,螺旋,\verb|"part3d1"| は,部分曲線のプロットデータである。 - +ここで,\verb|"sc3d1"| は,螺旋,\verb|"part3d1"| は,部分曲線のプロットデータである。 + \begin{center} \input{Fig/partcrv3d1} \end{center} \vspace{\baselineskip} @@ -7153,9 +7195,9 @@ Partcrv3d("1",3.3,8.5,"sc3d1"); %------------------Reflectdata3d----------------------------------------------- \hypertarget{reflectdata3d}{} -\item[関数] Reflectdata3d(name , PDlist , list , options) -\item[機能] PDの鏡映を作る -\item[説明] 第3引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映を作る。戻り値は鏡映したプロットデータのリスト。 +\item[関数]Reflectdata3d(name , PDlist , list , options) +\item[機能]PDの鏡映を作る +\item[説明]第3引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映を作る。戻り値は鏡映したプロットデータのリスト。 \vspace{\baselineskip} 【例】点A,B,C,D,Eを空間にとり,三角形ABCの鏡映を作る。 @@ -7169,19 +7211,19 @@ Spaceline("1",[A,B,C,A]); 点Dに関する鏡映 - \verb| Reflectdata3d("1",["sl3d1"],[D3d],["Color=blue","dr,2"]);| + \verb|Reflectdata3d("1",["sl3d1"],[D3d],["Color=blue","dr,2"]);| \hspace{20mm} \input{Fig/reflectdata3d01} 直線DEに関する鏡映 - \verb| Reflectdata3d("1",["sl3d1"],[D3d,E3d],["Color=blue","dr,2"]);| + \verb|Reflectdata3d("1",["sl3d1"],[D3d,E3d],["Color=blue","dr,2"]);| \hspace{20mm} \input{Fig/reflectdata3d02} 平面BDEに関する鏡映 -\verb| Reflectdata3d("1",["sl3d1"],[D3d,E3d,B3d],["Color=blue","dr,2"]);| +\verb|Reflectdata3d("1",["sl3d1"],[D3d,E3d,B3d],["Color=blue","dr,2"]);| \hspace{20mm} \input{Fig/reflectdata3d03} @@ -7189,68 +7231,68 @@ Spaceline("1",[A,B,C,A]); %------------------Reflectpoint3d----------------------------------------------- \vspace{\baselineskip} \hypertarget{reflectpoint3d}{} -\item[関数] Reflectpoint3d(座標,リスト) -\item[機能] 点の鏡映点を求める -\item[説明] 第2引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映のそれぞれの点の座標を返す。 +\item[関数]Reflectpoint3d(座標,リスト) +\item[機能]点の鏡映点を求める +\item[説明]第2引数のタイプにより,点に関する鏡映,直線に関する鏡映,面に関する鏡映のそれぞれの点の座標を返す。 \vspace{\baselineskip} 【例】点A,B,C,Dを空間にとり,点Aの鏡映点の座標を求める。 -点Bに関する鏡映点 \verb| Reflectpoint3d(A3d,[B3d]);| - -直線BCに関する鏡映点 \verb| Reflectpoint3d(A3d,[B3d,C3d]);| - -平面BCDに関する鏡映点 \verb| Reflectpoint3d(A3d,[B3d,C3d,D3d]);| +点Bに関する鏡映点\verb|Reflectpoint3d(A3d,[B3d]);| + +直線BCに関する鏡映点\verb| Reflectpoint3d(A3d,[B3d,C3d]);| + +平面BCDに関する鏡映点\verb| Reflectpoint3d(A3d,[B3d,C3d,D3d]);| %------------------Rotatedata3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{rotatedata3d}{} -\item[関数] Rotatedata3d(name,PDリスト,vec,角度,options) -\item[機能] プロットデータを回転 -\item[説明] プロットデータを,原点を始点とするベクトルvec 周りに回転する。複数のプロットデータをまとめて回転することができる。戻り値は回転したプロットデータのリスト。 +\item[関数]Rotatedata3d(name,PDリスト,vec,角度,options) +\item[機能]プロットデータを回転 +\item[説明]プロットデータを,原点を始点とするベクトルvec 周りに回転する。複数のプロットデータをまとめて回転することができる。戻り値は回転したプロットデータのリスト。 options として,中心点(vecの始点),線種を指定することができる。 \vspace{\baselineskip} 【例】コード例と結果を示す。 \begin{verbatim} - Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]); - Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]]); - Spaceline("1",[A,B,C,A]); - Spaceline([C,D]); - Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]); - Letter([A,"s","A",B,"w","B",C,"ne","C",D,"ne","D"]); +Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]); +Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]]); +Spaceline("1",[A,B,C,A]); +Spaceline([C,D]); +Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]); +Letter([A,"s","A",B,"w","B",C,"ne","C",D,"ne","D"]); \end{verbatim} これを - \verb|Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,[[1,0,0],"dr,2"]);| - +\verb|Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,[[1,0,0],"dr,2"]);| + とした場合が右図である。 \input{Fig/rotatedata3d01} \hspace{5mm} \input{Fig/rotatedata3d02} -%\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} +%\begin{flushright}\hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------Rotatepoint3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{rotatepoint3d}{} -\item[関数] Rotatepoint3d(座標, vec , 角度, [点] ) -\item[機能] 点の位置を回転する -\item[説明] 点をvecの周りに回転する。角度は弧度法で与える。 +\item[関数]Rotatepoint3d(座標, vec , 角度, [点] ) +\item[機能]点の位置を回転する +\item[説明]点をvecの周りに回転する。角度は弧度法で与える。 第4引数に点を与えた場合,vecの始点が第4引数の位置になる。デフォルトは原点 点Aを,$(0,-1,0)$に置いたときの記述例と戻り値 -\verb| Putpoint3d("A",[0,-1,0]);| \\ -\verb| Rotatepoint3d(A3d,[0,0,1],pi/2); | // 戻り値は [1,0,0]\\ -\verb| Rotatepoint3d(A3d,[0,0,1],pi/2,[1,1,0]); | // 戻り値は [3,0,0]\\ +\verb|Putpoint3d("A",[0,-1,0]);| \\ +\verb|Rotatepoint3d(A3d,[0,0,1],pi/2);|// 戻り値は [1,0,0]\\ +\verb|Rotatepoint3d(A3d,[0,0,1],pi/2,[1,1,0]);| // 戻り値は [3,0,0]\\ %------------------Scaledata3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{scaledata3d}{} -\item[関数] Scaledata3d(name , PDリスト , vec , [中心,options]) -\item[機能] PDを拡大/縮小する。 -\item[説明] 点は空間座標,vec は3次元ベクトルで倍率を表す。 +\item[関数]Scaledata3d(name , PDリスト , vec , [中心,options]) +\item[機能]PDを拡大/縮小する。 +\item[説明]点は空間座標,vec は3次元ベクトルで倍率を表す。 中心とoptionsはリストで与える。 @@ -7258,27 +7300,27 @@ options として,中心点(vecの始点),線種を指定することが 【例】三角形と円を拡大/縮小する。 \begin{verbatim} - Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]]); - Spaceline("1",[A,B,C,A]); - Spacecurve("1","[cos(t)+1,sin(t)+1,1]","t=[0,2*pi]",["Num=100"]); - Scaledata3d("1",["sl3d1","sc3d1"],[2,2,2],[[0,0,0],"dr,2"]); +Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]]); +Spaceline("1",[A,B,C,A]); +Spacecurve("1","[cos(t)+1,sin(t)+1,1]","t=[0,2*pi]",["Num=100"]); +Scaledata3d("1",["sl3d1","sc3d1"],[2,2,2],[[0,0,0],"dr,2"]); \end{verbatim} \hspace{20mm}\input{Fig/scaledata3d} %------------------Scalepoint3d----------------------------------------------- \vspace{\baselineskip} \hypertarget{scalepoint3d}{} -\item[関数] Scalepoint3d(点,vec,中心) -\item[機能] 点の位置を拡大/縮小する。 -\item[説明] 点は空間座標,vec は3次元ベクトルで与える。 +\item[関数]Scalepoint3d(点,vec,中心) +\item[機能]点の位置を拡大/縮小する。 +\item[説明]点は空間座標,vec は3次元ベクトルで与える。 \vspace{\baselineskip} 【例】コード例と結果を示す。 \begin{verbatim} - Putpoint3d(["A",[2,-1,2]]); - pt=Scalepoint3d(A3d,[3,2,4],[1,1,1]); - Putpoint3d(["B",pt]); +Putpoint3d(["A",[2,-1,2]]); +pt=Scalepoint3d(A3d,[3,2,4],[1,1,1]); +Putpoint3d(["B",pt]); \vspace{\baselineskip} \end{verbatim} @@ -7287,47 +7329,47 @@ options として,中心点(vecの始点),線種を指定することが %------------------ Translatedata3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{translatedata3d}{} -\item[関数] Translatedata3d(name,PD,平行移動量) -\item[機能] 空間プロットデータを平行移動 -\item[説明] PDで表される図形を,平行移動する。戻り値は平行移動したプロットデータのリスト。 +\item[関数]Translatedata3d(name,PD,平行移動量) +\item[機能]空間プロットデータを平行移動 +\item[説明]PDで表される図形を,平行移動する。戻り値は平行移動したプロットデータのリスト。 \vspace{\baselineskip} 【例】曲線 sc3d1 をy軸方向に2だけ平行移動する。 \verb|Translatedata3d("1",["sc3d1"],[0,2,0]);| - + 結果として,もとの曲線と平行移動した曲線の2つが描かれる。 \vspace{\baselineskip} 【例】多面体の平行移動\\ VertexEdgeFace() で描いた多角形はこの関数では平行移動できないので,面データを直接操作して平行移動を行う。 - -たとえば,小林・鈴木・三谷による多面体データ polyhedrons obj を用いて正八面体を描く場合,次のようにする。$y$軸方向に2だけ平行移動する場合である。 + +たとえば,小林・鈴木・三谷による多面体データpolyhedrons objを用いて正八面体を描く場合,次のようにする。$y$軸方向に2だけ平行移動する場合である。 \begin{verbatim} - Setdirectory( Dirhead+"/data/polyhedrons_obj"); - phd=Readobj("r02.obj",["size=2"]); - Setdirectory(Dirwork); - dn=length(phd_1); - repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]); - VertexEdgeFace("1",phd); +Setdirectory( Dirhead+"/data/polyhedrons_obj"); +phd=Readobj("r02.obj",["size=2"]); +Setdirectory(Dirwork); +dn=length(phd_1); +repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]); +VertexEdgeFace("1",phd); \end{verbatim} - \begin{center} \input{Fig/translate01} \end{center} +\begin{center} \input{Fig/translate01} \end{center} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------Translatepoint3d( ----------------------------------------------- \hypertarget{translatepoint3d}{} -\item[関数] Translatepoint3d(座標,平行移動量) -\item[機能] 空間点を平行移動 -\item[説明] 点を平行移動する。 +\item[関数]Translatepoint3d(座標,平行移動量) +\item[機能]空間点を平行移動 +\item[説明]点を平行移動する。 \vspace{\baselineskip} 【例】点A(1,0,0) を(-1,1,1)だけ平行移動した点をBとする。点Aの空間座標は A3d で表される。 \begin{verbatim} - Putpoint3d(["A",[1,0,0]]); - pt=Translatepoint3d(A3d,[-1,1,1]); - Putpoint3d(["B",pt]); +Putpoint3d(["A",[1,0,0]]); +pt=Translatepoint3d(A3d,[-1,1,1]); +Putpoint3d(["B",pt]); \end{verbatim} \vspace{\baselineskip} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} @@ -7336,7 +7378,7 @@ VertexEdgeFace() で描いた多角形はこの関数では平行移動できな \end{description} \newpage -% その他 ================================== +%その他================================== \subsection{その他} \begin{description} @@ -7345,20 +7387,20 @@ VertexEdgeFace() で描いた多角形はこの関数では平行移動できな %------------------- Perpplane----------------------------------------------- \vspace{\baselineskip} \hypertarget{perpplane}{} -\item[関数] Perpplane(点名,点,ベクトル,option) -\item[機能] 点を通り線分に垂直な平面上に基準点を2つとる -\item[説明] 引数の点名は,作成する2点で "A-B" の形 +\item[関数]Perpplane(点名,点,ベクトル,option) +\item[機能]点を通り線分に垂直な平面上に基準点を2つとる +\item[説明]引数の点名は,作成する2点で "A-B" の形 第2引数は通る点の名称または座標 - + 第3引数は法線ベクトル - -optionは "put" で,2つの幾何点を作図する。optionがない場合は幾何点は作らず,無名の点のみを表示する。put以外の文字列を書いたときは無効な命令とし,何も作成されない。 - + +optionは "put"で,2つの幾何点を作図する。optionがない場合は幾何点は作らず,無名の点のみを表示する。put以外の文字列を書いたときは無効な命令とし,何も作成されない。 + 記述例を示すと - + \verb|Perpplane("A-B","P",[1,1,1],"put");| - + 点Pを通り,法線ベクトル(1,1,1)に垂直な平面上に点A,Bをとる。 \verb|Perpplane("A-B","P",P3d-O3d);| @@ -7369,27 +7411,27 @@ optionは "put" で,2つの幾何点を作図する。optionがない場合 \vspace{\baselineskip} 【例】ベクトル $\vec{p}=(1,1,1)$ に垂直で点$(1,1,1)$を通る平面ABCDを描く。 - 点A,B,C,Dは作図ツールで適当に取っておく。正確な位置はスクリプトで決める。 +点A,B,C,Dは作図ツールで適当に取っておく。正確な位置はスクリプトで決める。 \begin{layer}{150}{0} -\putnotese{80}{20}{ \input{Fig/perpplane}} +\putnotese{80}{8}{ \input{Fig/perpplane}} \end{layer} \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); - Putpoint3d(["O",[0,0,0]]); - Putpoint3d(["P",[1,1,1]]); - Perpplane("E-F","P",P3d-O3d,"put"); - vec1=2*(E3d-P3d); - vec2=2*(F3d-P3d); - Putpoint3d(["A",P3d+vec1+vec2]); - Putpoint3d(["B",P3d+vec1-vec2]); - Putpoint3d(["C",P3d-vec1-vec2]); - Putpoint3d(["D",P3d-vec1+vec2]); - Spaceline("1",[A,B,C,D,A]); - Arrowdata([O,P],["dr,2"]); - Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); - Skeletonparadata("1"); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); +Putpoint3d(["O",[0,0,0]]); +Putpoint3d(["P",[1,1,1]]); +Perpplane("E-F","P",P3d-O3d,"put"); +vec1=2*(E3d-P3d); +vec2=2*(F3d-P3d); +Putpoint3d(["A",P3d+vec1+vec2]); +Putpoint3d(["B",P3d+vec1-vec2]); +Putpoint3d(["C",P3d-vec1-vec2]); +Putpoint3d(["D",P3d-vec1+vec2]); +Spaceline("1",[A,B,C,D,A]); +Arrowdata([O,P],["dr,2"]); +Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); +Skeletonparadata("1"); \end{verbatim} @@ -7397,9 +7439,9 @@ optionは "put" で,2つの幾何点を作図する。optionがない場合 \vspace{\baselineskip} %-----------------Perppt( ----------------------------------------------- \hypertarget{perppt}{} -\item[関数] Perppt(点名,点,点リスト,option) -\item[機能] 平面に下ろした垂線の足を求める -\item[説明] 第2引数の点から,第3引数の点リストで決まる平面に下した垂線の足を,第1引数の名前の点とする。 +\item[関数]Perppt(点名,点,点リスト,option) +\item[機能]平面に下ろした垂線の足を求める +\item[説明]第2引数の点から,第3引数の点リストで決まる平面に下した垂線の足を,第1引数の名前の点とする。 オプションは次の通り。 初期設定は "draw" @@ -7412,60 +7454,60 @@ none:計算だけ行い,点は作図しない。 \vspace{\baselineskip} 【例】原点から点ABCを通る平面に下した垂線の足Hの座標を求める。 - \verb|Perppt("H","O","A-B-C","none");| 表示はされない。 + \verb|Perppt("H","O","A-B-C","none");| 表示はされない。 - \verb|Perppt("H","O","A-B-C");| Hの位置に緑色の点が表示される。 + \verb|Perppt("H","O","A-B-C");| Hの位置に緑色の点が表示される。 - \verb|Perppt("H","O","A-B-C","put");| 幾何点Hが作図される。 + \verb|Perppt("H","O","A-B-C","put");| 幾何点Hが作図される。 - いずれの場合も,Hの座標は変数H3d に代入される - +いずれの場合も,Hの座標は変数H3d に代入される + \vspace{\baselineskip} 作図例 \begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); - Putpoint3d("O",[0,0,0]); - Putpoint3d("A",[3,0,0]); - Putpoint3d("B",[0,3,0]); - Putpoint3d("C",[0,0,3]); - Perppt("H","O","A-B-C","put"); - Spaceline("1",[A,B,C,A]); - Spaceline("2",[O,H]); - Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]); +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); +Putpoint3d("O",[0,0,0]); +Putpoint3d("A",[3,0,0]); +Putpoint3d("B",[0,3,0]); +Putpoint3d("C",[0,0,3]); +Perppt("H","O","A-B-C","put"); +Spaceline("1",[A,B,C,A]); +Spaceline("2",[O,H]); +Letter([A,"nw","A",B,"ne","B",C,"ne","C",O,"nw","O",H,"ne","H"]); \end{verbatim} -\vspace{\baselineskip} -\begin{center} \input{Fig/perppt} \end{center} +%\vspace{\baselineskip} +\begin{center}\scalebox{0.9}{ \input{Fig/perppt}} \end{center} %------------------Projcoordpara ----------------------------------------------- \hypertarget{projcoordpara}{} -\item[関数] Projcoordpara(座標) -\item[機能] 投影座標を求める -\item[説明] 空間座標を平面に投影した座標を求める。 +\item[関数]Projcoordpara(座標) +\item[機能]投影座標を求める +\item[説明]空間座標を平面に投影した座標を求める。 戻り値の第1,第2要素はCinderellaの描画面のx,y座標。第3要素はxy平面に垂直なzの座標で.投影面からの(符号付)距離を表す。 \vspace{\baselineskip} 【例】\verb|Projcoordpara([3,1,2]);| - 戻り値は [-0.65,1.7,3.27] のようになる。(視点によって値は異なる) + 戻り値は[-0.65,1.7,3.27] のようになる。(視点によって値は異なる) %------------------Readobj----------------------------------------------- \vspace{\baselineskip} \hypertarget{readobj}{} -\item[関数] Readobj(ファイル名) -\item[機能] objファイルを読み込む。 -\item[説明] 小林・鈴木・三谷による整面凸多面体のデータは\\ +\item[関数]Readobj(ファイル名) +\item[機能]objファイルを読み込む。 +\item[説明]小林・鈴木・三谷による整面凸多面体のデータは\\ \hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\ からダウンロードできる。\verb|polyhedrons_obj|を,例えば,ユーザホームのketcindy作業フォルダに入れておく。 \begin{verbatim} - Setdirectory(gethome()+"/ketcindy/polyhedrons_obj"); - polydt=Readobj("r02.obj"); - Setdirectory(Dirwork); +Setdirectory(gethome()+"/ketcindy/polyhedrons_obj"); +polydt=Readobj("r02.obj"); +Setdirectory(Dirwork); \end{verbatim} これで,r02.obj データが,変数 polydt に代入される。 -オプションは "size=n" で,n倍したデータにする。負の数にすると上下が反転される。 +オプションは "size=n"で,n倍したデータにする。負の数にすると上下が反転される。 データはKeTCindyのdataフォルダの中にある。したがって,次のようなスクリプトを書く。読み込むのは一度だけなので, Draw スロットではなくInitialization スロットに置けばよいが,コードの可読性を高めるには Draw スロットでもよい。 @@ -7484,8 +7526,8 @@ none:計算だけ行い,点は作図しない。 \begin{verbatim} - VertexEdgeFace("1",polydt); - Nohiddenbyfaces("1","phf3d1"); +VertexEdgeFace("1",polydt); +Nohiddenbyfaces("1","phf3d1"); \end{verbatim} 主なデータは次の通り。 @@ -7498,27 +7540,27 @@ none:計算だけ行い,点は作図しない。 \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} -%-------------------Xyzcoord ----------------------------------------------- +%-------------------Xyzcoord----------------------------------------------- \vspace{\baselineskip} \hypertarget{xyzcoord}{} -\item[関数] Xyzcoord(P.x,P.y,Pz.y) -\item[機能] 主副画面で決まる点の座標 -\item[説明] Cinderellaの描画面上の点が表す空間座標を求める +\item[関数]Xyzcoord(P.x,P.y,Pz.y) +\item[機能]主副画面で決まる点の座標 +\item[説明]Cinderellaの描画面上の点が表す空間座標を求める + +点Pについて,主画面の点Pに対応するのが副画面のPzである。点Pの2次元座標はP.x,P.yで,Pzのy座標はPz.yで表される。これを引数として与えると,点Pの空間座標が返される。 - 点Pについて,主画面の点Pに対応するのが副画面のPzである。点Pの2次元座標はP.x,P.yで,Pzのy座標はPz.yで表される。これを引数として与えると,点Pの空間座標が返される。 - \vspace{\baselineskip} 【例】点Aをドラッグして動かしたとき,Aの座標を求める。 \verb|println(Xyzcoord(A.x,A.y,Az.y));| - + により,コンソールに座標が表示される。 -%------------------- Isangle ----------------------------------------------- +%-------------------Isangle ----------------------------------------------- \vspace{\baselineskip} \hypertarget{isangle}{} -\item[関数] Isangle() -\item[機能] 角度スライダ(視点スライダ)の選択判断 -\item[説明] 角度スライダを選択しているときは true ,そうでないときは false を返す。 +\item[関数]Isangle() +\item[機能]角度スライダ(視点スライダ)の選択判断 +\item[説明]角度スライダを選択しているときは true ,そうでないときは false を返す。 曲面の描画・陰線処理には時間がかかるため,角度スライダを動かすと反応が悪くなる。そこで,角度スライダを選択しているときは曲面の描画をしないようにすることで反応がよくなる。 @@ -7527,64 +7569,64 @@ none:計算だけ行い,点は作図しない。 次のようにすると,スライダの点を選んでいる間はワイヤフレームモデルが描かれ,画面上の他の部分をクリックして選択状態が解除されると陰線処理された放物面が描かれる。 \begin{verbatim} - fd=[ - "z=4-(x^2+y^2)", - "x=R*cos(T)","y=R*sin(T)", - "R=[0,2]","T=[0,2*pi]","e" - ]; - if(Isangle(), - Sf3data("1",fd); - , - Startsurf(); - Sfbdparadata("1",fd); - Crvsfparadata("1","ax3d","sfbd3d1",fd); - ExeccmdC("1"); - ); +fd=[ + "z=4-(x^2+y^2)", + "x=R*cos(T)","y=R*sin(T)", + "R=[0,2]","T=[0,2*pi]","e" +]; +if(Isangle(), + Sf3data("1",fd); + , + Startsurf(); + Sfbdparadata("1",fd); + Crvsfparadata("1","ax3d","sfbd3d1",fd); + ExeccmdC("1"); + ); \end{verbatim} %------------------- Dist3d ----------------------------------------------- \hypertarget{dist3d}{} -\item[関数] Dist3d(a1,a2) -\item[機能] 空間の2点間の距離を返す -\item[説明] 引数a1,a2 は作図点の名称,空間点の名称のいずれでもよい。 +\item[関数]Dist3d(a1,a2) +\item[機能]空間の2点間の距離を返す +\item[説明]引数a1,a2 は作図点の名称,空間点の名称のいずれでもよい。 次の3通りの記法は同じ結果を返す。混在も可 \begin{verbatim} - Dist3d("A","B"); - Dist3d(A,B); - Dist3d(A3d,B3d); +Dist3d("A","B"); +Dist3d(A,B); +Dist3d(A3d,B3d); \end{verbatim} %------------------- Embed ----------------------------------------------- \vspace{\baselineskip} \hypertarget{embed}{} -\item[関数] Embed(name,PDリスト,式,変数リスト) -\item[機能] 2D図形の空間内平面へ埋め込む -\item[説明] 第2引数は2Dの図形のプロットデータのリスト,式と変数は平面を記述する式と変数。平面は原点$vo$と2つの基本ベクトル $\overrightarrow{vx},\overrightarrow{vy}$を用いて,$vo+x \cdot \overrightarrow{vx}+y \cdot \overrightarrow{vy}$ の形で表すことができる。変数(基本ベクトルの係数)は$x,y$ でなく,$s,t$ でもよい。式,変数リストともに文字列にする。また,基本ベクトルは直交していなくてもよいし,長さが異なってもよいが,縦横同じスケールの直交座標系にするのがわかりやすいだろう。 +\item[関数]Embed(name,PDリスト,式,変数リスト) +\item[機能]2D図形の空間内平面へ埋め込む +\item[説明]第2引数は2Dの図形のプロットデータのリスト,式と変数は平面を記述する式と変数。平面は原点$vo$と2つの基本ベクトル $\overrightarrow{vx},\overrightarrow{vy}$を用いて,$vo+x \cdot \overrightarrow{vx}+y \cdot \overrightarrow{vy}$ の形で表すことができる。変数(基本ベクトルの係数)は$x,y$ でなく,$s,t$ でもよい。式,変数リストともに文字列にする。また,基本ベクトルは直交していなくてもよいし,長さが異なってもよいが,縦横同じスケールの直交座標系にするのがわかりやすいだろう。 \vspace{\baselineskip} 【例】正三角形と外接円を空間内の平面に埋め込む \begin{verbatim} - Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]); - Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]); - Defvar("vo=[3,3,3]"); - Defvar("vx=[0,1,0]"); - Defvar("vy=[0,0,1]"); - Putpoint3d(["A",[3,3,3]],["fix"]); - Circledata("1",[[0,0],[2,0]],["nodisp"]); - Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]); - Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]"); - Pointdata("1",[A],["Size=3"]); +Xyzax3data("","x=[-5,4]","y=[-10,4]","z=[-5,5]",["a","O"]); +Spaceline("1",[[3,0,0],[3,6,0],[3,6,6],[3,0,6],[3,0,0]]); +Defvar("vo=[3,3,3]"); +Defvar("vx=[0,1,0]"); +Defvar("vy=[0,0,1]"); +Putpoint3d(["A",[3,3,3]],["fix"]); +Circledata("1",[[0,0],[2,0]],["nodisp"]); +Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]); +Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]"); +Pointdata("1",[A],["Size=3"]); \end{verbatim} - \begin{center} \input{Fig/embed01} \end{center} + \begin{center} \input{Fig/embed01} \end{center} ここで,Embed()で引き渡す vo,vx,vy については,Rでの変数定義が必要なので(\ketcindy では行わない)Defvar() によって定義をしている。 原点,基本ベクトルを,点を作図して次のようにすることもできる。この場合は Defvar() は不要。 \begin{verbatim} - Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]); - Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]"); +Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]); +Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]"); \end{verbatim} \begin{center} \includegraphics[bb=0 0 477.02 383.02 , width=6cm]{Fig/embed03.pdf} @@ -7592,48 +7634,48 @@ none:計算だけ行い,点は作図しない。 この場合,点B,Cの座標がそのまま基本ベクトルとなっているが,原点Aに対して描画平面上にはB,Cがないので図がわかりにくい。図をわかりやすくするならば次のようにする。 \begin{verbatim} - Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]); - Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]"); -\end{verbatim} - - また,平面を記述するのに,平面の原点と法線ベクトルを用いて Perpplane() を用いると,基本ベクトルが生成されるので、これを利用することができる。次のスクリプトでは,Skeletonparadata() を用いて陰線処理もしている。 -\begin{verbatim} - Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]"); - Putpoint3d(["O",[0,0,0],"P",[1,1,2]]); - Perpplane("E-F","P",P3d-O3d,"put"); - vec1=3*(E3d-P3d); - vec2=3*(F3d-P3d); - Putpoint3d(["A",P3d+vec1+vec2]); - Putpoint3d(["B",P3d+vec1-vec2]); - Putpoint3d(["C",P3d-vec1-vec2]); - Putpoint3d(["D",P3d-vec1+vec2]); - Spaceline("1",[A,B,C,D,A]); - Circledata("1",[[0,0],[2,0]],["nodisp"]); - Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]); - Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]"); - Pointdata("1",[P],["Size=3"]); - Skeletonparadata("1"); +Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]); +Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]"); +\end{verbatim} + +また,平面を記述するのに,平面の原点と法線ベクトルを用いて Perpplane() を用いると,基本ベクトルが生成されるので、これを利用することができる。次のスクリプトでは,Skeletonparadata() を用いて陰線処理もしている。 +\begin{verbatim} +Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]"); +Putpoint3d(["O",[0,0,0],"P",[1,1,2]]); +Perpplane("E-F","P",P3d-O3d,"put"); +vec1=3*(E3d-P3d); +vec2=3*(F3d-P3d); +Putpoint3d(["A",P3d+vec1+vec2]); +Putpoint3d(["B",P3d+vec1-vec2]); +Putpoint3d(["C",P3d-vec1-vec2]); +Putpoint3d(["D",P3d-vec1+vec2]); +Spaceline("1",[A,B,C,D,A]); +Circledata("1",[[0,0],[2,0]],["nodisp"]); +Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]); +Embed("1",["cr1","sg1"],"P3d+x*(E3d-P3d)+y*(F3d-P3d)","[x,y]"); +Pointdata("1",[P],["Size=3"]); +Skeletonparadata("1"); \end{verbatim} - \begin{center} \input{Fig/embed02} \end{center} + \begin{center} \input{Fig/embed02} \end{center} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} %------------------- Parapt ----------------------------------------------- \vspace{\baselineskip} \hypertarget{parapt}{} -\item[関数] Parapt(座標) -\item[機能] 点の投影面での座標 -\item[説明] 引数の空間座標に対応するCinderellaの描画面の座標を返す。 +\item[関数]Parapt(座標) +\item[機能]点の投影面での座標 +\item[説明]引数の空間座標に対応するCinderellaの描画面の座標を返す。 \vspace{\baselineskip} -【例】\verb|Parapt([2,1,5]);| により,点(2,1,5) が表示されている描画面の座標,たとえば [-0.52,3.27] が返される。 +【例】\verb|Parapt([2,1,5]);| により,点(2,1,5) が表示されている描画面の座標,たとえば [-0.52,3.27]が返される。 %\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} \vspace{\baselineskip} %------------------- Invparapt ----------------------------------------------- \hypertarget{invparapt}{} -\item[関数] Invparapt(座標,PD) -\item[機能] 描画面上の座標に対応する曲線上の点の座標を返す -\item[説明] Cinderellaの描画面上の座標を与えて,それに対応する曲線上の3次元座標を返す。 +\item[関数]Invparapt(座標,PD) +\item[機能]描画面上の座標に対応する曲線上の点の座標を返す +\item[説明]Cinderellaの描画面上の座標を与えて,それに対応する曲線上の3次元座標を返す。 空間内の曲線を作図すると,曲線の空間内のプロットデータとともに,描画面上に描くためのプロットデータも作られる。これを利用すると,描画面上の位置から曲線上の座標を求めることができる。 @@ -7641,12 +7683,12 @@ none:計算だけ行い,点は作図しない。 【例】螺旋と線分を描いたとき,描画面上での交点(空間内の交点ではない)に対応する螺旋上の点の座標を求め部分曲線を描く。 \begin{verbatim} - Spaceline("1",[[-1,-1,-1],[1,2,3]]); - Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]); - tmp=Intersectcrvs("sl2d1","sc2d1"); - p1=Invparapt(tmp_1,"sc3d1"); - p2=Invparapt(tmp_2,"sc3d1"); - Partcrv3d("1",p1,p2,"sc3d1"); +Spaceline("1",[[-1,-1,-1],[1,2,3]]); +Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["do"]); +tmp=Intersectcrvs("sl2d1","sc2d1"); +p1=Invparapt(tmp_1,"sc3d1"); +p2=Invparapt(tmp_2,"sc3d1"); +Partcrv3d("1",p1,p2,"sc3d1"); \end{verbatim} \begin{center}\scalebox{0.8}{ \input{Fig/invparapt}} \end{center} @@ -7654,22 +7696,22 @@ none:計算だけ行い,点は作図しない。 %------------------- Expr3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{expr3d}{} -\item[関数] Expr3d([位置, 方向, 文字列],option) -\item[機能] 文字列を表示する -\item[説明] Expr() と同じ書式。「位置(座標)」だけ,空間座標にする。 +\item[関数]Expr3d([位置, 方向, 文字列],option) +\item[機能]文字列を表示する +\item[説明]Expr() と同じ書式。「位置(座標)」だけ,空間座標にする。 %------------------- Letter3d ----------------------------------------------- \vspace{\baselineskip} \hypertarget{letter3d}{} -\item[関数] Letter3d([位置, 方向, 文字列],option) -\item[機能] 文字列を表示する -\item[説明] Letter() と同じ書式。「位置(座標)」だけ,空間座標にする。 +\item[関数]Letter3d([位置, 方向, 文字列],option) +\item[機能]文字列を表示する +\item[説明]Letter() と同じ書式。「位置(座標)」だけ,空間座標にする。 \vspace{\baselineskip} 【例】三角錐ABCDを描いて,BCの中点に点Mを取ってA,Dと結ぶ。 \begin{layer}{150}{0} -\putnotese{90}{10}{ \input{Fig/letter3d}} +\putnotese{90}{0}{ \input{Fig/letter3d}} \end{layer} \begin{verbatim} Putpoint3d("A",2*[0,0,2*sqrt(6)/3]); @@ -7686,64 +7728,221 @@ Letter3d(M3d,"sw","M",["Color=blue"]); \end{verbatim} \begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +%----------------Getangle -------------------------------------------- +\vspace{\baselineskip} +\hypertarget{getangle}{} +\item[関数]Getangle() +\item[機能]回転角の取得 +\item[説明]スライダで設定できる回転角(視点の位置)TH と FI を取得する。これは,スライダの左側に表示されている値である。戻り値は,リスト [TH,FI] で,角は度数法で表される。なお,内部変数は,THETAとPHIで,弧度法で表されている。 + +回転角の設定については,\hyperlink{setangle}{回転角の設定}を参照のこと。 + +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + +\end{description} + +\newpage +%KeTJS================================== +\hypertarget{ketjs}{} +\section{KeTJS} + +\subsection{CindyJSとKeTJS} + +CindyJS は,Cinderellaの作品をHTMLにしてWeb上で動かせるようにしたものである。Cinderellaのファイルメニューには,「CindyJSに書き出す」があり,これにより,HTML ファイルができる。できたHTMLファイルをそのままダブルクリックすると,JavaScript で記述されたプログラムが走る。 + +現在のところはCinderellaと完全互換ではなく,Web上ではMouseスロットなどが使えなかったり,線種が指定できなかったりする。それでも,自作のボタンは有効なので,これでWeb上のアプリケーションを作ることができる。 + +KeTJSでは,CindyScriptにはないKeTCindyの関数(コマンド)を使って,作図アプリケーションを作ることができる。CindyJSの拡張版ともいえる。 + +ただし,CindyJSがCinderellaと完全互換でないように,KeTJSもKeTCindyと完全互換ではない。たとえば,いまのところ空間図形は描けない。それでも,KeTCindyのシステムが入っていない環境でもWebブラウザで教材が使えることのメリットは大きいだろう。なお,HTMLなので,TeXのファイルへの書き出し機能はない。 + +KeTJSでHTMLを作成するには,いったんCinderellaのファイルメニューから「CindyJSに書き出す」を選んでHTMLを作成した後,「KeTJS」ボタンをクリックする。「CindyJSに書き出す」で書き出されたHTMLは,実行のための環境設定しか書かれていない。これに,作図プログラムを追加するのが「KeTJS」「KeTJSoff」ボタンである。この2つのボタンの違いについては,次節「動作環境」を参照のこと。 + +また,ひな形として,template2slide.cdy または samplesフォルダの s16 に入っているものを使うとよい。「KeTJS」「KeTJSoff」ボタンが設定してある。 + +\subsection{KeTJSの動作環境} + +Cinderellaのファイルメニューから「CindyJSに書き出す」を選ぶと,CSSとランタイムへのリンク,およびJavaScriptのコードが書かれたHTMLファイルが書き出される。CSSとランタイムへのリンクは + +\begin{verbatim} +<link rel="stylesheet" href="https://cindyjs.org/dist/v0.8/CindyJS.css"> +<script type="text/javascript" src="https://cindyjs.org/dist/v0.8/Cindy.js"> +</script> +\end{verbatim} + +となっている。つまり,Web上からランタイム Cindy.js をオンラインでダウンロードしてJavaScriptを動かすことになる。そのため,ファイルをブラウザで開いたときに少し時間がかかる。また,インターネットに接続できないと実行できない。 + +このCSSとランタイムは,自分のコンピュータに置くことができ,KeTCindyでは,KeTCindyのライブラリとともに,ketcindyjsというフォルダ内に入っている。 + +また,JavaScriptのコードの方は,これだけではKeTCindyのコマンドでの作図はできない。 + +そこで,KeTJS ボタンをクリックすると,リンク先はそのままで,JavaScriptのコードを追加して,ファイル名に json を追加したHTMLファイルを作る。 + +また,KeTJSoff ボタン(オフラインで使う)をクリックすると,ランタイムをダウンロードして,Cinderellaのファイルと同じフォルダに ketcindyjs フォルダを作る。リンク先は次のようにketcindyjsに変え,JavaScriptのコードを追加して,ファイル名に jsoffL を追加したHTMLファイルを作る。 + +\begin{verbatim} +<link rel="stylesheet" href="ketcindyjs/CindyJS.css"> +<script type="text/javascript" src="ketcindyjs/Cindy.js"></script> +\end{verbatim} + +このとき,関数 \verb|Setketcindyjs() | で,オプションを \verb|"Local=n"| とすると,ランタイムとして,kettex の中にある ketcindyjs を使う。このときはファイル名に jsoff を追加する。 + +このときのリンク先は,Windowsの場合は + +\begin{verbatim} +<link rel="stylesheet" href="file:///C:/kettex/texlive/texmf-dist/ +scripts/ketcindy/ketcindyjs/CindyJS.css"> +<script type="text/javascript" src="file:///C:/kettex/texlive/ +texmf-dist/scripts/ketcindy/ketcindyjs/Cindy.js"></script> +\end{verbatim} + +Macの場合は + +\begin{verbatim} +<link rel="stylesheet" href="file:////Applications/kettex/texlive/ +texmf-dist/scripts/ketcindy/ketcindyjs/CindyJS.css"> +<script type="text/javascript" src="file:////Applications/kettex/ +texlive/texmf-dist/scripts/ketcindy/ketcindyjs/Cindy.js"></script> +\end{verbatim} + +である。 + +注)MacOS 10.14 Mojave の場合,Applicationsへのパスが通らないことがある。(2019年2月16日現在)その場合は,\verb|Setketcindyjs() | のオプションを \verb|"Local=n"| としない。 + +\vspace{\baselineskip} +{\bf ファイル名について} + +Cinderellaのファイルメニューから「CindyJSに書き出す」ときのファイル名は,初期設定では作図中のファイル名と同じ。このファイル名は書き出すときに指定できる。 + +「KeTJS」ボタンで書き出すときのファイル名は,\verb|Setfiles()| でファイル名が指定されていなければ,作図中のファイル名と同じ。これが「CindyJSに書き出す」で書き出したときのファイル名で同じでないと,KeTJSのHTMLは作成されない。したがって,次のいずれかでファイル名を決める。 + +(1) ファイル名は作図中のCinderellaのファイル名と同じにする。\\ + このときは,\verb|Setfiles()| を使わない。 + +(2) 作図中のCinderellaのファイル名と別の名前にする。\\ + このときは,\verb|Setfiles("filename")| を使い,CindyJSに書き出すときに\\ + \verb|"filename"| で書き出す。 + +%======KeTJSの設定============================ + +\subsection{KeTJSの設定} + +\begin{description} + +\hypertarget{setketcindyjs}{} +\item[関数]Setketcindyjs(options) +\item[機能] KeTJSの設定 +\item[説明] オプションを設定しない場合( Setketcindyjs() )は,初期値が使われる。 + +オプションは次の通り。 + +\begin{tabbing} +012345678\=3433778901234567\=890090666612345\=\kill +Local \> y/n \>動作環境の設定。 \>初期値は y\\ +Scale \> 実数 \> 拡大・縮小 \>初期値は 1\\ +Nolabel \> 点のリスト \> ラベルを表示しない点を指定する。"No"だけでも可。\\ +Color \> 色名またはコード\> 背景色の指定。初期値はCinderellaの画面の色。\\ +\end{tabbing} +【例】すべて設定するとき,次のように記述する。 + +\verb| Setketcindyjs(["Local=n","Scale=1.5","No=[A,B]","Color=[0.2,0,0,0]"]) | + +\vspace{\baselineskip} +注1)Cinderellaの画面に背景の方眼が描かれているとき,「CindyJSに書き出す」で,この方眼も表示される。方眼を消したい場合は,画面下の「グリッドを描く」ツールで非表示にしておく。 + +注2)「CindyJSに書き出す」で書き出すときの範囲は,ウィンドウ全体である。NE,SWの範囲ではない。2点NE,SWは\verb| Setketcindyjs(["No=[NE,SW]" | で非表示になるが,NE,SEの範囲を広くとっておき,ウィンドウサイズをこれより小さくすれば \verb|"No=[NE,SW]"| オプションを使わなくても表示されずにすむ。 + +注3)HTMLなので,画面に説明文などを表示したい場合は,HTMLファイルを開き,下の方の \verb|<body>| と \verb|</body>| の間,\verb|<div id="CSCanvas"></div>| の前後に書けば表示される。改行などは,HTMLのタグを用いる。 + +\vspace{\baselineskip} +\hypertarget{setketcindy}{} +\item[コメント化] no ketjs +\item[機能] KeTJSへの書き出しの有無を指定 +\item[説明] コマンドの末尾に \verb|//| に続いて書くと,その行はKeTJSに出力しない。 +ブロック単位で非出力にするには,ブロックを \verb|//no ketjs on|,\verb|//no ketjs off| ではさむ。 + +【例】次のスクリプトは,いずれも画面上では四角形ABCDと対角線AD,BCを描いている。 + +\begin{verbatim} +Listplot("1",[A,B,C,D,A]); +Listplot("2",[A,C]); +Listplot("3",[B,D]);// no ketjs +\end{verbatim} + +この場合,HTMLでは対角線BDは描かれない。 + +\begin{verbatim} +Listplot("1",[A,B,C,D,A]); +// no ketjs on +Listplot("2",[A,C]); +Listplot("3",[B,D]); +// no ketjs off +\end{verbatim} + +この場合,対角線は2本とも描かれない。 + +\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright} + \end{description} + \newpage -% 付録 ================================== +%付録================================== \section{付録} \subsection{用語解説} Cinderellaで使っている用語に次のものがある。 \begin{tabbing} 1234567890123\=456789890123456789012\=34567890123\=\kill -インシデント \>点が曲線(直線)上に乗っている状態を表す。\\ - \>曲線上に点をとるとインシデントになり,ドラッグしたとき曲線上だけを動く。\\ - \>インシデントの状態を変えるには,「点の取り付け/取り外し」ツールを使う。\\ -幾何要素 \>Cinderellaの作図ツールで作図した点や直線などの要素\\ -インスペクタ \>幾何要素の大きさや色などの属性を管理するウィンドウ。\\ -幾何点 \>幾何要素としての点。マウスドラッグで動かすことができる。\\ - \>CindyscriptやKeTCindyのスクリプトで取った点は幾何要素にならないことがある。\\ -自由点 \>マウスドラッグで任意に動かすことのできる点。\\ -固定点 \>マウスドラッグで移動することのできない点\\ - \>2曲線の交点などではない単独の点の場合,インスペクタで点を固定できる。\\ -スナップ \>マウスポイントが格子点の近くに来ると格子点上にぴったり移動する。\\ - \>Cinderellaの画面の下方ツールのうち,磁石アイコンによりこのモードになる。\\ +インシデント\>点が曲線(直線)上に乗っている状態を表す。\\ +\>曲線上に点をとるとインシデントになり,ドラッグしたとき曲線上だけを動く。\\ +\>インシデントの状態を変えるには,「点の取り付け/取り外し」ツールを使う。\\ +幾何要素\>Cinderellaの作図ツールで作図した点や直線などの要素\\ +インスペクタ\>幾何要素の大きさや色などの属性を管理するウィンドウ。\\ +幾何点\>幾何要素としての点。マウスドラッグで動かすことができる。\\ +\>CindyscriptやKeTCindyのスクリプトで取った点は幾何要素にならないことがある。\\ +自由点\>マウスドラッグで任意に動かすことのできる点。\\ +固定点\>マウスドラッグで移動することのできない点\\ +\>2曲線の交点などではない単独の点の場合,インスペクタで点を固定できる。\\ +スナップ\>マウスポイントが格子点の近くに来ると格子点上にぴったり移動する。\\ +\>Cinderellaの画面の下方ツールのうち,磁石アイコンによりこのモードになる。\\ \end{tabbing} \hypertarget{geometrytool}{} \subsection{Cinderellaの作図ツール} \begin{tabbing} 1234567890123456789890123456789012\=34567890123\=\kill -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/move.pdf} 動かすモードにする \>:幾何要素を選択して動かす。これが標準状態\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/single-add.pdf} 点を加える \>:クリックして点を作る\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-line.pdf} 直線を加える \>:2点間をドラッグする\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/segment.pdf} 線分を加える \>:2点間をドラッグする\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/middle.pdf} 中点を加える \>:2点間をドラッグする\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/intersection.pdf} 交点を加える \>:2曲線を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-parallel.pdf} 平行線を加える \>:直線上から通る点へドラッグ\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-perp.pdf} 垂線を加える \>:直線上から通る点へドラッグ\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/bisector.pdf} 角の二等分線を加える \>:2直線を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-circle.pdf} 円を加える \>:中心から半径分ドラッグ\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/circle-by-radius.pdf} 半径つき円を加える \>:中心から半径分ドラッグ\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/ellipse-by-foci.pdf} 焦点と通る点で決まる楕円 \>:焦点と通る点を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/hyperbola-by-foci.pdf} 焦点と通る点で決まる双曲線 \>:焦点と通る点を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/parabola-by-foci.pdf} 焦点と準線で決まる放物線 \>:焦点と準線を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/polygon.pdf} 多角形を加える \>:多角形の頂点を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/angle-mark.pdf} 角に印をつける \>:2直線を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/angle.pdf} 角度を測る \>:2直線を順にクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/delete.pdf} 選択した要素を消去する \>:選択しておいてツールをクリック\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/select-points.pdf} 点をまとめて選択する \>:点がすべて選択される\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/select-lines.pdf} 線分をまとめて選択する \>:線分がすべて選択される\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/move.pdf}動かすモードにする \>:幾何要素を選択して動かす。これが標準状態\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/single-add.pdf}点を加える \>:クリックして点を作る\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-line.pdf}直線を加える \>:2点間をドラッグする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/segment.pdf}線分を加える \>:2点間をドラッグする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/middle.pdf}中点を加える \>:2点間をドラッグする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/intersection.pdf}交点を加える \>:2曲線を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-parallel.pdf}平行線を加える \>:直線上から通る点へドラッグ\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-perp.pdf}垂線を加える \>:直線上から通る点へドラッグ\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/bisector.pdf}角の二等分線を加える \>:2直線を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/multi-add-circle.pdf}円を加える \>:中心から半径分ドラッグ\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/circle-by-radius.pdf}半径つき円を加える \>:中心から半径分ドラッグ\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/ellipse-by-foci.pdf}焦点と通る点で決まる楕円 \>:焦点と通る点を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/hyperbola-by-foci.pdf}焦点と通る点で決まる双曲線 \>:焦点と通る点を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/parabola-by-foci.pdf}焦点と準線で決まる放物線 \>:焦点と準線を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/polygon.pdf}多角形を加える \>:多角形の頂点を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/angle-mark.pdf}角に印をつける \>:2直線を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/angle.pdf}角度を測る \>:2直線を順にクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/delete.pdf}選択した要素を消去する \>:選択しておいてツールをクリック\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/select-points.pdf}点をまとめて選択する \>:点がすべて選択される\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/select-lines.pdf}線分をまとめて選択する \>:線分がすべて選択される\\ \end{tabbing} \begin{tabbing} 1234567890123456789890123456789012\=34567890123\=\kill 画面ツール(下のツールバー)\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/translate-view.pdf} 原点を移動する \>:画面上の任意の位置でドラッグする\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-in.pdf} 矩形領域を画面サイズに拡大 \>:ドラッグしてできる矩形で領域を選択する\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-out.pdf} 画面を矩形領域サイズに縮小 \>:どっらっぐしてで切る矩形で領域を選択する\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/snap.pdf} 格子点にスナップする \>:軸と方眼を表示しスナップモードにする\\ -\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-more.pdf} \includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-less.pdf} グリッドを粗く / 細かくする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/translate-view.pdf}原点を移動する \>:画面上の任意の位置でドラッグする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-in.pdf}矩形領域を画面サイズに拡大 \>:ドラッグしてできる矩形で領域を選択する\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/zoom-out.pdf}画面を矩形領域サイズに縮小 \>:どっらっぐしてで切る矩形で領域を選択する\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/snap.pdf}格子点にスナップする \>:軸と方眼を表示しスナップモードにする\\ +\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-more.pdf}\includegraphics[bb=0 0 6.48 5.04 , width=0.6cm]{Fig/grid-less.pdf}グリッドを粗く / 細かくする\\ \end{tabbing} \hypertarget{colorcodelist}{} @@ -7761,7 +7960,7 @@ Cinderellaで使っている用語に次のものがある。 注) Intersectcrvsf は戻り値ではなく,プロットデータを使う。 \newpage -% 関数一覧 ================================== +%関数一覧================================== \hypertarget{functionlist}{} \section{関数一覧} \hyperlink{index}{【目次】に戻る} @@ -7769,187 +7968,187 @@ Cinderellaで使っている用語に次のものがある。 \begin{tabbing} 12345678901234567890123456789012345678\=\kill 【設定・定義】\\ -\hyperlink{addax}{Addax(0/1)} \>座標軸を描くかどうかを定める\\ -\hyperlink{addpackage}{Addpackage(package)} \>プレビュー用のパッケージを追加\\ -\hyperlink{changework}{Changework(パス)} \>作業ディレクトリを変更する\\ -\hyperlink{deffun}{Deffun(関数名 , 定義list )} \>関数を定義する\\ -\hyperlink{definecolor}{Definecolor(色名 , 定義list )} \>ユーザー定義色の設定\\ -\hyperlink{defvar}{Defvar(文字列)} \>変数を定義する\\ -\hyperlink{drwxy}{Drwxy()} \>座標軸を先に描く\\ -\hyperlink{fontsize}{Fontsize(記号)} \>フォントサイズを設定する\\ -\hyperlink{ketinit}{Ketinit(options)} \>\ketcindy を初期化する\\ -\hyperlink{ptsize}{Ptsize(数)} \>表示する点の大きさを設定する\\ -\hyperlink{setarrow}{Setarrow(size,angle,pos,cut,style} \>矢線の形状を設定する\\ -\hyperlink{setax}{Setax(list)} \>座標軸の書式を設定する\\ -\hyperlink{setcolor}{Setcolor(color,options)} \>Windispgでの描画色を設定する\\ -\hyperlink{setfiles}{Setfiles(filename)} \>出力するファイル名を設定する\\ -\hyperlink{setparent}{Setparent(filename)} \>Parentで出力するファイル名を設定する\\ -\hyperlink{setmarklen}{Setmarklen(数)} \>軸の目盛の長さを設定する\\ -\hyperlink{setorigin}{Setorigin(座標)} \>表示する座標軸の原点の位置を設定する\\ -\hyperlink{setpen}{Setpen(数)} \>線の太さを設定する\\ -\hyperlink{setpt}{Setpt(数)} \>表示する点の大きさを設定する\\ -\hyperlink{setscaling}{Setscaling(数)} \>縦方向の倍率を設定する\\ -\hyperlink{setunitlen}{Setunitlen(数)} \>単位長を設定する\\ -\hyperlink{setwindow}{Setwindow()} \>描画領域を設定する\\ -\hyperlink{usegraphics}{Usegraphics()} \>グラフィクスパッケージを \verb|"pict2e"| に変更する\\ +\hyperlink{addax}{Addax(0/1)}\>座標軸を描くかどうかを定める\\ +\hyperlink{addpackage}{Addpackage(package)}\>プレビュー用のパッケージを追加\\ +\hyperlink{changework}{Changework(パス)}\>作業ディレクトリを変更する\\ +\hyperlink{deffun}{Deffun(関数名 , 定義list )}\>関数を定義する\\ +\hyperlink{definecolor}{Definecolor(色名 , 定義list )}\>ユーザー定義色の設定\\ +\hyperlink{defvar}{Defvar(文字列)} \>変数を定義する\\ +\hyperlink{drwxy}{Drwxy()} \>座標軸を先に描く\\ +\hyperlink{fontsize}{Fontsize(記号)}\>フォントサイズを設定する\\ +\hyperlink{ketinit}{Ketinit(options)}\>\ketcindy を初期化する\\ +\hyperlink{ptsize}{Ptsize(数)} \>表示する点の大きさを設定する\\ +\hyperlink{setarrow}{Setarrow(size,angle,pos,cut,style}\>矢線の形状を設定する\\ +\hyperlink{setax}{Setax(list)}\>座標軸の書式を設定する\\ +\hyperlink{setcolor}{Setcolor(color,options)}\>Windispgでの描画色を設定する\\ +\hyperlink{setfiles}{Setfiles(filename)}\>出力するファイル名を設定する\\ +\hyperlink{setparent}{Setparent(filename)}\>Parentで出力するファイル名を設定する\\ +\hyperlink{setmarklen}{Setmarklen(数)}\>軸の目盛の長さを設定する\\ +\hyperlink{setorigin}{Setorigin(座標)}\>表示する座標軸の原点の位置を設定する\\ +\hyperlink{setpen}{Setpen(数)}\>線の太さを設定する\\ +\hyperlink{setpt}{Setpt(数)}\>表示する点の大きさを設定する\\ +\hyperlink{setscaling}{Setscaling(数)}\>縦方向の倍率を設定する\\ +\hyperlink{setunitlen}{Setunitlen(数)}\>単位長を設定する\\ +\hyperlink{setwindow}{Setwindow()}\>描画領域を設定する\\ +\hyperlink{usegraphics}{Usegraphics()} \>グラフィクスパッケージを\verb|"pict2e"| に変更する\\ 【描画】\\ \hyperlink{addgraph}{AddGraph(name ,プロットデータ)} \>ユーザー定義のプロットデータを描画する\\ -\hyperlink{anglemark}{Anglemark(点list, options)} \>角の印を入れる\\ -\hyperlink{setarrow}{Setarrow(options)} \>矢線をスタイルを設定する\\ -\hyperlink{arrowdata}{Arrowdata(name.[始点,終点],options)} \>2点間を結ぶ矢線を描く\\ -\hyperlink{arrowhead}{Arrowhead(点,方向,options)} \>点に矢じりだけを描く\\ +\hyperlink{anglemark}{Anglemark(点list, options)}\>角の印を入れる\\ +\hyperlink{setarrow}{Setarrow(options)}\>矢線をスタイルを設定する\\ +\hyperlink{arrowdata}{Arrowdata(name.[始点,終点],options)}\>2点間を結ぶ矢線を描く\\ +\hyperlink{arrowhead}{Arrowhead(点,方向,options)}\>点に矢じりだけを描く\\ \hyperlink{bezier}{Bezier(name, list,list,options )} \>単独のベジェ曲線を描く\\ \hyperlink{beziersmooth}{Beziersmooth(name , list,options )} \>なめらかなベジェ曲線を描く。その1\\ \hyperlink{beziersym}{Beziersym(name , list,options )} \>なめらかなベジェ曲線を描く。その2\\ -\hyperlink{bowdata}{Bowdata(点list,options)} \>弓形を描く\\ -\hyperlink{bspline}{Bspline(name,list,options )} \>2次 Bスプライン曲線を描く\\ +\hyperlink{bowdata}{Bowdata(点list,options)}\>弓形を描く\\ +\hyperlink{bspline}{Bspline(name,list,options )} \>2次 Bスプライン曲線を描く\\ \hyperlink{changestyle}{Changestyle(PD list, options)} \>描画オプションを変更する\\ -\hyperlink{circledata}{Circledata(name,点list,options)} \>円または正多角形を描く\\ +\hyperlink{circledata}{Circledata(name,点list,options)}\>円または正多角形を描く\\ \hyperlink{crspline}{CRspline(name,list,options )} \>単独のCatmull-Rom スプライン曲線を描く\\ -\hyperlink{deqplot}{Deqplot(name,式,変数名,初期値,options])} \>微分方程式の解曲線を描く\\ -\hyperlink{dotfilldata}{Dotfilldata(name , 方向, PD , options)} \>領域に点を敷き詰める\\ -\hyperlink{drawsegmark}{Drawsegmark(name,list,options)} \>線分に印をつける\\ -%\hyperlink{drwpt}{Drawpoint([点,options])} \>点を表示する\\ -%\hyperlink{drwpt}{Drwpt([点,options])} \>点を表示する\\ -\hyperlink{ellipseplot}{Ellipseplot(name,list,str,options)} \>楕円を描く\\ -\hyperlink{enclosing}{Enclosing(name , [位置,方向,数式])} \>複数の曲線から閉曲線を描く\\ -\hyperlink{expr}{Expr([座標,位置,文字列],options)} \>\TeX 数式を書く\\ -\hyperlink{exprrot}{Exprrot(位置,向き,文字列)} \>傾いた\TeX 数式を書く\\ -\hyperlink{fourierseries}{Fourierseries(name,係数,周期,項数)} \>フーリエ級数を描く\\ -\hyperlink{framedata}{Framedata(name , list)} \>矩形を描く\\ -\hyperlink{hatchdata}{Hatchdata(name , 方向, PD , options)} \>領域に斜線を引く\\ -\hyperlink{htickmark}{Htickmark([横座標 , 方向 , 文字])} \>横軸に目盛りを描く\\ -\hyperlink{hyperbolaplot}{Hyperbolaplot(name,list,str,options)} \>双曲線を描く\\ -\hyperlink{implicitplot}{Implicitplot(name,str,,str,str,options)} \>陰関数のグラフを描く\\ -\hyperlink{invert}{Invert(PD)} \>プロットデータの点を逆順にする(reverseと同じ)\\ -\hyperlink{joincrvs}{Joincrvs(name, PDlist, options)} \>2つのプロットデータをつなげたデータを作る\\ -\hyperlink{letter}{Letter([座標,位置,文字列],options)} \>文字列を表示する\\ -\hyperlink{letterrot}{Letterrot(座標,方向,移動量,文字列)} \>文字列を回転して表示する\\ -\hyperlink{lineplot}{Lineplot(name,2点のlist,options)} \>2点を結ぶ直線を描く\\ -\hyperlink{listplot}{Listplot(name,点のlist,options)} \>点を線分で結ぶ\\ -\hyperlink{mkbeziercrv}{Mkbeziercrv(name,list,options)} \>作図した点を使ってベジェ曲線を描く\\ +\hyperlink{deqplot}{Deqplot(name,式,変数名,初期値,options])}\>微分方程式の解曲線を描く\\ +\hyperlink{dotfilldata}{Dotfilldata(name , 方向, PD , options)}\>領域に点を敷き詰める\\ +\hyperlink{drawsegmark}{Drawsegmark(name,list,options)}\>線分に印をつける\\ +%\hyperlink{drwpt}{Drawpoint([点,options])}\>点を表示する\\ +%\hyperlink{drwpt}{Drwpt([点,options])}\>点を表示する\\ +\hyperlink{ellipseplot}{Ellipseplot(name,list,str,options)}\>楕円を描く\\ +\hyperlink{enclosing}{Enclosing(name , [位置,方向,数式])}\>複数の曲線から閉曲線を描く\\ +\hyperlink{expr}{Expr([座標,位置,文字列],options)}\>\TeX 数式を書く\\ +\hyperlink{exprrot}{Exprrot(位置,向き,文字列)}\>傾いた\TeX 数式を書く\\ +\hyperlink{fourierseries}{Fourierseries(name,係数,周期,項数)}\>フーリエ級数を描く\\ +\hyperlink{framedata}{Framedata(name , list)}\>矩形を描く\\ +\hyperlink{hatchdata}{Hatchdata(name , 方向, PD , options)}\>領域に斜線を引く\\ +\hyperlink{htickmark}{Htickmark([横座標 , 方向 , 文字])}\>横軸に目盛りを描く\\ +\hyperlink{hyperbolaplot}{Hyperbolaplot(name,list,str,options)}\>双曲線を描く\\ +\hyperlink{implicitplot}{Implicitplot(name,str,,str,str,options)}\>陰関数のグラフを描く\\ +\hyperlink{invert}{Invert(PD)}\>プロットデータの点を逆順にする(reverseと同じ)\\ +\hyperlink{joincrvs}{Joincrvs(name, PDlist, options)}\>2つのプロットデータをつなげたデータを作る\\ +\hyperlink{letter}{Letter([座標,位置,文字列],options)}\>文字列を表示する\\ +\hyperlink{letterrot}{Letterrot(座標,方向,移動量,文字列)}\>文字列を回転して表示する\\ +\hyperlink{lineplot}{Lineplot(name,2点のlist,options)}\>2点を結ぶ直線を描く\\ +\hyperlink{listplot}{Listplot(name,点のlist,options)}\>点を線分で結ぶ\\ +\hyperlink{mkbeziercrv}{Mkbeziercrv(name,list,options)}\>作図した点を使ってベジェ曲線を描く\\ \hyperlink{mkbezierptcrv}{Mkbezierptcrv(list,options ) } \>制御点を自動配置してベジェ曲線を描く\\ -\hyperlink{mkcircles}{Mkcircles()} \>幾何円のすべてのPD を作成する\\ -\hyperlink{mksegments}{Mksegments()} \> 幾何線分のすべてのPD を作成する\\ -\hyperlink{ospline}{Ospline(list,list,options )} \>大島のスプライン曲線を描く\\ -\hyperlink{ovaldata}{Ovaldata(name, 点list,options)} \>角を丸くした矩形を描く\\ -\hyperlink{parabolaplot}{Parabolaplot(name,list,str,options)} \>放物線を描く\\ -\hyperlink{paramark}{Paramark(点list,options)} \>角の印を入れる\\ -\hyperlink{paramplot}{Paramplot(name,式,変数と定義域,options)} \>媒介変数で表された曲線を描く\\ -\hyperlink{polarplot}{Polarplot(name,式,変数と定義域,options)} \>極座標表示の曲線を描く\\\hyperlink{partcrv}{Partcrv(name,点1,点2,PD)} \>部分曲線を描く\\ -\hyperlink{periodfun}{Periodfun(定義式,周期,options)} \>周期関数のグラフを描く\\ -\hyperlink{plotdata}{Plotdata(name,式,変数と定義域,options)} \>関数のグラフを描く\\ -\hyperlink{pointdata}{Pointdata(name,点list,options)} \>点データを作る\\ -\hyperlink{polygonplot}{Polygonplot(name,点list,整数,options)} \>正多角形を描く\\ -\hyperlink{putintersect}{Putintersect(点名,PD1,PD2)} \>2曲線の交点を作る\\ -\hyperlink{putoncurve}{PutonCurve(name,PD,初期値)} \>曲線上に点を作る\\ -\hyperlink{putonline}{PutonLine(点名,座標1,座標2)} \>直線上に点を作る\\ -\hyperlink{putonseg}{PutonSeg(点名,座標1,座標2)} \>線分上に点を作る\\ -\hyperlink{putpoint}{Putpoint(点名,座標1,座標2)} \>点を作る\\ -\hyperlink{reflectdata}{Reflectdata(name,PD,点list,options)} \>プロットデータの鏡映を作成\\ -\hyperlink{reflectpoint}{Reflectpoint(点,対称点/対称軸)} \>点の鏡映を作成\\ -\hyperlink{rotatedata}{Rotatedata(name,PD,角度,中心,options)} \>プロットデータを回転する\\ -\hyperlink{rotatepoint}{Rotatepoint(点,角度,中心)} \>点の位置を回転する\\ -\hyperlink{rulerscale}{Rulerscale(点,list,list)} \>目盛を打つ\\ -\hyperlink{scaledata}{Scaledata(name,PD,x,y,中心,options)} \>点を拡大・縮小する\\ -\hyperlink{scalepoint}{Scalepoint(点,比率ベクトル,中心)} \>点の位置を拡大・縮小する\\ -\hyperlink{drawsegmark}{Segmark(name,list,options)} \>線分に印をつける\\ -\hyperlink{shade}{Shade(PDlist , 数)} \>閉曲線の内部にシェードをかける\\ -\hyperlink{tangentplot}{Tangentplot(name,PD, 位置)} \>曲線の接線を引く\\ -\hyperlink{translatedata}{Translatedata(name,PD,ベクトル,options)} \>プロットデータを平行移動する\\ -\hyperlink{translatepoint}{Translatepoint(点,ベクトル)} \>点を平行移動する\\ -\hyperlink{vtickmark}{Vtickmark([横座標 , 方向 , 文字])} \>縦軸に目盛りを描く\\ +\hyperlink{mkcircles}{Mkcircles()} \>幾何円のすべてのPD を作成する\\ +\hyperlink{mksegments}{Mksegments()}\> 幾何線分のすべてのPD を作成する\\ +\hyperlink{ospline}{Ospline(list,list,options )} \>大島のスプライン曲線を描く\\ +\hyperlink{ovaldata}{Ovaldata(name, 点list,options)}\>角を丸くした矩形を描く\\ +\hyperlink{parabolaplot}{Parabolaplot(name,list,str,options)}\>放物線を描く\\ +\hyperlink{paramark}{Paramark(点list,options)}\>角の印を入れる\\ +\hyperlink{paramplot}{Paramplot(name,式,変数と定義域,options)}\>媒介変数で表された曲線を描く\\ +\hyperlink{polarplot}{Polarplot(name,式,変数と定義域,options)}\>極座標表示の曲線を描く\\\hyperlink{partcrv}{Partcrv(name,点1,点2,PD)}\>部分曲線を描く\\ +\hyperlink{periodfun}{Periodfun(定義式,周期,options)}\>周期関数のグラフを描く\\ +\hyperlink{plotdata}{Plotdata(name,式,変数と定義域,options)}\>関数のグラフを描く\\ +\hyperlink{pointdata}{Pointdata(name,点list,options)}\>点データを作る\\ +\hyperlink{polygonplot}{Polygonplot(name,点list,整数,options)}\>正多角形を描く\\ +\hyperlink{putintersect}{Putintersect(点名,PD1,PD2)}\>2曲線の交点を作る\\ +\hyperlink{putoncurve}{PutonCurve(name,PD,初期値)}\>曲線上に点を作る\\ +\hyperlink{putonline}{PutonLine(点名,座標1,座標2)}\>直線上に点を作る\\ +\hyperlink{putonseg}{PutonSeg(点名,座標1,座標2)}\>線分上に点を作る\\ +\hyperlink{putpoint}{Putpoint(点名,座標1,座標2)}\>点を作る\\ +\hyperlink{reflectdata}{Reflectdata(name,PD,点list,options)}\>プロットデータの鏡映を作成\\ +\hyperlink{reflectpoint}{Reflectpoint(点,対称点/対称軸)}\>点の鏡映を作成\\ +\hyperlink{rotatedata}{Rotatedata(name,PD,角度,中心,options)}\>プロットデータを回転する\\ +\hyperlink{rotatepoint}{Rotatepoint(点,角度,中心)}\>点の位置を回転する\\ +\hyperlink{rulerscale}{Rulerscale(点,list,list)}\>目盛を打つ\\ +\hyperlink{scaledata}{Scaledata(name,PD,x,y,中心,options)} \>点を拡大・縮小する\\ +\hyperlink{scalepoint}{Scalepoint(点,比率ベクトル,中心)} \>点の位置を拡大・縮小する\\ +\hyperlink{drawsegmark}{Segmark(name,list,options)}\>線分に印をつける\\ +\hyperlink{shade}{Shade(PDlist , 数)}\>閉曲線の内部にシェードをかける\\ +\hyperlink{tangentplot}{Tangentplot(name,PD, 位置)}\>曲線の接線を引く\\ +\hyperlink{translatedata}{Translatedata(name,PD,ベクトル,options)}\>プロットデータを平行移動する\\ +\hyperlink{translatepoint}{Translatepoint(点,ベクトル)}\>点を平行移動する\\ +\hyperlink{vtickmark}{Vtickmark([横座標 , 方向 , 文字])}\>縦軸に目盛りを描く\\ 【作表】\\ -\hyperlink{changetablestyle}{ChangeTablestyle(罫線list, options)} \>Table の罫線の描画オプションを変更する。\\ -\hyperlink{findcell}{Findcell(列番号, 行番号)} \>セルの情報listを返す\\ -\hyperlink{putcell}{Putcell (列番号, 行番号, 位置, 文字)} \>セルに文字列を入れる\\ -\hyperlink{putcol}{PutcoL (列番号, 位置,文字列list)} \>1列に順に文字を書き入れる\\ -\hyperlink{putcolexpr}{PutcoLexpr (列番号, 位置,文字列list)} \>1列に順に\TeX 書式の文字を書き入れる\\ -\hyperlink{putrow}{Putrow (行番号, 位置,文字列list)} \>1行に順に文字を書き入れる\\ +\hyperlink{changetablestyle}{ChangeTablestyle(罫線list, options)}\>Table の罫線の描画オプションを変更する。\\ +\hyperlink{findcell}{Findcell(列番号, 行番号)}\>セルの情報listを返す\\ +\hyperlink{putcell}{Putcell (列番号, 行番号, 位置, 文字)} \>セルに文字列を入れる\\ +\hyperlink{putcol}{PutcoL (列番号, 位置,文字列list)} \>1列に順に文字を書き入れる\\ +\hyperlink{putcolexpr}{PutcoLexpr (列番号, 位置,文字列list)}\>1列に順に\TeX 書式の文字を書き入れる\\ +\hyperlink{putrow}{Putrow (行番号, 位置,文字列list)} \>1行に順に文字を書き入れる\\ \hyperlink{putrowexpr}{Putrowexpr (行番号, 位置,文字列list)} \>1行に順に\TeX 書式の文字を書き入れる\\ -\hyperlink{tabledata}{Tabledata("" , 縦横 ,除外 , options)} \>表の枠を作成する\\ -\hyperlink{tabledatalight}{Tabledatalight("" , 縦横 ,除外 , options)} \>幾何点を持たない表の枠を作成する\\ +\hyperlink{tabledata}{Tabledata("" , 縦横 ,除外 , options)}\>表の枠を作成する\\ +\hyperlink{tabledatalight}{Tabledatalight("" , 縦横 ,除外 , options)}\>幾何点を持たない表の枠を作成する\\ \hyperlink{tgrid}{Tgrid(セルラベル)} \>セル(格子点)の座標を返す\\ \hyperlink{tlistplot}{Tlistplot(セルラベル1,セルラベル2)} \>セルに斜線を引く\\ \vspace{\baselineskip} 【値の取得と入出力】\\ -\hyperlink{asin}{Asin(real),Acos(real) } \>逆三角関数の値を返す\\ -\hyperlink{crossprod}{Crossprod(list,list)} \>ベクトルの外積を計算する\\ -\hyperlink{derivative}{Derivative(関数式,変数,値)} \>関数の微分係数を求める\\ -\hyperlink{dotprod}{Dotprod(list,list)} \>ベクトルの内積を計算する\\ -\hyperlink{extractdata}{Extractdata(データ名,属性)} \>ReadOutDataで読み込んだデータに属性をつける。\\ -\hyperlink{findarea}{Findarea(PD)} \>プロットデータで囲まれる部分の面積を求める\\ -\hyperlink{findlength}{Findlength(PD)} \>プロットデータで描く曲線の長さを求める\\ -\hyperlink{integrate}{Integrate(関数式,変数,範囲,options)} \>関数の定積分値を求める\\ -\hyperlink{intersectcrvs}{Intersectcrvs(PD1,PD2)} \>プロットデータの交点の座標listを返す\\ -\hyperlink{intersectcrvspp}{IntersectcrvsPp(PD1,PD2)} \>プロットデータの交点のパラメータlistを返す\\ -\hyperlink{inversefun}{Inversefun(関数式,範囲,値)} \>逆関数値を求める\\ -%\hyperlink{makeshell}{Makeshell(ファイル名)} \>Macのシェルスクリプトを書き出す\\ -%\hyperlink{makeshell}{Makebat(ファイル名)} \>Windowsのバッチファイルを書き出す\\ -\hyperlink{nearestpt}{Nearestpt(PD,PD)} \>2曲線間の最も近い点を取得する\\ -\hyperlink{nearestptcrv}{Nearestptcrv(点,PD)} \>点に一番近い曲線上の点を取得する\\ -\hyperlink{numptcrv}{Numptcrv(PD)} \>曲線PD の節点データの個数を取得する\\ -\hyperlink{paramoncrv}{ParamonCurve(PD,n,PtL)} \>PD上にある点P のデータを取得する\\ -\hyperlink{pointoncrv}{Pointoncrv(数,PD)} \>パラメータ値をもつプロットデータ上の点\\ -\hyperlink{ptcrv}{Ptcrv(n,PD)} \>曲線PD のn 番目の節点を取得する\\ -\hyperlink{ptstart}{Ptstart(PD)} \>プロットデータの始点・終点を取得する\\ -\hyperlink{readoutdata}{ReadOutData(ファイル名)} \>外部データをPDとして読み込む\\ -\hyperlink{readcsv}{Readcsv(name,filename,option)} \>csvファイルを読む\\ -\hyperlink{readlines}{Readlines(name,filename,option)} \>テキストファイルを1行ずつ読む\\ -\hyperlink{sqr}{Sqr(real)} \>平方根を返す\\ -\hyperlink{viewtex}{Viewtex()} \>\TeX のソースファイルを書き出す。引数なし\\ -\hyperlink{workprocess}{Workprocess()} \>作図の経過を取得する\\ -\hyperlink{writeoutdata}{WriteOutData()} \>PDデータを書き出す\\ +\hyperlink{asin}{Asin(real),Acos(real) }\>逆三角関数の値を返す\\ +\hyperlink{crossprod}{Crossprod(list,list)}\>ベクトルの外積を計算する\\ +\hyperlink{derivative}{Derivative(関数式,変数,値)}\>関数の微分係数を求める\\ +\hyperlink{dotprod}{Dotprod(list,list)}\>ベクトルの内積を計算する\\ +\hyperlink{extractdata}{Extractdata(データ名,属性)}\>ReadOutDataで読み込んだデータに属性をつける。\\ +\hyperlink{findarea}{Findarea(PD)}\>プロットデータで囲まれる部分の面積を求める\\ +\hyperlink{findlength}{Findlength(PD)}\>プロットデータで描く曲線の長さを求める\\ +\hyperlink{integrate}{Integrate(関数式,変数,範囲,options)} \>関数の定積分値を求める\\ +\hyperlink{intersectcrvs}{Intersectcrvs(PD1,PD2)}\>プロットデータの交点の座標listを返す\\ +\hyperlink{intersectcrvspp}{IntersectcrvsPp(PD1,PD2)}\>プロットデータの交点のパラメータlistを返す\\ +\hyperlink{inversefun}{Inversefun(関数式,範囲,値)}\>逆関数値を求める\\ +%\hyperlink{makeshell}{Makeshell(ファイル名)}\>Macのシェルスクリプトを書き出す\\ +%\hyperlink{makeshell}{Makebat(ファイル名)} \>Windowsのバッチファイルを書き出す\\ +\hyperlink{nearestpt}{Nearestpt(PD,PD)}\>2曲線間の最も近い点を取得する\\ +\hyperlink{nearestptcrv}{Nearestptcrv(点,PD)}\>点に一番近い曲線上の点を取得する\\ +\hyperlink{numptcrv}{Numptcrv(PD)}\>曲線PD の節点データの個数を取得する\\ +\hyperlink{paramoncrv}{ParamonCurve(PD,n,PtL)}\>PD上にある点P のデータを取得する\\ +\hyperlink{pointoncrv}{Pointoncrv(数,PD)}\>パラメータ値をもつプロットデータ上の点\\ +\hyperlink{ptcrv}{Ptcrv(n,PD)}\>曲線PD のn 番目の節点を取得する\\ +\hyperlink{ptstart}{Ptstart(PD)}\>プロットデータの始点・終点を取得する\\ +\hyperlink{readoutdata}{ReadOutData(ファイル名)}\>外部データをPDとして読み込む\\ +\hyperlink{readcsv}{Readcsv(name,filename,option)}\>csvファイルを読む\\ +\hyperlink{readlines}{Readlines(name,filename,option)}\>テキストファイルを1行ずつ読む\\ +\hyperlink{sqr}{Sqr(real)}\>平方根を返す\\ +\hyperlink{viewtex}{Viewtex()}\>\TeX のソースファイルを書き出す。引数なし\\ +\hyperlink{workprocess}{Workprocess()}\>作図の経過を取得する\\ +\hyperlink{writeoutdata}{WriteOutData()}\>PDデータを書き出す\\ \vspace{\baselineskip} 【その他】\\ -\hyperlink{assign}{Assign(文字列)} \>文字列中のある文字を値で置き換える\\ -\hyperlink{bbdata}{BBdata(ファイル名)} \>画像のサイズを求める\\ -%\hyperlink{com0th}{Com0th(コマンド)} \>RのOpenfileの前に置くコマンドを定義する\\ -%\hyperlink{com1st}{Com1st(コマンド)} \>RのOpenfileの前に置くコマンドを定義する\\ +\hyperlink{assign}{Assign(文字列)}\>文字列中のある文字を値で置き換える\\ +\hyperlink{bbdata}{BBdata(ファイル名)}\>画像のサイズを求める\\ +%\hyperlink{com0th}{Com0th(コマンド)} \>RのOpenfileの前に置くコマンドを定義する\\ +%\hyperlink{com1st}{Com1st(コマンド)} \>RのOpenfileの前に置くコマンドを定義する\\ %\hyperlink{com2nd}{Com2nd(コマンド)} \>RのOpenfileのあとに置くコマンドを定義する\\ %\hyperlink{com2ndpre}{Com2ndpre(コマンド)} \>RのOpenfileのあとに置くコマンドを定義する\\ -\hyperlink{cindyname}{Cindyname()} \>作図しているファイル名を取得する。\\ -\hyperlink{colorcode}{Colorcode(文字1,文字2,color)} \>カラーコードの変換\\ -\hyperlink{dqq}{Dqq(文字列)} \>文字列の前後に\verb|"|をつける。\\ -\hyperlink{factorial}{Factorial(n)} \>nの階乗を計算する。\\ -\hyperlink{norm}{Norm(ベクトル)} \>ベクトルの大きさを計算する。\\ +\hyperlink{cindyname}{Cindyname()}\>作図しているファイル名を取得する。\\ +\hyperlink{colorcode}{Colorcode(文字1,文字2,color)}\>カラーコードの変換\\ +\hyperlink{dqq}{Dqq(文字列)}\>文字列の前後に\verb|"|をつける。\\ +\hyperlink{factorial}{Factorial(n)}\>nの階乗を計算する。\\ +\hyperlink{norm}{Norm(ベクトル)}\>ベクトルの大きさを計算する。\\ \hyperlink{figpdf}{Figpdf(option)} \>出力枠サイズのPDFを作る\\ -\hyperlink{help}{Help(str)} \>コマンドヘルプを表示する\\ -\hyperlink{helpkey}{Helpkey(str)} \>キーワードで関数を検索する\\ +\hyperlink{help}{Help(str)}\>コマンドヘルプを表示する\\ +\hyperlink{helpkey}{Helpkey(str)}\>キーワードで関数を検索する\\ \hyperlink{indexall}{Indexall(str1,str2)} \>文字列 str1 から str2 を検索しその位置をすべて返す\\ -\hyperlink{op}{Op(n,list)} \> listまたは文字列から要素を抜き出す\\ +\hyperlink{op}{Op(n,list)} \> listまたは文字列から要素を抜き出す\\ \hyperlink{isptselected}{Isptselected(点名)} \>点が選択されていればtrueを返す\\ \hyperlink{isptselected}{Ptselected(点名)} \>点が選択されていればtrueを返す\\ -\hyperlink{slider}{Slider()} \>スライダを作る\\ -\hyperlink{sprintf}{Sprintf(実数,長さ)} \>小数点以下の長さを固定した文字列に変換\\ -\hyperlink{strsplit}{Strsplit(文字列,文字)} \>文字列を分解する。\\ +\hyperlink{slider}{Slider()}\>スライダを作る\\ +\hyperlink{sprintf}{Sprintf(実数,長さ)}\>小数点以下の長さを固定した文字列に変換\\ +\hyperlink{strsplit}{Strsplit(文字列,文字)}\>文字列を分解する。\\ \hyperlink{texcom}{Texcom(コード)} \>\TeX のコードを書き出す\\ -\hyperlink{textformat}{Textformat(数,桁数)} \>小数点以下の桁数を指定して数値を文字列化する\\ -\hyperlink{windispg}{Windispg()} \>定義されたプロットデータを描画面に描く\\ +\hyperlink{textformat}{Textformat(数,桁数)} \>小数点以下の桁数を指定して数値を文字列化する\\ +\hyperlink{windispg}{Windispg()}\>定義されたプロットデータを描画面に描く\\ \vspace{\baselineskip} 【Rとの連携】\\ \hyperlink{boxplot}{Boxplot(名前,データ,位置,高さ,option)} \>箱ひげ図を描く\\ -\hyperlink{rfun}{Rfun(変数名,コマンド,引数, option)} \>Rの1つコマンドを実行して結果を返す\\ -\hyperlink{calcbyr}{CalcbyR(変数名,コマンド列, option)} \>Rのコマンド列を実行して結果を返す\\ -\hyperlink{histplot}{Histplot(name,data)} \>ヒストグラムを描く\\ -\hyperlink{plotdatar}{PlotdataR(name,式,変数)} \>Rの関数のグラフを描く\\ -\hyperlink{plotdiscr}{PlotdiscR(name,式,変数)} \>離散型のグラフを描く\\ -\hyperlink{scatterplot}{Scatterplot(name,filename,option)} \>2次元データを読み込み,散布図を描く\\ +\hyperlink{rfun}{Rfun(変数名,コマンド,引数, option)}\>Rの1つコマンドを実行して結果を返す\\ +\hyperlink{calcbyr}{CalcbyR(変数名,コマンド列, option)}\>Rのコマンド列を実行して結果を返す\\ +\hyperlink{histplot}{Histplot(name,data)}\>ヒストグラムを描く\\ +\hyperlink{plotdatar}{PlotdataR(name,式,変数)}\>Rの関数のグラフを描く\\ +\hyperlink{plotdiscr}{PlotdiscR(name,式,変数)}\>離散型のグラフを描く\\ +\hyperlink{scatterplot}{Scatterplot(name,filename,option)}\>2次元データを読み込み,散布図を描く\\ \vspace{\baselineskip} 【Maximaとの連携】\\ -\hyperlink{calcbyM}{CalcbyM(name,list,option)} \>Maximaのスクリプトを実行する\\ -%\hyperlink{example}{Example("Mxfun",文字)} \>Mxfunの使用例を表示\\ -\hyperlink{mxbatch}{Mxbatch(list)} \>Maximaの外部スクリプト用コマンドを作る\\ -\hyperlink{mxfun}{Mxfun(name,式,list,option)} \>Maximaの関数を実行する\\ -\hyperlink{mxtex}{Mxtex(num,式)} \>式をTeX書式にする\\ +\hyperlink{calcbyM}{CalcbyM(name,list,option)}\>Maximaのスクリプトを実行する\\ +%\hyperlink{example}{Example("Mxfun",文字)}\>Mxfunの使用例を表示\\ +\hyperlink{mxbatch}{Mxbatch(list)}\>Maximaの外部スクリプト用コマンドを作る\\ +\hyperlink{mxfun}{Mxfun(name,式,list,option)}\>Maximaの関数を実行する\\ +\hyperlink{mxtex}{Mxtex(num,式)}\>式をTeX書式にする\\ \vspace{\baselineskip} 【Risa/Asirとの連携】\\ -\hyperlink{asirfun}{Asirfun(name,式,list,option)} \>Risa/Asirの関数を実行する\\ -\hyperlink{calcbyA}{CalcbyA(name,list,option)} \>Risa/Asirのスクリプトを実行する\\ +\hyperlink{asirfun}{Asirfun(name,式,list,option)}\>Risa/Asirの関数を実行する\\ +\hyperlink{calcbyA}{CalcbyA(name,list,option)}\>Risa/Asirのスクリプトを実行する\\ \vspace{\baselineskip} 【FriCASとの連携】\\ -\hyperlink{calcbyF}{CalcbyF(name,list,option)} \>FriCASのスクリプトを実行する\\ -\hyperlink{frfun}{Frfun(name,式,list,option)} \>FriCASの関数を実行する\\ +\hyperlink{calcbyF}{CalcbyF(name,list,option)}\>FriCASのスクリプトを実行する\\ +\hyperlink{frfun}{Frfun(name,式,list,option)}\>FriCASの関数を実行する\\ \vspace{\baselineskip} 【MeshLabとの連携】\\ \hyperlink{mkobjcmd}{Mkobjcmd(name,式,option)} \>厚みを持たない曲面のコマンドを作成\\ @@ -7962,68 +8161,73 @@ Cinderellaで使っている用語に次のものがある。 \hyperlink{mkviewobj}{Mkviewobj(name,PD, options)} \>obj ファイルを作成\\ \vspace{\baselineskip} 【表計算ソフトとの連携】\\ -\hyperlink{dispmat}{Dispmat(list)} \>listの内容を行列型にコンソールに表示する\\ -\hyperlink{tab2list}{Tab2list(str,option)} \>str の内容をlistに変換する\\ -\hyperlink{writecsv}{Writecsv(namelist,data,option)} \>dataの内容をcsvファイルに書き出す\\ +\hyperlink{dispmat}{Dispmat(list)}\>listの内容を行列型にコンソールに表示する\\ +\hyperlink{tab2list}{Tab2list(str,option)}\>str の内容をlistに変換する\\ +\hyperlink{writecsv}{Writecsv(namelist,data,option)}\>dataの内容をcsvファイルに書き出す\\ \vspace{\baselineskip} 【アニメーション】\\ -%\hyperlink{moviedata}{Moviedata(str1,str2,options)} \>動画データの作成\\ -\hyperlink{setpara}{Setpata(str)} \>パラパラ動画のタイトル指定\\ +%\hyperlink{moviedata}{Moviedata(str1,str2,options)}\>動画データの作成\\ +\hyperlink{setpara}{Setpata(str)}\>パラパラ動画のタイトル指定\\ 【スライド】\\ -\hyperlink{settitle}{Settitle(タイトルlist,options)} \>スライドのタイトル設定\\ -【KeTCindy3D 設定・定義】\\ -\hyperlink{ketinit3d}{Ketinit3d()} \>KeTCindy3Dの使用宣言\\ -\hyperlink{isangle}{Isangle} \>角度スライダが選択されているか\\ -\hyperlink{start3d}{Start3d()} \>3Dの開始\\ -\hyperlink{startsurf}{Startsurf} \>曲面描画の初期化\\ -\vspace{\baselineskip} -【KeTCindy3D 描画】\\ -\hyperlink{bezier3d}{Bezier3d(name, list, list)} \>空間ベジェ曲線を描く\\ -\hyperlink{changestyle3d}{Changestyle3d(list, list)} \>3dプロットデータの属性を変更\\ -\hyperlink{concatobj}{Concatobj(list,option)} \>いくつかのobjデータを結合\\ -\hyperlink{crvsfparadata}{Crvsfparadata(name,PD,PD2,式,opt,opt)} \>曲線の曲面による陰線処理\\ -\hyperlink{datalist}{Datalist2d()} \>画面に描かれているすべてのプロットデータ\\ -\hyperlink{datalist}{Datalist3d()} \>画面に描かれているすべてのプロットデータ\\ -\hyperlink{dist3d}{Dist3d(点名,点名)} \>空間の2点の距離\\ -%\hyperlink{drawpoint3d}{Drawpoint3d(座標)} \>空間点を描く\\ -\hyperlink{embed}{Embed(name,PD,式)} \>埋め込みデータ作成\\ -\hyperlink{execcmdc}{ExeccmdC(name,options1,options2)} \>C言語で命令実行\\ -\hyperlink{expr3d}{Expr3D([座標,位置,文字列],options)} \>文字列を表示する\\ -\hyperlink{intersectcrvsf}{Intersectcrvsf(name,PD,式)} \>曲線と曲面の交点を求める\\ -\hyperlink{intersectsgpL}{IntersectsgpL(点名,線分,面,描画方法)} \>空間の直線と平面の交点\\ -\hyperlink{invparapt}{Invparapt(座標,PD)} \>描画面座標に対応する曲線上の座標\\ -\hyperlink{letter3d}{Letter3D([座標,位置,文字列],options)} \>文字列を表示する\\ -\hyperlink{mkbezierptcrv3d}{Mkbezierptcrv3d(点list)} \>制御点を自動的にとる空間ベジェ曲線\\ -\hyperlink{nohiddenbyfaces}{Nohiddenbyfaces(name,PD,PD,opt1,opt2)} \>多面体と空間曲線を陰線処理\\ -\hyperlink{parapt}{Parapt(座標)} \>点の投影面での座標\\ -\hyperlink{partcrv3d}{Partcrv3d(name,始点,終点,PD)} \>曲線PDの部分曲線を作る\\ -\hyperlink{perpplane}{Perpplane(点名, 点, ベクトル,option)} \>点を通り垂直な平面上の基準点\\ -\hyperlink{perppt}{Perppt(点名,点,点list,option)} \>平面に下ろした垂線の足\\ -\hyperlink{phparadata}{Phparadata(name,name2,options)} \>多面体を陰線処理して描く\\ +\hyperlink{settitle}{Settitle(タイトルlist,options)}\>スライドのタイトル設定\\ +【KeTCindy3D設定・定義】\\ +\hyperlink{ketinit3d}{Ketinit3d()}\>KeTCindy3Dの使用宣言\\ +\hyperlink{isangle}{Isangle}\>角度スライダが選択されているか\\ +\hyperlink{start3d}{Start3d()}\>3Dの開始\\ +\hyperlink{setangle}{Setangle} \>回転角の設定\\ +\hyperlink{getangle}{Getangle}\>回転角の取得\\ +\hyperlink{startsurf}{Startsurf}\>曲面描画の初期化\\ +\vspace{\baselineskip} +【KeTCindy3D描画】\\ +\hyperlink{bezier3d}{Bezier3d(name, list, list)}\>空間ベジェ曲線を描く\\ +\hyperlink{changestyle3d}{Changestyle3d(list, list)}\>3dプロットデータの属性を変更\\ +\hyperlink{concatobj}{Concatobj(list,option)}\>いくつかのobjデータを結合\\ +\hyperlink{crvsfparadata}{Crvsfparadata(name,PD,PD2,式,opt,opt)}\>曲線の曲面による陰線処理\\ +\hyperlink{datalist}{Datalist2d()}\>画面に描かれているすべてのプロットデータ\\ +\hyperlink{datalist}{Datalist3d()}\>画面に描かれているすべてのプロットデータ\\ +\hyperlink{dist3d}{Dist3d(点名,点名)}\>空間の2点の距離\\ +%\hyperlink{drawpoint3d}{Drawpoint3d(座標)}\>空間点を描く\\ +\hyperlink{embed}{Embed(name,PD,式)}\>埋め込みデータ作成\\ +\hyperlink{execcmdc}{ExeccmdC(name,options1,options2)}\>C言語で命令実行\\ +\hyperlink{expr3d}{Expr3D([座標,位置,文字列],options)}\>文字列を表示する\\ +\hyperlink{intersectcrvsf}{Intersectcrvsf(name,PD,式)}\>曲線と曲面の交点を求める\\ +\hyperlink{intersectsgpL}{IntersectsgpL(点名,線分,面,描画方法)}\>空間の直線と平面の交点\\ +\hyperlink{invparapt}{Invparapt(座標,PD)}\>描画面座標に対応する曲線上の座標\\ +\hyperlink{letter3d}{Letter3D([座標,位置,文字列],options)}\>文字列を表示する\\ +\hyperlink{mkbezierptcrv3d}{Mkbezierptcrv3d(点list)}\>制御点を自動的にとる空間ベジェ曲線\\ +\hyperlink{nohiddenbyfaces}{Nohiddenbyfaces(name,PD,PD,opt1,opt2)}\>多面体と空間曲線を陰線処理\\ +\hyperlink{parapt}{Parapt(座標)}\>点の投影面での座標\\ +\hyperlink{partcrv3d}{Partcrv3d(name,始点,終点,PD)}\>曲線PDの部分曲線を作る\\ +\hyperlink{perpplane}{Perpplane(点名, 点, ベクトル,option)}\>点を通り垂直な平面上の基準点\\ +\hyperlink{perppt}{Perppt(点名,点,点list,option)}\>平面に下ろした垂線の足\\ +\hyperlink{phparadata}{Phparadata(name,name2,options)}\>多面体を陰線処理して描く\\ \hyperlink{pointdata3d}{Pointdata3d(名前,点list,options)} \>空間点のデータを作成する\\ -\hyperlink{putaxes3d}{Putaxes3d([x,y,z])} \>軸上に幾何点をとる\\ -\hyperlink{putonCurve3d}{PutonCurve3d(点名,PD)} \>空間曲線上に点をとる\\ -\hyperlink{putonseg3d}{Putonseg3d(点名,点1,点2)} \>線分上に点をとる\\ -\hyperlink{putpoint3d}{Putpoint3d(list,option)} \>空間点をとる\\ -\hyperlink{readobj}{Readobj(ファイル名)} \>objファイルを読み込む\\ -\hyperlink{reflectdata3d}{Reflectdata3d(点,PDlist,list,options)} \>PDを鏡映\\ -\hyperlink{reflectpoint3d}{Reflectpoint3d(点,list)} \>点を鏡映\\ -\hyperlink{rotatedata3d}{Rotatedata3d(name,PD,vec,角度,点)} \>プロットデータを回転\\ -\hyperlink{rotatepoint3d}{Rotatepoint(点 , vec , 角度 , 点)} \>点を回転\\ -\hyperlink{scaledata3d}{Scaledata3d(点, vec, 中心)} \>プロットデータを拡大/縮小\\ -\hyperlink{scalepoint3d}{Scalepoint3d(点, vec, 中心)} \>点の位置を拡大/縮小\\ -\hyperlink{sf3data}{Sf3data(name, list,options)} \>陰線処理なしの空間曲面を描く\\ -\hyperlink{sfbdparadata}{Sfbdparadata(name, 式,options)} \>曲面を陰線処理して描く\\ +\hyperlink{putaxes3d}{Putaxes3d([x,y,z])}\>軸上に幾何点をとる\\ +\hyperlink{putonCurve3d}{PutonCurve3d(点名,PD)}\>空間曲線上に点をとる\\ +\hyperlink{putonseg3d}{Putonseg3d(点名,点1,点2)}\>線分上に点をとる\\ +\hyperlink{putpoint3d}{Putpoint3d(list,option)}\>空間点をとる\\ +\hyperlink{readobj}{Readobj(ファイル名)}\>objファイルを読み込む\\ +\hyperlink{reflectdata3d}{Reflectdata3d(点,PDlist,list,options)}\>PDを鏡映\\ +\hyperlink{reflectpoint3d}{Reflectpoint3d(点,list)}\>点を鏡映\\ +\hyperlink{rotatedata3d}{Rotatedata3d(name,PD,vec,角度,点)}\>プロットデータを回転\\ +\hyperlink{rotatepoint3d}{Rotatepoint(点 , vec , 角度 , 点)}\>点を回転\\ +\hyperlink{scaledata3d}{Scaledata3d(点, vec, 中心)}\>プロットデータを拡大/縮小\\ +\hyperlink{scalepoint3d}{Scalepoint3d(点, vec, 中心)}\>点の位置を拡大/縮小\\ +\hyperlink{sf3data}{Sf3data(name, list,options)}\>陰線処理なしの空間曲面を描く\\ +\hyperlink{sfbdparadata}{Sfbdparadata(name, 式,options)}\>曲面を陰線処理して描く\\ \hyperlink{sfcutparadatacdy}{Sfcutparadatacdy(name,面,曲面,options)} \>平面と曲面の交線を求める。\\ -\hyperlink{skeletonparadata}{Skeletonparadata(name,PD,PD,options)} \>スケルトン処理のデータ作成\\ -\hyperlink{spacecurve}{Spacecurve(name, 式, 定義域,options)} \>空間曲線のデータ作成\\ -\hyperlink{spaceline}{Spaceline(name,list)} \>空間の折線データ作成\\ -\hyperlink{translatedata3d}{Translatedata3d(name,PD, 平行移動量)} \>空間プロットデータを平行移動\\ -\hyperlink{translatepoint3d}{Translatepoint3d(座標,平行移動量)} \>空間点を平行移動\\ -\hyperlink{vertexedgeface}{VertexEdgeFace(面データ,option)} \>頂点と面から辺を求め,辺を描く\\ -\hyperlink{wireparadata}{Wireparadata(name,PD,式,int,int,opt,opt)} \>曲面のワイヤフレームを陰線処理\\ -\hyperlink{xyzax3data}{Xyzax3data(name,文字,文字,文字,options)} \>座標軸の表示\\ -\hyperlink{xyzcoord}{Xyzcoord(P.x,P.y,Pz.y)} \>主副画面で決まる点の座標 +\hyperlink{skeletonparadata}{Skeletonparadata(name,PD,PD,options)}\>スケルトン処理のデータ作成\\ +\hyperlink{spacecurve}{Spacecurve(name, 式, 定義域,options)}\>空間曲線のデータ作成\\ +\hyperlink{spaceline}{Spaceline(name,list)}\>空間の折線データ作成\\ +\hyperlink{translatedata3d}{Translatedata3d(name,PD, 平行移動量)}\>空間プロットデータを平行移動\\ +\hyperlink{translatepoint3d}{Translatepoint3d(座標,平行移動量)}\>空間点を平行移動\\ +\hyperlink{vertexedgeface}{VertexEdgeFace(面データ,option)}\>頂点と面から辺を求め,辺を描く\\ +\hyperlink{wireparadata}{Wireparadata(name,PD,式,int,int,opt,opt)}\>曲面のワイヤフレームを陰線処理\\ +\hyperlink{xyzax3data}{Xyzax3data(name,文字,文字,文字,options)}\>座標軸の表示\\ +\hyperlink{xyzcoord}{Xyzcoord(P.x,P.y,Pz.y)}\>主副画面で決まる点の座標\\ +【KeTJS】\\ +\hyperlink{setketcindyjs}{Setketcindyjs(options)}\>KeTJSの設定\\ + \end{tabbing} \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTpicStyleJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTPicStyleJ.tex index 1649dd10b64..1649dd10b64 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTpicStyleJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTPicStyleJ.tex diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex index 8145b7fb7a8..d42acd524ac 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxE.tex @@ -14,19 +14,23 @@ \begin{document} \begin{center} -How to install KeTCindy(Mac) +How to install KeTCindy(Linux) \end{center} \hfill modified\ :\ \today \begin{enumerate}[\bf\large 1.] -\item Install Cinderella, R and Maxima. - \begin{itemize} - \item \url{https://beta.cinderella.de} (Cinderella) - \item \url{https://cran.r-project.org} (R) - \item \url{https://sourceforge.net/projects/maxima/files} (Maxima) - \end{itemize} +\item Install Cinderella, R, Maxima and Evince if necessary. + \begin{enumerate}[(1)] + \item Download \verb|Unix Install| from \\ + \hspace*{10mm}\url{https://beta.cinderella.de} + and move it to user's home for example. + \item Put \verb|setcindyetc.sh| in user's home, for example, and edit it with a text editor.\\ + \hspace*{5mm}Rem) The file is in \verb|ketcindyfolder/forLinux|. + \item Execute\\ + \hspace*{10mm}\verb|sudo bash ~/setcindyetc.sh| + \end{enumerate} \item Install TeX if any TeX has not been installed. \begin{enumerate}[(1)] @@ -35,38 +39,40 @@ How to install KeTCindy(Mac) \item Files necessary for KeTCindy are already implemented (2018 or later). \end{itemize} \item KeTTeX is a light-weight version of TeXLive and downloadable from\\ - \hspace*{6mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0} + \hspace*{6mm}\url{https://www.dropbox.com/sh/79ofbls9nf0ywkj/AAA4KaH6MaFsaL0e-ACqw-0Ya?dl=0} + \begin{itemize} + \item Put the file in user's home and extract it. + \item Execute the fillowing on the terminal.\\ + \hspace*{10mm}\verb|sudo bash ~/kettex/setkettex.sh| + \end{itemize} \end{enumerate} - -\item Install KeTCdindy +\item Install KeTCindy \begin{enumerate}[(1)] \item Download ketcindy from CTAN(\url{https://ctan.org})\\ \hspace*{10mm}Search ketcindy \verb|>| Package ketcindy \verb|>| download \begin{itemize} - \item[Rem)]The latest version can be download from Repository:\\ + \item The latest version can be downloaded from Repository:\\ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\ \hspace*{10mm}Clone or Download \verb|>| Download ZIP \end{itemize} \item Open ketcindy(-master)/forLinux. - \item Open Terminal and execute setketcindy.sh with sh command + \item Open setketcindy.sh with a text editor and confirm/modify paths. \begin{itemize} - \item if some paths are wrong,\\ - \hspace*{5mm}open setketcindy.sh with a text editor, and edit paths written in it. + \item Execute on terminal:\\ + \hspace*{10mm}\verb|sudo bash setketcindy.sh| \item Contents of scripts will be copied into TeX. - \item ketcindystyle files will be copied and mktexlsr will be executed. + \item Style files for \ketcindy\ will be copied and mktexlsr will be executed. \item In Cinderella/PlugIns\\ \hspace*{5mm}KetcindyPluign.jar will be copied.\\ \hspace*{5mm}ketcindy.ini will be generated . \end{itemize} - \item Open Terminal and execute setwork.sh with sh command. + \item Open setwork.sh with a text editor and confirm/modify it. \begin{itemize} - \item[Rem)]Control-click and select Terminal if necessary. - \end{itemize} - \begin{itemize} - \item Work directory "ketcindy" will be generated in User's home. + \item Execute on terminal:\\ + \hspace*{10mm}\verb|bash setwork.sh| \item TeX(typeset) will be usually latex,xelatex or pdflatex. - \item Contents of “work” will be copied into "ketcindy" + \item Contents of “work” will be copied into "ketcindy"(work folder). \item \verb|.ketcindy.conf| will be also generated in User's home.\\ \hspace*{10mm}You can change the setting of PasthT, Mackc, etc. \item Template of "ketcindy.conf" will be also copied to work directory. @@ -80,17 +86,16 @@ How to install KeTCindy(Mac) \end{enumerate} \item Test run of KeTCindy - \begin{enumerate}[(1)] - \item Double-click "template1basic.cdy" in work directory "ketcindy".\\ - \hspace*{10mm}Then a frame in white appear on the screen. \end{enumerate} - \item Press "Figure" button at the top left, then the final PDF output is displayed. +\begin{enumerate}[(1)] + \item Test template1basic.cdy in ketcindy (work folder). \begin{itemize} - \item[Rem)]To close the window of Terminal when the process exits : - \begin{itemize} - \item Start \verb|Terminal|.\\ - \hspace*{10mm}Preferences \verb|>| Shell \verb|>| "Colse if the shell exited clearly" - \end{itemize} - \end{itemize} + \item Execute on terminal:\\ + \hspace*{10mm}\verb|cd (to the path of ketcindy)|\\ + \hspace*{10mm}\verb|Cinderella2 template1basic.cdy| + \item a frame in white will appear on the screen. + \end{itemize} + \item Press "Figure" button at the top left, then the final PDF output will be displayed. + \end{enumerate} \item Set Texworks if necessary. \begin{itemize} diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex index a7c876e09dd..03595f047f4 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeLinuxJ.tex @@ -16,27 +16,37 @@ \begin{document} \begin{center} -KETCindyのインストール (Linux) +\ketcindy\ のインストール (Linux) \end{center} \hfill 修正日:\today \begin{enumerate}[\bf\large 1.] -\item Cinderella, R, Maxima をインストールする. - \begin{itemize} - \item \url{https://beta.cinderella.de} (Cinderella) - \item \url{https://cran.r-project.org} (R) - \item \url{https://sourceforge.net/projects/maxima/files} (Maxima) - \end{itemize} +\item Cinderella, R, Maxima, Evince をインストールする. + \begin{enumerate}[(1)] + \item 次に行き,Unix Installをダウンロードして,例えばユーザホームにおく.\\ + \hspace*{10mm}\url{https://beta.cinderella.de} + \item setcindyetc.shを例えばユーザホームにおき,テキストエディタで編集する.\\ + \hspace*{5mm}注)setcindyetc.shは\verb|ketcindyfolder/forLinux|にある. + \item 以下を実行する.\\ + \hspace*{10mm}\verb|sudo bash ~/setcindyetc.sh| + \end{enumerate} -\item TeXをインストールしていない場合はインストールする. +\item \TeX をインストールしていない場合はインストールする. \begin{enumerate}[(1)] \item TeXLiveを推奨 \begin{itemize} \item 2018以降ではketcindyが既に入っている. \end{itemize} \item KeTTeXはTeXLiveの軽量版で,以下からダウンロードできる.\\ - \hspace*{6mm}\url{https://www.dropbox.com/s/vg8p07832e9hzlk/KeTTeX-linux-20171022.tar.xz?dl=0} + \hspace*{6mm}\url{https://www.dropbox.com/s/i6g64d897xr72nj/kettex.tar.gz?dl=0} + + \begin{itemize} + \item どこか(例えばホーム)に置いて解凍する. + \item ターミナルで以下を実行する.\\ + \verb|sudo bash ~/kettex/setkettex.sh|(ホームの場合) + \end{itemize} + % \item 他のTeXの場合は,{\bf 3.}(2)を参照する. \end{enumerate} @@ -45,29 +55,31 @@ KETCindyのインストール (Linux) \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\ \hspace*{10mm}ketcindyで検索 \verb|>| Package ketcindy \verb|>| download \begin{itemize} - \item[注)]最新版は,Repositoryのサイト\\ + \item[*]最新版は,Repositoryのサイト\\ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\ から以下のようにダウンロードできる.\\ \hspace*{10mm}Clone or download \verb|>| Download ZIP - \item[注)]この場合は,ketcindy-masterになる. + \item[*]この場合は,ketcindy-masterになる. \end{itemize} \item ketcindy(-master)/forLinuxを開く. - \item ターミナルのshコマンドでsetketcindy.shを実行. + \item setketcindy.shをテキストエディタで開いて,パスを確認,修正する. \begin{itemize} - \item 表示されるパスが違っている場合\\ - \hspace*{10mm}setketcindy.shをテキストエディタで開いて,パスを修正する. - \item scriptsの中身がTeXにコピーされる - \item ketcindyのstyleファイルがTeXにコピーされmktexlsrが実行される. - \item CinderellaのPluginsにKetcindyPlugin.jarをコピー,ketcindy.iniが作成される. + \item ターミナルで以下を実行する.\\ + \verb|sudo bash setketcindy.sh| + \item scriptsの中身が\TeX にコピーされる + \item ketcindyのstyleファイルが\TeX にコピーされmktexlsrが実行される. + \item CinderellaのPluginsにKetcindyPlugin.jarがコピーされketcindy.iniが作成される. \end{itemize} - \item ターミナルのshコマンドでsetwork.shを実行. + \item setwork.shをテキストエディタで開いて,パスを確認,修正する. \begin{itemize} + \item ターミナルで以下を実行する.\\ + \verb|bash setketwork.sh| \item 作業ディレクトリketcindyがユーザホームに作成される. - \item タイプセットの方法(TeXの種類)\\ + \item タイプセットの方法(\TeX の種類)\\ \hspace*{10mm}通常は,platex (p)またはuplatex(u)を選ぶ. \item ketcindyフォルダにworkフォルダの中身がコピーされる. \item \verb|.ketcindy.conf|(不可視ファイルだが編集可能)がユーザホームに作成される.\\ - \hspace*{10mm}注)TeXを切り替えるときなどはこのファイルを修正する. + \hspace*{10mm}注)\TeX を切り替えるときなどはこのファイルを修正する. \item マニュアルもコピーされる. \item 作業ディレクトリにketincy.confの雛形がコピーされる. \item KeTCindyを立ち上げたとき,設定ファイルは次の順に読み込まれる. @@ -78,13 +90,14 @@ KETCindyのインストール (Linux) \end{enumerate} \end{itemize} \end{enumerate} + \item KeTCindyのテストラン \begin{enumerate}[(1)] - \item 作業ディレクトリketcindyを開く. - \item ketcindyの中のtemplate1basic.cdyを選び,「情報を見る」を開く. + \item 作業ディレクトリketcindyにあるtemplate1basic.cdyを実行してみる. \begin{itemize} - \item アプリケーションが所定のCinderella2になっていることを確かめる. - \item「情報」を閉じて,template1basic.cdyをダブルクリックする. + \item ターミナルで以下を実行\\ + \verb|cd (ketcindyのパス)|\\ + \verb|Cinderella2 template1basic.cdy| \item 画面に白い枠が出れば,ライブラリの読み込みは成功. \end{itemize} \item スクリーンの左上部にあるFigureボタンを押して,PDFが表示されれば成功. diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex index cb61f9be12a..ba98fdd75dd 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeMacJ.tex @@ -24,12 +24,15 @@ KETCindyのインストール (Mac) \begin{enumerate}[\bf\large 1.] \item Cinderella, R, Maxima をインストールする. \begin{itemize} - \item \url{https://beta.cinderella.de} (Cinderella) - \item \url{https://cran.r-project.org} (R) - \item \url{https://sourceforge.net/projects/maxima/files} (Maxima) + \item \url{https://beta.cinderella.de} (Cinderella)\\ +\hspace*{1zw}・解凍してできるCinderella2(.app)を /アプリケーションに{\bf 移動}する.\\ +\hspace*{2zw}注)ketcindy(-master)/forMacにある Applicationsにドラグドロップしてもよい. + \item \url{https://cran.r-project.org} (R)\\ +\hspace*{1zw}・ダブルクリックして,起動するかを確認する. + \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)\\ +\hspace*{1zw}・v5.38.0以前の方がv5.40.0以降より軽い. \end{itemize} - 注) ダブルクリックして,起動するかを確認する. - + \item TeXをインストールしていない場合はインストールする. \begin{enumerate}[(1)] \item TeXLiveを推奨 @@ -55,6 +58,8 @@ KETCindyのインストール (Mac) から以下のようにダウンロードできる.\\ \hspace*{10mm}Clone or download \verb|>| Download ZIP \item[注)]この場合は,ketcindy-masterになる. + \item[注)] フォルダ名がketcindy-master 2などになっていたら,スペースをとる. + \item[注)] すべて手動でインストールするときは,{\bf 7}に従って行う. \end{itemize} \item ketcindy(-master)/forMacを開く. \begin{itemize} @@ -68,6 +73,8 @@ KETCindyのインストール (Mac) \begin{itemize} \item[注)]管理者権限が必要となる. \item[注)]開かないときはControl+クリックでターミナルを選ぶ. + \item[注)]ダブルクリックで「開くか」を表示させるには,ターミナルで以下を実行しておく.\\ + \hspace*{20mm}\verb|sudo spctl --master-disable| \end{itemize} \begin{itemize} \item scriptsの中身がTeXにコピーされる @@ -144,6 +151,31 @@ KETCindyのインストール (Mac) \hspace*{5mm}注) ターミナルで次を実行すれば,gccだけがインストールされる.\\ \hspace*{20mm}\verb|sudo xcode-select —install| \end{itemize} + +\item 手動でインストールする場合(KeTTeX)\\ +\hspace*{1zw}注)他のTeXの場合は,適宜パスを置き換える.\\ +\hspace*{3zw}\verb|/Applications/kettex/texlive| $=>$ \verb|/Library/TeX/Root| など + \begin{enumerate}[(1)] + \item ketcindy(-master)/ketcindyfolderを開いておく. + \item scriptsフォルダの中身を以下にコピーする.\\ + \verb|/Applications/kettex/texlive/texmf-dist/scripts/ketcindy| + \item styleフォルダの中身を以下にコピーする.\\ + \verb|/Applications/kettex/texlive/texmf-dist/tex/latex/ketcindy| + \item ターミナルで以下を実行する\\ + \hspace*{1zw}\verb|sudo /Applications/kettex/texlive/bin/x86_64-darwin/mktexlsr| + \item /Applications/Cinderella2(.app)をダブルクリック + \item メニューから 「スクリプト」>「プラグインを開く」を選び,Pluginsフォルダを開く. + \item scripts/ketjava/KetCindyPlugin.jarをPluginsにコピーする. + \item ketcindy(-master)/forMac/Forsettingmanually/ketcindy.iniをPluginsにコピーする.\\ + \hspace*{2zw}注)他のTeX の場合は,ketcindy.iniをテキストエディタで開いて修正する. + \item Puginsを閉じ,Cinderella2を終了する. + \item workを適当な場所にコピーして,名前を変更する.\\ +\hspace*{2zw}注)標準は パス:ユーザーホーム(の直下) 名前:ketcindy + \item 上の作業ディレクトリ(ketcindy)に doc/ketmanual のマニュアルをコピーする. + \item forMacにある ketcindy.conf をテキストエディタで開き,適宜修正する. + \item ターミナルで以下を実行する.\\ + \hspace*{1zw}\verb|cp (forMacのパス)/ketcindy.conf ~/.ketcindy.conf| + \end{enumerate} \end{enumerate} \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex index eecd1de9e7b..49cae8839b2 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinE.tex @@ -39,8 +39,8 @@ How to install KeTCindy(Windows) \item kettex is a light-weight TeXLive. \begin{itemize} \item Download kettex.zip from\\ - \hspace*{10mm}\url{https://www.dropbox.com/s/dc4inuk06t07g26/kettex.dmg?dl=0} - \item Double-click it and move kettex to \verb|/Applications|. + \hspace*{10mm}\url{https://www.dropbox.com/s/fthw4btjqqs33tc/kettex.exe?dl=0} + \item Double-click it and move kettex to \verb|C:\|. \end{itemize} \item In case of other TeX, see {\bf 3.}(2). \end{enumerate} @@ -54,10 +54,11 @@ How to install KeTCindy(Windows) \item[Rem)]The latest version can be download from Repository:\\ \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\ \hspace*{10mm}Clone or Download \verb|>| Download ZIP + \item[Rem)]Move the extracted folder to Desktop. \end{itemize} \item Open ketcindy(-master)/forWindows. \begin{itemize} - \item[Rem)]If you use TeX other than TeXLIve/KeTTeX, + \item[Rem)]If you use TeX other than TeXLIve/KeTTeX, \begin{itemize} \item Open setketcindy.bat with a text editor. \item Edit paths in it. @@ -67,7 +68,7 @@ How to install KeTCindy(Windows) \hspace*{10mm}\Ltab{15mm}{KeTTeX} setketcindy.bat\\ \hspace*{10mm}\Ltab{15mm}{TeXLive} setketcindytexlive.bat\\ \hspace*{10mm}\Ltab{15mm}{Others} edited setketcindy.bat - \begin{itemize} + \item[Rem)]In the case of Windows10, unblock the security block. \begin{itemize} \item Contents of scripts will be copied into TeX. \item ketcindystyle files will be copied and mktexlsr will be executed. \item In Cinderella/PlugIns\\ @@ -81,7 +82,8 @@ How to install KeTCindy(Windows) \begin{itemize} \item Work directory "ketcindy" will be generated in User's home. \item TeX(typeset) will be usually latex,xelatex or pdflatex. - \item Contents of “work” will be copied into "ketcindy" + \item Input the version numbers of R, Maxima, for example 3.4.2,\ 5.37.3. + \item Contents of “work” will be copied into "ketcindy" \item \verb|.ketcindy.conf| will be also generated in User's home.\\ \hspace*{10mm}You can change the setting of PasthT, Mackc, etc. \item Template of "ketcindy.conf" will be also copied to work directory. @@ -111,9 +113,9 @@ How to install KeTCindy(Windows) \begin{itemize} \item Downloadable from \url{https://github.com/TeXworks/texworks/releases/}. \item Launch TeXworks,\\ - \hspace*{10mm}and choose Edit \verb|>| Preference \verb|>| Typeset. + \hspace*{10mm}and choose Edit \verb|>| Files verb|>| Preference \verb|>| Typeset. \item Push upper + and add\\ - \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin| + \hspace*{5mm}\verb|C:\kettex\texlive\bin\win32| \item Select Xelatex or pdflatex. \end{itemize} diff --git a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex index fbc0137c232..23c46b9d5ea 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/readme/ReadmeWinJ.tex @@ -26,7 +26,8 @@ KETCindyのインストール (Windows) \begin{itemize} \item \url{https://beta.cinderella.de} (Cinderella) \item \url{https://cran.r-project.org} (R) - \item \url{https://sourceforge.net/projects/maxima/files} (Maxima) + \item \url{https://sourceforge.net/projects/maxima/files} (Maxima)\\ +\hspace*{1zw}・v5.38.0以前の方がv5.40.0以降より軽い. \item \url{https://www.sumatrapdfreader.org/download-free-pdf-viewer.html} (Sumatra)\\ \hspace*{10mm}注)SumatraはWindowsだけである. \end{itemize} 注) ダブルクリックして,起動するかを確認する. @@ -39,7 +40,7 @@ KETCindyのインストール (Windows) \end{itemize} \item KeTTeXはTeXLiveの軽量版 \begin{itemize} - \item kettex.dmgを以下からダウンロードできる.\\ + \item kettex.exeを以下からダウンロードできる.\\ \hspace*{10mm}\url{https://www.dropbox.com/s/fthw4btjqqs33tc/kettex.exe?dl=0} \item ダブルクリックしてできるkettexを\verb|C:\|に入れる. \end{itemize} @@ -54,11 +55,14 @@ KETCindyのインストール (Windows) \item[注)]最新版は,Repositoryのサイト\\ \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\ から以下のようにダウンロードできる.\\ - \hspace*{10mm}Clone or download \verb|>| Download ZIP - \item[注)]この場合は,ketcindy-masterになる. + \hspace*{10mm}Clone or download \verb|>| Download ZIP\\ + この場合は,ketcindy-masterになる. + \item[注)]解凍してできるフォルダをデスクトップに移動する. \end{itemize} \item ketcindy(-master)/forWindowsを開く. \begin{itemize} + \item[注)]Windows10の場合,セキュリティブロックを解除する.\\ +\hspace*{5mm}右クリックして「プロパティ」>「セキュリティ」>「許可」 \item[注)]他のTeX(TeXLive,W32tex以外)を使っている場合 \begin{itemize} \item setketcindy.bat をテキストエディタで開く. @@ -76,12 +80,13 @@ KETCindyのインストール (Windows) \item CinderellaのPluginsにKetcindyPlugin.jarをコピー,ketcindy.iniが作成される. \end{itemize} \item setwork.batをダブルクリック - \begin{itemize} + \begin{itemize} \item 作業ディレクトリketcindyがユーザホームに作成される. \item タイプセットの方法(TeXの種類)\\ \hspace*{10mm}通常は,platex (p)またはuplatex(u)を選ぶ. + \item R,\ Maximaでは,バージョン番号(3.4.2,\ 5.37.3など)を入れる. \item ketcindyフォルダにworkフォルダの中身がコピーされる. - \item \verb|.ketcindy.conf|(不可視ファイルだが編集可能)がユーザホームに作成される.\\ + \item \verb|.ketcindy.conf|(編集可能)がユーザホームに作成される.\\ \hspace*{10mm}注)TeXを切り替えるときなどはこのファイルを修正する. \item マニュアルもコピーされる. \item 作業ディレクトリにketincy.confの雛形がコピーされる. @@ -118,9 +123,9 @@ KETCindyのインストール (Windows) \begin{itemize} \item \url{https://github.com/TeXworks/texworks/releases/} からダウンロードできる. \item TeXworksを立ち上げる - \item TeXworks \verb|>| 環境設定 \verb|>| タイプセット + \item TeXworks \verb|>| ファイル \verb|>| 設定 \verb|>| タイプセット \item 上の欄(パス)に以下を追加\\ - \hspace*{5mm}\verb|/Applications/kettex/texlive/bin/x86_64-darwin|\\ + \hspace*{5mm}\verb|C:\kettex\texlive\bin\win32|\\ \hspace*{10mm}注) 上の行を上の欄の先頭になるように移動する. \item 下の欄の横にある + をクリック \begin{itemize} @@ -143,6 +148,30 @@ KETCindyのインストール (Windows) をダウンロードして実行\\ \hspace*{10mm}注) パッケージは,mingw32-base, mingw32-gcc-g++だけでよい. \end{itemize} + +\item 手動でインストールする場合(KeTTeX)\\ +\hspace*{1zw}注)他のTeXの場合は,適宜パスを置き換える.\\ +\hspace*{3zw}\verb|C:\kettex\texlive| $=>$ \verb|C:\texlive\2018| など + \begin{enumerate}[(1)] + \item \verb|ketcindy(-master)\ketcindyfolder|を開いておく. + \item scriptsフォルダの中身を以下にコピーする.\\ + \verb|C:\kettex\texlive\texmf-dist\scripts\ketcindy| + \item styleフォルダの中身を以下にコピーする.\\ + \verb|C:\kettex\texlive\texmf-dist\tex\latex\ketcindy| + \item コマンドプロンプトで以下を実行する\\ + \hspace*{1zw}\verb|C:\kettex\texlive\bin\win32\mktexlsr| + \item \verb|C:\Program files\Cinderella2(.exe)|をダブルクリック + \item メニューから 「スクリプト」>「プラグインを開く」を選び,Pluginsフォルダを開く. + \item \verb|scripts\ketjava\KetCindyPlugin.jar|をPluginsにコピーする. + \item \verb|ketcindy(-master)\forWindows\Forsettingmanually\ketcindy.ini|をPluginsにコピーする.\\ + \hspace*{2zw}注)他のTeX の場合は,ketcindy.iniをテキストエディタで開いて修正する. + \item Puginsを閉じ,Cinderella2を終了する. + \item workを適当な場所にコピーして,名前を変更する.\\ +\hspace*{2zw}注)標準は パス:ユーザーホーム(の直下) 名前:ketcindy + \item 上の作業ディレクトリ(ketcindy) に \verb|doc\ketmanual| のマニュアルをコピーする. + \item forWindowsにある ketcindy.conf をテキストエディタで開き,適宜修正する. + \item ユーザホームにコピーして,名前を \verb|.ketcindy.conf| に変える. + \end{enumerate} \end{enumerate} \end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/scripts/ketcindy/allbuttons.cdy b/Master/texmf-dist/scripts/ketcindy/allbuttons.cdy Binary files differnew file mode 100644 index 00000000000..0925ce4386a --- /dev/null +++ b/Master/texmf-dist/scripts/ketcindy/allbuttons.cdy diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt index de1caada09d..d95eabc503f 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt @@ -1,3 +1,8 @@ +// 20190301 +// MeasureDepth => Measuredepth +// 20190209 +// ////% added +// Start3d changed ( Slider used ) // 20190128 // Vertexedgeface changed ( size of point name, drawpoint ) // 20190127 diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs index e4e59151022..f14e3ff603e 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs @@ -14,7 +14,7 @@ // along with this program. If not, see <http://www.gnu.org/licenses/> // -println("ketcindylib3d(20190128) loaded"); +println("ketcindylib3d[20190301] loaded"); //help:start(); @@ -30,7 +30,6 @@ Ketinit3d(subflg,position):=( //help:Ketinit3d(); //help:Ketinit3d(0); regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh); -// println("KETCindy3d V.2.3.5(2016.02.03)"); BezierNumber3=1; //15.02.28 if(!islist(BZLIST3), BZLIST3=[]; //15.02.28 @@ -89,6 +88,7 @@ Start3d(ptexception):=( //help:Start3d(["A","B"](exceptionptlist)); regional(xmn,xMx,ymn,yMx,pt,pt3,pt2, xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4); + PTEXCEPTION=[]; Setfiles(Namecdy); //180608 ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]]; FuncListC=[]; @@ -117,23 +117,17 @@ Start3d(ptexception):=( FnameR=Fhead+".r"; FnameRbody=Fhead+"body.r"; Fnameout=Fhead+".txt"; -// Ketinit3d(SUBSCR); // 16.06.20 Setwindow("Msg=no"); // 16.06.20from tmp=round(4*SW.y)/4; - xPos=-5;yTh=tmp-0.5;yPh=tmp-1; - Listplot("th",[[xPos,yTh],[xPos+9,yTh]], - ["notex","linecolor->[0,1,0]","Msg=no"]); - Listplot("ph",[[xPos,yPh],[xPos+9,yPh]], - ["notex","linecolor->[0,1,0]","Msg=no"]); - //16.02.10 - PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]); - PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]); + xPos=-5; yTh=tmp-0.5; yPh=tmp-1; + Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190209 + Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]); //190209 drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02 drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02 - tmp="Setangle(" + tmp="Setangle(" //no ketjs on +format((TH.x-xPos)*20,5)+"," +format((FI.x-xPos)*40,5)+")"; - GLIST=append(GLIST,tmp); + GLIST=append(GLIST,tmp); //no ketjs off THETA=(TH.x-xPos)*20*pi/180; PHI=(FI.x-xPos)*40*pi/180; // 16.06.20until if(isselected(TH) % isselected(FI), // 17.05.18from @@ -155,16 +149,18 @@ Start3d(ptexception):=( connect([[NE.x-SW.x,yMx],[NE.x-SW.x,ymn]], color->[0.5,0.5,0.5]); ); - // for Presentation //17.07.01from + // for Presentation //17.07.01from //no ketjs on letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, letterc,mboxc,mboxc,mboxc,62,2,letterc]; - ThinDense=0.1; //17.07.01to - tmp=ptexception; //181106(3lines) - if(!islist(tmp),PTEXCEPTION=[tmp],PTEXCEPTION=tmp); + ThinDense=0.1; //17.07.01to //no ketjs off + tmp=ptexception; //181106 + if(!islist(tmp),tmp=[tmp]); //190209 + PTEXCEPTION=concat(PTEXCEPTION,tmp); //190209 +// if(!islist(tmp),PTEXCEPTION=[tmp],PTEXCEPTION=tmp); Ptseg3data(PTEXCEPTION); //16.08.23 - PTEXCEPTION=ptexception; //180916 +// PTEXCEPTION=ptexception; //180916 //190209[del] ); ////%Start3d end//// @@ -194,7 +190,7 @@ Setangle(theta,phi):=( //16.12.24 tmp1=text(pt); tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); if(tmp!="z", - tmp=parse(tmp1+"z.xy"); //181028(2lines); + tmp=parse(tmp1+"z.xy"); //181028[2lines]; pt3=Xyzcoord(pt.xy,tmp); Defvar(tmp1+"3d",pt3); pt2=Parapt(pt3); // 16.05.28from @@ -225,7 +221,7 @@ Setangle(theta,phi):=( //16.12.24 tmp2=parse(tmp1+"z"); if(isselected(pt) % isselected(tmp2), Defvar(tmp1+"2d",pt.xy); - tmp=parse(tmp1+"z.xy"); //181028(2lines) + tmp=parse(tmp1+"z.xy"); //181028[2lines] tmp=Xyzcoord(pt.xy,tmp); Defvar(tmp1+"3d",tmp); ); @@ -269,9 +265,9 @@ Getangle(option):=( Angleselected():=IsAngle(); //180713 //isAngle():=Isangle(); //180517 ////%Angleselected end//// + ////%Isangle start//// Isangle():=isselected(TH)%isselected(FI); //180517 -////%Angleselected end//// ////%Isangle end//// ////%Changestyle3d start//// @@ -320,6 +316,7 @@ Dist3d(pt1,pt2):=( ); ////%Dist3d end//// +////%Findangle start//// Findangle(vec):=( //help:Findangle([2,1,4]); //help:Findangle([0,0,1,0]); @@ -338,7 +335,9 @@ Findangle(vec):=( ); [th,ph]; ); +////%Findangle end//// +////%Cancoordpara start//// Cancoordpara(pc):=( //help:Cancoordpara([1,2,0]); regional(Xz,Yz,Zz,tmp1,tmp2,tmp3); @@ -348,6 +347,7 @@ Cancoordpara(pc):=( tmp3=Yz*sin(THETA)+Zz*cos(THETA); [tmp1,tmp2,tmp3]; ); +////%Cancoordpara end//// ////%Zparapt start//// Zparapt(cc):=( @@ -376,7 +376,7 @@ Parapt(pt):=( ); ////%Parapt end//// -///%Parasubpt start//// +////%Parasubpt start//// Parasubpt(pt):=( //181027 regional(mv,dp,xs); mv=NE.x-SW.x; @@ -426,7 +426,7 @@ ProjCurve(crv):=( sp=sin(PHI); cp=cos(PHI); st=sin(THETA); ct=cos(THETA); if(isstring(crv),CurveL=parse(crv),CurveL=crv); - if(MeasureDepth(CurveL)==1,CurveL=[CurveL]); + if(Measuredepth(CurveL)==1,CurveL=[CurveL]); Out=[]; forall(CurveL,Curve, AnsL=[]; @@ -544,6 +544,7 @@ Projpara(ptdata,optionsorg):=( ); ////%Projpara end//// +////%InvparaptPp start//// InvparaptPp(pt,pd):=( regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2, nn,s0,t2,out,tmp,tmp1,tmp2,flg); @@ -600,6 +601,7 @@ InvparaptPp(pt,pd):=( ); out; ); +////%InvparaptPp end//// ////%Invparapt start//// Invparapt(pt,pd):=( @@ -614,7 +616,7 @@ Subgraph(name3,opcindy):=( //181029 regional(name,crvL,sub2d,color,tmp,tmp1,tmp2); name=replace("sub"+name3,"3d","2d"); crvL=parse(name3); - if(MeasureDepth(crvL)==1,crvL=[crvL]); + if(Measuredepth(crvL)==1,crvL=[crvL]); sub2d=[]; forall(crvL,tmp1, tmp2=[]; @@ -1033,7 +1035,7 @@ Joincrvs3d(nm,plotstrL,options):=( ); PtL; ); -////%Joincrvs3d( end//// +////%Joincrvs3d end//// ////%Xyzax3data start//// Xyzax3data(nm,Xrange,Yrange,Zrange):= @@ -1168,7 +1170,7 @@ Xyzaxparaname(Xrange,Yrange,Zrange,options):=( Zname=tmp1_1; tmp=parse(tmp1_2); pz=[0,0,tmp_1]; qz=[0,0,tmp_2]; - COM2ndlist=select(COM2ndlist,indexof(#,Dqq("$"+Xname+"$"))==0);//180608(3lines) + COM2ndlist=select(COM2ndlist,indexof(#,Dqq("$"+Xname+"$"))==0);//180608[3lines] COM2ndlist=select(COM2ndlist,indexof(#,Dqq("$"+Yname+"$"))==0); COM2ndlist=select(COM2ndlist,indexof(#,Dqq("$"+Zname+"$"))==0); ph=Parapt(px); qh=Parapt(qx); rr=|ph-qh|; @@ -1226,10 +1228,10 @@ Embed(nm,Pd2str,funstr,varstr,options):=( tmp1=[]; // 15.10.31 forall(Pd2L, if(isstring(#),tmp=parse(#),tmp=#); - if(MeasureDepth(tmp)==2, + if(Measuredepth(tmp)==2, tmp1=concat(tmp1,tmp); ); - if(MeasureDepth(tmp)==1, + if(Measuredepth(tmp)==1, tmp1=append(tmp1,tmp); ); ); @@ -1360,7 +1362,7 @@ Rotatepoint3d(point,w1,w2,center):=( ); ); if(Retflg==0, - if(MeasureDepth(point)>0, + if(Measuredepth(point)>0, PtL=point; , PtL=[point]; @@ -1419,7 +1421,7 @@ Rotatedata3d(nm,P3data,w1,w2,options):=( Out=[]; forall(Pd3,Pd, if(isstring(Pd),Pd=parse(Pd)); -// if(MeasureDepth(Pd)==1,Pd=[Pd]); +// if(Measuredepth(Pd)==1,Pd=[Pd]); Ans=[]; forall(Pd, tmp=Rotatepoint3d(#,w1,w2,center); //180729 @@ -1475,7 +1477,7 @@ Translatepoint3d(point,w1):=( //help:Translatepoint3d(pt3d,[1,2,3]); regional(Eps,Ans,PtL,pt,num,xx,yy,zz,flg); Eps=10^(-4); - if(MeasureDepth(point)>0, + if(Measuredepth(point)>0, PtL=point; , PtL=[point]; @@ -1517,7 +1519,7 @@ Translatedata3d(nm,P3data,w1,options):=( Out=[]; forall(Pd3,Pd, if(isstring(Pd),Pd=parse(Pd)); - if(MeasureDepth(Pd)==1,Pd=[Pd]); + if(Measuredepth(Pd)==1,Pd=[Pd]); Ans=[]; forall(Pd, tmp=Translatepoint3d(#,w1); @@ -1613,7 +1615,7 @@ Reflectdata3d(nm,P3data,vecL,options):=( Out=[]; forall(Pd3,Pd, if(isstring(Pd),Pd=parse(Pd)); -// if(MeasureDepth(Pd)==1,Pd=[Pd]); +// if(Measuredepth(Pd)==1,Pd=[Pd]); Ans=[]; forall(Pd, tmp=Reflectpoint3d(#,vecL); @@ -1708,7 +1710,7 @@ Scaledata3d(nm,P3data,ratio,options):=( Out=[]; forall(Pd3,Pd, if(isstring(Pd),Pd=parse(Pd)); -// if(MeasureDepth(Pd)==1,Pd=[Pd]); +// if(Measuredepth(Pd)==1,Pd=[Pd]); Ans=[]; forall(Pd, tmp=Scalepoint3d(#,ratio,center); @@ -1769,6 +1771,7 @@ Xyzcoord(X,Y,ps):=( ); ////%Xyzcoord end//// +////%PutonCurve3d start//// PutonCurve3d(name,pdstr):=( //help:PutonCurve3d("T","sc3d1"); regional(pt,pd2str,tmp,tmp1,tmp2); @@ -1776,16 +1779,17 @@ PutonCurve3d(name,pdstr):=( PutonCurve(name,pd2str); pt=parse(name+".xy"); tmp=Nearestpt(pt,pd2str); // 15.03.13 - tmp1=ParamonCurve(tmp_1,tmp_2,pd2str); + tmp1=Paramoncurve(tmp_1,tmp_2,pd2str); tmp="sub"+pd2str; tmp2=PointonCurve(tmp1,tmp); -// pt=append(pt,tmp2_2); //181028(2lines) +// pt=append(pt,tmp2_2); //181028[2lines] pt=Xyzcoord(pt,tmp2); // 15.03.13 tmp=name+"z.xy="+textformat(tmp2,5); parse(tmp); // VLIST=select(VLIST,#_1!=name+"3d"); Defvar(name+"3d",pt); ); +////%PutonCurve3d end//// ////%Mkpointlist start//// Mkpointlist():=Mkpointlist([]); //16.11.12 @@ -1889,7 +1893,7 @@ Mkpointlist(options):=( //181030 if(length(tmp)>0, //17.10.07 tmp1=Parapt(tmp_1_2); Putpoint(text(pt),tmp1); //181029 - tmp2=Parasubpt(tmp_1_2);//181027(2lines) + tmp2=Parasubpt(tmp_1_2);//181027[2lines] Putpoint(text(ptz),tmp2); //181029 flg=3; ); //17.10.07 @@ -1908,6 +1912,7 @@ Mkpointlist(options):=( //181030 ); ////%Mkpointlist end//// +////%Mkseg3d start//// Mkseg3d():=Mkseg3d([]); Mkseg3d(options):=( regional(seg,nmseg,def,ptA,ptB,segL,opstr,opcindy, @@ -1951,6 +1956,7 @@ Mkseg3d(options):=( ); segL; ); +////%Mkseg3d end//// ////%Ptseg3data start//// Ptseg3data():=Ptseg3data([]); @@ -1975,7 +1981,7 @@ Ptseg3data(options):=( parse(tmp); ); , - tmp=Mainsubpt3d(parse(pt+".xy"),parse(tmp1+"z.xy")); //181107(2lines) + tmp=Mainsubpt3d(parse(pt+".xy"),parse(tmp1+"z.xy")); //181107[2lines] Defvar(tmp1+"3d",tmp); ); ); @@ -2039,7 +2045,7 @@ Putonseg3d(name,pt1,pt2,options):=( tmp1=replace(tmp1,"PBs",pn2); parse(tmp1); ); - tmp1=parse(name+".xy"); //181028(3lines) + tmp1=parse(name+".xy"); //181028[3lines] tmp2=parse(name+"z.xy"); tmp=Xyzcoord(tmp1,tmp2); Defvar(name+"3d",tmp); @@ -2271,7 +2277,7 @@ Perpplane(name,ptstr,nstr,option):=( if(tmp=="P", Putpoint3d([tmp1,pA,tmp2,pB],["fix"]); , - Defvar(tmp1+"3d",pA); //181107(2lines) + Defvar(tmp1+"3d",pA); //181107[2lines] Defvar(tmp2+"3d",pB); ); if(tmp=="D", @@ -2290,7 +2296,7 @@ Drawpoint3d(pt3,options):=( regional(ptL,tmp,tmp1,tmp2); tmp=Divoptions(options); opcindy=tmp_(length(tmp)); - if(MeasureDepth(pt3)==0,ptL=[pt3],ptL=pt3); + if(Measuredepth(pt3)==0,ptL=[pt3],ptL=pt3); forall(ptL, tmp="draw("+Textformat(Parapt(#),6)+opcindy+")"; parse(tmp); @@ -2307,7 +2313,7 @@ Pointdata3d(nm,pt3):=Pointdata3d(nm,pt3,[]);//181017from Pointdata3d(nm,pt3,options):=( //181017from //help:Pointdata3d("1",pt3dlist,options); regional(pt3L,pt2L,tmp); - if(MeasureDepth(pt3)==0,pt3L=[pt3],pt3L=pt3); + if(Measuredepth(pt3)==0,pt3L=[pt3],pt3L=pt3); pt2L=apply(pt3L,Parapt(#)); Pointdata("2d"+nm,pt2L,append(options,"Disp=n")); tmp="pt3d"+nm+"="+format(pt3L,6); @@ -2408,7 +2414,7 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=( ); nvec=Crossprod(pB-pA,pC-pA); if(abs(Dotprod(nvec,pQ-pP))>Eps, - pH=(Reflectpoint3d(pP,[pA,pB,pC])+pP)/2; //180811(2lines) + pH=(Reflectpoint3d(pP,[pA,pB,pC])+pP)/2; //180811[2lines] pK=(Reflectpoint3d(pQ,[pA,pB,pC])+pQ)/2; tmp1=pP-pH; tmp2=tmp1+pK-pQ; @@ -2446,6 +2452,7 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=( ); ////%IntersectsgpL end//// +////%Bezier3d start//// Bezier3d(nm,ptctrlist):=Bezier3(nm,ptctrlist); Bezier3d(nm,Ag1,Ag2):=Bezier3(nm,Ag1,Ag2); Bezier3d(nm,ptlistorg,ctrlistorg,options):= @@ -2453,10 +2460,10 @@ Bezier3d(nm,ptlistorg,ctrlistorg,options):= //help:Bezier3d("1",["A","B","C"],["D","E","F","G"]); Bezier3(nm,ptctrlist):=Bezier3(nm,ptctrlist_1,ptctrlist_2,[]); Bezier3(nm,Ag1,Ag2):=( - if(MeasureDepth(Ag1)==0, + if(Measuredepth(Ag1)==0, Bezier3(nm,Ag1,Ag2,[]); , - if(MeasureDepth(Ag1)>1, + if(Measuredepth(Ag1)>1, Bezier3(nm,Ag1_1,Ag1_2,Ag2); , if(isstring(Ag_1_1), @@ -2544,7 +2551,9 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed ); out; ); +////%Bezier3d end//// +////%Putbezier3data start//// Putbezier3data(name,pt3Lorg):=Putbezier3data(name,pt3Lorg,[]); Putbezier3data(name,pt3Lorg,options):=( // 17.10.08 greatly changed regional(pt3L,psize,Deg,nn,numstr, @@ -2584,7 +2593,9 @@ Putbezier3data(name,pt3Lorg,options):=( // 17.10.08 greatly changed ); ctrpts; ); +////%Putbezier3data end//// +////%Mkbezierptcrv3d start//// Mkbezierptcrv3d(ptdata):=Mkbezierptcrv3(ptdata); Mkbezierptcrv3d(ptdata,options):=Mkbezierptcrv3(ptdata,options); //help:Mkbezierptcrv3d(["A","B","C","D"]); @@ -2606,6 +2617,7 @@ Mkbezierptcrv3(ptdata,options):=( //17.10.08 greatly changed BezierNumber3=BezierNumber3+1; Out; ); +////%Mkbezierptcrv3d end//// //////////old version /////////////////////////////// @@ -2747,6 +2759,7 @@ Readobj(filename,options):=( ); ////%Readobj end//// +////%Concatobj start//// Concatobj(objL):=Concatobj(objL,[]); Concatobj(objL,options):=( //help:Concatobj([polyhed,triangle]); @@ -2818,6 +2831,7 @@ Concatobj(objL,options):=( ); [vL,fL]; ); +////%Concatobj end//// if(1==0, @@ -2850,7 +2864,7 @@ Mkobjfile(path,fnameorg,objL):=( setdirectory(Dirwork); ); -); +); //end of skip ////%VertexEdgeFace start//// VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10 @@ -2895,7 +2909,7 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=( options=remove(options,[#]); ); //180905to if(tmp1=="E", - if((tmp2=="Y")%(tmp2=="G"),//181107(2lines) + if((tmp2=="Y")%(tmp2=="G"),//181107[2lines] if(vtxflg==1,edgflg=1); ); options=remove(options,[#]); @@ -3512,7 +3526,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=( if(Noflg<3, if(Outflg>=1, println("Output Faceremovaldata "+name3); - if(MeasureDepth(vfdata)==1, + if(Measuredepth(vfdata)==1, tmp1=text(apply(vfdata,#_[1,3])); , tmp1=text([vfdata_[1,3]]); @@ -3542,7 +3556,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=( if(Noflg==1,Ltype=0); ); if(Inflg==1, - if(MeasureDepth(vfdata)==1, + if(Measuredepth(vfdata)==1, tmp1=apply(vfdata,parse(#_2)); , tmp1=[parse(vfdata_2)]; @@ -3654,6 +3668,7 @@ Fullformfunc(FdL):=( ); ////%Fullformfunc end//// +////%Surffun start//// Surffun(nm,Fd):=( regional(name,coord,var1,var2,rng1,rng2,bdy,tmp,tmp1,tmp2); tmp=Fullformfunc(Fd); @@ -3671,7 +3686,9 @@ Surffun(nm,Fd):=( Deffun(name,["regional(tmp)","tmp="+coord,"tmp"]); [name,var1,rng1,var2,rng2,bdy]; ); +////%Surffun end//// +////%Sf3data start//// Sf3data(nm,fdata):=Sf3data(nm,fdata,[]); Sf3data(nm,fdata,optionorg):=( regional(tmp,tmp1,tmp2); @@ -3757,7 +3774,9 @@ Sf3data(nm,funstr,var1org,var2org,optionorg):=( ); [sfdtuL,sfdtvL]; ); +////%Sf3data end//// +////%SfbdparadataR start//// SfbdparadataR(nm,fd):= SfbdparadataR(nm,fd,[],["nodisp"]); SfbdparadataR(nm,fd,options):= @@ -3767,7 +3786,7 @@ SfbdparadataR(nm,fdorg,optionorg,optionsh):=( // help:SfbdparadataR(options2=["Wait=60",division(c(50,50)),Eps1(0.01), Eps2(0.05)]); regional(fd,options,name3,name3h,waiting, eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg); - tmp=ConvertFdtoC(fdorg);//180430(2lines) + tmp=ConvertFdtoC(fdorg);//180430[2lines] FuncListC=append(FuncListC,tmp); name3="sfbd3d"+nm; name3h="sfbdh3d"+nm; @@ -3835,7 +3854,7 @@ SfbdparadataR(nm,fdorg,optionorg,optionsh):=( err("Sfbdparadata not completed"); , ReadOutData(fname); - if(islist(parse(name3)), //180508(2lines) + if(islist(parse(name3)), //180508[2lines] Extractdata(name3,["nodisp"]); Projpara(name3,options); if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]); @@ -3845,7 +3864,9 @@ SfbdparadataR(nm,fdorg,optionorg,optionsh):=( ); ); ); +////%SfbdparadataR end//// +////%Addpoints start//// Addpoints():=(//18.02.20 if(isstring(ADDPOINT), ADDPOINT; @@ -3862,7 +3883,9 @@ Addpoints(ptlist):=( ); ADDPOINT; ); +////%Addpoints end//// +////%CrvsfparadataR start//// CrvsfparadataR(nm,crv,sf,fd):= CrvsfparadataR(nm,crv,sf,fd,[],["nodisp"]); CrvsfparadataR(nm,crv,sf,fd,options):= @@ -3956,7 +3979,7 @@ CrvsfparadataR(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=( err("Crvsfparadata not completed"); , ReadOutData(fname); - if(islist(parse(name3)), //180507(2lines) + if(islist(parse(name3)), //180507[2lines] Extractdata(name3,["nodisp"]); Projpara(name3,options); if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]); @@ -3966,7 +3989,9 @@ CrvsfparadataR(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=( ); ); ); +////%CrvsfparadataR end//// +////%Crv3onsfparadataR start//// Crv3onsfparadataR(nm,crv3d,sf,fd):= Crvs3onfparadataR(nm,crv3d,sf,fd,[],["nodisp"]); Crv3onsfparadataR(nm,crv3d,sf,fd,options):= @@ -4068,7 +4093,9 @@ Crv3onsfparadataR(nm,crv3dstr,sfstr,fdorg,optionorg,optionsh):=( ); ); ); +////%Crv3onsfparadataR end//// +////%Crv2onsfparadataR start//// Crv2onsfparadataR(nm,crv2d,sf,fd):= Crvs2onfparadataR(nm,crv2d,sf,fd,[],["nodisp"]); Crv2onsfparadataR(nm,crv2d,sf,fd,options):= @@ -4171,7 +4198,9 @@ Crv2onsfparadataR(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=( ); ); ); +////%Crv2onsfparadataR end//// +////%WireparadataR start//// WireparadataR(nm,sf,wr1,wr2,fd):= WireparadataR(nm,sf,fd,wr1,wr2,[],["nodisp"]); WireparadataR(nm,sf,fd,wr1,wr2,options):= @@ -4274,7 +4303,9 @@ WireparadataR(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=( ); ); ); +////%WireparadataR end//// +////%IntersectcrvsfR start//// IntersectcrvsfR(nm,crv,fd):=Intersectcrvsf(nm,crv,fd,"",[]); IntersectcrvsfR(nm,crv,fd,Arg):=( if(isstring(Arg), @@ -4364,7 +4395,9 @@ IntersectcrvsfR(nm,crvstr,fdorg,bdyeq,optionorg):=( println("generate "+name); parse(name); ); +////%IntersectcrvsfR end//// +////%SfcutparadataR start//// SfcutparadataR(nm,eqstr,sf,fd):= SfcutparadataR(nm,eqstr,sf,fd,[]); SfcutparadataR(nm,eqstr,sf,fd,options):= @@ -4463,12 +4496,15 @@ SfcutparadataR(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=( ); ); ); +////%SfcutparadataR end//// +////%Skeletonparadata start//// Skeletonparadata(nm):=Skeletondatacindy(nm,[]); Skeletonparadata(nm,options):=Skeletondatacindy(nm,options); Skeletonparadata(nm,pltdata1,pltdata2):=Skeletondatacindy(nm,pltdata1,pltdata2); Skeletonparadata(nm,pltdata1org,pltdata2org,options):= Skeletondatacindy(nm,pltdata1org,pltdata2org,options); +////%Skeletonparadata end//// ////////////// new skeleton 2018.01.04 not completed and slow//////////////// @@ -5124,6 +5160,7 @@ Kukannozoku(Jokyo,KukanL):=( ////////////////// end of current skeleton////////////// +////%ProjcoordCurve start//// ProjcoordCurve(Curve):=( regional(SP,CP,ST,CT,Out,jj,pt,x,y,z,xz,yz,zz); SP=sin(PHI); CP=cos(PHI); @@ -5139,7 +5176,9 @@ ProjcoordCurve(Curve):=( ); Out; ); +////%ProjcoordCurve end//// +////%Divnohidhid start//// Divnohidhid(nm,dt3dorg,nvec):=Divnohidhid(nm,dt3dorg,nvec,[],["do"]); Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=( //help:Divnohidhid("1","sc3d1",nvec,["Num=100"],["Num=100","do"]); @@ -5204,7 +5243,9 @@ Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=( parse(name+"h="+tmp1); [nohid,hid]; ); +////%Divnohidhid end//// +////%Beziersurf start//// Beziersurf(nm,m,n,pL):=( //help:Beziersurf("pt",2,2,pL); regional(p3dL,ptlistx,ptlilsty,ptlistz); @@ -5261,5 +5302,6 @@ Beziersurf(nm,m,n,pL):=( ]; tmp; ); +////%Beziersurf end//// //help:end(); diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt index ab492956087..79cc8fc315b 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt @@ -1,4 +1,32 @@ -/ 20190128 +// 20190311 +// Shade changed ( order of COM2ndlist) +// Com2nd changed ("before" removed ) +// 20190301 +// Pointdata changed ( a single point => [[ , ]]) +// MeasureDepth => Measuredepth +// 20190224 +// Shade changed ("Trim=n" added ) +// 20190223 +// Shadein debugged +// Ketinit, Shade changed (SHADCTR added) +// Ketinit debugged (positon Changework) +// 20190221 +// Intersectcurves changed ( "out" sorted ) +// Changework changed ( "/kc.command" => Shellparent) +// 20190220 +// Shadein added, Shade changed (Shadein for 1 data) +// Shadein debugged +// 20190219 +// Anglemark debugged ( tmp => tmp_2 ) +// 20190211 +// Deqplot changed ( for incorret form of equation ) +// 20190210 +// bug of "Msg=" fixed +// 20190206 +// Deqplot changed ( ‘ replace to ` ) +// Lineplot,Plotdata,Paramplot,Circledata,Bowdata,Anglemark changed ("Msg" option) +// Pointdata changed ("Msg" option) +// 20190128 // Ketinit changed (Userhome added) // Changesetting majorly changed // 20190127 diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs index e473027def3..4957f56cd83 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs @@ -16,7 +16,7 @@ println("KeTCindy V.3.2.5"); println(ketjavaversion()); -println("ketcindylibbasic1[20190131] loaded"); +println("ketcindylibbasic1[20190311] loaded"); //help:start(); @@ -80,10 +80,11 @@ Ketinit(work,sy,rangex,rangey):=(//181001to COM0thlist=[]; COM1stlist=[]; COM2ndlist=[]; - COM2ndlistb=[]; //180612 + // COM2ndlistb=[]; //180612 ADDAXES="1"; AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216 AXCOUNT=1; //181215 + SHADECTR=1; //190222 LFmark=unicode("000a"); CRmark=unicode("000d");//16.12.13 Dq=unicode("0022"); @@ -99,7 +100,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to ErrFlag=0; KETJSOP=[]; //190129 // no ketjs on 190122 - setdirectory(Dirwork); +// setdirectory(Dirwork); if(!isstring(Fhead), // 17.10.13from, 17.11.12 Fhead=text(curkernel()); Fhead=replace(Fhead,".cdy",""); @@ -125,36 +126,23 @@ Ketinit(work,sy,rangex,rangey):=(//181001to ); ); Userhome=Homehead+pathsep()+getname(); //190128 - Changesetting(); //190128 - Changework(Dircdy+pathsep()+work); //180329to,181001 - Fnametex=Fhead+".tex"; - FnameR=Fhead+".r"; - FnamebodyR=Fhead+"body.r"; - Fnameout=Fhead+".txt"; // 17.10.13until - if(!isstring(Mackc),// 16.06.07 - Mackc="sh"; - ); if(iswindows(), Batparent="\kc.bat"; , if(ismacosx(), //181125from Shellparent="/kc.command"; + Mackc="open"; //190222 , Shellparent="/kc.sh"; - Mackc="sh"; //190116 + Mackc="bash"; //190222 ); //181125to - if(!isexists(Dirwork,""), - println(Dirwork+" not exists"); - , - if(!iskcexists(Dirwork), - setdirectory(Dirwork); - SCEOUTPUT = openfile(Shellparent); - closefile(SCEOUTPUT); - println(Shellparent+" generated"); - ); - println(setexec(Dirwork,Shellparent)); - ); ); + Changesetting(); //190128 + Changework(Dircdy+pathsep()+work); //180329to,181001 + Fnametex=Fhead+".tex"; + FnameR=Fhead+".r"; + FnamebodyR=Fhead+"body.r"; + Fnameout=Fhead+".txt"; // 17.10.13to // no ketjs off 190122 ArrowlineNumber=1; // 15.01.05 ArrowheadNumber=1; @@ -169,7 +157,7 @@ Ketinit(work,sy,rangex,rangey):=(//181001to Setwindow("Msg=n"); // 16.05.31 // no ketjs on 190122 // for Presentation - letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + letterc=[0.98,0.13,0,0.43]; boxc=[0.2,0,0,0];//190307 [0,0.32,0.52,0]; shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, letterc,mboxc,mboxc,mboxc,62,2,letterc]; @@ -834,9 +822,6 @@ Changework(dirorg,options):=( //16.10.21 , println("Directory "+dir+" not exist, so "+Dqq(Dirwork)+" not changed"); ); //180618to -// println("Directory "+dir+" not exist, so set to "+Dircdy);//180604[2lines] -// Dirwork=Dircdy; -// ErrFlag=-1; , if(length(subdir)>0, //180605 if(makesub==1,//180606from @@ -849,9 +834,9 @@ Changework(dirorg,options):=( //16.10.21 setdirectory(Dirwork); if(!iswindows(), //17.04.11 if(!iskcexists(Dirwork), - SCEOUTPUT = openfile("/kc.command"); //181125 + SCEOUTPUT = openfile(Shellparent); //190221 closefile(SCEOUTPUT); - println(setexec(Dirwork,"/kc.command")); //181125 + println(setexec(Dirwork,Shellparent)); //190221 ); ); ); @@ -1225,8 +1210,8 @@ Assign(funstr,varname,rep):=( ); ////%Assign end//// -////%MeasureDepth start//// -MeasureDepth(list):=( +////%Measuredepth start//// +Measuredepth(list):=( regional(tmp,tmp1,Depth,Flg); Flg=0; Depth=0; @@ -1252,19 +1237,19 @@ MeasureDepth(list):=( );//180501 Depth; ); -////%MeasureDepth end//// +////%Measuredepth end//// ////%Flattenlist start//// Flattenlist(pltlist):=( //help:Flattenlist([[2,3],[[1,2],[5,6]]]); regional(Out,nn,Dt,ii,tmp,flg); Out=[]; - if(MeasureDepth(pltlist)==1, + if(Measuredepth(pltlist)==1, Out=[pltlist]; , forall(1..(length(pltlist)),nn, Dt=pltlist_nn; - if(MeasureDepth(Dt)<2, + if(Measuredepth(Dt)<2, Out=append(Out,Dt); , forall(1..(length(Dt)),ii, @@ -1414,7 +1399,7 @@ Crossprod(a,b):=( ////%Mvprod start//// Mvprod(mat,vec):=( //190127 regional(vecL); - if(MeasureDepth(vec)==0,vecL=[vec],vecL=vec); + if(Measuredepth(vec)==0,vecL=[vec],vecL=vec); Mvprod(mat,vecL,length(vecL)); ); Mvprod(mat,vecL,nn):=( @@ -1489,9 +1474,9 @@ Invert(nm,Fig,options):=( ////%Paramoncrv start//// Paramoncrv(pP,Gdata):=Paramoncurve(pP,Gdata);//180723 ////%Paramoncrv end//// -////%ParamonCurve start//// -ParamonCurve(point,Gdata):=( -//help:ParamonCurve(A,"gr1");//180723[3lines] +////%Paramoncurve start//// +Paramoncurve(point,Gdata):=( +//help:Paramoncurve(A,"gr1");//180723[3lines] regional(Tmp,PtL,pP); if(ispoint(point),pP=point.xy,pP=point); // Eps=10^(-8); @@ -1499,8 +1484,8 @@ ParamonCurve(point,Gdata):=( Tmp=Nearestpt(pP,PtL); Tmp_2; ); -ParamonCurve(pP,nN,plist):=( -//help:ParamonCurve(A,10,"gr1"); +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 @@ -1517,14 +1502,14 @@ ParamonCurve(pP,nN,plist):=( ); Out; ); -////%ParamonCurve end//// +////%Paramoncurve end//// ////%Pointoncrv start//// -Pointoncrv(tT,PtL):=PointonCurve(tT,PtL); +Pointoncrv(tT,PtL):=Pointoncurve(tT,PtL); ////%Pointoncrv end//// -////%PointonCurve start//// -PointonCurve(tTorg,Gdata):=( -//help:PointonCurve(20.5,"gr1"); +////%Pointoncurve start//// +Pointoncurve(tTorg,Gdata):=( +//help:Pointoncurve(20.5,"gr1"); regional(tT,Out,Eps,nN,sS,Pa,Pb,PtL); if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata); if(length(PtL)==1,PtL=PtL_1); @@ -1542,7 +1527,7 @@ PointonCurve(tTorg,Gdata):=( ); Out; ); -////%PointonCurve end//// +////%Pointoncurve end//// ////%Koutenseg start//// Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]); @@ -1690,8 +1675,8 @@ IntersectcrvsPp(Gr1,Gr2,options):=( 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); + 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), @@ -2225,6 +2210,9 @@ IntersectcurvesPp(crv1org,crv2org,options):=( out_ii=tmp2; ); ); + if(length(out)>0, //190221from + out=sort(out,[#_2]); + ); //190221to out; ); ////%IntersectcurvesPp end//// @@ -2247,7 +2235,7 @@ 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); + if(Measuredepth(plist)==2,plist=plist_1); plist=apply(plist,#); // 14.12.18 tmp=Nearestpt(pP,plist); tmp=tmp_1; @@ -2271,7 +2259,7 @@ Nearestpt(point,PL2):=( 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(Measuredepth(PL1)==2,PL1=PL1_1); if(!islist(PL1_1), PL1=[PL1]; Flg=0; @@ -2279,7 +2267,7 @@ Nearestpt(point,PL2):=( Flg=1; ); if(isstring(PL2),PL=parse(PL2),PL=PL2); - if(MeasureDepth(PL)==2,PL=PL_1); + 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 @@ -2306,7 +2294,7 @@ Nearestpt(point,PL2):=( ); sS=|pP-pA|; if(sS<Sm-Eps, - Tmp=ParamonCurve(pP,Ni,PL); + Tmp=Paramoncurve(pP,Ni,PL); Pm=pP; Lm=Tmp; Sm=sS; ); ); @@ -2503,7 +2491,7 @@ Integratedt(pltdata,range,options):=( Sm= IntegrateO(pltdata,range); , if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata); - if(MeasureDepth(pdata)==2,pdata=pdata_1); + 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)); @@ -2616,7 +2604,7 @@ IntegrateO(pltdata,rangeorg):=( , pdata=pltdata; ); - if(MeasureDepth(pdata)==2,pdata=pdata_1); + if(Measuredepth(pdata)==2,pdata=pdata_1); range=rangeorg; pmflg=1; if(range_2<range_1, @@ -2801,17 +2789,11 @@ Com1st(String):=( ////%Com1st end//// ////%Com2nd start//// -Com2nd(String):=Com2nd(String,["a"]);//180612 -Com2nd(String,option):=( -// help:Com2nd(str,["before"]); +Com2nd(String):=( +// help:Com2nd(str); regional(str,tmp); str=replace(String,LFmark,""); - tmp=substring(option_1,0,1);//180612from - if(Toupper(tmp)=="B", - COM2ndlistb=append(COM2ndlistb,str); - , - COM2ndlist=append(COM2ndlist,str); - );//180612to + COM2ndlist=append(COM2ndlist,str); ); ////%Com2nd end//// @@ -3610,7 +3592,7 @@ AddGraph(nm,pltdata,options):=( ); GLIST=append(GLIST,name+"="+tmp1); //no ketjs , - if(MeasureDepth(pdata)==1, + if(Measuredepth(pdata)==1, tmp1=name+"=Listplot("+Textformat(pdata,5)+")"; , tmp1="list"+PaO(); @@ -3756,7 +3738,7 @@ Partcrv(nm,pA,pB,PkLstr,options):=( name="part"+nm; if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr); DepthFlg=0; - if(MeasureDepth(PkL)==2, + if(Measuredepth(PkL)==2, PkL=PkL_1; DepthFlg=1; ); @@ -3858,7 +3840,7 @@ Pointdata(nm,listorg,options):=( //help:Pointdata("2",[[2,3],[4,1]]); //help:Pointdata(options=["Size=(1)","Disp=(y)","Inside="]); //help:Pointdata("Inside=1(def)/ratio/rgblist/colorname/-1"]); - regional(list,name,nameL,ptlist,opstr,opcindy, + regional(list,name,nameL,ptlist,opstr,opcindy,Msg, eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3, Ltype,Noflg,color,inside); name="pt"+nm; @@ -3873,6 +3855,7 @@ Pointdata(nm,listorg,options):=( size=""; dispflg="Y"; inside=color; + Msg="Y"; forall(eqL, tmp=Strsplit(#,"="); tmp1=Toupper(substring(tmp_1,0,1)); @@ -3898,22 +3881,31 @@ Pointdata(nm,listorg,options):=( inside=concat(inside,tmp); ); ); //181229to + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); if(dispflg=="Y", - println("generate pointdata "+name); + if(Msg=="Y", //190206 + println("generate pointdata "+name); + ); ); //181030to if(isstring(listorg), list=parse(listorg) , list=listorg ); //17.10.23 - if(MeasureDepth(list)==0,list=[list]);//180530 - tmp=MeasureDepth(list); + if(Measuredepth(list)==0,list=[list]);//180530 + tmp=Measuredepth(list); if(tmp==1,ptlist=list,ptlist=list_1); //190126from tmp=apply(ptlist,[Textformat(Pcrd(#),5)]); tmp1=text(tmp); tmp2=substring(tmp1,1,length(tmp1)-1); tmp3=tmp1; + tmp=parse(tmp1); + if(length(tmp)==1, //190301from + tmp1=Textformat(tmp_1,5); + ); //190301to tmp=name+"="+tmp1; parse(tmp); tmp=nameL+"="+tmp3; @@ -4006,27 +3998,23 @@ Listplot(nm,list,options):=( eqL=tmp_5; color=tmp_(length(tmp)-2); opcindy=tmp_(length(tmp)); - Msg=1; // 15.09.17 + Msg="Y"; //190206 cutend=[0,0];//180719 forall(eqL, tmp=Strsplit(#,"="); tmp1=Toupper(substring(tmp_1,0,1)); - tmp2=tmp_2; if(tmp1=="M", - tmp=Toupper(substring(tmp2,0,1)); - if(tmp=="N", // 16.06.28 - Msg=0; - ); + Msg=Toupper(substring(tmp_2,0,1)); ); if(tmp1=="C",//180719from - tmp2=replace(tmp2,"[",""); + tmp2=replace(tmp_2,"[",""); tmp2=replace(tmp2,"]",""); cutend=tokenize(tmp2,","); if(length(cutend)==1,cutend=[cutend_1,cutend_1]); );//180719to ); if(Noflg<3, - if(Msg==1, + if(Msg=="Y", //190206 println("generate Listplot "+name); ); if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24 @@ -4061,20 +4049,33 @@ Listplot(nm,list,options):=( ////%Listplot end//// ////%Lineplot start//// -Lineplot(nm,list,options):=( +Lineplot(nm,list,optionorg):=( //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,color); + regional(name,Out,tmp,tmp1,tmp2,opstr,opcindy,Mag,Semi, + Vec,pA,pB,options,Ltype,Noflg,color,Msg,eqL); name="ln"+nm; + options=optionorg; Mag=100; Semi=""; + Msg="Y"; tmp=Divoptions(options); Ltype=tmp_1; Noflg=tmp_2; color=tmp_(length(tmp)-2); opcindy=tmp_(length(tmp)); opstr=tmp_(length(tmp)-1); + eqL=tmp_5; + forall(eqL, + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + options=remove(options,[#]); + ); //190206to + ); + tmp=Divoptions(options); + opstr=tmp_(length(tmp)-1); tmp1=tmp_6; if(length(tmp1)>0,Mag=tmp1_1); tmp1=tmp_7; @@ -4091,7 +4092,9 @@ Lineplot(nm,list,options):=( ); ); if(Noflg<3, - println("generate Lineplot "+name); + if(Msg=="Y", //190206 + println("generate Lineplot "+name); + ); tmp1=apply(Out,Pcrd(#)); tmp=name+"="+Textformat(tmp1,5); parse(tmp); @@ -4139,7 +4142,7 @@ Plotdata(name1,func,variable,options):=( //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,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa, + PdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,Msg, Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color); name="gr"+name1; tmp=Divoptions(options); @@ -4155,17 +4158,18 @@ Plotdata(name1,func,variable,options):=( Ec=[]; Exfun=""; Dc=1000; + Msg="Y"; forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - if(substring(#,0,1)=="N", - Num=parse(tmp1); + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(#,0,1)); + if(tmp1=="N", + Num=parse(tmp_2); opstr=opstr+","+Dqq(#); ); - if(substring(#,0,1)=="E", - if(substring(tmp1,0,1)=="[", //180817from - Ec=parse(tmp1); - tmp1=replace(tmp1,"[","c"+PaO()); + if(tmp1=="E", + if(substring(tmp_2,0,1)=="[", //180817from + Ec=parse(tmp_2); + tmp1=replace(tmp_2,"[","c"+PaO()); tmp1=replace(tmp1,",",".0,"); tmp1=replace(tmp1,"]",".0)"); opstr=opstr+","+Dqq("Exc="+tmp1); //180817to @@ -4175,9 +4179,12 @@ Plotdata(name1,func,variable,options):=( ); ); if(substring(#,0,1)=="D", - Dc=parse(tmp1); + Dc=parse(tmp_2); opstr=opstr+","+Dqq(#); ); + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); if(Inflg==0 & Outflg==0, Eps=10^(-3); @@ -4279,8 +4286,10 @@ Plotdata(name1,func,variable,options):=( PdL=PdL_1; ); if(Noflg<3, - println("generate Plotdata "+name); - if(MeasureDepth(PdL)==1, + if(Msg=="Y", //190206 + println("generate Plotdata "+name); + ); + if(Measuredepth(PdL)==1, tmp1=apply(PdL,Pcrd(#)); , tmp1=[]; @@ -4335,7 +4344,7 @@ Plotdata(name1,func,variable,options):=( Paramplot(nm,funstr,variable):=Paramplot(nm,funstr,variable,[]); Paramplot(nm,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, + regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,Msg, Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke, pt, //190103 Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color); if(substring(nm,0,1)=="-", // 180928from @@ -4358,16 +4367,16 @@ Paramplot(nm,funstr,variable,options):=( Exfun=""; Dc=1000; forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - if(substring(#,0,1)=="N", - Num=parse(tmp1); + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if(tmp1=="N", + Num=parse(tmp_2); opstr=opstr+","+Dqq(#); ); - if(substring(#,0,1)=="E", - if(substring(tmp1,0,1)=="[", //180817from - Ec=parse(tmp1); - tmp1=replace(tmp1,"[","c"+PaO()); + if(tmp1=="E", + if(substring(tmp_2,0,1)=="[", //180817from + Ec=parse(tmp_2); + tmp1=replace(tmp_2,"[","c"+PaO()); tmp1=replace(tmp1,",",".0,"); tmp1=replace(tmp1,"]",".0)"); opstr=opstr+","+Dqq("Exc="+tmp1); //180817to @@ -4377,9 +4386,12 @@ Paramplot(nm,funstr,variable,options):=( ); ); if(substring(#,0,1)=="D", - Dc=parse(tmp1); + Dc=parse(tmp_2); opstr=opstr+","+Dqq(#); ); + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); if(Inflg==0 & Outflg==0, tmp=indexof(variable,"="); @@ -4449,8 +4461,10 @@ Paramplot(nm,funstr,variable,options):=( Out=Out_1; ); if(Noflg<3, - println("generate Paramplot "+name); - if(MeasureDepth(Out)==1, + if(Msg=="Y", //190206 + println("generate Paramplot "+name); + ); + if(Measuredepth(Out)==1, tmp1=apply(Out,Pcrd(#)); , tmp1=[]; @@ -4596,7 +4610,6 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=( Noflg=tmp_2; eqL=tmp_5; color=tmp_(length(tmp)-2); - opstr=tmp_(length(tmp)-1); opcindy=tmp_(length(tmp)); Mdv=50;Ndv=50; msg="Y"; @@ -4604,7 +4617,6 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=( tmp=Strsplit(#,"="); tmp1=Toupper(substring(tmp_1,0,1)); tmp2=tmp_2; - opstr=opstr+",'"+#+"'"; if(substring(#,0,1)=="N", Mdv=parse(tmp2); if(!islist(Mdv), @@ -4613,6 +4625,7 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=( Ndv=Mdv_2; Mdv=Mdv_1; ); + opstr=",'"+#+"'"; ); if(substring(#,0,1)=="M", //181112from msg=Toupper(substring(tmp2,0,1)); @@ -4691,7 +4704,7 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=( if(msg=="Y", //181112 println("generate Implicitplotdata "+name); ); - if(MeasureDepth(out)==1, + if(Measuredepth(out)==1, tmp1=apply(out,Pcrd(#)); , tmp1=[]; @@ -4743,8 +4756,8 @@ Circledata(para1,para2):=( Circledata(name,cenrad,options); ); Circledata(nm,cenrad,options):=( - regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,color, - tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps); + regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy,color,Msg, + tmp,tmp1,tmp2,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps); name="cr"+nm; tmp=Divoptions(options); Ltype=tmp_1; @@ -4755,16 +4768,21 @@ Circledata(nm,cenrad,options):=( opcindy=tmp_(length(tmp)); Num=50; Rg=[0,2*pi]; + Msg="Y"; forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - opstr=opstr+",'"+#+"'"; + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); if(substring(#,0,1)=="N", - Num=parse(tmp1); + Num=parse(tmp_2); + opstr=opstr+",'"+#+"'"; ); if(substring(#,0,1)=="R", - Rg=parse(tmp1); + Rg=parse(tmp_2); + opstr=opstr+",'"+#+"'"; ); + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); if(length(cenrad)==2, Ctr=Lcrd(cenrad_1); @@ -4802,7 +4820,9 @@ Circledata(nm,cenrad,options):=( Out=Lineplot("1",[pA,pB],["nodata"]); ); if(Noflg<3, - println("generate Circledata "+name); + if(Msg=="Y", //190206 + println("generate Circledata "+name); + ); tmp1=apply(Out,Pcrd(#)); tmp=name+"="+Textformat(tmp1,5); parse(tmp); @@ -4839,7 +4859,7 @@ Circledata(nm,cenrad,options):=( Framedata():=Framedata(["dr"]);//16.10.29from Framedata(list):=( regional(pA,pB); - if(MeasureDepth(list)==0, + if(Measuredepth(list)==0, pA=LLcrd((SW+NE)/2); // 15.09.17 pB=LLcrd(NE); Framedata("win",[pA,pB],list); @@ -5426,7 +5446,7 @@ Arrowheaddata(point,direction,options):=( hiraki=hiraki*pi/180; if(ispoint(direction),Houkou=direction.xy); //181018 if(isstring(direction),Houkou=parse(direction),Houkou=direction); - if(MeasureDepth(Houkou)==2,Houkou=Houkou_1); + if(Measuredepth(Houkou)==2,Houkou=Houkou_1); if(coord=="P",//181018from if(ispoint(point),pP=point.xy,pP=point); , @@ -5530,7 +5550,7 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from options=concat(options,tmp); //181214to if(ispoint(direction),Houkou=direction.xy); //181018 if(isstring(direction),Houkou=parse(direction),Houkou=direction); - if(MeasureDepth(Houkou)==2,Houkou=Houkou_1); + if(Measuredepth(Houkou)==2,Houkou=Houkou_1); if(coord=="P",//181018from if(ispoint(point),pP=point.xy,pP=point); , @@ -5687,7 +5707,7 @@ Arrowdata(nm,ptlist,optionsorg):=( ////%Anglemark start//// Anglemark(plist):=Anglemark(plist,[]); -Anglemark(Arg1,Arg2):=( // 2015.04.28 from +Anglemark(Arg1,Arg2):=( // 2015.04.28 from regional(nm,plist,options,tmp); if(isstring(Arg1), nm=Arg1; @@ -5705,17 +5725,16 @@ Anglemark(Arg1,Arg2):=( // 2015.04.28 from Anglemark(nm,plist,options):=( //help([A,B,C],["E=\theta",2]); //help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]); -//help:Anglemark("1",[A,B,2*pi]); +// help:Anglemark("1",[A,B,2*pi]); //help:Anglemark(options=[size,"E/L=(sep,)letter"]); regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,color, - Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg); + Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg,Msg); name="ag"+nm; Bpos="md"+name; ra=0.5; tmp=Divoptions(options); Ltype=tmp_1; Noflg=tmp_2; -// opstr=tmp_(length(tmp)-1);//180530 color=tmp_(length(tmp)-2); opcindy=tmp_(length(tmp)); eqL=tmp_5; @@ -5723,21 +5742,28 @@ Anglemark(nm,plist,options):=( Bname=""; Brat=1.2; //180530 Num=20; + Msg="Y"; opstr=""; if(length(realL)>0, ra=realL_1*ra; opstr=","+text(realL_1);//180530 ); forall(eqL, - if(substring(#,0,1)=="L",Bname="Letter("); - if(substring(#,0,1)=="E",Bname="Expr("); - 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)); + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if((tmp1=="L")%(tmp1=="E"), + if(tmp1=="L",Bname="Letter("); + if(tmp1=="E",Bname="Expr("); + Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29 + tmp1=indexof(tmp_2,","); + Bname=Bname+substring(tmp_2,tmp1,length(tmp_2))+Dq+")"; //190219 + if(tmp1>0, + Brat=parse(substring(tmp_2,0,tmp1-1)); + ); ); + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); pB=Lcrd(plist_1); pA=Lcrd(plist_2); sab=pB-pA; Ctr=pA; @@ -5767,7 +5793,9 @@ Anglemark(nm,plist,options):=( parse(Bname); ); if(Noflg<3, - println("generate anglemark "+name+" and "+Bpos); + if(Msg=="Y", //190206 + println("generate anglemark "+name+" and "+Bpos); + ); tmp1=apply(Out,Pcrd(#)); tmp=name+"="+Textformat(tmp1,5); parse(tmp); @@ -5922,7 +5950,7 @@ Bowdata(nm,plist,options):=( //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, + Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,Msg, Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev,color); name="bw"+nm; tmp=Divoptions(options); @@ -5938,6 +5966,7 @@ Bowdata(nm,plist,options):=( Cut=0; Num=24; Bname=""; + Msg="Y"; //190206 Tmov=0;//16.11.01from Nmov=0; Bmov=""; @@ -5947,23 +5976,27 @@ Bowdata(nm,plist,options):=( if(length(realL)>1,Cut=realL_2); ); forall(eqL, - tmp=substring(#,0,1); - if(tmp=="L" % tmp=="l", + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if(tmp1=="L", if(indexof(#,"rot")>0, Bname="Letterrot("; , Bname="Letter("; ); + Bops=tmp_2; ); - if(tmp=="E" % tmp=="e", + if(tmp1=="E", if(indexof(#,"rot")>0, Bname="Exprrot("; , Bname="Expr("; ); + Bops=tmp_2; ); - tmp=indexof(#,"="); - Bops=substring(#,tmp,length(#)); // 16.11.01 + if(tmp1=="M", //190206from + Msg=Toupper(substring(tmp_2,0,1)); + ); //190206to ); Ydata=MakeBowdata(pA,pB,Hgt); pC=Ydata_1; @@ -6041,8 +6074,10 @@ Bowdata(nm,plist,options):=( Out=[tmp1,tmp2]; ); if(Noflg<3, - println("generate bowdata "+name+" and "+Bpos);//16.10.31 - if(MeasureDepth(Out)==1,Out=[Out]); + if(Msg=="Y", //190206 + println("generate bowdata "+name+" and "+Bpos);//16.10.31 + ); + if(Measuredepth(Out)==1,Out=[Out]); tmp1=[]; forall(Out,tmp2, tmp=apply(tmp2,Pcrd(#)); @@ -6084,7 +6119,7 @@ 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); + tmp=Measuredepth(bwdata); if(tmp==1,bdata=[bwdata],bdata=bwdata); if(length(bdata)>1, tmp=Ptend(bdata_2)-Ptstart(bdata_1); @@ -6178,7 +6213,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 //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]",0,[1,0.5]); regional(deq,rng,Ltype,Noflg,eqL,opcindy,Num,name,nn,pdL,phase, - sel,tmp,tmp1,tmp2,color); + sel,tmp,tmp1,tmp2,tmp3,color); name="de"+nm; tmp=Divoptions(options); Ltype=tmp_1; @@ -6200,10 +6235,11 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 if(indexof(rng,"=")==0, rng=rng+"="+Textformat([XMIN,XMAX],6); ); - deq=deqorg; + deq=replace(deqorg,"‘","`"); //190206 deq=replace(deq,"'","`"); //180527 - tmp=indexof(deq,"="); - tmp1=substring(deq,0,tmp-1); + tmp3=indexof(deq,"="); + tmp1=substring(deq,0,tmp3-1); + tmp2=substring(deq,tmp3,length(deq)); if(indexof(tmp1,"[")==0, phase=0; sel=[1,2]; @@ -6211,14 +6247,32 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 phase=1; sel=[2,3]; ); - tmp2=substring(deq,tmp,length(deq)); nn=length(Indexall(tmp1,"`")); + if(nn==0, //190211from + println(" Lhs of equation has no single/back quotation "+tmp1); + ); + if(nn>0, + tmp=Indexall(tmp1,"`"); + if(tmp_(length(tmp))!=tmp3-1, + nn=0; + , + forall(reverse(2..(length(tmp))), + if((nn>0)&(!contains(tmp,tmp_#-1)), + nn=0; + ); + ); + ); + if(nn==0, + println(" Lhs of equation is not correct"); + ); + ); //190211to if(nn==1, if(indexof(tmp1,"[")==0, tmp1="["+replace(tmp1,"`","]`"); deq=tmp1+"="+tmp2; ); - , + ); + if(nn>1, tmp=indexof(tmp1,"`"); tmp1=substring(tmp1,0,tmp-1); deq="["; @@ -6252,7 +6306,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 ); deq=deq+"]"; ); - if(Noflg<3, + if((nn>0)&(Noflg<3), //190211 pdL=Deqdata(deq,rng,initt,initf,Num); if(phase==1, pdL=apply(pdL,#_(2..3)); @@ -6261,7 +6315,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 tmp=name+"="+Textformat(tmp1,5); parse(tmp); ); - if(Noflg<1, //no ketjs on + if((nn>0)&(Noflg<1), //190211 //no ketjs on tmp=Assign(deq); tmp=replace(deq,"'","`"); tmp=name+"=Deqplot('"+tmp+"','"+rng+"',"; @@ -6270,7 +6324,7 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06 tmp=RSform(tmp); GLIST=append(GLIST,tmp); ); //no ketjs off - if(Noflg<2, + if((nn>0)&(Noflg<2), //190211 if(isstring(Ltype), if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on Texcom("{");Com2nd("Setcolor("+color+")");//180722 @@ -6399,7 +6453,7 @@ EnclosingS(nm,plist,options):=( forall(1..(length(KL)),ii, tmp1=KL_ii_1; tmp=KL_ii_3; - tmp2=ParamonCurve(tmp1,tmp,Fdata); + tmp2=Paramoncurve(tmp1,tmp,Fdata); tmp3=KL_ii_2; if(tmp2>t1+Eps & tmp2<t2+Eps, qt=tmp1; @@ -7043,23 +7097,114 @@ Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=( ); ////%Hatchdata end//// +////%Shadein start//// +Shadein(pstrorg):=( //190220 + regional(pstr,ptL,pL,crv,nn, + tmp,tmp1,tmp2,pm1,pm2,p1,p2,flg); + if(islist(pstrorg),pstr=pstrorg_1,pstr=pstrorg); + crv=[]; + Framedata(["nodisp"]); + ptL=IntersectcurvesPp(pstr,frwin); + if(length(ptL)>0, + pL=apply(ptL,#_2); + forall(1..(length(pL)),nn, + if(nn<length(pL), + tmp1=pL_nn; + tmp2=pL_(nn+1); + tmp=Pointoncrv((tmp1+tmp2)/2,pstr); + , + tmp1=pL_nn; + tmp2=pL_1; + tmp=parse(pstr); + if(pL_nn==length(tmp), + tmp=tmp_1; + , + tmp=tmp_(length(tmp)); + ); + ); + if(Inwindow(tmp), + tmp=Partcrv("",tmp1,tmp2,pstr,["nodata"]); + , + tmp1=Pointoncrv(tmp1,pstr); + tmp2=Pointoncrv(tmp2,pstr); + pm1=Paramoncrv(tmp1,frwin); + pm2=Paramoncrv(tmp2,frwin); + if(floor(pm1)==floor(pm2), + tmp=Listplot("",[tmp1,tmp2],["nodata"]); + , + tmp=floor(pm1); + p1=Pointoncrv(tmp,"frwin"); + p2=Pointoncrv(mod(tmp,4)+1,"frwin"); + tmp=p1-10*(p2-p1); + Listplot("frwin",[p1,tmp],["nodisp","Msg=n"]); + tmp=IntersectcurvesPp("sgfrwin",pstr); + if(mod(length(tmp),2)==0, //190223from + if(pm2<pm1,pm2=pm2+4); + tmp=[tmp1]; + pm1=floor(pm1)+1; + flg=0; + forall(1..3, + if(flg==0, + if(pm1<pm2, + p1=Pointoncrv(mod(pm1-1,4)+1,"frwin"); + tmp=append(tmp,p1); + pm1=pm1+1; + , + flg=1; + ); + ); + ); + if(pm1-1<pm2,tmp=append(tmp,tmp2)); + , + if(pm2>pm1,pm2=pm2-4); + tmp=[tmp1]; + pm1=floor(pm1); + flg=0; + forall(1..3, + if(flg==0, + if(pm1>pm2, + p1=Pointoncrv(mod(pm1-1,4)+1,"frwin"); + tmp=append(tmp,p1); + pm1=pm1-1; + , + flg=1; + ); + ); + ); + if(pm1+1>pm2,tmp=append(tmp,tmp2)); + ); //190223to + ); + ); + if(length(crv)==0, + crv=tmp; + , + crv=Joincrvs("",[crv,tmp],["nodata"]); + ); + ); + , + if(Inwindow(parse(pstr+"_1")),crv=pstr,crv=frwin); + ); + crv; +); +////%Shadein end//// + ////%Shade start//// -Shade(plist):=Shade("",plist,[]); //180613from +Shade(plist):=Shade(plist,[]); Shade(Arg1,Arg2):=( - if(isstring(Arg1), - Shade(Arg1,Arg2,[]); + if(!isstring(Arg1), + Shade(text(SHADECTR),Arg1,Arg2); //190222 , - Shade("",Arg1,Arg2); + Shade(Arg1,Arg2,[]); ); ); -Shade(nm,plistorg,options):=( //180613to -//help:Shade(["gr"],[0.5]); -//help:Shade(["gr"],["Color=red"]); -//help:Shade(["gr2","sg1"],["Color=[0,0,0,0.5]"]); -//help:Shade(["gr2","sg1"],["Color=[1,0,0]"]); +Shade(nm,plistorg,options):=( +//help:Shade(["gr1"],[0.5]); +//help:Shade(["gr1"],["Color=red"]); +//help:Shade(["gr1"],["Trim=y(n)"]); //190224 +// help:Shade(["gr1","sg1"],["Color=[1,0,0]"]); // help:Shade([[A,B,C,A]]); -//help:Shade("1",["gr2","Invert(sg1)"],["Enc=y",startpt]]); - regional(name,plist,jj,tmp,tmp1,tmp2, +//help:Shade(["gr2","Invert(sg1)"],["Enc=y",(Startpoint)]); + regional(name,plist,jj,nn,trim,tmp,tmp1,tmp2, opstr,opcindy,eqL,reL,Str,G2,flg,encflg,startpt,color,ctr); name="shade"+nm; plist=plistorg; @@ -7076,6 +7221,7 @@ Shade(nm,plistorg,options):=( //180613to opcindy=tmp_(length(tmp)); tmp=select(plist,indexof(#,"Invert")>0); //180929from if(length(tmp)>0,encflg=1,encflg=0); + trim="N"; forall(eqL, tmp=Strsplit(#,"="); tmp1=Toupper(tmp_1); @@ -7088,6 +7234,9 @@ Shade(nm,plistorg,options):=( //180613to encflg=0; ); ); + if(substring(tmp1,0,1)=="T", + trim=substring(tmp2,0,1); + ); ); startpt=[]; forall(reL, @@ -7107,6 +7256,9 @@ Shade(nm,plistorg,options):=( //180613to ); plist=["en"+nm]; ); //180929to + if((length(plist)==1)&(trim=="Y"), //190220from,109224 + plist=[Shadein(plist)]; + ); //190220to forall(1..(length(plist)),jj, //180613from if(flg==0, tmp1=plist_jj; @@ -7131,13 +7283,13 @@ Shade(nm,plistorg,options):=( //180613to );//180613to if(flg==1, println(" some data not defined properly"); - , + , G2=Joincrvs("1",plist,["nodata"]); G2=apply(G2,Pcrd(#)); tmp1="fillpoly("+Textformat(G2,5)+opcindy+");"; parse(tmp1); ); - Str="Shade("; + Str="Shade("; //no ketjs on tmp1="list"+PaO(); forall(plist, if(isstring(#), // from 16.01.24 @@ -7150,10 +7302,21 @@ Shade(nm,plistorg,options):=( //180613to tmp1=tmp1+"Listplot("+Textformat(#,5)+"),"; ); //16.01.24to ); - Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929 - Com2nd("Texcom("+Dqq("{")+")",["before"]);Com2nd("Setcolor("+color+")",["before"]);//180722 //no ketjs on - Com2nd(Str,["before"]); - Com2nd("Texcom("+Dqq("}")+")",["before"]);//180722 //no ketjs off + Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929 + nn=length(COM2ndlist); //190311from + jj=nn; + forall(plist,tmp1, + tmp=select(1..nn,indexof(COM2ndlist_#,tmp1)>0); + jj=min(append(tmp,jj)); + ); + tmp1=["Texcom("+Dqq("{")+")","Setcolor("+color+")",Str,"Texcom("+Dqq("}")+")"]; + tmp2=COM2ndlist_(1..(jj-1)); + tmp=COM2ndlist_(jj..(length(COM2ndlist))); + if(!islist(tmp),tmp=[tmp]); + COM2ndlist=concat(tmp2,tmp1); + COM2ndlist=concat(COM2ndlist,tmp); //190311to + //no ketjs off + SHADECTR=SHADECTR+1; ); ////%Shade end//// diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt index 64a995c970e..fb2ec442dcf 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt @@ -1,3 +1,29 @@ +// 20190301 +// MeasureDepth => Measuredepth +// 20190228 +// Putcell,Putcellexpr,Putrow,Putrowexpr,Putcell,Putcellexpr changed ( options added ) +// 20190225 +// Mkketcindyjs debugged ( nolabel ) +// 20190222 +// Mktitle, Presentation changed ( "xcolor" => "color" ) +// 20190217 +// Putoncurve remade +/// 20190216 +// Putonseg changed, Putonline debugged +// 20190215 +// Mkketcindyjs changed (default of "Locsl=" reverted to "y") +// 20190214 +// Copyketcindyjs changed (for Mac,Linux) +// 20190209 +// Mkketcindyjs changed (fliename when Local="y", Case of rhs of option is blank) +// Mkketcindyjs changed ( "3d" added ) +// Letter changed ("Size=ratio" added ) +// Mkketcindyjs changed ( Local="n" as default) +// Slider changed ( for no end points ) +// 20190208 +// Mkketcindyjs changed ( Local="y" as default) +// 20190206 +// Mkketcindyjs changed ( kettex added to init slot, "only ketjs" added) // 20190203 // Mkketcindyjs debugged ( in case of local=y ) // 20190202 diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs index a9611b0f98d..0ff8a34535b 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs @@ -14,7 +14,7 @@ // along with this program. If not, see <http://www.gnu.org/licenses/> // -println("ketcindybasic2[20190203] loaded"); +println("ketcindybasic2[20190301] loaded"); //help:start(); @@ -131,7 +131,7 @@ Rotatedata(nm,plist,angle,options):=( if(length(tmp1)>0,Pt=Lcrd(tmp1_1)); pdata=plist; if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + if(!isstring(pdata_1) & Measuredepth(pdata)==1, pdata=[pdata]; ); if(isstring(angle),Theta=parse(angle),Theta=angle); @@ -139,8 +139,8 @@ Rotatedata(nm,plist,angle,options):=( PdL=[]; forall(pdata,Njj, if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==0,Kj=[Kj]); //17.11.24 - if(MeasureDepth(Kj)==1,Kj=[Kj]); + if(Measuredepth(Kj)==0,Kj=[Kj]); //17.11.24 + if(Measuredepth(Kj)==1,Kj=[Kj]); tmp2=[]; forall(Kj,Nj, tmp1=[]; @@ -204,7 +204,7 @@ Translatedata(nm,plist,mov,options):=( opcindy=tmp_(length(tmp)); pdata=plist; if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + if(!isstring(pdata_1) & Measuredepth(pdata)==1, pdata=[pdata]; ); tmp=Lcrd(mov); @@ -212,7 +212,7 @@ Translatedata(nm,plist,mov,options):=( PdL=[]; forall(pdata,Njj, if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); + if(Measuredepth(Kj)==1,Kj=[Kj]); tmp2=[]; forall(Kj,Nj, tmp1=[]; @@ -297,14 +297,14 @@ Scaledata(nm,plist,rx,ry,options):=( ); pdata=plist; if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + 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]); + if(Measuredepth(Kj)==1,Kj=[Kj]); tmp2=[]; forall(Kj,Nj, tmp1=[]; @@ -367,7 +367,7 @@ Reflectdata(nm,plist,symL,options):=( opcindy=tmp_(length(tmp)); pdata=plist; if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + if(!isstring(pdata_1) & Measuredepth(pdata)==1, pdata=[pdata]; ); Pt1=Lcrd(symL_1); @@ -381,7 +381,7 @@ Reflectdata(nm,plist,symL,options):=( PdL=[]; forall(pdata,Njj, if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); + if(Measuredepth(Kj)==1,Kj=[Kj]); tmp2=[]; forall(Kj,Nj, tmp1=[]; @@ -724,7 +724,7 @@ Drawpoint(ptlistorg,nn):=( regional(ptlist,thick,tmp,tmp1); println("Drwpt : "+text(ptlistorg)); if(islist(ptlistorg), - if(MeasureDepth(ptlistorg)==1, + if(Measuredepth(ptlistorg)==1, ptlist=ptlistorg , ptlist=[ptlistorg] @@ -776,13 +776,14 @@ Letter(list,options):=( //help:Letter([C,"c","Graph of $f(x)$"]); //help:Letter([C,"c","xy"],["size->30"]); regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy, - opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2,color); + opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2,color,eqL); tmp=Divoptions(options); + eqL=tmp_5; //190209 Noflg=tmp_2; color=tmp_(length(tmp)-2); opL=select(options,indexof(#,"->")>0); //16.10.09from tmp=select(opL,indexof(#,"color")); - size=12; + sz=12; bld=false; ita=false; aln="left"; @@ -794,12 +795,18 @@ Letter(list,options):=( if(tmp1=="color",clr=parse(tmp2)); if(tmp1=="bold",bld=parse(tmp2)); if(tmp1=="ita",ita=parse(tmp2)); - );//16.10.09until + );//16.10.09to + forall(eqL, //190209from + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if(tmp1=="S", + sz=round(parse(tmp_2)*12); + ); + ); //190209to 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 @@ -957,6 +964,7 @@ Exprrot(pt,dir,tmov,nmov,str,options):=( Slider(ptstr,p1,p2):=Slider(ptstr,p1,p2,[]); Slider(ptstr,p1,p2,options):=(//190120 //help:Slider("A-C-B",[-3,0],[3,0]); +//help:Slider("C",[-3,0],[3,0]); //help:Slider(options=["Color=0.6*[0,0,1]","Size=2"]); regional(pA,pB,pC,seg,sname,Alpha,color,size,tmp,tmp1); color="Color=0.6*[0,0,1]"; //190120from @@ -972,28 +980,34 @@ Slider(ptstr,p1,p2,options):=(//190120 ); ); //190120to tmp=Indexall(ptstr,"-"); - pA=substring(ptstr,0,tmp_1-1); - pC=substring(ptstr,tmp_1,tmp_2-1); - pB=substring(ptstr,tmp_2,length(ptstr)); - seg=pA+pB; - Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - sname=""; - forall(1..(length(seg)), - tmp=substring(seg,#-1,#); - tmp1=indexof(Alpha,tmp); - if(tmp1>0, - sname=sname+unicode(text(tmp1+96),base->10); - , - sname=sname+tmp; - ); - ); - Putpoint(pA,p1); - Putpoint(pB,p2); - Listplot([parse(pA),parse(pB)],["Msg=n","notex",color,size]); -// create([sname],"Segment",[parse(pA),parse(pB)]); -// tmp2=Listplot("",[p1,p2],["nodata"]); - Putonseg(pC,parse("sg"+pA+pB)); -// create([pC],"PointOn",[parse(sname),0.5]); + if(length(tmp)>0, //190209from + pA=substring(ptstr,0,tmp_1-1); + pC=substring(ptstr,tmp_1,tmp_2-1); + pB=substring(ptstr,tmp_2,length(ptstr)); + seg=pA+pB; + Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + sname=""; + forall(1..(length(seg)), + tmp=substring(seg,#-1,#); + tmp1=indexof(Alpha,tmp); + if(tmp1>0, + sname=sname+unicode(text(tmp1+96),base->10); + , + sname=sname+tmp; + ); + ); + Putpoint(pA,p1); + Putpoint(pB,p2); + Listplot([parse(pA),parse(pB)],["Msg=n","notex",color,size]); + Putonseg(pC,parse("sg"+pA+pB)); + PTEXCEPTION=concat(TEXCEPTION,[pA,pC,pB]); + , + pA=""; pB=""; pC=ptstr; + tmp=pC+"l"+pC+pC+"r"; + Listplot(tmp,[p1,p2],["Msg=n","notex",color,size]); + Putonseg(pC,parse("sg"+tmp)); + PTEXCEPTION=concat(TEXCEPTION,[pC]); + ); //190209to ); ////%Slider end//// @@ -1099,7 +1113,7 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=( if(length(ctrlistorg)==length(ptlist)-1, forall(1..(length(ctrlistorg)),ii, //190202 tmp1=apply(ctrlistorg_ii,Lcrd(#)); //190202 - if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1); + if(Measuredepth(tmp1)==0,tmp=[tmp1],tmp=tmp1); ctrlist=append(ctrlist,tmp); ); , @@ -1289,7 +1303,7 @@ Mkbezierptcrv(ptdata,options):=( , ptlist=ptdata; ); - if(MeasureDepth(ptlist)==1,ptlist=[ptlist]); + if(Measuredepth(ptlist)==1,ptlist=[ptlist]); Out=[]; forall(1..length(ptlist), tmp=floor((BezierNumber-1)/26);// 15.02.23 @@ -1311,7 +1325,7 @@ 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); + if(Measuredepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL); forall(1..length(ptctrLL), name=nm+text(#); ptlist=ptctrLL_#_1; @@ -1390,7 +1404,7 @@ Readbezier(file,optionorg):=( tmp=file+text(nc); tmp1=parse(tmp+"k"); tmp2=parse(tmp+"c"); - if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from + if(Measuredepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from if(geo==1, alpha="abcdefghijklmnopqrstuvwxyz"; forall(1..length(tmp1), @@ -1689,7 +1703,7 @@ Bspline(nm,ctrL,options):=( 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); + if(Measuredepth(Cv)==2,Cv=Cv_1); Cv=apply(Cv,LLcrd(#)); // 14.12.18 while(length(Cv)==1, Cv=Cv_1; @@ -1750,36 +1764,27 @@ MeetCurve(Crv,Xorg,Yorg):=( ////%MeetCurve end//// ////%Putonline start//// -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.11until - Putpoint(name,tmp1,parse(tmp2)); +Putonline(name,linestr):=Putonline(name,linestr,[]); //190216from +Putonline(name,Arg1,Arg2):=( + regional(line,options); + if(isstring(Arg1), + line=parse(Arg1); options=Arg2; + Putonseg(name,LLcrd(line_1),LLcrd(line_2),options); , - 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); - ); + Putonline(name,LLcrd(Arg1),LLcrd(Arg2),[]); ); ); +Putonline(name,p1,p2,options):=( +//help:Putonline("C","lnAB"); +//help:Putonline("C",pA,pB); + regional(line); + line=Lineplot("",[p1,p2],["nodata"]); +// tmp1=name+"1"; +// tmp2=name+"2"; +// Putpoint(tmp1,line_1); // 190216 +// Putpoint(tmp22,line_2); // 190216 + Putonseg(name,line_1,line_2,options); +); //190216to ////%Putonline end//// ////%Putonseg start//// @@ -1792,7 +1797,7 @@ Putonseg(name,p1,p2):=Putonseg(name,p1,p2,[]); Putonseg(name,p1org,p2org,options):=( //help:Putonseg("C","sgAB"); //help:Putonseg("C",pA,pB); - regional(Eps,par,dx,dy,p,tmp,tmp1,tmp2); + regional(Eps,par,p1,p2,dx,dy,p,tmp,tmp1,tmp2); Eps=10^(-5); par=0.5; tmp=Divoptions(options); @@ -1801,12 +1806,11 @@ Putonseg(name,p1org,p2org,options):=( ); p1=Lcrd(p1org);//16.10.11from p2=Lcrd(p2org); - Putonline(name,p1,p2,[par]); + Putpoint(name,(p1+p2)/2,parse(name+".xy")); //190216 //no ketjs p1=Pcrd(p1); p2=Pcrd(p2); //190120 dx=p2_1-p1_1; dy=p2_2-p1_2; p=parse(name+".xy"); -// p=LLcrd(p); if(abs(dx)>abs(dy), //190120from if(p1_1>p2_1,tmp=p1;p1=p2;p2=tmp); if(p_1<p1_1,parse(name+".xy="+Textformat(p1,5));p=p1); @@ -1824,47 +1828,34 @@ Putonseg(name,p1org,p2org,options):=( ////%Putonseg end//// ////%Putoncurve start//// -Putoncurve(pn,crv):=Putoncurve(pn,crv,[]); -Putoncurve(pn,crv,options):=( +Putoncurve(pn,crv):=putoncurve(pn,crv,[]); +Putoncurve(pn,crvorg,options):=( //help:Putoncurve("A","gr1"); -//help:Putoncurve("A","gr1",[0,XMAX]); - 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 until - , - 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)); + regional(eps,crv,close,nn,p1,p2,tmp,tmp1); + eps=10^(-3); + crv=crvorg; + if(isstring(crv),crv=parse(crv)); + close=false; + if(|crv_1-crv_(length(crv))|<eps, + close=true; + ); + tmp=parse(pn); //no ketjs on + if(!ispoint(tmp), + Putpoint(pn,[0,0],parse(pn+".xy")); + ); //no ketjs off + tmp=Paramoncurve(parse(pn),crvorg); + nn=floor(tmp); + p1=crv_nn; + if(nn<length(crv), + p2=crv_(nn+1); + Putonseg(pn,p1,p2); , - tmp1=parse(pn+".x"); - if(tmp1< leftlim % tmp1>rightlim, - if(tmp1< leftlim,tmp= leftlim, tmp=rightlim); - Pmt=MeetCurve(crv,Textformat(tmp,5),pn+".y"); + if(close, + p2=crv_1; + Putonseg(pn,p1,p2); , - Pmt=MeetCurve(crv,pn+".x",pn+".y"); + parse(pn+".xy="+Textformat(Ptend(crv),5)); ); - ptstr=pn+".xy="+Textformat(Pcrd(Pmt),5)+";"; - parse(ptstr); - ); - if(Msg=="y", - println("Put "+pn+" on Curve "+text(crv)); ); ); ////%Putoncurve end//// @@ -2438,10 +2429,18 @@ Findcell(Tbdata,pos1,pos2):=( ////%Findcell end//// ////%Putcell start//// -Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr); -Putcell(Tbdata,pos1,pos2,dir,lttr):=( +Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr,[]); //190228from +Putcell(Arg1,Arg2,Arg3,Arg4,Arg5):=( + if(islist(Arg5), + Putcell("",Arg1,Arg2,Arg3,Arg4,Arg5); + , + Putcell(Arg1,Arg2,Arg3,Arg4,Arg5,[]); + ); +); +Putcell(Tbdata,pos1,pos2,dir,lttr,options):=( //help:Putcell("c0r0","c2r1","lt","abc"); //help:Putcell(2,3,"c","xyz"); +//help:Putcell(options=["Color="]); regional(tmp,tmp1,tmp2,posnw,posse, posdir,posstr,ctr,dx,dy); tmp=Findcell(Tbdata,pos1,pos2); @@ -2464,59 +2463,96 @@ Putcell(Tbdata,pos1,pos2,dir,lttr):=( posdir_1=posdir_1+dx; posstr=replace(posstr,"r","w"); ); - Letter(posdir,posstr,text(lttr)); -); + Letter([posdir,posstr,text(lttr)],options); +); //190228to +////%Putcell end//// -Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex); -Putcellexpr(Tbdata,pos1,pos2,dir,ex):=( +////%Putcellexpr start//// +Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex,[]); //190228from +Putcellexpr(Arg1,Arg2,Arg3,Arg4,Arg5):=( + if(islist(Arg5), + Putcellexpr("",Arg1,Arg2,Arg3,Arg4,Arg5); + , + Putcellexpr(Arg1,Arg2,Arg3,Arg4,Arg5,[]); + ); +); +Putcellexpr(Tbdata,pos1,pos2,dir,ex,options):=( //help:Putcellexpr("c0r0","c2r1","lt","abc"); //help:Putcellexpr(2,3,"c","\sin x"); - Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$"); -); -////%Putcell end//// + Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$",options); +); //190228to +////%Putcellexpr end//// ////%Putrow start//// -Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL); -Putrow(Tbdata,nrow,dir,lttrL):=( +Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL,[]); //190228from +Putrow(Arg1,Arg2,Arg3,Arg4):=( + if(islist(Arg4), + Putrow("",Arg1,Arg2,Arg3,Arg4); + , + Putcellrow(Arg1,Arg2,Arg3,Arg4,[]); + ); +); +Putrow(Tbdata,nrow,dir,lttrL,options):=( //help:Putrow(1,"c",["x","y","z"]); regional(tmp,tmp1,mcol); mcol=length(lttrL); forall(1..mcol, - Putcell(Tbdata,#,nrow,dir,lttrL_#); + Putcell(Tbdata,#,nrow,dir,lttrL_#,options); ); -); +); //190228to ////%Putrow end//// ////%Putrowexpr start//// -Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL); -Putrowexpr(Tbdata,nrow,dir,exL):=( +Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL,[]); //190228from +Putrowexpr(Arg1,Arg2,Arg3,Arg4):=( + if(islist(Arg4), + Putrowexpr("",Arg1,Arg2,Arg3,Arg4); + , + Putrowexpr(Arg1,Arg2,Arg3,Arg4,[]); + ); +); +Putrowexpr(Tbdata,nrow,dir,exL,options):=( //help:Putrowexpr(2,"r",["x","y","z"]); regional(lttrL); lttrL=apply(exL,"$"+#+"$"); - Putrow(Tbdata,nrow,dir,lttrL); -); + Putrow(Tbdata,nrow,dir,lttrL,options); +); //190228to ////%Putrowexpr end//// ////%PutcoL start//// -PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL); -PutcoL(Tbdata,mcol,dir,lttrL):=( +PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL,[]); //190228from +Putcellexpr(Arg1,Arg2,Arg3,Arg4):=( + if(islist(Arg4), + Putcellexpr("",Arg1,Arg2,Arg3,Arg4); + , + Putcellexpr(Arg1,Arg2,Arg3,Arg4,[]); + ); +); +PutcoL(Tbdata,mcol,dir,lttrL,options):=( //help:PutcoL(1,"c",["x","y","z"]); regional(tmp,tmp1,nrow); nrow=length(lttrL); forall(1..nrow, - Putcell(Tbdata,mcol,#,dir,lttrL_#); + Putcell(Tbdata,mcol,#,dir,lttrL_#,options); ); -); +); //190228to ////%PutcoL end//// ////%PutcoLexpr start//// -PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL); -PutcoLexpr(Tbdata,mcol,dir,exL):=( +PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL,[]); //190228from +Putcellexpr(Arg1,Arg2,Arg3,Arg4):=( + if(islist(Arg4), + Putcellexpr("",Arg1,Arg2,Arg3,Arg4); + , + Putcellexpr(Arg1,Arg2,Arg3,Arg4,[]); + ); +); +PutcoLexpr(Tbdata,mcol,dir,exL,options):=( //help:PutcoLexpr(2,"r",["x","y","z"]); regional(lttrL); lttrL=apply(exL,"$"+#+"$"); - PutcoL(Tbdata,mcol,dir,lttrL); -); + PutcoL(Tbdata,mcol,dir,lttrL,options); +); //190228to ////%PutcoLexpr end//// ////%Setrange start//// @@ -2877,7 +2913,7 @@ Windispg(gcLorg):=( //190125 forall(gcL,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); + tmp=Measuredepth(Dt); if(tmp==1,Dt=[Dt]); opcindy=Nj_3; tmp=Nj_2; //190119from @@ -3383,7 +3419,7 @@ WriteOutData(filename,ptlist):=( Gdata=parse(Gname); ); Gdata=Flattenlist(Gdata); - if(MeasureDepth(Gdata)==1,Gdata=[Gdata]); + if(Measuredepth(Gdata)==1,Gdata=[Gdata]); forall(Gdata,Gj, println(SCEOUTPUT,"start//"); Str=""; @@ -4568,7 +4604,7 @@ Maketitle(name):=( , println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}"); ); - println(SCEOUTPUT,"\usepackage[usenames]{xcolor}"); + println(SCEOUTPUT,"\usepackage[usenames]{color}"); //190222 forall(ADDPACK, // if(indexof(#,"[")==0, // println(SCEOUTPUT,"\usepackage{"+#+"}"); @@ -4904,7 +4940,7 @@ Presentation(texfile,txtfile):=( , println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}"); ); - println(SCEOUTPUT,"\usepackage{xcolor}");//17.07.31 + println(SCEOUTPUT,"\usepackage{color}");//190222 letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; shadowc=[0,0,0,0.5]; mboxc="yellow"; tmp4="abcdefghijklmno"; @@ -5927,10 +5963,21 @@ Copyketcindyjs():=( kc():=( println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); ); + tmp1=Dircdy; //190214from + if(substring(tmp1,length(tmp1)-1,length(tmp1))=="/", + tmp1=substring(tmp1,0,length(tmp1)-1); + ); //190214to SCEOUTPUT = openfile(Shellparent); println(SCEOUTPUT,"#!/bin/sh"); - println(SCEOUTPUT,"cd "+Dqq(Dirhead)); - println(SCEOUTPUT,"cp -r -p ketcindyjs "+Dircdy+"/"); + println(SCEOUTPUT,"cd "+Dqq(tmp1)); //190214from + println(SCEOUTPUT,"mkdir ketcindyjs"); + println(SCEOUTPUT,"cd "+Dqq(Dirhead+"/ketcindyjs")); + println(SCEOUTPUT,"cp -r -p katex "+tmp1+"/ketcindyjs"); + println(SCEOUTPUT,"cp -p Cindy.js "+tmp1+"/ketcindyjs"); + println(SCEOUTPUT,"cp -p Cindy.js.map "+tmp1+"/ketcindyjs"); + println(SCEOUTPUT,"cp -p CindyJS.css "+tmp1+"/ketcindyjs"); + println(SCEOUTPUT,"cp -p katex-plugin.js "+tmp1+"/ketcindyjs"); + println(SCEOUTPUT,"cp -p webfont.js "+tmp1+"/ketcindyjs"); //190214to println(SCEOUTPUT,"exit 0"); closefile(SCEOUTPUT); ); @@ -5968,13 +6015,14 @@ Setketcindyjs(list):=( Mkketcindyjs():=Mkketcindyjs(KETJSOP); //190129 Mkketcindyjs(options):=( //17.11.18 //help:Mkketcindyjs(); -//help:Mkketcindyjs(options=["Local=(n)","Scale=(1)","Nolabel=[]","Color=","Grid="]); +//help:Mkketcindyjs(options=["Local=(y)","Scale=(1)","Nolabel=[]","Color=","Grid="]); //help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy"]); regional(webflg,localflg,htm,htmorg,from,upto,flg,fL,fun,jj,tmp,tmp1,tmp2,tmp3, - lib1,lib2,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale,nolabel, - color,grid,out,igL,DL,Out); + libnameL,libL,lib,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale, + nolabel,color,grid,out,igL,DL,Out); + libnameL=["basic1","basic2","3d"]; webflg="Y"; //190128 texflg removed - localflg="N"; //190128 + localflg="Y"; //190209,0215 scale=1; //190129 nolabel=["SW","NE"]; //190129 color=""; @@ -5985,30 +6033,42 @@ Mkketcindyjs(options):=( //17.11.18 tmp1=Toupper(substring(tmp_1,0,1)); tmp2=tmp_2; if(tmp1=="W", - webflg=Toupper(substring(tmp2,0,1)); + if(length(tmp2)>0, //190209 + webflg=Toupper(substring(tmp2,0,1)); + ); ); if(tmp1=="L", - localflg=Toupper(substring(tmp2,0,1)); + if(length(tmp2)>0, //190209 + localflg=Toupper(substring(tmp2,0,1)); + ); ); if(tmp1=="S", - scale=parse(tmp2); + if(length(tmp2)>0, //190209 + scale=parse(tmp2); + ); ); if(tmp1=="N", - tmp=tmp2; - if(indexof(tmp2,"[")>0, - tmp=substring(tmp2,1,length(tmp2)-1); + if(length(tmp2)>0, //190209 + tmp=tmp2; + if(indexof(tmp2,"[")>0, + tmp=substring(tmp2,1,length(tmp2)-1); + ); + tmp=tokenize(tmp,","); + nolabel=concat(nolabe,tmp); ); - tmp=tokenize(tmp,","); - nolabel=concat(nolabe,tmp); ); - if(tmp1=="C", - color=tmp2; - if(substring(color,0,1)=="[", //190130from - color=substring(color,1,length(color)-1); - ); //190130to + if(tmp1=="C", //190209 + if(length(tmp2)>0, + color=tmp2; + if(substring(color,0,1)=="[", //190130from + color=substring(color,1,length(color)-1); + ); //190130to + ); ); if(tmp1=="G", - grid=tmp2; + if(length(tmp2)>0, + grid=tmp2; + ); ); if(tmp1=="P", if(!tmp2="Dircdy", @@ -6027,6 +6087,36 @@ Mkketcindyjs(options):=( //17.11.18 wait(3000); , htmorg=Readlines(Dircdy,Fhead+".html"); + tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csinit"))>0); //190206from + from=tmp_1+5; + flg=0; + forall(from..(length(htmorg)), + if(flg==0, + if(indexof(htmorg_#,"</script>")>0, + upto=#-1; + flg=1; + ); + ); + ); + tmp2=[]; + ketflg="off"; + forall(htmorg_(from..upto), + if(indexof(#,"no ketjs")>0, + if(indexof(#,"no ketjs on")>0, + ketflg="on"; + ); + if(indexof(#,"no ketjs off")>0, + ketflg="off"; + ); + , + if(ketflg=="off", + tmp=Removespace(#); + if(substring(tmp,0,2)!="//", + tmp2=append(tmp2,#); + ); + ); + ); + ); tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csdraw"))>0); from=tmp_1+1; flg=0; @@ -6038,10 +6128,42 @@ Mkketcindyjs(options):=( //17.11.18 ); ); ); - fL=Extractfun(htmorg_(from..upto)); - DL=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic1list.txt"); - tmp=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic2list.txt"); - DL=concat(DL,tmp); //DL and Out arenecessary for Extractall + ketflg="off"; + forall(htmorg_(from..upto), + if(indexof(#,"no ketjs")>0, + if(indexof(#,"no ketjs on")>0, + ketflg="on"; + ); + if(indexof(#,"no ketjs off")>0, + ketflg="off"; + ); + , + if(ketflg=="off", + tmp=Removespace(#); + if(substring(tmp,0,2)!="//", + tmp2=append(tmp2,#); + ); + ); + ); + ); + fL=Extractfun(tmp2); //190206to + DL=[]; + forall(libnameL,name, //190209from + tmp2=Readlines(Dirhead+pathsep()+"ketcindyjs",name+"list.txt"); + tmp1=[]; + forall(1..(length(tmp2)),nn, + tmp=Indexall(tmp2_nn,","); + from=0; + tmp3=[]; + forall(tmp, + tmp3=append(tmp3,substring(tmp2_nn,from,#-1)); + from=#; + ); + tmp3=append(tmp3,substring(tmp2_nn,from,length(tmp2_nn))); + tmp1=append(tmp1,tmp3); + ); + DL=concat(DL,tmp1); //DL and Out are necessary for Extractall + ); //190209to Out=[]; forall(fL,fun, Extractall(fun); @@ -6072,6 +6194,7 @@ Mkketcindyjs(options):=( //17.11.18 tmp1=Fhead+"json.html"; , tmp1=Fhead+"jsoff.html"; + if(localflg=="Y",tmp1=replace(tmp1,"off.","offL.")); //190209 ); setdirectory(path); SCEOUTPUT = openfile(tmp1); @@ -6107,15 +6230,17 @@ Mkketcindyjs(options):=( //17.11.18 forall(tmp, println(SCEOUTPUT,#); ); - lib1=Readlines(Dirhead+"/ketlib","ketcindylibbasic1r.cs"); - lib2=Readlines(Dirhead+"/ketlib","ketcindylibbasic2r.cs"); + libL=[]; //190209from + forall(libnameL, + tmp=Readlines(Dirhead+"/ketlib","ketcindylib"+#+"r.cs"); + libL=append(libL,tmp); + ); //190209to forall(Out,fun, - libf=fun_2;from=fun_3;upto=fun_4; - if(indexof(libf,"basic1")>0, - tmp1=lib1_(from..upto); - , - tmp1=lib2_(from..upto); - ); + libf=fun_2;from=parse(fun_3);upto=parse(fun_4); + tmp=select(1..(length(libnameL)),indexof(libf,libnameL_#)>0); //190209from + tmp=tmp_1; + lib=libL_tmp; + tmp1=lib_(from..upto); //190209from ketflg="off"; //190122from forall(tmp1, if(indexof(#,"no ketjs")>0, @@ -6138,14 +6263,32 @@ Mkketcindyjs(options):=( //17.11.18 tmp=select(partL,#_1=="csinit"); if(length(tmp)>0, tmp=tmp_1; - from=tmp_2; + from=tmp_2+5; //190206 upto=tmp_3; tmp1=htmorg_((from+1)..(upto-1)); //190119 + kettef="off"; //190206from forall(tmp1, - if((indexof(#,"import(")==0)&(indexof(#,"use(")==0), - println(SCEOUTPUT,#); + if(indexof(#,"no ketjs")>0, + if(indexof(#,"no ketjs on")>0, + ketflg="on"; + ); + if(indexof(#,"no ketjs off")>0, + ketflg="off"; + ); + , + if(ketflg=="off", + tmp=Removespace(#); + if(substring(tmp,0,2)!="//", + println(SCEOUTPUT,#); + , + tmp1=indexof(tmp,"only ketjs"); //19020l6from + if(tmp1>0, + println(SCEOUTPUT,substring(tmp,2,tmp1-1)); + ); //190206to + ); + ); ); - ); + ); ); println(SCEOUTPUT,"</script>"); tmp=select(partL,#_1=="csdraw"); @@ -6167,10 +6310,15 @@ Mkketcindyjs(options):=( //17.11.18 tmp=Removespace(#); if(substring(tmp,0,2)!="//", println(SCEOUTPUT,#); + , + tmp1=indexof(tmp,"only ketjs"); //19020l6from + if(tmp1>0, + println(SCEOUTPUT,substring(tmp,2,tmp1-1)); + ); //190206to ); ); ); - ); + ); //190206to tmp1=htmorg_((lastpart_1)..(lastpart_2)); tmp=select(1..(length(tmp1)),indexof(tmp1_#,Dqq("cs*"))>0); tmp=tmp_1; @@ -6196,7 +6344,7 @@ Mkketcindyjs(options):=( //17.11.18 flg=1; ); if(flg==0, - tmp=indexof(tmp1_jj,"type: "+Dq+"Free")+indexof(tmp1_jj,"type: "+Dq+"Point"); + tmp=Indexof(tmp1_jj,"labeled: "); //190225 if(tmp>0, tmp2=tmp1_jj; tmp=Indexall(tmp2,Dq); //190129from diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt index 0c89e3e75ed..ceec4ccd062 100755 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpE.txt @@ -61,7 +61,7 @@ //help:Hatchdata*(add hatching into some region // option : slope, degree, space betwen lines)); //help:Enclosing*(generate the plot data of closed curve connecting some curves); -//help:Shade*(add shading into some region option : depth); +//help:Shade*(add shading into some region option : color,trimming(y/n)); //help:Rotatepoint*(rotate the point, option : center); //help:Translatepoint*(pararell transport of the point); //help:Scalepoint*(magnify or reduce the position of point option : center); diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt index 93e5e323add..c3e02a5c21c 100755 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt @@ -60,7 +60,7 @@ //追加オプション : "Num="); //help:Hatchdata*(斜線塗り. オプション : 傾き(度),間隔); //help:Enclosing*(複数曲線をつなげて閉曲線を作成); -//help:Shade*(シェーディング. オプション : 濃さ); +//help:Shade*(シェーディング. オプション : 色, トリミング(y/n)); //help:Rotatepoint*(点を回転. オプション : 中心); //help:Translatepoint*(点を平行移動); //help:Translatedata*(プロットデータを平行移動); diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt index a0a087ca49b..a1aa7df77e3 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt @@ -1,3 +1,5 @@ +// 20190317 +// Setpara debugged ( default value of Frate changed to 20) // 20181224 // Setpara debugged ( ADDAXES=="1") // 20181128 diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs index 3e43e80d55e..618a070f121 100755 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs @@ -14,7 +14,7 @@ // along with this program. If not, see <http://www.gnu.org/licenses/> // -println("ketcindymv(20181224) loaded"); +println("ketcindymv(20190317) loaded"); //help:start(); @@ -278,7 +278,7 @@ Animatefile(path,folder):=( regional(FRate, Scale, OpA, pa,fname,eqL,tmp,tmp1,tmp2,texfiles); tmp=divoptions(ParaOpAnim); //17.11.24 eqL=tmp_5; - FRate="10"; + FRate="20"; //190317 Scale="1"; OpA="loop,controls,buttonsize=3mm"; remflg=0; diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt index 5a61f9a92e3..ceb338a17a9 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt @@ -1,5 +1,12 @@ +// 20190301 +// MeasureDepth => Measuredepth +// Readcsv changed ( for 2 arg, ".csv" can be omitted ) +// 20190226 +// Histplot changed ( [ ] => c( ) ) +// 20190224 +// CalcbyR changed (defaut of Pre : PVOFG => VF ) // 20190127 - Gccexists changed (in case that PathC is full path in Mac/Windws) +// Gccexists changed (in case that PathC is full path in Mac/Windws) // 20190126 // Boxplot changed ( Pointdata[size] ) // 20190125 diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs index 354cedc324e..c5fbf3a999d 100644 --- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs +++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs @@ -14,7 +14,7 @@ // along with this program. If not, see <http://www.gnu.org/licenses/> // -println("ketcindylibout(20190127 loaded"); +println("ketcindylibout[20190301] loaded"); //help:start(); @@ -772,7 +772,7 @@ CalcbyR(name,Arg1,Arg2):=( ); CalcbyR(name,path,cmd,optionorg):=( //help:CalcbyR(name,cmd); -//help:CalcbyR(options=["m/r","Wait=2","Out=y/n","Pre=PVOFG"]); +//help:CalcbyR(options=["m/r","Wait=2","Out=y/n","Pre=PVFG"]); //help:CalcbyR(options2=["Pre=!G" ]); regional(options,tmp,tmp1,tmp2,tmp3,realL,strL,eqL, cat,dig,prestr,flg,wflg,file,nc,arg,cmdR,cmdlist,wfile,waiting); @@ -795,8 +795,9 @@ CalcbyR(name,path,cmd,optionorg):=( ); ); //181130to wfile=""; - prestr="PVOFG"; //180508 + prestr="VF"; //180508,190224 waiting=30; //180608 + nopoint="n"; //190222 forall(eqL, tmp=Strsplit(#,"="); tmp1=Toupper(substring(tmp_1,0,1)); @@ -1105,7 +1106,7 @@ CalcbyR(name,path,cmd,optionorg):=( Rfun(name,fun,argL):=Rfun(name,fun,argL,[]);//16.10.22 Rfun(name,fun,argL,optionorg):=( //help:Rfun("1","rnorm",[10]); -//help:Rfun(options=["Disp=y"]); +//help:Rfun(options=["Disp=y(n)","Pre="]); regional(nm,options,eqL,disp,cmdL, tmp,tmp1,tmp2); nm="R"+name; @@ -1285,7 +1286,13 @@ Readcsv(pathorg,file,optionorg):=( ); // New readcsv [181125] Readcsv(file):=Readcsv(Dirwork,file); -Readcsv(path,file):=Readcsv(path,file,[]); +Readcsv(Arg1,Arg2):=( //190301from + if(islist(Arg2), + Readcsv(Dirwork,Arg1,Arg2); + , + Readcsv(path,file,[]); + ); +); //190301from Readcsv(path,file,options):=( //help:Readcsv("ex.csv"); //help:Readcsv(directory,"ex.csv"); @@ -1303,7 +1310,9 @@ Readcsv(path,file,options):=( if(Toupper(head)=="Y", from=2; ); //190125to - dt=readfile2str(path,file); + tmp=file; + if(indexof(tmp,".csv")==0,tmp=tmp+".csv"); //190301 + dt=readfile2str(path,tmp); dt=tokenize(dt,"/LF/"); end=length(dt); if(dt_(length(dt))=="", @@ -1751,9 +1760,11 @@ Histplot(nm,dataorg,optionorg):=( tmp=Strsplit(#,"="); tmp1=Toupper(substring(tmp_1,0,1)); if(tmp1=="B", - if(substring(tmp_2,0,1)=="[", - tmp1="c("+substring(tmp_2,1,length(tmp_2)-1)+")"; //181104 - ); + if(substring(tmp_2,0,1)=="[", // 190226from + tmp1=RSform(tmp_2); + , + tmp1=tmp_2; + );// 190226to breaks="breaks="+tmp1; options=remove(options,[#]); ); @@ -4122,8 +4133,8 @@ Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18 regional(pd,options,cmd,out,thick1,thick2,nn,pdn, reL,vtx,face,nv,npttmp,tmp1,tmp2,tmp3,tmp4); pd=pdorg; - if(MeasureDepth(pd)==1,pd=[pd]); - if(MeasureDepth(pd)==2,pd=[pd]);//16.10.04from + if(Measuredepth(pd)==1,pd=[pd]); + if(Measuredepth(pd)==2,pd=[pd]);//16.10.04from forall(1..length(pd),nn, // 16.06.19from pdn=pd_nn; vtx=pdn_1; @@ -4229,8 +4240,8 @@ Mkobjcrvcmd(nm,pstorg,options):=( out=[]; tmp1=parse(pst); flg=0; // 16.04.23from - if(MeasureDepth(tmp1)==2,flg=1); - if(MeasureDepth(tmp1)==0, + if(Measuredepth(tmp1)==2,flg=1); + if(Measuredepth(tmp1)==0, if(islist(tmp1),flg=1); ); if(flg==1, // 16.04.23until @@ -5167,7 +5178,7 @@ WritedataC(fnameorg,dataorg):=( regional(tmp,fname,data,kk,nn,pt); data=dataorg; if(isstring(data),data=parse(data)); - if(MeasureDepth(data)==1,data=[data]); + if(Measuredepth(data)==1,data=[data]); fname=fnameorg; if(indexof(fname,".")==0, fname=fname+".txt"); SCEOUTPUT=openfile(fname); @@ -6448,7 +6459,7 @@ Sfcutparadatacdy(nm,cutfun,fd,options):=( Implicitplot("sfc"+nm,tmp,fd_5,fd_6,["Msg=n","nodisp"]); out3=[]; out2=[]; tmp1=parse("impsfc"+nm); - if(MeasureDepth(tmp1)==1,tmp1=[tmp1]); + if(Measuredepth(tmp1)==1,tmp1=[tmp1]); forall(1..(length(tmp1)),jj, pL=tmp1_jj; tmp2=[]; diff --git a/Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdy b/Master/texmf-dist/scripts/ketcindy/template2slide.cdy Binary files differindex 5b518f9f9e3..5b518f9f9e3 100644 --- a/Master/texmf-dist/scripts/ketcindy/template2allbuttons.cdy +++ b/Master/texmf-dist/scripts/ketcindy/template2slide.cdy diff --git a/Master/texmf-dist/scripts/ketcindy/template4ketcindyjs.cdy b/Master/texmf-dist/scripts/ketcindy/template4ketcindyjs.cdy Binary files differnew file mode 100644 index 00000000000..da71001ab72 --- /dev/null +++ b/Master/texmf-dist/scripts/ketcindy/template4ketcindyjs.cdy |