编译这个:
\documentclass[12pt, letterpaper]{article}
\usepackage[
a4paper,top=1in,bottom=1in,left=0.7in,right=0.7in,headheight=14.5pt,]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[misc]{ifsym}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{forest}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0:0){A}
\tkzDefPoint(0:6){B}
\tkzDefPoint(45:4){C}
\tkzDefPoint(0:3){D}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[below,yshift=-0.8mm](B){$B$}
\tkzLabelPoint[below,yshift=-0.8mm](A){$A$}
\tkzLabelPoint[below](D){$D$}
\tkzDrawSegment[black!60!black](C,A)
\tkzDrawSegment[black!60!black](A,B)
\tkzDrawSegment[black!60!black](C,B)
\tkzDrawSegment[black!60!black](C,D)
\tkzMarkRightAngle(C,D,A)
\end{tikzpicture}
\end{document}
你会发现线段 CD 不垂直于 AB,这就是问题所在。那么这个问题的解决方案是什么呢?
答案1
正如@Peter Grill 所说,你计算的 D 不正确。你构造的 45 度角的正切必须为 1。因此,从 C 到 D 的边的长度必须为 3,但这样你的三角形的边就不满足勾股定理,因为 3^2+3^2 不等于 4^2。你应该沿着 45 度角移动 sqrt(18)。
但是tkz-euclide
您使用的包有一个宏来执行点的计算,然后有另一个宏来命名它:\tkzDrawAltitude[color=black](A,B)(C) 将计算点 C 相对于线段 (A,B) 的高度,并且 \tkzGetPoint{D} 取该点并将其命名为 D,以便您可以使用它。我已经清理了您的代码并添加了一些您可以摆弄的选项来获得这个:
\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}%IMPORTANT in most tkz-euclide code
\begin{document}
\begin{tikzpicture}[rotate=0,scale=2.0]%rotate picture 0 degrees
%choose the vertices of the triangle
\tkzDefPoint(0:0){A}
\tkzDefPoint(0:6){B}
\tkzDefPoint(45:4){C}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[below,yshift=-0.8mm](B){$B$}
\tkzLabelPoint[below,yshift=-0.8mm](A){$A$}
\tkzDrawSegment[black!60!black](C,A)
\tkzDrawSegment[black!60!black](A,B)
\tkzDrawSegment[black!60!black](C,B)
\tkzDrawAltitude[color=black](A,B)(C)
\tkzGetPoint{D}%Get the point of intersection
\tkzLabelPoint[below](D){$D$}
\tkzMarkRightAngle(C,D,A)%Mark with a right angle symbol
\end{tikzpicture}
\end{document}