Contents ...
udn網路城邦
TiKz 座標,運算
2015/04/02 21:07
瀏覽1,469
迴響0
推薦0
引用0

一個圖形從點開始,然後線,面到發展出各種圖案。所以先從回到原點,如何在TiKz表示點,可以用:

\coordinate (A) at (1,2);

上面是定義(A)的坐標值,如果沒寫長度單位,那就是公分;也可以寫(1in,20pt),小括號A表示一個坐標。如果要到這個點,可以:

\draw (0,0)--(A);

就等同於\draw (0,0)--(1,2);的意思。

座標值,除了直接寫入外,也可以這樣寫:

\coordinate (B) at (30:1cm);

意思是角度30度,長度1公分的向量的座標值。

\coordinate (C) at (1,{sqrt(3)});

座標內的數值用函數的來算,這些基本運算,除了+, -, *, /, ^,<,==,>以外,提供的函數有mod, max, min, abs, round, floor, ceil, exp, ln, pow, sqrt, veclen, pi, r, rad, deg, sin, cos, tan, sec, cosec, cot, asin, acos, atan,rnd, rand等等。

例如要畫正6邊形中心點在(0,0)的第一點如在0度角,則第四個點D,可以用下例來算出:

\coordinate (D) at (360/6 *3:1);

如果要更方便運算坐標值,可以用tikz的calc library,方便運算座標。使用的方式,就是在文件的前置區,在\usepackage{tikz}後面:

\usetikzlibrary{calc}

calc支援了對座標值直接的加減和乘上系數的運算,在小號內的雙$$中間,來運算,例如二點的中點:

\coordinate (D) at ($(A)!.5!(B)$);

B繞A旋轉30度的座標:

\coordinate(E) at ($(A)!1!30:(B)$); 第一個值是長度比例值,第二值是角度值。

如果A B C 不共線,算出C在 AB線段上的投影座標:

\coordinate (D) at ($(A)!(C)!(B)$);

我們可以在座標A附近(左邊)做一個數學字體的A標示:

\coordinate [label=left:{$A$}] (A) at (1,0);

有個指令和\coordiante很類似,但含義不同,\node。

\node 是帶有座標的物體,該物體可能是形狀或文字⋯

\node (A) at (1,0){};

(A)就是一個在(1,0)的一個無形的物體,它可以由很多參數操作,做出很多的效果。如果要畫出來:

\node [draw] (A) at (1,0){}; 

就會在(1,0)的地方畫出一個正方框。\node的其他用法,另文再說明。

最後,就用本文的內容,畫出一個任意線段AB的正三角形:

\documentclass{ctexart}

\usepackage{tikz}

\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}
\coordinate [label=left:{$A$}] (A) at (1+0.1*rand,.5+0.1*rand);
\coordinate [label=right:{$B$}] (B) at (3+0.1*rand, 2+0.1*rand);
\coordinate [label=above:{$C$}] (C) at ($(A)!.5!(B)!{sqrt(3)}!90:(B)$);
\draw[red, ultra thick] (A)--(B)--(C)--cycle;
\end{tikzpicture}
\end{document}

全站分類:知識學習 科學百科
自訂分類:LaTex 排版環境
上一則: TiKz 的 node 之略觀
下一則: TiKz 線條控制

限會員,要發表迴響,請先登入