乳胶三角角

乳胶三角角

我画了一个三角形的图,但我不知道如何画出角度。

这是我的三角图

<asy>
size(10cm);
pair A, B, C, D, F;
A = (0, tan(3 * pi / 7));
B = (1, 0);
C = (-1, 0);
F = rotate(90/7, A) * (A - (0, 2));
D = rotate(900/7, F) * A;

draw(A -- B -- C -- cycle);
draw(F -- D);
draw(D -- B);

label("$A$", A, N);
label("$B$", B, E);
label("$C$", C, W);
label("$D$", D, W);
label("$E$", F, E);
</asy>

这就是我想要画的

这就是我想要画的东西。

答案1

以下是使用包的解决方案tkz-euclide

\documentclass{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{arrows,calc,shapes,patterns,decorations.pathmorphing,shadows.blur,shadings}
\tkzSetUpPoint[size=2,color=black,fill=black]
\tikzset{new/.style={color=orange,line width=.2pt}}

\begin{document}
    
\begin{tikzpicture}
        \tkzDefPoints{0/0/C,2/8/A,4/0/B}
        \tkzDrawPoints(A,B,C)
        \tkzDrawPolygon(A,B,C)\tkzLabelPoints(B,C)\tkzLabelPoints[above](A)
        \tkzFindAngle(B,C,A)\tkzGetAngle{angleBCA}
        \edef\angleBCA{\fpeval{round(\angleBCA)}}
        \tkzFindAngle(C,A,B)\tkzGetAngle{angleCAB}
        \edef\angleCAB{\fpeval{round(\angleCAB)}}
        \tkzDefShiftPoint[B](152:4){D}\tkzDrawSegment(B,D)\tkzDrawPoints(D)
        \tkzDefLine[mediator](A,D)\tkzGetPoints{X}{Y}\tkzInterLL(A,B)(X,Y)\tkzGetPoint{E}
        \tkzDrawPoint(E)\tkzDrawSegment(D,E)
        \tkzMarkAngle[size = 0.5,arc=ll,mkcolor = red,mkpos=.33](B,C,A)
        \tkzMarkAngle[size = 0.5,arc=ll,mkcolor = red,mkpos=.33](C,D,B)
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](D,B,C)\tkzLabelAngle[pos=0.8](D,B,C){$x$}
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](A,B,D)\tkzLabelAngle[pos=0.8](A,B,D){$z$}
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](D,E,B)\tkzLabelAngle[pos=0.8](D,E,B){$z$}
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](D,A,E)\tkzLabelAngle[pos=0.8](D,A,E){$y$}
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](E,D,A)\tkzLabelAngle[pos=0.8](E,D,A){$y$}
        \tkzMarkAngle[size = 0.5,mkcolor = red,mkpos=.33](A,E,D)\tkzLabelPoints[left](D)
        \tkzLabelPoints[right](E)
\end{tikzpicture}
    
\end{document}

输出

答案2

以下是一个解决方案及其tikz一些库:

  1. calc,用于计算deABAC
  2. angles,能够通过 pic 命令绘制角度
  3. quotes,只是一个允许书写"text"而不是生活的品质图书馆text=...

角度pic可以有许多参数,例如radiusangle eccentricity、箭头状<->,以及更多图片

当然,您可以创建一个style参数以避免重复它们。

\begin{tikzpicture}[
my_angle/.style={thick, draw=orange, , angle radius=#1,-> ,angle eccentricity = 1.5
}]

像这样使用它:

\pic ["$\theta$",my_angle=15,<->]{angle=c--d--b};覆盖样式中定义的<->默认值。->

我确信你一定能填补剩余的空缺。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,angles,quotes}

\begin{document}
,
\begin{tikzpicture}
% define 3 coordinates ABC
\coordinate(a) at (0,0);
\coordinate(c) at (-2,-5);
\coordinate(b) at (2,-5);
% draw the edges between the points
\draw (a) -- (b) -- (c) -- cycle;

% define 2 coordinates that are somewhere on AB and AC:
\coordinate (d) at ($(a)!0.6!(c)$);
\coordinate (e) at ($(a)!0.3!(b)$);
\draw (b) -- (d) -- (e);

% for the angles, use \pic
\pic [draw = black] {angle=a--b--c};

\pic ["$\theta$",thick, draw=orange, angle radius=15,-> ,angle eccentricity = 1.5]{angle=c--d--b};
\end{tikzpicture}

\end{document}

答案3

markers这是你想要的吗?仅加载模块。

在此处输入图片描述

// The code can be run on asymptote.ualberta.ca
// or artofproblemsolving.com (wrapped by `asy` environment as in the OP's code)
size(10cm);
import markers; 
pair A,B,C,D,E;
A = (0, tan(3 * pi / 7));
B = (1, 0);
C = (-1, 0);
E = rotate(90/7, A) * (A - (0, 2));
D = rotate(900/7, E) * A;

markangle("$x$",D,B,C,radius=10mm,Fill(yellow));
markangle(B,C,D,n=2,radius=4mm,red);
markangle(C,D,B,n=2,radius=4mm,red);
markangle("$y$",D,A,E,radius=8mm,blue+1pt);
markangle("$y$",E,D,A,radius=8mm,blue+1pt);
markangle(Label("$z$",black),D,E,B,radius=6mm,white,Fill(green));
markangle(Label("$z$",black),E,B,D,radius=6mm,white,Fill(green));

draw(A--B--C--cycle^^B--D--E);
label("$A$",A,N);
label("$B$",B,plain.E);
label("$C$",C,W);
label("$D$",D,W);
label("$E$",E,plain.E);

//shipout(bbox(5mm,invisible));

附录在我的测试中,makers对于平面几何中的标记来说已经足够了。当然,可以使用模块来标记标记geometry

在此处输入图片描述

unitsize(1cm);
import markers;
pair A=(0,0), B=(5,0), C=(1,3.5);
transform t=shift(6dir(15));
pair M=t*A,N=t*B,P=t*C;
draw(A--B--C--cycle^^M--N--P--cycle);
// marking sides.
draw(A--B^^M--N,CrossIntervalMarker(1,4,magenta));
draw(B--C^^N--P,StickIntervalMarker(1,1));
draw(C--A^^P--M,StickIntervalMarker(1,2,blue+1pt));
//draw(p,StickIntervalMarker(1,2,angle=-25,size=5mm,space=1mm,blue+1pt));
// marking angles
markangle("$\beta$",C,B,A,radius=6mm,StickIntervalMarker(1,1,size=2mm));
markangle("$\beta$",P,N,M,StickIntervalMarker(1,1,size=2mm));
markangle(B,A,C,n=2,radius=4mm,Fill(yellow));
markangle(N,M,P,n=2,space=2mm);
markangle(A,C,B,Arrow,Fill(green));
markangle(M,P,N,Arrows);
// legend sides
label(Label("side $a=BC$",Rotate(B-C),align=3NE),C--B,red);
label(Label("side $a=AC$",Rotate(C-A),align=3W+plain.N),A--C,red);
label(Label("side $c=AB$",align=2S),A--B,red);
label("$A$",A,SW);
label("$B$",B,SE);
label("$C$",C,plain.N);
label("$M$",M,SW);
label("$N$",N,SE);
label("$P$",P,plain.N);
shipout(bbox(5mm,invisible)); 

相关内容