Re: 点線で円弧を描きたいのですが

名前: しっぽ愛好家
日時: 2002-12-08 11:15:17
IPアドレス: 210.230.19.*

>>13710 似たようなものですが…trig パッケージを使うと三角関数の計算を 行うことができるので,個々の点の座標は比較的容易に求めることができます. というわけで,次の例にあるようなマクロを用いることができます. なお,下記の例で用いた \dottedarc の書式は次のとおりです. \dottedarc[<number>]{<radius>}{<start angle>}{<stop angle>} ・<number>: 点の個数(2 以上の整数)で,省略した場合には 25 として 扱われます. ・<radius>: 円弧の半径(\unitlength を単位とする数値)です. ・<start angle>: 開始角(度を単位とする数値)です. ・<stop angle> : 終了角(度を単位とする数値で,<start angle> よりも 大きな値)です. なお,円弧の中心は \put の座標にします. %%% 点線の円弧を描く例 \documentclass{jarticle} \usepackage{trig}%%% graphics パッケージとともに配布されています. \makeatletter \def\dottedarc{\@testopt\@dottedarc{25}} \def\@dottedarc[#1]#2#3#4{% %%% #1: number of dots (> 1), #2: radius %%% #3: start angle, #4: stop angle (#4 > #3) \count@#1\relax \ifnum \count@<\tw@ \count@\tw@ \fi \@tempcnta\z@ \@tempcntb\count@ \advance\@tempcntb\m@ne \@tempdima#3\p@ \@tempdimb#4\p@ \dimen@\@tempdimb \advance\dimen@-\@tempdima \ifdim\dimen@>360\p@ \@tempdimb\@tempdima \advance\@tempdimb 360\p@ \fi \@whilenum\@tempcnta<\count@\do{% \dimen@\@tempdimb \advance\dimen@-\@tempdima \divide\dimen@\count@ \multiply\dimen@\@tempcnta \advance\dimen@\@tempdima \edef\@tempa{% \noexpand\CalculateSin{\strip@pt\dimen@}% \noexpand\CalculateCos{\strip@pt\dimen@}% \dimen@#2\p@ \dimen@ii\noexpand\UseSin{\strip@pt\dimen@}\dimen@ \dimen@\noexpand\UseCos{\strip@pt\dimen@}\dimen@}% \@tempa \edef\@tempa{\noexpand\put(\strip@pt\dimen@,\strip@pt\dimen@ii)}% \@tempa{\unitlength\p@\circle*{1}}% \advance\@tempcnta\@ne}} \makeatother \begin{document} \begin{picture}(100,100) \put(30,30){\dottedarc{30}{0}{90}} \put(60,30){\dottedarc[10]{30}{30}{150}} \put(60,60){\dottedarc[50]{60}{150}{300}} \end{picture} \end{document} まあ,pstricks あたりを用いる方法については, ``LaTeX グラフィックスコンパニオン'' あたりを参照してください.

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)