我想重新创建图像
来源:https://commons.wikimedia.org/wiki/File:IncirclePentagon.png
其思想是先创建圆,然后在圆上定义 5 个不同的点,计算切线,最后计算切线的交点(A、B、C、D、E)。
然而,我很难得到切线。
以下是我目前所掌握的信息:
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{shapes, calc, decorations}
\usepackage{amsmath,amssymb}
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,font=\sansmath\sffamily]
\tkzDefPoint(0, 0){C}
\tkzDrawCircle[R](C,3cm)
\tkzDefPoint( 30:3){BCT}
\tkzDefPoint( 90:3){CDT}
\tkzDefPoint(135:3){DET}
\tkzDefPoint(215:3){EAT}
\tkzDefPoint(315:3){ABT}
\tkzLabelPoints[below left,font=\sansmath\sffamily](BCT)
\tkzDrawPolygon[thick](BCT,CDT,DET,EAT,ABT)
% \tkzTangent[from=EAT](C, R)\tkzGetPoints{e}{f} % Doesn't work
% \tkzDrawSegments[color=red](e,f)
\tkzDrawPoints(BCT,CDT,DET,EAT,ABT) % remove after finishing
\tkzLabelPoints[below left,font=\sansmath\sffamily](BCT,CDT,DET,EAT,ABT) % remove after finishing
% Draw points
% \tkzLabelPoints[below left,font=\sansmath\sffamily](A)
% \tkzLabelPoints[below right,font=\sansmath\sffamily](B)
% \tkzLabelPoints[above right,font=\sansmath\sffamily](C)
% \tkzLabelPoints[above left,font=\sansmath\sffamily](D)
% \tkzLabelPoints[left,font=\sansmath\sffamily](E)
% % Draw polygon
% \tkzDrawPolygon[thick](A,B,C,D,E)
\end{tikzpicture}
\end{preview}
\end{document}
如何使用 tkz-euclide 获得圆上给定点的切线?
我尝试过的方法
我尝试过很多变体。
下面确实可以编译,但是不显示任何内容:
\tkzTangent[from with R = EAT](C, 3 cm)\tkzGetPoints{e}{f}
\tkzDrawLine[color=red](e,f)
答案1
感谢 John Kormylo,我考虑使用我的几何知识:圆的切线就是通过圆直径在圆上一点的垂线。虽然这解决了我的问题,但我仍然有兴趣继续\tkzTangent
研究。
图像
完整代码
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{shapes, calc, decorations}
\usepackage{amsmath,amssymb}
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,font=\sansmath\sffamily]
\tkzDefPoint(0, 0){CircleCenter}
\tkzDrawCircle[R](CircleCenter,3cm)
% Define 5 points on a circle
\tkzDefPoint( 30:3){BCT}
\tkzDefPoint( 90:3){CDT}
\tkzDefPoint(135:3){DET}
\tkzDefPoint(215:3){EAT}
\tkzDefPoint(300:3){ABT}
% Tangents
\tkzDefLine[perpendicular=through EAT](CircleCenter,EAT)\tkzGetPoint{EAT2}
\tkzDefLine[perpendicular=through BCT](CircleCenter,BCT)\tkzGetPoint{BCT2}
\tkzDefLine[perpendicular=through CDT](CircleCenter,CDT)\tkzGetPoint{CDT2}
\tkzDefLine[perpendicular=through DET](CircleCenter,DET)\tkzGetPoint{DET2}
\tkzDefLine[perpendicular=through ABT](CircleCenter,ABT)\tkzGetPoint{ABT2}
% Find the points by intersecting the tangents
\tkzInterLL(EAT,EAT2)(ABT,ABT2)\tkzGetPoint{A}
\tkzInterLL(ABT,ABT2)(BCT,BCT2)\tkzGetPoint{B}
\tkzInterLL(BCT,BCT2)(CDT,CDT2)\tkzGetPoint{C}
\tkzInterLL(CDT,CDT2)(DET,DET2)\tkzGetPoint{D}
\tkzInterLL(DET,DET2)(EAT,EAT2)\tkzGetPoint{E}
% Background
\tkzDrawPolygon[thick,fill=gray!10](A,B,C,D,E)
\tkzDrawSegments(CircleCenter,EAT CircleCenter,BCT CircleCenter,CDT CircleCenter,DET CircleCenter,ABT)
% Draw points
\tkzDrawPoints[size=1pt](A,B,C,D,E)
\tkzDrawCircle[R,thick,draw=red](CircleCenter,3cm)
\tkzLabelPoints[below left,font=\sansmath\sffamily](A)
\tkzLabelPoints[below right,font=\sansmath\sffamily](B)
\tkzLabelPoints[above right,font=\sansmath\sffamily](C)
\tkzLabelPoints[above left,font=\sansmath\sffamily](D)
\tkzLabelPoints[left,font=\sansmath\sffamily](E)
% % Draw polygon
\tkzDrawPolygon[very thick](A,B,C,D,E)
\end{tikzpicture}
\end{preview}
\end{document}