Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

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

$
0
0

[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 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>