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

[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}

结果如下:


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值