SSブログ

tikz/pgf のラッパー [pgf/tikz]

TikzPgfMPMacroTest02.png


Tikz/Pgf を本格的に使う為には,
これまで picture環境MetaPost with MePoTeX
作ってきたものをなるたけスムーズに移行できた方が良い。

因にpicture環境での自作マクロをMetaPostに移すのは
とてもスムーズに運んだ。

で,Tikz/Pgfだ。

とりあえず少しは何とかなりそうな感じが見えてきた。

具体的にはこんな具合だ

% 角度表示用 ¥def¥kaku#1{#1^{¥circ}} % 描画環境 ¥begin{qbPMP}ごにょごにょ〜¥end{qbPMP} ¥def¥qbPMP[#1](#2,#3)(#4,#5){ ¥begin{tikzpicture}}% ¥def¥endqbPMP{¥end{tikzpicture}} ¥def¥qbPMPt[#1]{% ¥begin{tikzpicture}[scale=#1]}% ¥def¥endqbPMPt{¥end{tikzpicture}} % % 方眼 ¥def¥qbPlattice(#1,#2)(#3,#4){%(#1,#2)左下座標(#3,#4)幅高さ ¥draw [help lines] (#1,#2) grid (#3,#4);} % 点の定義 ¥def¥qbPointDef#1(#2,#3){¥coordinate (#1) at (#2,#3);} %¥def¥qbPointsDef#1(#2,#3)#4.{¥qbPointDef#1(#2,#3)¥ifx#4¥@empty¥else¥tracingmacros1¥qbPointsDef#4.¥fi}% ¥def¥qbPointsDef#1(#2,#3)#4.{¥qbPointDef#1(#2,#3)¥ifnot@nil#4¥qbPointsDef#4.}% % ¥ifnot@nil#1#2#1が¥@nilなら#2を読み捨て、¥@nilなら#2はそのまま({}は一段階はぎ取られる。) % 点のラベル ¥def¥qbGptlabel#1(#2){ ¥node [label={[label distance=-1mm]30*#2:${¥rm #1}$}] at (#1) {}; %¥path (#1) ++(1:30*#2) node {#2}; } ¥def¥qbGptlabels#1(#2)#3.{¥qbGptlabel#1(#2)¥ifnot@nil#3¥qbGptlabels#3.} % 線分を描く ¥def¥qbGline#1#2{¥draw (#1)--(#2);} ¥def¥qbGlineC[#1]#2#3{¥draw[#1](#2)--(#3);} ¥def¥qbGlines#1#2#3.{¥qbGline#1#2¥ifnot@nil#3¥qbGlines#2#3.}% ¥def¥qbGlineCs[#1]#2#3#4.{¥qbGlineC[#1]#2#3¥ifnot@nil#4¥qbGlineCs[#1]#3#4.}% % ¥ifnot@nil#1#2#1が¥@nilなら#2を読み捨て、¥@nilなら#2はそのまま({}は一段階はぎ取られる。) ¥def¥qbGlineB#1#2{¥draw [[ultra thick] (#1)--(#2);} ¥def¥qbGlineBC[#1]#2#3{¥draw[#1,ultra thick](#2)--(#3);} ¥def¥qbGlineBs#1#2#3.{¥qbGlineB#1#2¥ifnot@nil#3¥qbGlineBs#2#3.}% ¥def¥qbGlineBCs[#1]#2#3#4.{¥qbGlineBC[#1]#2#3¥ifnot@nil#4¥qbGlineBCs[#1]#3#4.}% % 円を描く ¥def¥qbGcircl#1#2{¥node [draw, circle through=(#2)] at (#1) {};} ¥def¥qbGcirclC[#1]#2#3{¥node [draw, color=#1, circle through=(#3)] at (#2) {};} ¥def¥qbGcirclB#1#2{¥node [draw, ultra thick, circle through=(#2)] at (#1) {};} ¥def¥qbGcirclBC[#1]#2#3{¥node [draw, ultra thick, color=#1, circle through=(#3)] at (#2) {};} % 点を黒丸で表示する ¥def¥qbGpoint#1{¥fill (#1) circle (1.6pt);} ¥def¥qbGpoints#1#2.{¥qbGpoint#1¥ifnot@nil#2¥qbGpoints#2.}% ¥def¥qbGpointb#1{¥fill (#1) circle (2pt);} ¥def¥qbGpointB#1{¥fill (#1) circle (3pt);} ¥def¥qbGpointo#1{¥tkzDrawPoints[color=black,fill=white,size=8](#1)} ¥def¥qbGpointO#1{¥tkzDrawPoints[color=black,fill=white,size=12](#1)} % 中点/分点を計算する ¥def¥qbGmidPoint#1#2#3{¥coordinate (#3) at ($(#1)!.5!(#2)$);} ¥def¥qbGdivPoint#1#2 #3:#4 #5{¥coordinate (#5) at ($(#1)!.(#3/(#3+#4))!(#2)$);} % 交点 ¥def¥qbGcrossPoint #1#2 #3#4 #5{¥tkzInterLL(#1,#2)(#3,#4)¥tkzGetPoint{#5}} % 垂線の足を求める ¥def¥qbGverticalPoint#1#2#3#4{¥coordinate (#4) at ($(#2)!(#1)!(#3)$);}%BからOAに下ろした垂線の足 % 角の二等分「点」 ¥def¥qbGhalfanglePoint#1#2#3 #4{% ¥coordinate (s) at ($(#1)!1cm!(#2)$);¥coordinate (t) at ($(#1)!1cm!(#3)$); ¥coordinate (u) at ($(s)!.5!(t)$);¥tkzInterLL(#1,u)(#2,#3)¥tkzGetPoint{#4}} % 点の回転 ¥def¥qbGrotPoint#1#2 #3 #4{¥coordinate (#4) at ($(#1)!1!#3:(#2)$);} % 垂直マーク ¥def¥qbGverticalMark#1#2#3{¥draw ($(#2)!8pt!(#1)$)--($(#2)!8pt!(#1)!8pt!90:(#2)$)--($(#2)!8pt!(#3)$);} % 角の表示 ¥def¥qbGangleMarkFC[#1,#2]#3#4#5{¥tkzMarkAngle[fill= #2,size=#1cm,opacity=.5](#5,#4,#3)} ¥def¥qbGangleMarkFCs([#1,#2]#3#4#5#6){¥qbGangleMarkFC[#1,#2]#3#4#5¥ifnot@nil#6¥qbGangleMarkFCs(#6)}% % 角度のラベル ¥def¥qbGangleLabel#1#2#3(#4){¥tkzLabelAngle[pos = 1](#1,#2,#3){$#4$}} ¥def¥qbGangleLabelp[#1]#2#3#4(#5){¥tkzLabelAngle[pos = #1](#2,#3,#4){$#5$}}
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。