如何从“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)