TikZ 中与 ([offset=2]{A}B) 等价的是什么?

TikZ 中与 ([offset=2]{A}B) 等价的是什么?

根据给出的答案这里($(A)!1cm!(B)$)在 TikZ 中相当于([nodesep=1]{B}A)在 PSTricks 中。它只是关于由两个点指定的“径向”距离。那么由两个点指定的“横向”距离呢?

更准确地说,在 PSTricks 中,语法([offset=2]{A}B)表示一个新点(即C),它距离连接 和 的线 2 个单位AB并且BC垂直于AB

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}(6,6)
    \pstGeonode(1,1){A}(4,5){B}
    \pcline[nodesep=-1](A)(B)
    \pstGeonode([offset=2]{A}B){C}
    \psline[linecolor=blue](B)(C)
\end{pspicture}
\end{document}

在此处输入图片描述

这种语法在 TikZ 中的对应内容是什么?

各种各样的

([offset=2]{A}B)也可以写成([nodesep=2,angle=90]{A}B)。其他方法也是可行的,例如, 提供的转换pst-eucl

答案1

等效语法是,即从到线上距离 的($(B)!2cm!90:(A)$)点,在该线旋转 90 度之后。2cmBBA

\documentclass[tikz]{standalone}

\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}
\coordinate (A) at (1,1);
\coordinate (B) at (4,4);

\coordinate (C) at ($(B)!2cm!90:(A)$);
\node at (A) [above] {A};
\node at (B) [above] {B};
\node at (C) [above] {C};

\fill (A) circle [radius=2pt] (B) circle [radius=2pt] (C) circle [radius=2pt];
\end{tikzpicture}
\end{document}

答案2

使用tkz-euclide包,使用语法\tkzDefPointWith[orthogonal normed, K=2](B,A) \tkzGetPoint {C}定义一个CB 垂直于AB2厘米长度的点。

\documentclass{standalone} 

\usepackage{tikz,tkz-euclide}
\usetkzobj{all}
\begin{document}

\begin{tikzpicture}
  \tkzInit
 \tkzDefPoints{0/0/O, 5/5/K}
  \tkzDefPoints{1/1/A, 4/4/B}  
  \tkzDrawPoint[color=red](A)
  \tkzDrawPoint[color=red](B) 
  \tkzLabelPoints[above](A,B)
  \tkzDefPointWith[orthogonal normed, K=2](B,A) \tkzGetPoint {C}   
  \tkzDrawLine[color=blue,add=0 and 0](B,tkzPointResult)
 \tkzDrawSegment(O,K)
 \tkzMarkRightAngle(A,B,C)
   \tkzDrawPoint[color=red](C)
   \tkzLabelPoints[above](C)
\end{tikzpicture} 

\end{document}

在此处输入图片描述

相关内容