如何用LaTeX的tkz-euclide绘制扇形的内切圆及切点
为扇形AMP和MPB添加内切圆及切点标注的LaTeX实现
基于你提供的半圆分割代码,以下是添加两个扇形内切圆及切点标注的完整实现方案:
完整LaTeX代码
\documentclass[a4paper]{standalone} \usepackage{tikz} \usepackage{tkz-euclide} \begin{document} \begin{tikzpicture} \tkzInit[ymin=-1,ymax=6,xmin=-1,xmax=10] \tkzClip[space=.5] % 定义基础点 \tkzDefPoint(0,0){A} \tkzDefPoint(10,0){B} \tkzDefMidPoint(A,B) \tkzGetPoint{M} \tkzDefPoint(8,0){I} \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H} \tkzInterLC(I,H)(M,B) \tkzGetSecondPoint{P} % 绘制基础图形 \tkzDrawPoints(A,B,M,P) \tkzDrawSegment(A,B) \tkzDrawArc(M,B)(A) \tkzDrawSegment(M,P) % --- 处理扇形AMP的内切圆 --- % 获取扇形AMP的圆心角 \tkzFindAngle(A,M,P) \tkzGetAngle{angAMP} % 扇形半径MA的长度为5 \pgfmathsetmacro{R}{5} % 计算内切圆半径:扇形内切圆公式 r = R*(1 - 1/(1 + sin(θ/2))) \pgfmathsetmacro{r1}{R*(1 - 1/(1 + sin(\angAMP/2)))} % 构造∠AMP的角平分线方向 \tkzDefPointBy[rotation=center M angle \angAMP/2](A) \tkzGetPoint{bisec1} % 定位内切圆圆心O1:在角平分线上,距离M点的距离为R - r1 \tkzDefPointOnLine[pos=(R - r1)/R](M,bisec1) \tkzGetPoint{O1} % 绘制内切圆 \tkzDrawCircle(O1,r1) % 找切点:与MA的切点T1、与MP的切点T2、与弧AP的切点T3 \tkzDefPointWith[linear=through O1 perpendicular to M,A](O1) \tkzGetPoint{T1} \tkzDefPointWith[linear=through O1 perpendicular to M,P](O1) \tkzGetPoint{T2} \tkzInterLC(M,O1)(M,A) \tkzGetSecondPoint{T3} \tkzDrawPoints(T1,T2,T3) \tkzLabelPoint[below left](T1){$T_1$} \tkzLabelPoint[above left](T2){$T_2$} \tkzLabelPoint[above](T3){$T_3$} % --- 处理扇形PMB的内切圆 --- \tkzFindAngle(P,M,B) \tkzGetAngle{angPMB} \pgfmathsetmacro{r2}{R*(1 - 1/(1 + sin(\angPMB/2)))} \tkzDefPointBy[rotation=center M angle -\angPMB/2](B) \tkzGetPoint{bisec2} \tkzDefPointOnLine[pos=(R - r2)/R](M,bisec2) \tkzGetPoint{O2} \tkzDrawCircle(O2,r2) % 找切点:与MP的切点T4、与MB的切点T5、与弧PB的切点T6 \tkzDefPointWith[linear=through O2 perpendicular to M,P](O2) \tkzGetPoint{T4} \tkzDefPointWith[linear=through O2 perpendicular to M,B](O2) \tkzGetPoint{T5} \tkzInterLC(M,O2)(M,B) \tkzGetSecondPoint{T6} \tkzDrawPoints(T4,T5,T6) \tkzLabelPoint[above right](T4){$T_4$} \tkzLabelPoint[below right](T5){$T_5$} \tkzLabelPoint[above right](T6){$T_6$} % 标注基础点与内切圆圆心 \tkzLabelPoint[below](M){$M$} \tkzLabelPoint[below left](A){$A$} \tkzLabelPoint[below right](B){$B$} \tkzLabelPoint[above right](P){$P$} \tkzLabelPoint[left](O1){$O_1$} \tkzLabelPoint[right](O2){$O_2$} \end{tikzpicture} \end{document}
关键实现说明
- 修正编译错误:补全原代码中缺失的
\前缀(\usepackage),确保代码可正常编译。 - 内切圆参数计算:
- 使用
\tkzFindAngle获取两个扇形的圆心角,结合扇形内切圆半径公式计算半径:r = R*(1 - 1/(1 + sin(θ/2))),其中R为扇形半径(此处MA=5),θ为扇形圆心角。
- 使用
- 圆心定位:
内切圆圆心位于扇形的角平分线上,距离扇形顶点M的距离为R - r,通过\tkzDefPointOnLine精确定位。 - 切点构造:
- 与两条半径的切点:通过作圆心到对应半径的垂线得到(
\tkzDefPointWith[linear=through O perpendicular to M,X])。 - 与弧的切点:位于M到内切圆圆心的延长线与弧的交点,通过
\tkzInterLC(直线与圆的交点)命令计算。
- 与两条半径的切点:通过作圆心到对应半径的垂线得到(
- 可视化优化:添加切点、圆心的标注,确保图形元素清晰可辨。
内容的提问来源于stack exchange,提问作者Ace_Radom
相关产品推荐
相关产品推荐

