您的位置:首页 > 其它

[Latex]PGF and Tikz 中如何定位线段中的任意点位置

2013-03-29 11:41 489 查看
[Latex]PGF and Tikz 中如何定位线段(或路径,或直线)中的任意点位置?

可以使用如下语法:

第1种 因子定位:
<a>!<factor>!<angle>:<b>
首先考虑一条由<a>到<b>的线段,
然后绕点<a>以<angle>角度旋转线段.
此时取旋转线段中位置为<factor>的点.
factor=0.5表示线段中点,
factor=0表示起点,
factor=1表示终点,
如果这条线段没有旋转,则可省略<angle>参数

第2种 距离定位:
<coordinate1>!<dimension>!<angle>:<coordinate2>
首先考虑一条由<coordinate1>到<coordinate2>的线段,
然后绕点<coordinate1>以<angle>角度旋转线段.
此时取旋转线段中位置距离coordinate1为<dimension>的点.
如果这条线段没有旋转,则可省略<angle>参数


下面演示将一个线段绕一个端点旋转10度,然后标注线段的中点位置:

\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,3);
\coordinate (a) at (1,0);
\coordinate (b) at (3,2);
\draw[->] (a) -- (b);
\coordinate (c) at ($ (a)!1! 10:(b) $);
\draw[->,red] (a) -- (c);
\fill ($ (a)!.5! 10:(b) $) circle (2pt);
\end{tikzpicture}

结果如下:



下面的例子演示标注线段中不同点的位置(没有旋转线段):

\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,2);
\draw (1,0) -- (3,2);
\foreach \i in {0,0.2,0.5,0.9,1}
\node at ($(1,0)!\i!(3,2)$) {\i};
\end{tikzpicture}


结果如下:



再看下面的例子,使用循环生成尾迹点线:

\begin{tikzpicture}
\draw [help lines] (0,0) grid (4,4);
\foreach \i in {0,0.1,...,2}
\fill ($(2,2) !\i! \i*180:(3,2)$) circle (2pt);
\end{tikzpicture}

图像如下:



下面的例子采用距离定位点:

\begin{tikzpicture}
%辅助网格线
\draw [help lines] (0,0) grid (3,2);
%画线
\draw (1,0) -- (3,2);
%标注距离点(0,0)分别为0cm,1cm,15mm的点
\foreach \i in {0cm,1cm,15mm}
\node at ($(1,0)!\i!(3,2)$) {\i};
\end{tikzpicture}


结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: