
나는 Ti를 사용하고 있습니다케이Z를 처음 사용하는데 정확히 표시하려는 내용을 얻는 데 약간의 어려움을 겪고 있습니다. 저는 다음과 같은 그림을 그리려고 합니다.
코드는 다음과 같습니다(그렇게 좋지 않다는 것은 알지만 Ti를 처음 사용한다는 점에 유의하세요).케이지):
\documentclass[paper=a4, fontsize=11pt]{scrartcl} % A4 paper and 11pt font size
\usepackage[T1]{fontenc}
\usepackage[english]{babel} % English language/hyphenation
\usepackage{amsmath,amsfonts,amsthm} % Math packages
\usepackage{graphicx}
\usepackage{mdframed}
\usepackage[ampersand]{easylist}
\usepackage{enumitem}
\usepackage{tikz}
\begin{document}
\begin{center}\begin{tikzpicture}[auto]
\draw[thick, ->] (-6,0) -- (10,0) node[anchor = north west] {x};
\draw[thick, ->] (0,-3) -- (0,11) node[anchor = south east] {y};
\node (P) at (-4,-2) {$P(-4;-2)$};
\node (Q) at (8,3) {$Q(8;3)$};
\node (R) at (4,10) {$R(4;10)$};
\node (N) at (2,7) {N};
\draw (P) to (Q);
\draw (R) to (Q);
\draw (P) to (R);
\draw (N) to (Q);
\end{tikzpicture}\end{center}
\end{document}
현재 나에게 다음을 제공하고 있습니다.
내가 어떻게 할 수있는
- 포인트 이름을 가져옵니다~ 아니다선을 잘라내고,
- QN을 연결하는 선을 수직선으로 그리시겠습니까?
답변1
angles
나는 단지 많은 가능성 중 하나를 보여줄 것입니다. (그리고 90도 각도 표시에 대한 또 다른 대안 - 다른 각도에 대해서는 v3.00 매뉴얼의 라이브러리를 살펴보십시오 .)
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=5]% Scale it rather using too big dimensions in centimeters
\coordinate[label=below:{$P(-4,-2)$}](p) at (-4mm,-2mm);
\coordinate[label=right:{$Q(8,3)$}](q) at (8mm,3mm);
\coordinate[label=above:{$R(4,10)$}] (r) at (4mm,10mm);
\draw (p) -- (q) -- (r) -- cycle; %Look at the tip of the triangle with cycle or (p)
% Here is some black magic; start from q and draw to a point
% which is at the place along the line from p to r but at the
% place where q is projected on that line.
\draw (q) -- ($(p)!(q)!(r)$) coordinate (s);
\draw ($(s)!0.5mm!(q)$) coordinate (t) -- ($(t)!0.5mm!90:(q)$) --($(s)!0.5mm!(r)$);
\end{tikzpicture}
\end{document}
Ti를 개발하는 동안케이Z-fu, Alain Matthes의 패키지를 주목하세요.tkz-euclide
. 이런 종류의 그림을 정말 쉽고 체계적으로 만들어줍니다. 유일한 단점은 설명서가 나에게 (문자 그대로) 프랑스어라는 것입니다. 그러나 그럼에도 불구하고 그것은 꽤 자명하다.
답변2
와 함께tkz-euclide
:
\documentclass[11pt,a4paper]{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-5,xmax=9,ymin=-3,ymax=11]
\tkzAxeXY
%\tkzGrid
\tkzDefPoint[label=below:{$P(-4,-2)$}](-4,-2){P}
\tkzDefPoint[label=right:{$Q(8,3)$}](8,3){Q}
\tkzDefPoint[label=above:{$R(4,10)$}](4,10){R}
\tkzDrawSegments(P,Q Q,R R,P)
\tkzDefPointBy[projection=onto P--R](Q)
\tkzGetPoint{N}
\tkzLabelPoints[above left](N)
\tkzDrawPoints[color=red](P,Q,R,N)
\tkzDrawSegment(Q,N)
\tkzMarkRightAngle[fill=lightgray](Q,N,R)
\tkzLabelAngle[pos=1.3](Q,P,R){$\beta$}
\tkzMarkAngle[arc=l,size=1cm](Q,P,R)
\end{tikzpicture}
\end{document}
답변3
그리고 비교를 위해메타포스트.
OP 다이어그램 상단의 경고와는 달리 이것은~이다규모에 맞춰 그려졌다...
prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
u := 5mm;
% axes
path xx, yy;
xx = (5 left -- 9 right) scaled u;
yy = (3 down -- 11 up) scaled u;
drawarrow xx withcolor .5 white;
drawarrow yy withcolor .5 white;
label.rt (btex $x$ etex, point 1 of xx);
label.top(btex $y$ etex, point 1 of yy);
% define the points
pair M, N, P, Q, R;
P = (-4, -2) scaled u;
Q = ( 8, 3) scaled u;
R = ( 4, 10) scaled u;
M = yy intersectionpoint (P--R);
N = whatever[P,R]; (N-Q) dotprod (R-P) = 0;
%
% mark the right angle
draw unitsquare scaled 5 rotated angle (Q-N) shifted N withcolor .5 white;
% draw the lines
draw P--Q--R--cycle; draw Q--N;
% add the labels
label.ulft(btex $M$ etex, M);
label.ulft(btex $N$ etex, N);
label.top (btex $R\,(4;10)$ etex, R);
label.rt (btex $Q\,(8;3)$ etex, Q);
label.lft (btex $P\,(-4;-2)$ etex, P);
% label the angle along the bisector
label(btex $\beta$ etex, P + 20 unitvector(Q+R-2P));
endfig;
end.
여기서 기하학에 대해 조금 생각해 보면 가 M
y축에 있으므로 x 방향 P
과 그 사이의 중간 지점 R
에 있으므로 의 중간점이 되어야 한다는 것을 알 수 있습니다 P--R
. 따라서 좌표가 있습니다 (0,4)
. 따라서 에서 M
까지 의 거리는 Q
입니다 . 그러나 이것은 에서 까지 sqrt(8^2+1^2)=sqrt(65)
의 거리와 동일 합니다 . 따라서 및 는 합동 삼각형이므로 는 좌표 의 중간점입니다 . Metapost 방정식 시스템을 사용하여 이를 확인할 수 있습니다. 당신이 추가한다면R
Q
sqrt(4^2+7^2)=sqrt(65)
QNR
QNM
N
R--M
(2,7)
M = (0,4) scaled u; N = (2,7) scaled u;
~ 후에암시적 정의가 이미 제공된 경우 MP는 오류를 제공하지 않습니다.
답변4
부당하게 알려지지 않은 것과 함께mfpic
패키지. 이는 METAFONT 또는 MetaPost(이 경우 후자)에 매우 편리한 인터페이스를 제공하는 광범위한 (La)TeX 매크로 세트입니다.
대부분의 사람들이 이 패키지에 익숙하지 않기 때문에 다음 코드에 상당한 수의 주석을 넣었으므로 상대적인 길이가 됩니다.
MetaPost에 대해 조금 아는 사람들을 위해 mfpic
때로는 더 편리한 원시 MetaPost 지침을 포함할 수도 있습니다. 여기에서 M과 N 점을 찾고(MetaPost의 상표 암시적 방식으로 수행됨) N에 직각 표시를 그렸습니다(MetaPost 변환기 덕분에).
\documentclass{scrartcl}
% MetaPost instead of Metafont as drawing program and labels manager.
% Bounding box based on actual picture dimensions, not on the axes dimensions.
\usepackage[metapost, mplabels, truebbox]{mfpic}
% LaTeX preamble given to MetaPost for its labels management
% (corresponds to the verbatimtex ... etex flags of MetaPost)
\mfpverbtex{%&latex
\documentclass{scrartcl}
\begin{document}}
\setlength{\mfpicunit}{.5cm}
\opengraphsfile{\jobname}
\begin{document}
\begin{mfpic}[1]{-5}{9.5}{-3}{11}
% Points definitions. For MetaPost they are local pairs.
\setmfpair{P}{(-4, -2)}
\setmfpair{Q}{(8, 3)}
\setmfpair{R}{(4, 10)}
% Point M computed by MetaPost as intersection of y-axis and straight line (PQ)
\setmfpair{M}{(P -- R) intersectionpoint (origin -- (0, \ymax))}
% Point N computed by MetaPost as intersection of line (PQ)
% and the straight line perpendicular to (PQ) going through Q
\mfsrc{save N; pair N; N = whatever[P, R] = whatever[Q, Q + (R-P) rotated 90];}
% Mark angle beta with the convenient \arc macro of mfpic
\store{mark_angle}\arc[a]{P, 0.8, angle(Q-P), angle(R-P)}
% Mark right angle on N with help of MetaPost transformers
\setmfvariable{path}{mark_right_angle}
{((1, 0) -- (1, 1) -- (0, 1)) zscaled 0.3unitvector(Q-N) shifted N}
% Actual drawings
\polygon{P, Q, R}
\lines{Q, N}
\doaxes{xy}
\mfobj{mark_angle}
\mfobj{mark_right_angle}
% Labels
\tlpointsep{2bp} % Offset
\tlabels{[tc]{(\xmax, 0)}{$x$} [cr]{(0, \ymax)}{$y$}
[cr]{P}{$P(-4, -2)$} [cl]{Q}{$Q(8, 3)$} [bc]{R}{$R(4, 10)$}
[br]{M}{$M$} [cr]{N}{$N$} [bl]{point 0.4 of mark_angle}{$\beta$}}
\end{mfpic}
\closegraphsfile
\end{document}
파일 .tex
을 먼저 (pdf)LaTeX로 조판한 다음 결과 .mp
파일을 MetaPost로 조판하고 마지막으로 LaTeX 파일을 다시 (pdf)LaTeX로 조판하여 아래 그림을 생성합니다.