在三角形内画一个三角形Tkz-Euclide

在三角形内画一个三角形Tkz-Euclide

我想在等腰三角形内生成一个等腰三角形,如下所示,但只需改变 y 坐标即可移动底边 AB,我尝试了不同的获取点命令,但到目前为止没有成功。

\documentclass{book}

\usepackage{blindtext}
\usepackage{tikz}
\usepackage{tkz-euclide}

%Diagram enviroment    
\newenvironment{diagram}
{\begin{center}\vspace*{10pt}\begin{tikzpicture}}
    {\end{tikzpicture}\vspace*{-5pt}\end{center}}

\begin{document}
\begin{diagram}
    \tkzDefPoint(-2,0){A}
    \tkzDefPoint(2,0){B}
    \tkzDefPoint(0,4){C}
    \tkzDefPoint(3,-2){D}
    \tkzDefPoint(-3,-2){E}

        \tkzDrawPolygon(A,B,C)
    
            \tkzDrawSegment(A,E)
            \tkzDrawSegment(B,D)
            
                \tkzLabelPoints[left](A)
                \tkzLabelPoints[right](B)
                \tkzLabelPoints[above](C)
                \tkzLabelPoints[left](E)
                \tkzLabelPoints[right](D)
        
                    \tkzMarkSegment[mark=|](A,C)
                    \tkzMarkSegment[mark=|](B,C)
            
                        \tkzMarkAngle[size=0.5](B,A,C)
                        \tkzMarkAngle[size=0.5](C,B,A)
\end{diagram}
\end{document}

答案1

只是为了给你一个想法,我为你的练习发布了一个解决方案建议,不是使用,而是使用包的y-coordinate命令,最新版本的用户手册第 50 页。你只需要更改\tkzDefPointOnLinetkz-euclidepos=x.y两个都 并使用相同的十进制数>1在命令中\tkzDefPointOnLine(您也可以为此使用已定义的变量)获取新的外三角形。我使用了您的大部分代码,这些代码可以更短,因为您可以看到我更改的前 3 行。我认为您可以添加角度、点等。如果这没有帮助,请告诉我您到底想要实现什么。

\documentclass{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{arrows,calc,shapes,patterns,decorations.pathmorphing,shadows.blur,shadings}

\begin{document}
    
\begin{tikzpicture}
  
        \tkzDefPoints{-2/0/A,2/0/B,0/4/C}
        \tkzDefPointOnLine[pos=1.5](C,A)\tkzGetPoint{E}
        \tkzDefPointOnLine[pos=1.5](C,B)\tkzGetPoint{D}
        \tkzDrawPolygon(A,B,C)
        \tkzDrawPolygon(D,E,C)
            \tkzDrawSegment(A,E)
        \tkzDrawSegment(B,D)
        
        \tkzLabelPoints[left](A)
        \tkzLabelPoints[right](B)
        \tkzLabelPoints[above](C)
        \tkzLabelPoints[left](E)
        \tkzLabelPoints[right](D)
        
        \tkzMarkSegment[mark=|](A,C)
        \tkzMarkSegment[mark=|](B,C)
        
        \tkzMarkAngle[size=0.5](B,A,C)
        \tkzMarkAngle[size=0.5](C,B,A)
        \tkzDrawSegment(E,D)
\end{tikzpicture}
    
\end{document}

希望对你有帮助!

输出

答案2

此解决方案将在改变基座的长度AB或点C与基座之间的距离时自动调整:

\newcommand{\ABC}{-4} % distance between C and AB
\newcommand{\AB}{1} % base AB

C

\documentclass{book}

\usepackage{blindtext}
\usepackage{tikz}
\usepackage{tkz-euclide}

%Diagram enviroment    
\newenvironment{diagram}
{\begin{center}\vspace*{10pt}\begin{tikzpicture}}
        {\end{tikzpicture}\vspace*{-5pt}\end{center}}

\begin{document}

\newcommand{\ABC}{-4} % distance between C and AB
\newcommand{\AB}{1} % base AB

\begin{diagram}
\tkzDefPoint(0,0){C}    
\tkzDefShiftPoint[C](-\AB,\ABC){B}
\tkzDefShiftPoint[C](\AB,\ABC){A}   
\tkzDrawSegments(A,B B,C C,A)

\tkzDrawLines[add=0 and 0.5](C,A C,B)   
\tkzLabelLine[pos=1.5,right](C,A){D}    
\tkzLabelLine[pos=1.5,left](C,B){E}
    
\tkzLabelPoints[right](A)
\tkzLabelPoints[above](C)
\tkzLabelPoints[left](B)

\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](B,C)

\tkzMarkAngle[size=0.3](C,A,B)
\tkzMarkAngle[size=0.3](A,B,C)

\end{diagram}

\end{document}

相关内容