So-net無料ブログ作成
検索選択

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 覚書(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 覚書(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 覚書(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 覚書(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) 
共通テーマ:学問
メッセージを送る

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。