使用包 tkz-euclide 绘制垂直线

使用包 tkz-euclide 绘制垂直线

如何从“P”到线段“AB”画一条垂直线?

图片

以下是代码:

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz,tkz-euclide,xcolor,graphicx}
\usetkzobj{all}

\begin{document}
\tikz{
\coordinate(A)at(0,0);
\coordinate(B)at(5,0);
\coordinate(P)at(3.7896542,3);

\draw[thick](A)--(B);

\tkzDrawPoint[color=red](A)
 \tkzLabelPoint[below=2pt](A){$A$}
\tkzDrawPoint[color=red](B)
 \tkzLabelPoint[below=2pt](B){$B$}


\tkzDrawPoint[fill=yellow](P)
 \tkzLabelPoint[above=2pt](P){$P$}
}

\end{document}

答案1

您可以从那里使用\tkzDrawAltitude(A,B)(P)和获取。p

输出

示例图片

代码

\documentclass[margin=10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz,tkz-euclide,xcolor,graphicx}
\usetkzobj{all}

\begin{document}
\begin{tikzpicture}

\tkzDefPoints{0/0/A, 5/0/B, 3.7896542/3/P}

\draw[thick](A)--(B);

\tkzDrawPoints[color=red](A,B)
\tkzLabelPoint[below=2pt](A){$A$}
\tkzLabelPoint[below=2pt](B){$B$}

\tkzDrawPoint[fill=yellow](P)
\tkzLabelPoint[above=2pt](P){$P$}

\tkzDrawAltitude(A,B)(P) \tkzGetPoint{p}
\tkzDrawSegment(P,p)

\tkzLabelPoint[below=2pt](p){$p$}

\end{tikzpicture}
\end{document}

答案2

TikZ 为投影提供了特殊的语法。因此你可以添加

\draw (P) -- ($(A)!(P)!(B)$);

在你标记点之前。但tkz-euclide也提供了

\tkzDefLine[orthogonal=through P](B,A)
\tkzGetPoint{p}
\draw (P)--(p);

(p)尽管在后一种情况下,不是位于直线 AB 上。

答案3

使用 \tkzDefPointBy 找到 P 到 AB 的投影。

\tkzDefPointBy[projection = onto A--B](P)\tkzGetPoint{p}

然后您可以使用 \tkzDrawSegment 绘制线条。

\tkzDrawSegment(P,p)

相关内容