\documentclass[10pt]{article}
\usepackage[a5paper]{geometry}
\usepackage{tkz-euclide}
\usepackage{float}
\usepackage{amsthm,amssymb, amsmath, amsfonts}
\usetikzlibrary{math, arrows, positioning, shapes, fit, calc, quotes, angles}
\begin{document}
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(2,4){C}
\tkzCircumCenter(A,B,C) \tkzGetPoint{O}
\tkzDefPointWith[linear, K=0.6](C,A) \tkzGetPoint{P}
\tkzDefPointWith[linear, K=0.3](B,A)\tkzGetPoint{Q}
\tkzDefMidPoint(B,P) \tkzGetPoint{K}
\tkzDefMidPoint(C,P) \tkzGetPoint{L}
\tkzDefMidPoint(Q,P) \tkzGetPoint{M}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,P,Q,O,K,L,M)
\tkzDrawSegments(P,Q B,P C,Q)
\tkzDrawCircle[circum](K,L,M)
\tkzLabelPoints[below](A,B,O)
\tkzLabelPoints[above](C,L)
\tkzLabelPoints[below](Q)
\tkzLabelPoints[left](P)
\tkzLabelPoints[above](K)
\tkzLabelPoints[below left](M)
\end{tikzpicture}
\end{figure}
\end{document}
上述代码为 IMO 2009 的第二道题生成了一个图形。问题是几何练习的作者假设直线 PQ 与圆 KLM 相切。我怎样才能告诉 tkz-euclide 我想要直线 PQ 与圆相切?如果其他问题说我们需要一些线段彼此全等或角度全等怎么办?我怎样才能编写 tkz-euclide 以使这些线段全等?提前致谢!
答案1
有时可以通过从数学问题的结论回溯来进行绘图。
在绘图中这个几何问题A
,我们从圆上的一个点开始(O,R)
,然后选择P
和Q
使得OP=OQ
;接下来取点B
和分别作为圆与和C
的交点。AQ
AP
// http://asymptote.ualberta.ca/
// 2009 IMO Problems/Problem 2
// https://artofproblemsolving.com/wiki/index.php/2009_IMO_Problems/Problem_2
size(8cm);
import geometry;
real R=3,t=2.2;
pair O=(0,0),P=t*dir(90),Q=t*dir(135);
pair A=R*dir(120);
path cir=circle(O,R);
pair B=intersectionpoint(A--Q+5(Q-A),cir);
pair C=intersectionpoint(A--P+5(P-A),cir);
pair K=(B+P)/2, L=(C+Q)/2, M=(P+Q)/2;
pair J=circumcenter(K,M,L);
draw(circle(J,abs(J-M)));
draw(A--B--C--cycle);
draw(B--P--Q--C,gray);
draw(O--P^^O--Q,gray+dashed);
draw(cir,orange);
dot("$O$",align=NE,O,orange);
dot("$A$",align=NW,A,Fill(white));
dot("$B$",align=SW,B,Fill(white));
dot("$C$",align=NE,C,Fill(white));
dot("$P$",align=NE,P);
dot("$Q$",align=W,Q);
dot("$K$",align=SW+W,K,red);
dot("$M$",align=N,M,red);
dot("$L$",align=NE,L,red);
shipout(bbox(5mm,invisible));