根据给出的答案这里,($(A)!1cm!(B)$)
在 TikZ 中相当于([nodesep=1]{B}A)
在 PSTricks 中。它只是关于由两个点指定的“径向”距离。那么由两个点指定的“横向”距离呢?
更准确地说,在 PSTricks 中,语法([offset=2]{A}B)
表示一个新点(即C
),它距离连接 和 的线 2 个单位A
,B
并且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 度之后。2cm
B
B
A
\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}
定义一个C
从B
垂直于AB
2厘米长度的点。
\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}