SSブログ
前の30件 | -

3つの頂点からの距離が3,4,5となる点がある正三角形の面積の話 中身 [Math]

さて、昨日某所のurlを貼り付けたお話です。

正三角形の面積を求める問題なんですが,
3つの頂点から距離がちょうど3,4,5となるような点が存在するような
正三角形の面積という話です。

見てもらったほうが早いので,次が件のpdfからの切り取りです。

345in.jpg


これが,正三角形の内部にある場合の図付きの問題。

そして

345out.jpg


こちらは,正三角形の外部にその点がある場合の図付きの問題。

最初の問題はずっと以前から知っていて,なかなか面白いので,
機会があれば紹介してきた問題です。
で,先日まで外側にあったらどうなるかってのを
「そんなんどうせ同じやろ」と高をくくっていたのですが
・・・・

実際解こうとしてあれあれ?っと困っていたわけです。
まぁ結局「同じ」やったんですけど。

それでもやっぱり面白かったし綺麗だったのでまとめててみた次第。

考えてみてくださいね。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

3つの頂点からの距離が3,4,5となる点がある正三角形の面積の話 [Math]

http://cdn7.atwikiimg.com/moonlight/?plugin=ref&serial=26
とりあえずpdfファイルのurlを貼っておきましょう。
画像や中身の紹介は気が向いたらね。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

エッシャー風 [Math]

tikz/pgfはお休み。
今回は使い慣れてきたMetaPostで
所謂エッシャーのSquare Limitを

Escher01e.png


こんなんです。
エッシャーのオリジナルを知っている人は
何か違うよねって思うでしょう。
いや、それ以前に Square ちゃうし!!とも。

何か取り敢えず鳥さんの下に二匹の鳥さんで
再帰掛けたらこうなっちゃったわけで
これはこれで面白いかという出来上がりです。

MetaPostでは,pictureというデータ形式があり
まずpathで鳥形の枠の一辺を作って
それを回転させたりひっくり返したりして繋げて cycle にして
用意します。外枠ですね。

で,今度はその外枠を picture にして
そこに新しく path を描き加える!! addto というコマンドです。
これを今回metapostのマニュアルを眺めて使ってみました。
楽チン楽チン。嘴や胴と羽を分ける線など簡単に追加。

で、外枠に色を埋めてそこにpictureで細かい線加えて
そいつをまたpictureにする。
色を埋める部分で三色替えて向き違いを入れて6枚のタイルを用意します。

で後はくるくる回しながら並べるだけ
ちなみにまわしながら小さくするのは zscled (x,y)
複素平面で複素数を掛ける変換と同等なので
回転と拡大縮小が一度に簡単に出来るというわけです

詳しくはお訊ねくださいませ。
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

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

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

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) 
共通テーマ:学問

2009年の作品を一つ備忘録代わりに [TeX-metapost]

わりと上手に出来てるやんとか、今更思う。 poincareD02.jpg
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問

CodeIQ GemString問題のコード [いくらなんでも]

結城浩さんのCodeIQ「The Essence of Programming」

https://codeiq.jp/ace/yuki_hiroshi/

のGemString問題の解答用のrubyのコードです。

# abbbbcddddeefggg = [1,4,1,4,2,1,3] # eagcdfbe <== goal # ---------------------------------------------------------------- # ---------------------------------------------------------------- # allcomb([3,1,2],4) => [[3,1,0],[3,0,1],[2,1,1],[2,0,2],[1,1,2]] # 重複するものも含む素材個数リストstlから、計sum個の素材セットを選んで列挙する。 def allcomb(stl,sum) if sum<0 [] elsif stl.length<=1 if stl[0]<sum [] elsif sum==0 [[0]] else [[sum]] end else ans=[] l=stl.length-1 for i in (0..stl[0]) j=stl[0]-i sans=allcomb(stl[1..l],sum-j) if sans!=[] sans.each{|x| ans << [j]+x } else [] end end ans end end # ---------------------------------------------------------------- # fact(n)=n! 階乗 def fact(n) if n<=1 1 else n*fact(n-1) end end # ---------------------------------------------------------------- # allperm([2,1,2],5) => "aabcc"から5個以下を選んでの順列の総数を返す。 def allperm(stl,mxn) ans=0 for i in (0..mxn) allcomb(stl,i).each{|x| div=1 x.each{|m| div=div*fact(m) } ans=ans+fact(i)/div } end ans end # allperms([2,1,2]) => "aabcc"から部分順列の総数を返す。 def allperms(stl) maxl=0 stl.each{|x| maxl=maxl+x } allperm(stl,maxl) end # ---------------------------------------------------------------- # 素材から、素材集と素材個数リストを返す。 def pattlst(gems) p gems glst=[] gcnt=[] gems.each_char{|c| if !glst.include?(c) glst<<c gcnt<<gems.count(c) end } [glst,gcnt] end </pre> <pre> # ---------------------------------------------------------------- def gemsindex(gem,pat,gal) if gal.length<1 0 else cars=gal[0] cdrs=gal[1..-1] cidx=gem.index(cars) p [cars,cdrs,cidx] ans=0 if cidx>0 for i in (0..cidx-1) tmpat=pat.clone tmpat[i]=tmpat[i]-1 ans=ans+allperms(tmpat) end end ans=ans+1 pat[cidx]=pat[cidx]-1 ans+gemsindex(gem,pat,cdrs) end end # ---------------------------------------------------------------- # 走らせるとこ。サンプルと本題と # ---------------------------------------------------------------- gems='aaabcc' goal='caba' gpat=pattlst(gems) gemm=gpat[0] pats=gpat[1] p gemm,pats p gemsindex(gemm,pats,goal) # ---------------------------------------------------------------- gems='abbbbcddddeefggg' goal='eagcdfbe' gpat=pattlst(gems) gemm=gpat[0] pats=gpat[1] p gemm,pats p gemsindex(gemm,pats,goal) # 実行結果 # 〜------------------------------------ results 10:15:48 u "aaabcc" ["a", "b", "c"] [3, 1, 2] ["c", "aba", 2] ["a", "ba", 0] ["b", "a", 1] ["a", "", 0] 144 "abbbbcddddeefggg" ["a", "b", "c", "d", "e", "f", "g"] [1, 4, 1, 4, 2, 1, 3] ["e", "agcdfbe", 4] ["a", "gcdfbe", 0] ["g", "cdfbe", 6] ["c", "dfbe", 2] ["d", "fbe", 3] ["f", "be", 5] ["b", "e", 1] ["e", "", 4] 5578864439
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

よかった探しリース [いくらなんでも]

参加してみよう。

←左手 | よかった探しリース | 右手→

結城浩さんの「よかった探しリース」の企画です。
 というわけでさっそく今年の良かったこと。
 なんといっても
結城さんの御本に名前を載せて頂いたこと
でしょうか。
 ごく平凡な一般ピープルとして,世の中に沢山出回る(ってますよね?)本に 名前が載るなんてなかなかありませんのでちょっと嬉しい。
 もちろん普通に嬉しい事はたくさんあった一年でした。 宝物である三人のお嬢様の言動を筆頭に。
 できれば、そんな幸せを邪魔するような世の中にならない事を祈ってます。 今年は相当にキナ臭い事になってきましたからね。
この「あ・い・す・べ・き」国日本は。
いやほんと、脱出計画も真剣に考えんといかんか。
texshop_image.jpg

tikz/pgf覚書 再び [携帯から]

さて随分と更新が滞ってましたが, 相方のiMacのHDDが逝かれた結果のあれやこれやで 殆どゆっくりした作業ができなかったわけで。 で漸くというか満を持してというか復活です。 早速ですが texshop_image.png です。 どうだろう。 こんな調子で picture環境>metapostときた作図データが簡単に引き継げると良いなあ。
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) 
共通テーマ:学問

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 使用感などなど+コーツの問題 [携帯から]

tikzsamplesp01a.png tikzsamplesp01b.png tikzsamplesp01c.png tikzsamplesp01d.png                                                                                                         
いつもなら,図はMetaPost+MePoTeXで済ますところだけど,TikZ/PGFを使ってみた。 取り敢えずこの手の図なら楽チンだ。 次はラベルとかとにかく文字を入れる事を試してみよう、とは備忘録。
nice!(0)  コメント(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) 
共通テーマ:学問

MathJaxをもう少し [TeX-metapost]

複素数っていうのは,実数$a,\ b$があって,$i^2=-1$を満たす虚数単位$i$に対して \[ z=a+bi \] で定義される数。 演算は$ z=a+bi,\ w=c+di $に対して,加法と乗法は \[ \times \] \[ z+w=(a+c)+(b+d)i ,\ z \times w=(ac-bd)+(ad+bc)i \] となるので, \[ z+0=0+z=z,\ \ z\times 0=0\times z=0 \] \[ z\times 1=1\times z=z \] が成り立ち, \[ z+(-z)=(-z)+z=0 \] \[ z\ne 0のとき,\ z\times\frac{1}{z}=\frac{1}{z}\times z=1 \] も成り立ち,複素数体$\mathbb{C}$が定義されます。 特に乗法の逆元$z^{-1}$については, \[ z^{-1}=\frac{1}{z}=\frac{1}{a+bi}=\frac{a-bi}{a^2+b^2} \] ここで,複素数$z$の大きさを$|z|=\sqrt{a^2+b^2}$, $z$の共役複素数$\overline{z}$を$\overline{z}=a-bi$と定義しておけば, \[ z^{-1}=\frac{\overline{z}}{|z|^2} \] となります。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

MathJaxのつづき [TeX-metapost]

$\pi^{\pi}$ とか \[ \int_0^2\left(x+\frac{1}{x}\right)^2dx= \] とか どうなん?
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

MathJaxって素晴らしい [TeX-metapost]

Webで数式をTeX処理込みで表示できるMathJaxというのの導入を試みた。 \[1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\ddots}}}}}}\] 詳しくは黒木さんのところを覗いてもらう事としよう。 黒木さんところでは ライブドアのブログだと楽々とか書いてあったので そっか思って昨夜登録して細工して使ってみた。 とても上手くいった。 驚いた。 であまりの手軽さにもしかしてと放置してあったこちらでも試してみた。 見よう見まねで設定のデザインのHTMLテンプレートでhead部分に 所定の呪文を入れてみると。 凄い凄い。 ちょっと時間掛かるけどね。 いやびっくり。 使ってみよ。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

\[\pi\] [TeX-metapost]

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

MetaPostとLaTeXでMaze造ってみる [携帯から]

これははるか遠い昔まだ中学生や高校生だった頃,手書きでコツコツ造っていた迷路の 自動作成版です。 MetaPostのようなプログラミング可能な作図ソフトがあれば可能だよなって 思っていながらなかなか実行できませんでしたが 確か一昨年に完成!サイズも自由自在。路の太さも縦横の本数もね。 で,すっかり紹介するのを忘れていたのでどうぞ。 スナップショット 2010-06-12 22-53-57.jpg
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:学問
前の30件 | -

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