SSブログ

Tikz/Pgf のラッパー(2) [TikZ/PGF]

TPMT02a.png
さてさて,Tikz/Pgfのラッパーはまぁ着々と進んでいるわけですが, 一方で色々気になる事もあり, 今日はCarpets Theoremがサンプルです。 絨毯定理。知ってますか? って中身は知っていても,名前はねえ。 初耳?でしたよ。ふむふむ。
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

TikZ/PGF 覚書(10) 手書き風描画繰返模様 [TikZ/PGF]

texshop_image.png 一週間を空けて?の投稿。 なかなか落ち着いてコード書けないな。 やっぱり今年の二月三月は特別だったなあ。 さて、TikZ/PGFの問題点が次々と明らかになります。 パスを組み合わせる事がよく判らない。 できるのだろうか。 例えば,両端が開いたパスを3つ用意して, 三角に組み合わせて閉じたパスを作りたい。 それぞれのパスは例えば (0,0)から(1,0)へ向けて定義して, そのパスをrotateしたり,逆順にしたり,shiftしたりして繋げて, 閉じたPathを作りたい。 なんかできそうになりので不細工なコードに。
\begin{tikzpicture}[scale=2,pencildraw/.style={decorate,decoration={random steps,segment length=4pt,amplitude=0.6pt}}] % Unit Tile Drawing \def\drawBox[#1](#2){ \begin{scope}[line width=2 pt]%,nearly transparent,cap=round] \pgfmathsetmacro{\sixh}{sin(60)} \draw [pencildraw,fill=#2,rotate=#1*60] (0,0) to[out=20,in=220] (1,0) to[out=135,in=315] (1/2,\sixh) to[out=280,in=110] (0,0); \fill [fill=white,rotate=#1*60] (0.7,0.2) circle (3pt); \fill [fill=white,rotate=#1*60] (0.6,0.5) circle (3pt); \draw [pencildraw,rotate=#1*60] (0.7,0.2) circle (3pt); \draw [pencildraw,rotate=#1*60] (0.6,0.5) circle (3pt); % \fill [pencildraw,fill=black] (-0.25,0.3) circle (1pt); \end{scope} } % Repeat Tiling \foreach \x in {-2,...,2}{\foreach \y in {-1,...,2}{ \pgfmathsetmacro{\xd}{3/2*\x}; \pgfmathsetmacro{\yd}{(2*\y+mod(abs(\x),2))*sin(60)}; \begin{scope}[shift={(\xd,\yd)}] \foreach \i in {0,...,5}{ \drawBox[\i](orange);} \end{scope}}} \end{tikzpicture}

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Tikz/PGF 覚書(9) [TikZ/PGF]

一週間のご無沙汰で、自身がすっかりもう忘れてる。 それでも懲りずに習作を。
コードは
\begin{tikzpicture}[scale=2,pencildraw/.style={decorate,decoration={random steps,segment length=4pt,amplitude=0.6pt}}] % Unit Tile Drawing \def\drawBox[#1](#2){ \begin{scope}[line width=2 pt]%,nearly transparent,cap=round] % \draw [pencildraw,fill=#2,xscale=#1] (-0.5,-0.5)--(-0.2,-0.3)--(0.5,-0.5)--(0.4,0.1)--(0.5,0.5)--(-0.2,0.7)--(-0.5,0.5)--(-0.6,0.1)--cycle; \draw [pencildraw,fill=#2,yscale=#1] (0,0.6)--(-0.4,0.5)--(-0.6,0)--(-0.4,-0.5)--(0,-0.4)--(0.4,-0.5)--(0.6,0)--(0.4,0.5)--cycle; \fill [fill=white,yscale=#1] (0.2,0.3) circle (3pt); \fill [fill=white,yscale=#1] (-0.2,0.3) circle (3pt); \draw [pencildraw,yscale=#1] (0.2,0.3) circle (3pt); \draw [pencildraw,yscale=#1] (-0.2,0.3) circle (3pt); % \fill [pencildraw,fill=black] (-0.25,0.3) circle (1pt); \end{scope} } % Repeat Tiling \foreach \x in {-3,...,3}{\foreach \y in {-2,...,2}{ \pgfmathsetmacro{\yd}{\y+mod(abs(\x),2)/2}; \begin{scope}[shift={(\x,\yd)}] \pgfmathsetmacro{\fc}{1-2*mod(abs(\x),2)}; \drawBox[\fc](orange) \end{scope}}} \end{tikzpicture}
texshop_image.png
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Tikz/PGF 覚書(8) [TikZ/PGF]

texshop_image 2.png
\begin{tikzpicture}[scale=2,pencildraw/.style={decorate,decoration={random steps,segment length=4pt,amplitude=0.6pt}}] % Unit Tile Drawing \def\drawBox[#1](#2){ \begin{scope}[line width=2 pt]%,nearly transparent,cap=round] \draw [pencildraw,fill=#2,xscale=#1] (-1,0)--(-0.3,-0.3)--(0,-1)--(0.3,-0.3)--(1,0)--(0.7,0.7)--(0,1)--(-0.7,0.7)--cycle; \fill [fill=white,xscale=#1] (0.2,0.7) circle (3pt); \fill [fill=white,xscale=#1] (-0.2,0.7) circle (3pt); \draw [pencildraw,xscale=#1] (0.2,0.7) circle (3pt); \draw [pencildraw,xscale=#1] (-0.2,0.7) circle (3pt); \end{scope} } % Repeat Tiling \foreach \x in {-3,...,3}{\foreach \y in {-1,...,2}{ \pgfmathsetmacro{\yd}{2*\y+mod(abs(\x),2)}; \begin{scope}[shift={(\x,\yd)}] \pgfmathsetmacro{\fc}{1-2*mod(abs(\x+\y),2)}; \drawBox[\fc](orange) \end{scope}}} \end{tikzpicture}

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Tikz/PGF 覚書(7) 手描き風描画繰返模様 その2 [TikZ/PGF]

texshop_image.png
昨日に引き続き繰返し文様の練習。 今回のソースはスコープを使いました。 スコープというのは,どうも「共通する仕様を一定の範囲で指定する」というような 仕様で,明示的に\begin{scope}[仕様...]...\end{scope}と書く形と, \begin{tikzpicture}[共通する仕様...]とする形があり, このソースのように併用して使えるようです。 TikZ/PGFのマニュアルが分厚い理由も,このスコープのように 同じ事を色々な形で実現できるからかもしれません。 描いた模様は繰り返しの基本的なものです。
\begin{tikzpicture}[scale=2,pencildraw/.style={decorate,decoration={random steps,segment length=4pt,amplitude=0.6pt}}] \def\drawBox[#1](#2){ \begin{scope}[line width=2 pt]%,nearly transparent,cap=round] \draw [pencildraw,fill=#2,xscale=#1] (-0.5,-0.5)--(-0.2,-0.3)--(0.5,-0.5)--(0.5,0.5)--(0.2,0.7)--(-0.5,0.5)--cycle; \fill [fill=white,xscale=#1] (-0.2,0.3) circle (3pt); \draw [pencildraw,xscale=#1] (-0.2,0.3) circle (3pt); \end{scope} } \foreach \x in {-3,...,3}{\foreach \y in {-3,...,3}{ \begin{scope}[shift={(\x,\y)}] \pgfmathsetmacro{\fc}{1-2*mod(abs(\x+\y),2)}; \drawBox[\fc](orange) \end{scope}}} \end{tikzpicture}

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

TikZ/PGF 覚書(6) 手書き風描画繰返模様 [TikZ/PGF]

tikzsample14.png 新年度のバタバタで暫し空きましたが再開。 今回はEscher風の繰り返し模様にチャレンジです。 繰り返しなのですが手書き風なので, よく見れば,一回一回の線の様子が違います。 それでも塗りが均質なので, あまり手描きには見えませんが。 肝心なソースのメイン部分は
\begin{tikzpicture}[scale=2,pencildraw/.style={decorate,decoration={random steps,segment length=3pt,amplitude=0.6pt}}] \foreach \x in {-3,...,3}{\foreach \y in {-3,...,3}{ \coordinate (strtpnt) at (\x,\y); \pgfmathsetmacro{\redc}{abs(\x+\y)/6}; \pgfmathsetmacro{\grec}{1-\redc/2}; \xdefinecolor{MyColor}{rgb}{\redc, \grec, 0.1}; \draw [pencildraw,fill=MyColor,line width=2 pt,nearly opaque,cap=rect] (strtpnt)--% ++(0.2,-0.1)--++(0.8,0.1)--++(-0.1,0.5)--++(0.1,0.5)--++(-0.8,-0.1)--++(-0.2,0.1)--++(-0.1,-0.5)--cycle coordinate (strtpnt); }} \end{tikzpicture}
です。 スコープを使う手もあると思うのですが それは後日試してみる事に。 ではでは。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

TikZ/PGF 覚書(5) 手書き風の装飾と,coordinateのシステムと乱数と透過 [TikZ/PGF]

tikzsample13.png
非常に短いが 色々判るかも。
\begin{tikzpicture}[scale=1,pencildraw/.style={decorate,decoration={random steps,segment length=3pt,amplitude=0.6pt}}] \def\maxm{25}% \coordinate (strtpnt) at (0,0); \xdefinecolor{MyColor}{rgb}{1, 0.3, 0} \foreach \i in {0,...,\maxm}{ \pgfmathsetmacro{\rr}{random(8)*45} \pgfmathsetmacro{\rl}{random(2)+1} \draw [pencildraw,line width=20 pt,MyColor,nearly opaque,cap=rect] (strtpnt)--++(\rr:\rl) coordinate (strtpnt); } \draw [pencildraw,line width=20 pt,MyColor,nearly opaque,cap=rect] (strtpnt)--(0,0) coordinate (strtpnt); \end{tikzpicture}

nice!(2)  コメント(0)  トラックバック(0) 
共通テーマ:学問

ちょっとお休みしてましたが再開ですだよ。 TikZ/PGF [TikZ/PGF]

tikzsample12.png

今回は、透過と繰り返し。 配列をどう使うのかはまだ判らないけど 確かに面白いしよくできている。 scopeで描き方やmetapostでいうshiftなんかが統一(支配)できるから こんな図もそこそこ簡単なコードで描けるよ。 tikzsample12a.png
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Tikz/PGF 覚書(4) Venn図と透過 [TikZ/PGF]

昨日は?お休み。 今日は透過でベン図。 こういう重ね合わせ?透過が簡単にできるのは TikZ/PGFの魅力かも。
Venns.png
目下のところ,配列が使えるかどうか,探っていますが どうもそれは無いみたい。なぜだろう。
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Tikz/PGF 覚書(3) [TikZ/PGF]

tikzsample08.png
昨日迄の分は直線や矩形だったので, 今日は円弧の確認。
\pgfmathsetmacro{\rr}{random(\tmpr-1)+1} \pgfmathsetmacro{\stragl}{random(90)*6-90} \pgfmathsetmacro{\golagl}{\stragl+random(20)*6} \draw [line width=\pensize pt,MyColor,semitransparent,cap=round] (\stragl:\rr) arc [start angle = \stragl, end angle = \golagl, radius = \rr];
というソースです。 半径と描き始めの角度,書き終わりの角度を乱数で決めて 前回同様透過で描き重ねています。
半径方向の直線も引いていますがそれはまあどうでも良いでしょう。
円弧はdrawの後にarc指定。
\draw (始点) arc [start angle = 始点の角度, end angle = 終点の角度, radius = 半径];
が基本らしい。
それから$(\theta :r)$ とすると極座標(円座標)形式の座標も使えるとか。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

TikZ/PGF 覚書(2) [TikZ/PGF]

tikzsample06b.png
さて,昨日に引き続いて Tikz/PGF の練習と確認。
昨日のと同じように見えますが,
今日の分は透過と丸めを仕込んであります。
\draw[fill=MyColor,MyColor,semitransparent,rounded corners=5pt] (\xr,\yr) rectangle ++(1,\yl);
の部分です。 所謂、長方形(rectangle)という用意されている形(Path)を描く(\draw)のですが, このとき描く際のオプションを[ ]の中に指定できるわけです。 中を色で塗りつぶしなさい(fill=色)とか, 縁(つまり描く形の線)の色(色を直接書くだけ)とか, 今回はそれに半透明?透過(semitransparent)で, 形を描くときの角は,半径つけて丸めて(rounded corners=半径)とか, 付けてみました。
で、もう少し整えてみたのがこれ。
tikzsample06c.png
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

tikz/pgf 覚え書き [TikZ/PGF]

取り敢えず,細かい図版が描けそうな tikz/pgf を使ってみる事に下ので 少々覚え書きを。
tikzsample06a.png

この図は勿論LaTeX文書でtikz/pgfを利用して描いたものです。 環境は MacOSX MountainLion TexLive で TeXShop 使用。
LaTeX文書の冒頭(プリアンブル?)部分は次の通り。
\documentclass[11pt]{jreport}
\usepackage[dvipdfm]{graphicx}
\usepackage{amsmath,amssymb}
\usepackage[a4paper,margin=10mm]{geometry}
\usepackage{pgf,pgfcore}
\usepackage{tikz}
\usetikzlibrary{mindmap,trees,shapes}
\usetikzlibrary{calc,fadings,decorations.pathreplacing}
\usetikzlibrary{lindenmayersystems}
\usetikzlibrary[shadings]
\usetikzlibrary{patterns}
\usepackage{tkz-graph}
\usetikzlibrary{calc,3d}
%\usepackage{pgfplots}
\usepackage{okumacro,ascmac,enumitem,multicol}
そして肝心なtikz/pgf部分は、
\begin{document}%-------
\begin{tikzpicture}[scale=0.3]
\foreach \i in {0,...,2000}{
\pgfmathsetmacro{\redc}{1-rnd*rnd*rnd}
\pgfmathsetmacro{\greenc}{1-rnd*rnd}
\pgfmathsetmacro{\bluec}{1-rnd}
\pgfmathsetmacro{\xr}{random(30)}
\pgfmathsetmacro{\yr}{random(50)}
\pgfmathsetmacro{\xl}{random(5)+1}
\pgfmathsetmacro{\yl}{random(5)+1}
\xdefinecolor{MyColor}{rgb}{\redc, \greenc, \bluec}
\pgfmathparse{random(2)}
\ifnum\pgfmathresult>1
\draw[fill=MyColor,MyColor] (\xr,\yr) rectangle ++(\xl,1);
\else
\draw[fill=MyColor,MyColor] (\xr,\yr) rectangle ++(1,\yl);
\fi
\clip (0,0) rectangle (30,50);
}
\end{tikzpicture}
\end{document}
何分久し振りのHomePage更新で,色々思い出すのに手間取って遅くなったので, TeX,LaTeX,tikz,pgf関連のコマンドやマクロの説明はまた後ほど。
ただまあ,少しは参考になるかなあ?と思う。
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

TikZ/PGF 触ってみて解って来た事 [TikZ/PGF]

#metapost はMePoTeXのようなスタイルファイル群を使って旧来のPostScript系のソースを直接TeX文書内に書き込んで画像を持ち込む事ができる。繰り返しや条件分岐もそれなりに出来るので、重宝して来た。 #tikz / #pgf も同様に用意されているパッケージとtikz用の様々なパッケージ群を読み込む事で、複雑な図表、例えばグラフ理論のグラフ、初等幾何を更に精細に簡単に #TeX 文書に持ち込む事が出来る。 その際の数値計算は #pgf が担っているようで、例えば乱数なんかは、 #pgf の関数を #tikz で読めるように #TeX のマクロとしてその都度定義して用いると使える事はググって確認した。 tikzsample06.png また、条件分岐は何故か #TeX のコマンドを用いるような解説しかない。 #tikz や #pgf には無いのだろうか?よく解らない。 よく云えば、tikz/pgf はTeXのマクロに近いわけだ。画像と計算処理は任せてくれって事か。 ともかくマニュアルは膨大でよく解らないぞと云う事らしい。まだまだ制作途中なのかも。 問題は、 #Asymptote を含めて、来れから何を使うかだ。基本MetaPostで十分な部分も多いが、計算の精度や、TeXとのデータの遣り取りという点では、少々面倒だ。どうする?
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

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