近期在各位大佬的指点下,给小朋友绘制简单的平面几何图形,感觉已渐入佳境。然而,今天晚上遇到了一个题目,却又不晓得怎么精确录入。再次求助大家!题目和图形见下:

第(2)问里面我找了过(1,0)和(1,2)的线段与AB相交得到C点,然后旋转,算是取巧,但总算是顺利画出来了。
第(3)问里面的等腰直角三角形有几个限制条件,我画不出来了。求助大佬们。
另外第(2)问是否还有别的合适的画法。
O(∩_∩)O谢谢先!
楼主好像经常要给小朋友画平几草图,提几个拙见以供参考。
结合自己的喜好和画图思维,熟练掌握包中的相关命令。有的命令偏向解析的方式(坐标),有的命令偏向几何方式(尺规),虽然命令背后的逻辑都是坐标运算,但是画图的时候要顺着自己的习惯去思考,这样才能事半功倍。
比如你提到的:
第(2)问里面我找了过(1,0)和(1,2)的线段与AB相交得到C点,然后旋转,算是取巧,但总算是顺利画出来了。
这里显然是几何的痕迹多一点,我觉得就挺好的,只要自己思维顺畅就没问题。这题的数值比较简单,坐标很容易就能计算出来,但是万一下次碰到的数值比较奇怪,自己算就比较麻烦了,能简则简,能通用则通用。
当一种思维进行不下去的时候,可以结合几何知识,看能不能推出某些结论或者别的等量关系,从而简化坐标的计算。
比如第(3)问中,如果不利用结论,只从题面入手也是可行的:
1). 等腰直角三角形OCD,∠OBD=45°,D在第四象限 => 点C一定是△OBD的外心
2). C在OB的中垂线上,OM⊥OB => 点C是MB的中点
3). ∠OMC = 45°+22.5° = ∠DBC,CM=CB=CO=CD => △OMC≌△DBC,OM = BD
4). 角平分线定理 => OM/AM = 1/sqrt(2) => OM = 4(sqrt(2)-1)
有了2),就能定义出相关点
\tkzDefLine[bisector](O,B,A) \tkzGetPoint{b}
\tkzInterLL(B,b)(A,O) \tkzGetPoint{M}
\tkzDefMidPoint(M,B) \tkzGetPoint{C}
\tkzDefPointBy[rotation= center C angle 90](O) \tkzGetPoint{D}如果计算比较强,也可以不用\tkzDefLine[bisector],直接根据3)4)定义点
\tkzDefPoint(0,4*sqrt(2)-4){M}
\tkzDefShiftPoint[B](-135:{4*sqrt(2)-4}){D}
\tkzDefMidPoint(M,B) \tkzGetPoint{C}完整代码
\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzInit[xmin=-1,xmax=5,ymin=-2,ymax=5]
\tkzDrawX[thick]
\tkzDrawY[thick]
\tkzDefPoint(0,0){O}
\tkzDefPoint(4,0){B}
\tkzDefPoint(0,4){A}
% \tkzDefLine[bisector](O,B,A) \tkzGetPoint{b}
% \tkzInterLL(B,b)(A,O) \tkzGetPoint{M}
% 利用 2) 定义C
% \tkzDefMidPoint(M,B) \tkzGetPoint{C}
% 利用旋转得到 D
% \tkzDefPointBy[rotation= center C angle 90](O) \tkzGetPoint{D}
% 利用 3) 4) 直接定义 M,D,C
\tkzDefPoint(0,4*sqrt(2)-4){M}
\tkzDefShiftPoint[B](-135:{4*sqrt(2)-4}){D}
\tkzDefMidPoint(M,B) \tkzGetPoint{C}
\tkzDrawSegments[semithick](A,O O,B B,A M,B C,O C,D B,D O,D)
\tkzLabelPoints[below left](O)
\tkzLabelPoints[left](A,M)
\tkzLabelPoints[below](D,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
\end{document}
点 E 在 AB 上运动, 保持三角形 EOD 为等腰直角三角形, 点 D 的轨迹是直线 BD, 线段 ED 的中点 C 的轨迹是 OB 的中垂线 GF.
对点做旋转, 取中点就行了. 下面复制了前面答主的代码.
\begin{tikzpicture}
\tkzDefPoints{0/0/O,4/0/B,0/4/A}
\tkzDefPointBy[rotation=center B angle -45](O)
\tkzGetPoint{E}
\tkzDefPointBy[rotation=center O angle -90](E)
\tkzGetPoint{D}
\tkzDefMidPoint(E,D)
\tkzGetPoint{C}
\tkzInterLL(O,A)(B,C)
\tkzGetPoint{M}
\tkzDrawPolygons(O,A,B O,B,D O,B,M O,C,D)
\tkzLabelPoints[below left](O)
\tkzLabelPoints[left](A,M)
\tkzLabelPoints[below](D,B)
\tkzLabelPoints[left](A,M)
\tkzLabelPoints[above](C)
\end{tikzpicture}
第(2)问里面我找了过(1,0)和(1,2)的线段与AB相交得到C点,然后旋转,算是取巧,但总算是顺利画出来了另外第(2)问是否还有别的合适的画法
其实注意到A(4,0)和B(0,4),那么直线AB的方程显然是x+y=4,又因为x_C=1,瞪眼立得C(1,3),又因为旋转的是90°,再瞪眼又显然有D(3,-1)...
直接定下所有点的坐标,然后连线画图就行了😀...
并不需要照着题目的意思慢慢旋转,画图就要找最容易确定图形的思路(?)
第(3)问里面的等腰直角三角形有几个限制条件,我画不出来了
我觉得可以用要证的结论「BD+OB=AB」来取巧
因为要证的结论就一定是对的,这就免去了搜题这一步了😀.
注意到∠OBD=45°,而△OAB又是等腰直角,所以AB⊥CD. 又因为「BD=AB-OB=4√2-4」,所以其实只要确定了「D」点,它是AB过B的垂线,向左下延长「4(√2-1)」的长度得到的,即可唯一确定这个图形.
这样做顶多有一丢丢浮点误差,但是肉眼很难分辨的...
\documentclass[border=5pt]{standalone}
\usepackage{tkz-base}
\usepackage{tkz-euclide}
\begin{document}
\tkzSetUpLine[line width=.8pt]
\begin{tikzpicture}
\tkzInit[xmin=-1,xmax=5,ymin=-2,ymax=5]
\tkzDrawX[noticks,thick]
\tkzDrawY[noticks,right=2pt,thick]
\tkzDefPoints{0/0/O,0/4/A,4/0/B}
\def\lenBD{\fpeval{4*(\tkzSqrTwo-1)}}% 4(√2-1)
% 计算|BD|长度并定点
% \node {\lenBD};
\tkzDefPointWith[orthogonal normed,K=\lenBD](B,A)
\tkzGetPoint{D}
% 利用角平分线确定M点
\tkzDefLine[bisector,normed](O,B,A)
\tkzGetPoint{m}
\tkzInterLL(O,A)(B,m)
\tkzGetPoint{M}
% tkz-euclide可以很轻松地通过等腰直角三角形地斜边确定直角顶点
% 实际上手动求垂直平分线 + 确定交点也不难...
\tkzDefTriangle[isosceles right](O,D)
\tkzGetPoint{C}
%
\tkzLabelPoints[below left](O)
\tkzLabelPoints[left](A,M)
\tkzLabelPoints[below](D,B)
\tkzLabelPoints[left](A,M)
\tkzLabelPoints[above](C)
\tkzDrawPolygons(O,A,B O,B,D O,B,M O,C,D)
\end{tikzpicture}
\end{document}
太有几何直觉了😀
@u70550 其实也还好,就是四点共圆的应用和推广
看到等腰90°,45°,就条件反射了~
@u23703 毕业有一段时间了,没这种敏感度了😭
顺便一提,第二问我更推荐直接确定点的的坐标,是因为这个题坐标「易得」,而且定点+连线的代码是比用旋转等操作要短的🐶
收获了一些中肯的指点,非常感谢!
请问这个是从题面里哪来可以看出来的,是从圆的一些性质中得到的么?
谢谢!
@u70550 定线段的长度、绘制线段的长度,这个思路我一直想学熟练,但总还是有时候转不过弯来。还需要再学习。
@u10189 如果你理解了C是△OBD的外心,那根据外心的定义(中垂线的交点)就直接出来了,关键是能从90,45这种敏感的数值关系联想到圆心角和圆周角的关系
@u10189 已知起点,方向,长度,要得到终点,大概是这么个思路:
方向(角度)是和水平线相关的,那么直接极坐标定义是最快的,比如第(3)问中,起点B已知,BD长度由结论推算得4*sqrt(2)-4,∠OBD = 45°,直接就可以得到D
如果找不到和水平方向夹的角,优先找和某已知点夹90°的角,比如第(3)问中,AB⊥BD,A又是已知的,就用灰原老师答案中的命令
这里需要注意是顺时针还是逆时针,如果是顺时针,K要取负值
如果找不到90°的角,先画出目标方向上的向量,再按长度截取。比如第(3)问中,假设AB和BD夹的是80°角,且你找不到其他合适的夹角了
多看几个文档中关于
\tkzDefPointBy和\tkzDefPointWith的例子,你就能体会到了,主要用到的还是linear,orthogonal,normed,K这几个参数。@u23703 感谢大佬的细致讲解。
normed这个词多处见到,它主要是种什么意思了?