第五节 \(\rm \LaTeX\) 中的几何画板 tkz-euclide
状态:文稿准备中
5.1 安装宏包与获取说明
正如上一节所指出的那样,我们可以使用\usepackage命令通知 Mik\(\rm \TeX\) 安装宏包
\usepackage{tkz-euclide}
然后登入 CTAN 网站,搜索tkz-euclide,找到宏包后,可以进入详情页点入Package Documentation查看宏包文档。一般的宏包文档都是英文的。The universal language.
修改 TikZEdt 安装目录 Editor 文件夹下的代码自动补全数据库 CodeCompletions.xml,添加下面的代码或者是使用现有的文件替换,以更好地适应 tkz-euclide 宏包命令。
但是,TikZEdt 如要使用新的数据库,程序需要使用-p参数(Portable 便携式)。右键快捷方式,打开文件位置,在快捷方式的属性目标中,增加-p参数即可。之后可能需要重新生成缩略图,一些设置可能需要重新来过。
还需要在 TikZEdt 的引用中添加该包,在菜单选栏中选择Settings设置 x2,在Compiler编译器选项卡中,添加
\usepackage{tkz-euclide}来引用该包。
5.2 实例:绘制一道几何题目
语义化的 tkz-euclide 宏包将更符合叙述化的文本习惯,下面通过绘制一道几何题目来展示其命令的大致规则。
\(\triangle ABC \)的内切圆分别与\(BC\)、\(CA\)、\(AB\)相切于\(D\)、\(E\)、\(F\),\(DP \bot EF\)于\(P\),证明:\(PD\)平分\(\angle BPC\)。
- \(\triangle ABC \):需要绘制出一个三角形(Triangle),那么可以使用\tkzDefTriangle定义(Define=>Def)特殊的三角形。当然此处的三角形不是特殊的,可以直接定义三点(Point),使用\tkzDefPoints定义三点。
\tkzDefPoints{2.5/2/A,0/0/B,3/0/C}
但是现在的三点只是被定义好了,却没有显示出来,需要使用\tkzDrawPoints将三点画(Draw)出来。\tkzDrawPoints(A,B,C)
然后,可以使用\tkzLabelPoints标注(Label)三点。\tkzLabelPoints(A,B,C)
最后可以使用\tkzDrawPolygon根据三个顶点绘制出一个多边形(Polygon,三角形也是多边形的一种)。\tkzDrawPolygon(A,B,C)
- 内切圆:需要定义一个圆(Circle),使用\tkzDefCircle定义出一个圆,但是需要添加参数[in]来指示其是内切圆(Inscribed circle),后接三点指示其是哪个三角形的内切圆。
\tkzDefCircle[in](A,B,C)
后面紧接\tkzGetPoint得到(Get)圆心,接\tkzGetLength得到半径长度(Length)。\tkzGetPoint{I} \tkzGetLength{ls}
最后使用\tkzDrawCircle指令,使用[R]参数通过圆心半径绘制出内切圆。\tkzDrawCircle[R,red](I, \ls pt)
- 分别与\(BC\)、\(CA\)、\(AB\)相切于\(D\)、\(E\)、\(F\):需要找到切点。这里可以使用\tkzDefSpcTriangle得到特殊(Special=>Spc)三角形,通过[intouch]参数得到内切圆切点,参数处需要说明对哪一个三角形的内切三角形。
\tkzDefSpcTriangle[intouch](A,B,C){D,E,F}
同样的方法画出来这几个点,这一次可以添加颜色参数。\tkzDrawPoints[blue](D,E,F)
然后可以使用\tkzAutoLabelPoints自动(Auto)地围绕某一个点标注,添加围绕的中心[center]参数。\tkzAutoLabelPoints[blue,center = I](D,E,F)
- \(DP \bot EF\)于\(P\):需要作垂直线(或者说\(D\)在\(EF\)上的投影点\(P\))。可以使用\tkzDefPointBy命令添加[projection]参数定义投影点:向(onto)\(E\)--\(F\)轴投影(projection)。
\tkzDefPointBy[projection = onto E--F](D)
得到该定义点。\tkzGetPoint{P}
绘制出该点,并标记该点,使用[above]参数可以让标记放在上方(above)。\tkzDrawPoint[blue](P) \tkzLabelPoints[above,blue](P)
使用\tkzDrawSegments连接多条线段(Segment)\(DP\)、\(EF\)。\tkzDrawSegments[blue](D,P E,F)
使用\tkzMarkRightAngle标记(Mark)关于\( \angle DPF \)直角(Right Angle)符号。\tkzMarkRightAngle[blue](D,P,F)
- \(PD\)平分\(\angle BPC\):需要展示角相等关系。连接\(BP\)、\(PC\)。
\tkzDrawSegments[orange](B,P P,C)
使用\tkzMarkAngles标记(Mark)两个角度(Angles)\(\angle BPD\)、\(\angle DPC\)。\tkzMarkAngles[orange,mark=none,size=0.5cm](B,P,D D,P,C)
5.3 tkz-euclide 宏包部分命令样式展示
\tkzDefPointBy
\tkzDefPointsBy
变换定义点
\tkzDefPointsBy
变换定义点
translation 平移
[translation = from (起始点) to (终止点)]
从(参照点)为始点按照平移向量平移得到终点作为定义点。
\tkzDefPointBy[translation = from B to A](C)
homothety 位似
[homothety = center (位似中心点) ratio (位似比)]
从(位似中心点)到(参照点)形成线段(或所在直线上)以(位似比)为定比的定比分点。
\tkzDefPointBy[homothety = center B ratio 0.5](A)
reflection 反射
[reflection = over (对称轴点1)--(对称轴点2)]
对于(参照点)通过对称轴的反射点。
\tkzDefPointBy[reflection = over A--B](C)
symmetry 中心对称
[symmetry = center (对称中心点)]
(参照点)关于(对称中心点)的中心对称点。
\tkzDefPointBy[symmetry = center O](A)
projection 投影
[projection=onto投影轴点1--投影轴点2]
(参照点)在(投影轴)上的投影点。
\tkzDefPointBy[projection = onto A--B](C)
rotation 旋转
[rotation=center (旋转中心点)angle (角度)]
(参照点)绕(旋转中心点)旋转(角度)得到的点。
\tkzDefPointBy[rotation = center O angle 30](A)
rotation in rad 弧度旋转
[rotation in rad=center (旋转中心点) angle (弧度)]
(参照点)绕(旋转中心点)旋转(弧度)得到的点。
\tkzDefPointBy[rotation in rad = center O angle 2](A)
inversion 反演
[inversion=center (反演中心点)through (反演圆上点)]
(参照点)关于反演圆的反演点,满足共线且\(OB \times OB' =r^2\)。
\tkzDefPointBy[inversion = center O through A](B)
\tkzGetPoint 得定义点
\tkzDefPointBy命令后紧跟\tkzGetPoint{结果点}以得到结果。
如果使用\tkzDefPointsBy命令,得到的点将直接用{定义点列表}中的点表示,留空将会使用(参照点)加撇表示,比如\(B \rightarrow B'\)。
如果使用\tkzDefPointsBy命令,得到的点将直接用{定义点列表}中的点表示,留空将会使用(参照点)加撇表示,比如\(B \rightarrow B'\)。
\tkzDefTriangleCenter
三角定义点
三角定义点
ortho 垂心
三角形高的交点。
\tkzDefTriangleCenter [ortho] (A,B,C)
\tkzDefTriangleCenter [ortho] (A,B,C)
centroid 重心
三角形中线的交点。
\tkzDefTriangleCenter [centroid] (A,B,C)
\tkzDefTriangleCenter [centroid] (A,B,C)
circum 外心
三角形外接圆圆心,又是三边中垂线交点。
\tkzDefTriangleCenter [Ccircum] (A,B,C)
\tkzDefTriangleCenter [Ccircum] (A,B,C)
in 内心
三角形内切圆圆心,又是三角角分线交点。
\tkzDefTriangleCenter [in] (A,B,C)
\tkzDefTriangleCenter [in] (A,B,C)
ex 旁心
三角形旁切圆圆心,与(点2)的对边相切。
\tkzDefTriangleCenter [ex] (A,B,C)
\tkzDefTriangleCenter [ex] (A,B,C)
euler 欧拉圆圆心
三角形垂足三角形外接圆圆心,三角形的三边中点、三个垂心到顶点连线中点也在这个圆上,故该外接圆又称九点圆。
\tkzDefTriangleCenter [euler] (A,B,C)
\tkzDefTriangleCenter [euler] (A,B,C)
symmedian 类似重心
三角形重心的等角共轭点,也就是中线等角线的交点。
\tkzDefTriangleCenter [symmedian] (A,B,C)
\tkzDefTriangleCenter [symmedian] (A,B,C)
spieker
三角形中点三角形内切圆圆心。
\tkzDefTriangleCenter [spieker] (A,B,C)
\tkzDefTriangleCenter [spieker] (A,B,C)
nagel
三角形旁切圆切点与对顶点连线交点。
\tkzDefTriangleCenter [nagel] (A,B,C)
\tkzDefTriangleCenter [nagel] (A,B,C)
mittenpunkt
三角形旁切圆圆心与中点连线交点。
\tkzDefTriangleCenter [mittenpunkt] (A,B,C)
\tkzDefTriangleCenter [mittenpunkt] (A,B,C)
feuerbach
欧拉圆又称费尔巴哈圆。
\tkzDefTriangleCenter [feuerbach] (A,B,C)
\tkzDefTriangleCenter [feuerbach] (A,B,C)
\tkzGetPoint 得定义点
\tkzDefTriangleCenter命令后紧跟\tkzGetPoint{结果点}以得到结果。
\tkzDefLine
定义直线
定义直线
mediator 中垂线
(参照线段)的垂直平分线。
\tkzDefLine [mediator] (A,B)
\tkzDefLine [mediator] (A,B)
perpendicular / orthogonal 垂直
[perpendicular = through (经过点)]
过(经过点)关于(参照线段)的垂直线。
\tkzDefLine [perpendicular = through A] (A,B)
parallel 平行
[parallel = through (经过点)]
过(经过点)关于(参照线段)的平行线。
\tkzDefLine [parallel = through C] (A,B)
bisector 角分线
作以(点2)为角点的内角平分线。注意角度要以逆时针方向标记。
\tkzDefLine [bisector , normed] (B,A,C)
\tkzDefLine [bisector , normed] (B,A,C)
bisector out 补角分线
作以(点2)为角点的补角平分线。
\tkzDefLine [bisector out , normed] (B,A,C)
\tkzDefLine [bisector out , normed] (B,A,C)
\tkzGetPoints 得端点
第一个命令有两个结果,通过\tkzGetPoints{线点1}{线点2}得到。后面四个命令只有一个结果,通过\tkzGetPoint(线点)得到。
\tkzInter__
交点
交点
\tkzInterLL 直线交点
两条相交直线的交点。
\tkzInterLL (A,B) (C,D)
交点通过\tkzGetPoint(交点)得到。
\tkzInterLL (A,B) (C,D)
\tkzInterLC 线圆交点
直线与圆的交点。
\tkzInterLC (A,B) (O,C)
两个交点通过\tkzGetPoints{交点1}{交点2}得到。
\tkzInterLC(直线点1,直线点2)(圆心,圆上点)
\tkzInterLC (A,B) (O,C)
\tkzInterLC[R] 线圆(半径)交点
直线与圆的交点,圆由圆心与半径决定。
\tkzInterLC[R](A,B)(O,1 cm)
两个交点通过\tkzGetPoints{交点1}{交点2}得到。
\tkzInterLC[R](直线点1,直线点2)(圆心,半径)
\tkzInterLC[R](A,B)(O,1 cm)
\tkzInterCC 圆圆交点
两相交圆交点。
\tkzInterCC(B,A)(A,B)
两个交点通过\tkzGetPoints{交点1}{交点2}得到。
\tkzInterCC(圆心1,圆上点1)(圆心2,圆上点2)
\tkzInterCC(B,A)(A,B)
\tkzDefTriangle
定义三角形
定义三角形
two angles 两角
[two angles = (底角1) and (底角2)]
指定两个底角确定第三点位置。
\tkzDefTriangle [two angles = 45 and 60] (A,B)
equilateral 等边
以指定边作等边三角形。
\tkzDefTriangle [equilateral] (A,B)
\tkzDefTriangle [equilateral] (A,B)
pythagore 毕达哥拉斯
等比例于 3-4-5 三角形。
\tkzDefTriangle [pythagore] (A,B)
\tkzDefTriangle [pythagore] (A,B)
school 三角板
有一内角为 \( 30^\circ \)的直角三角形。
\tkzDefTriangle [school] (A,B)
\tkzDefTriangle [school] (A,B)
gold/euclide 欧几里得
顶角为\(36^\circ\)的等腰三角形。
区别在于gold以(点1)为顶点,euclide以指定边为底边。
\tkzDefTriangle [gold] (A,B)
区别在于gold以(点1)为顶点,euclide以指定边为底边。
\tkzDefTriangle [gold] (A,B)
golden 黄金三角形
长直角边与短直角边的边长比为\(\Phi = 1.618\)的直角三角形,由黄金矩形的概念衍生而来。
\tkzDefTriangle [golden] (A,B)
\tkzDefTriangle [golden] (A,B)
cheops 齐奥普斯
以指定边为底边、腰长与底边长比例为\(\frac{\Phi}{2}\)的等腰三角形。
\tkzDefTriangle [cheops] (A,B)
\tkzDefTriangle [cheops] (A,B)
\tkzGetPoint 第三点
\tkzDefTriangle命令后紧跟\tkzGetPoint{结果点}以得到三角形的第三点。
tkzPointResult 得变量
如果第三点只用一次,可以使用\tkzPointResult临时变量。
\tkzDefTangent
定义切线
定义切线
at 圆上点切线
[at = (圆上点)] (圆心)
过(圆上点)做关于(圆心)的切线。
\tkzDefTangent[at=A](O)
from 过圆外点切线
[from=(经过点)] (圆心,圆上点)
过(圆上点)做关于(圆心)的切线。
\tkzDefTangent[from=C](O,A)
from with R 由半径定义的圆
[from with R = (经过点)] (圆心,半径
from有两个结果,需要使用\tkzGetPoints{切点1}{切点2}命令。
\tkzDefCircle
定义圆
定义圆
through 半径
以(点1)为圆心,(点2)为圆上点定义圆。
\tkzDrawCircle [red] (O,A)
\tkzDrawCircle [red] (O,A)
diameter 直径
以(参照点)定义的直径定义圆。
\tkzDefCircle [diameter] (B,A)
\tkzDefCircle [diameter] (B,A)
circum 外接圆
(参照点)所定义的(三角形)的外接圆。
\tkzDefCircle [circum] (A,B,C)
\tkzDefCircle [circum] (A,B,C)
in 内切圆
(参照点)所定义的(三角形)的内切圆。
\tkzDefCircle [in] (A,B,C)
\tkzDefCircle [in] (A,B,C)
ex 旁切圆
(参照点)所定义的(三角形)的内切圆。
\tkzDefCircle [ex] (A,B,C)
\tkzDefCircle [ex] (A,B,C)
euler 欧拉圆
(参照点)所定义的(三角形)的欧拉圆。
\tkzDefCircle [euler] (A,B,C)
\tkzDefCircle [euler] (A,B,C)
apollonius 阿波罗尼斯圆, K=比例
到(点1)的距离与到(点2)的距离比例为K的动点轨迹。
\tkzDefCircle [apollonius,K=2] (A,B)
\tkzDefCircle [apollonius,K=2] (A,B)
orthogonal 正交圆
正交两圆在交点处切线相互垂直。
[orthogonal from=(圆心)]
其后需要紧跟\tkzGetPoints{(圆上点)}{(圆上点)}得到结果。
[orthogonal through=(圆上点1) and (圆上点2)]
orthogonal from
以指定的(圆心)作以(点1)为圆心、(点2)为圆上点的正交圆。
\tkzDefCircle [orthogonal from=B] (O,A)
\tkzDefCircle [orthogonal from=B] (O,A)
orthogonal through
以指定的(圆上点1)、(圆上点2)作以(点1)为圆心、(点2)为圆上点的正交圆。
\tkzDefCircle[orthogonal through = C and D](O,A)
\tkzDefCircle[orthogonal through = C and D](O,A)
\tkzGetPoint 得圆心
在命令后紧跟\tkzGetPoint{(圆心)}一般可以得到圆心点。
\tkzGetLength 得半径
在命令后紧跟\tkzGetLength{(长度变量)}可以得到半径,而后使用\tkzDrawCircle((圆心),\(长度变量) pt)画出该圆。