[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}
结果如下:
作者:rumswell 发表于2013-3-29 11:41:29 原文链接
阅读:39 评论:0 查看评论