점 A, B 및 C를 지정하고 C에서 직각을 그려 길이를 제공하고 점 D를 찾은 다음 각도와 길이를 지정하여 점 E를 찾고 세그먼트를 그리도록 코드를 수정할 수 있습니다. .
\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(1.5,0){C}
\tkzDefPoint(1.5,2){D}
\tkzDefPoint(2,3){E}
\tkzDrawSegments(A,B C,D)
\tkzDrawSegment[color=red](C,E)
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[below](C){$C$}
\tkzLabelPoint[above](D){$D$}
\tkzLabelPoint[above](E){$E$}
\tkzDrawPoints[fill=gray](A,B,C,D,E)
\end{tikzpicture}
\end{document}
답변1
다음을 사용하여 점 D를 배치할 수 있습니다.
- 중심 C의 회전과 점 B의 각도 pi/2를 사용하여 B'를 얻습니다.
- 반선 BB'를 그려라
- 중심이 C이고 반지름이 2인 원을 그립니다.
- 교차점은 점 D입니다.
E 지점에 대해서도 같은 방식으로 진행합니다.
우리는 tkz-euclide
:
\tkzDefPointBy[rotation=center C angle 90](B)
\tkzDefCircle[R](C,2)
\tkzInterLC
우리는 또한 사용할 수 있으며 tkz-elements
, 다음에서 컴파일이 필요합니다.lualatex
% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{tkz-elements}
\usepackage{tkz-euclide}
\begin{document}
\begin{tkzelements}
local lengthCD = 2
local lengthCE = 3
local angBCE = math.pi/3
z.A = point: new (0,0)
z.B = point: new (3,0)
L.AB = line : new (z.A,z.B)
z.C = L.AB.mid
--
z.Bp = z.C : rotation (math.pi/2,z.B)
L.CBp = line : new (z.C,z.Bp)
C.CD = circle : radius (z.C,lengthCD)
z.D,_ = intersection (L.CBp,C.CD)
--
z.Bpp = z.C : rotation (angBCE,z.B)
L.CBpp = line : new (z.C,z.Bpp)
C.CE = circle : radius (z.C,lengthCE)
z.E,_ = intersection (L.CBpp,C.CE)
\end{tkzelements}
\begin{tikzpicture}
\draw[help lines](0,0)grid(3,4);
\tkzGetNodes
\tkzDrawSegments(A,B C,D)
\tkzDrawSegment[color=red](C,E)
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[below](C){$C$}
\tkzLabelPoint[above](D){$D$}
\tkzLabelPoint[above](E){$E$}
\tkzDrawPoints[gray](A,...,E)
\end{tikzpicture}
\end{document}
답변2
귀하의 문제는 단순히 tikz
라이브러리를 사용하여 해결하는 것입니다 calc
.
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[
every node/.style = {circle, fill=gray, inner sep=1pt, outer sep=0pt},
every label/.append style = {text=black}
]
\node[label= left:$A$] (a) at (0,0) {};
\node[label=right:$B$] (b) at (3,0) {};
\draw (a) -- (b);
\node[label=below:$C$] (c) at (1.5,0) {};
% line perpendicular to line a -- b from point c
\draw (c) -- ($(c)!20mm!90:(b)$) node[label=D] {};
% drawn with selected angle (for example 60 degree) from point c
\draw[red] (c) -- ($(c)!30mm!60:(b)$) node[label=E] {};
\end{tikzpicture}
\end{document}
또는 라인 a - b가 수평이 아닌 경우:
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[
every node/.style = {circle, fill=gray, inner sep=1pt, outer sep=0pt},
every label/.append style = {text=black}
]
\node[label= left:$A$] (a) at (0,0) {};
\node[label=right:$B$] (b) at (3,1) {};
\draw (a) -- (b);
\node[label=below:$C$] (c) at ($(a)!0.5!(b)$) {};
%
\draw (c) -- ($(c)!20mm!90:(b)$) node[label=D] {};
%
\draw[red] (c) -- ($(c)!30mm!60:(b)$) node[label=E] {};
\end{tikzpicture}
\end{document}
답변3
의심할 여지없이 구문이 있지만 tkz-euclide
프랑스어를 못해서 Ti를 고수합니다.케이Z 방법.
다음 이미지는 원래 방법의 결과 위에 요청된 대체 절차를 구현한 결과를 겹쳐 놓습니다.
분명히 원래 포인트나 이전 scope
코드를 새 코드로 대체하는 경우는 필요하지 않습니다.
찾을 의도한 지점을 선택했는지는 모르겠지만 E
필요한 지점을 기준으로 사용하도록 방법을 조정할 수 있습니다.
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(1.5,0){C}
\tkzDefPoint(1.5,2){D}
\tkzDefPoint(2,3){E}
\tkzDrawSegments(A,B C,D)
\tkzDrawSegment[color=red](C,E)
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[below](C){$C$}
\tkzLabelPoint[above](D){$D$}
\tkzLabelPoint[above](E){$E$}
\tkzDrawPoints[fill=gray](A,B,C,D,E)
\begin{scope}[draw=blue,every label/.append style=blue]
\path (C) ++(0pt,2) coordinate [label=above:$D$] (d);
\path (d) ++(63:1.12) coordinate [label=above:$E$] (e);
\tkzDrawSegments(A,B C,d C,e)
\end{scope}
\end{tikzpicture}
\end{document}