発言者: 田中徹
発言日: 2009 11/19 00:15
発言元: p4b4a6c.nigtnt01.ap.so-net.ne.jp
> 下のような図をかくにはどうすればいいでしょうか。
> とりあえず無理やりかいてはみたのですが,もう少しエレガントなかきかたがあれば教えて下さい。
お示しのソースでは道幅の変更時に大変そうなので
エレガントかどうかはおいていただき、道幅の変更に対応したつもりです。
下の12種類のパーツをいくつか作って並べてみました。
4隅 LT,RT,LB,RB
4辺 L,B,R,T
中央 O,NE,SE,X
# 相対計算で \kandk や \Taisyouten を久しぶりに使用しました。
# \Mulvec はいろいろな面で使い勝手がよいですね。
%---------------------------------------------------------------------------
\documentclass[b4j]{jarticle}
\usepackage[notMy]{emathP}
%%%%% 道幅等の比 %%%%%%%%%%%%%%%%%%%%%%
\def\Width{0.2}%
\def\Zoom{0.85}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% パラメータから計算 %%%%%%%%%%%%%%
\Sub{1}\Width\Len%
\Mul\Len\Zoom\Hen%
%%%%% 四隅のパーツ %%%%%%%%%%%%%%%%%%%%
\def\PartsLB{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RT\P%
\Suisen\P\XMIN\XMAX\Px%
\Suisen\P\YMIN\YMAX\Py%
\Drawlines{\Px\P\Py}%
\end{zahyou*}%
}%
\def\PartsLT{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RB\P%
\Suisen\P\XMIN\XMAX\Px%
\Suisen\P\YMIN\YMAX\Py%
\Drawlines{\Px\P\Py}%
\end{zahyou*}%
}%
\def\PartsRB{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\LT\P%
\Suisen\P\XMIN\XMAX\Px%
\Suisen\P\YMIN\YMAX\Py%
\Drawlines{\Px\P\Py}%
\end{zahyou*}%
}%
\def\PartsRT{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\LB\P%
\Suisen\P\XMIN\XMAX\Px%
\Suisen\P\YMIN\YMAX\Py%
\Drawlines{\Px\P\Py}%
\end{zahyou*}%
}%
%%%%% 四辺のパーツ %%%%%%%%%%%%%%%%%%%%
\def\PartsB{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RT\P%
\Suisen\P\XMIN\XMAX\Px%
\Mulvec\Len\LT\Q%
\Suisen\Q\XMIN\XMAX\Qx%
\Drawlines{\Px\P\Q\Qx}%
\end{zahyou*}%
}%
\def\PartsT{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RB\P%
\Suisen\P\XMIN\XMAX\Px%
\Mulvec\Len\LB\Q%
\Suisen\Q\XMIN\XMAX\Qx%
\Drawlines{\Px\P\Q\Qx}%
\end{zahyou*}%
}%
\def\PartsR{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\LT\P%
\Suisen\P\YMIN\YMAX\Py%
\Mulvec\Len\LB\Q%
\Suisen\Q\YMIN\YMAX\Qy%
\Drawlines{\Py\P\Q\Qy}%
\end{zahyou*}%
}%
\def\PartsL{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RT\P%
\Suisen\P\YMIN\YMAX\Py%
\Mulvec\Len\RB\Q%
\Suisen\Q\YMIN\YMAX\Qy%
\Drawlines{\Py\P\Q\Qy}%
\end{zahyou*}%
}%
%%%%% 中央のパーツ %%%%%%%%%%%%%%%%%%%%
\def\PartsO{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RB\P%
\Mulvec\Len\LT\Q%
\Taisyouten\P\XMIN\XMAX\PP%
\Taisyouten\Q\XMIN\XMAX\QQ%
\Takakkei{\P\PP\Q\QQ}%
\end{zahyou*}%
}%
\def\PartsNE{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RB\P%
\Subvec\P{(\Hen,0)}\Px%
\Addvec\P{(0,\Hen)}\Py%
\Takakkei{\Px\P\Py}%
\Mulvec\Len\LT\Q%
\Addvec\Q{(\Hen,0)}\Qx%
\Subvec\Q{(0,\Hen)}\Qy%
\Takakkei{\Qx\Q\Qy}%
\end{zahyou*}%
}%
\def\PartsSE{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RT\P%
\Subvec\P{(\Hen,0)}\Px%
\Subvec\P{(0,\Hen)}\Py%
\Takakkei{\Px\P\Py}%
\Mulvec\Len\LB\Q%
\Addvec\Q{(\Hen,0)}\Qx%
\Addvec\Q{(0,\Hen)}\Qy%
\Takakkei{\Qx\Q\Qy}%
\end{zahyou*}%
}%
\def\PartsX{%
\begin{zahyou*}(-0.5,0.5)(-0.5,0.5)%
\Mulvec\Len\RB\P%
\Subvec\P{(\Hen,0)}\Px%
\Addvec\P{(0,\Hen)}\Py%
\Mulvec\Len\LT\Q%
\Addvec\Q{(\Hen,0)}\Qx%
\Subvec\Q{(0,\Hen)}\Qy%
\Taisyouten\Px\YMIN\YMAX\Pxx%
\Taisyouten\Qx\YMIN\YMAX\Qxx%
\Taisyouten\Py\XMIN\XMAX\Pyy%
\Taisyouten\Qy\XMIN\XMAX\Qyy%
\kandk\Px{45}\Pxx{135}\Pxxx%
\kandk\Py{45}\Pyy{135}\Pyyy%
\kandk\Qx{45}\Qxx{135}\Qxxx%
\kandk\Qy{45}\Qyy{135}\Qyyy%
\Takakkei{\Px\Pxx\Pxxx}%
\Takakkei{\Py\Pyy\Pyyy}%
\Takakkei{\Qx\Qxx\Qxxx}%
\Takakkei{\Qy\Qyy\Qyyy}%
\end{zahyou*}%
}%
\begin{document}
\begin{zahyou*}[ul=10mm](0,6)(0,6)%
\zahyouMemori[g][n]%
\Put{(0,0)}{\PartsLB}%
\Put{(1,0)}{\PartsB}%
\Put{(2,0)}{\PartsB}%
\Put{(3,0)}{\PartsB}%
\Put{(4,0)}{\PartsB}%
\Put{(5,0)}{\PartsRB}%
\Put{(0,1)}{\PartsL}%
\Put{(1,1)}{\PartsO}%
\Put{(2,1)}{\PartsNE}%
\Put{(3,1)}{\PartsX}%
\Put{(4,1)}{\PartsSE}%
\Put{(5,1)}{\PartsR}%
\Put{(0,2)}{\PartsL}%
\Put{(1,2)}{\PartsNE}%
\Put{(2,2)}{\PartsX}%
\Put{(3,2)}{\PartsX}%
\Put{(4,2)}{\PartsNE}%
\Put{(5,2)}{\PartsR}%
\Put{(0,3)}{\PartsL}%
\Put{(1,3)}{\PartsX}%
\Put{(2,3)}{\PartsX}%
\Put{(3,3)}{\PartsNE}%
\Put{(4,3)}{\PartsX}%
\Put{(5,3)}{\PartsR}%
\Put{(5,3)}{\PartsR}%
\Put{(0,4)}{\PartsL}%
\Put{(1,4)}{\PartsSE}%
\Put{(2,4)}{\PartsNE}%
\Put{(3,4)}{\PartsX}%
\Put{(4,4)}{\PartsX}%
\Put{(5,4)}{\PartsR}%
\Put{(0,5)}{\PartsLT}%
\Put{(1,5)}{\PartsT}%
\Put{(2,5)}{\PartsT}%
\Put{(3,5)}{\PartsT}%
\Put{(4,5)}{\PartsT}%
\Put{(5,5)}{\PartsRT}%
\end{zahyou*}%
\end{document}
▼関連発言
│
└◆8438:交わる図形の交わったところをかかない [tanak] 11/18 20:52
├◆8440:--- [---] 11/19 00:11
└◆8441:Re:交わる図形の交わったところをかかない [田中徹] 11/19 00:15
└◆8442:Re[2]:交わる図形の交わったところをかかない [tanak] 11/19 05:35
└◆8443:Re[3]:交わる図形の交わったところをかかない [石原 守] 11/19 07:48
├◆8444:Re[4]:交わる図形の交わったところをかかない [tanak] 11/19 13:35
└◆8447:Re[4]:交わる図形の交わったところをかかない [田中徹] 11/19 22:27<-last