tkz-euclide作图教程02 | 立体几何作图示例

作图要点:/.style定义元素属性风格;\tkzDefLine和\tkzInterLL 计算两直线交点;\tkzDefMidPoint定义中点
今天我们来作一个立体几何图形:正方体中取一个正六边形截面并填充颜色,如上图。
作图分析

这个图的正方体有8个顶点,加上六边形的6个顶点,共有14个顶点。如果每个点都通过给出具体坐标来定义,显然很麻烦,因为涉及到一些计算。
幸运地是,tkz-euclide包具有自动计算坐标的功能,我们只需要通过具体坐标定义一些基础的点,其它的点,我们可以通过图形之间是位置关系,利用现成的作图命令来定义曲线的交点,线段的中点等等。
这样,我们用tkz-euclide包作图就如同几何画板一样方便了!
今天的图形涉及到\tkzDefLine和\tkzInterLL计算两直线交点;\tkzDefMidPoint定义中点等命令。
如何做?

由于前面的推文已经详细介绍了定义点,连线,填充颜色,给点添加标签,给线段添加标记等方法,所以,今天的图形我们只详细介绍新出现命令的使用方法。

1. 预定义元素的属性风格

为了使图形具有立体感,我们采用一些作图的技巧:如用斜二测法作图,同时用灰色虚线体现被遮挡的线段,用灰色的点来表现被遮挡的点。这样,图形中的元素便呈现出了不同的风格(style)。为了后面方便使用,我们在\begin{tikzpicture}环境命令后的中括号中对元素风格进行预定义。
顺便说一句,我们可能已经意识到作图命令中出现了三种不同的括号:圆括号,中括号,大括号,它们有显著不同的功能,笼统地说,中括号中放置图形的属性选项,例如几何对象的颜色,图形的填充颜色,线的粗细、虚实,箭头的风格等等;圆括号中通常是点的坐标;大括号里往往是标签,或者表达式。

\begin{tikzpicture}[pol/.style={fill=brown!30,opacity=0.5},seg/.style={tkzdotted,color=gray},hidden pt/.style={fill=gray!40},scale=2]
  \tkzSetUpPoint[size=2]

上面定义了三种元素风格:

(1)多边形填充颜色:pol/.style, 风格的名称可以自己取,这里取polpolygon的前三个字母。/.style告诉tikz即将定义一种风格,={fill=brown!30,opacity=0.5},意思是填充颜色为的褐色,透明度为0.5。等号表示将这些设置赋予一个名字叫pol的风格。

下次需要填充多边形时就用命令\tkzFillPolygon[pol](P,Q,R,S,T,U)就可以了。这样做显然是为了使代码简洁,同时具有良好的可读性。

(2)被遮挡的线段风格:seg(segments)风格设置为灰色、虚线。

(3)被遮挡的点的风格:hidden pt设置为用的灰色填充该点。

其它的预设置:scale=2表示将整个图形放大2倍。\tkzSetUpPoint[size=2]设置点的大小为2pt。
上面提到的设置均为整体设置,所以,放在作图命令的前面。后面作图命令的中括号里的设置都是局部设置。

2. 定义基础点

%%%%%%%定义点
\tkzDefPoints{0/0/A, 2.5/0/B,1.33/0.75/D,0/2.5/E,2.5/2.5/F}

坐标和名字用/分隔,用大括号括起来这里定义了正方体正面上的四个点A,B,E,F和侧面上的点D, 容易看出正面的四点构成一个正方形的四个顶点它们的坐标分别为, D的坐标设置为,遵循了斜二测原理(但不是严格的),点的坐标值是根据作图者经验设置的,需要一定的练习就能达到自如。

3. 构建正方体其它顶点

我们以底面顶点为例说明,剩下上底面的两个顶点可以类似构建出来。
可以看作是直线和的交点。而直线是通过点且与直线平行的,直线是通过点与直线平行的。所以,我们先作两条平行线、, 再取其交点,然后把这个交点命名为。

 \tkzDefLine[parallel=through D](A,B)\tkzGetPoint{I1}
  \tkzDefLine[parallel=through B](A,D)\tkzGetPoint{I2}
  \tkzInterLL(D,I1)(B,I2)\tkzGetPoint{C}

上面第一行画的平行线,第二行画的平行线, 第三行取两者的交点并将坐标赋予。这里体会一下{C}有点的名称的含义,©则表示的坐标。

4.构建中点

我们以上底面上线段的中点为例来讲中点的构建方法。

\tkzDefMidPoint(H,G)\tkzGetPoint{P}

第一个命令是定义的中点,实际上是计算点的坐标,第二个命令讲其坐标赋予点的名字。

按照上面的方法,我们就可以定义好图形中的14个点,然后经过连线,填充,添加标签,画出顶点等步骤,就可以做出完整的图形了。
最后我们附上本例的完整代码:

在这里插入图片描述

完整代码:


\begin{tikzpicture}
[pol/.style={fill=brown!30,opacity=0.5},seg/.style={tkzdotted,color=gray}
       ,hidden pt/.style={fill=gray!40},scale=2]
  \tkzSetUpPoint[size=2]
%%%%%%%定义点
  \tkzDefPoints{0/0/A, 2.5/0/B,1.33/0.75/D,0/2.5/E,2.5/2.5/F}%坐标和名字用/分隔,用大括号括起来
  %%%%%%%连线
  \tkzDrawPolygon(A,B,F,E)
  \tkzDrawSegments[seg](A,D)

  \tkzDefLine[parallel=through D](A,B)\tkzGetPoint{I1}
  \tkzDefLine[parallel=through B](A,D)\tkzGetPoint{I2}
  \tkzInterLL(D,I1)(B,I2)\tkzGetPoint{C}
  \tkzDrawSegments(B,C)
  \tkzDrawSegments[seg](D,C)

  \tkzDefLine[parallel=through E](A,D)\tkzGetPoint{I3}
  \tkzDefLine[parallel=through D](A,E)\tkzGetPoint{I4}
  \tkzInterLL(D,I3)(E,I4)\tkzGetPoint{H}

  \tkzDefLine[parallel=through F](B,C)\tkzGetPoint{I5}
  \tkzDefLine[parallel=through C](B,F)\tkzGetPoint{I6}
  \tkzInterLL(F,I5)(C,I6)\tkzGetPoint{G}

  \tkzDrawSegments(C,G G,F G,H H,E)
  \tkzDrawSegments[seg](H,D)

  \tkzDefMidPoint(H,G)\tkzGetPoint{P}
  \tkzDefMidPoint(G,C)\tkzGetPoint{Q}
  \tkzDefMidPoint(C,B)\tkzGetPoint{R}
  \tkzDefMidPoint(B,A)\tkzGetPoint{S}
  \tkzDefMidPoint(A,E)\tkzGetPoint{T}
  \tkzDefMidPoint(E,H)\tkzGetPoint{U}

  \tkzDrawSegments[seg](P,Q R,S T,U)
  \tkzDrawSegments(Q,R S,T U,P)
  \tkzFillPolygon[pol](P,Q,R,S,T,U)
  \tkzDrawSegments[seg](H,A A,C C,H)

  \tkzLabelPoints[below](A,S,B)
  \tkzLabelPoints[right](C,Q)
  \tkzLabelPoints[above](G,P,H)
  \tkzLabelPoints[left](E,T)
  \tkzLabelPoints[above=2pt,left](U,D)
  \tkzLabelPoints[below=4pt,right](R,F)

  \tkzDrawPoints(A,B,C,E,F,G,H,P,Q,R,S,T,U)
  \tkzDrawPoints[hidden pt](D)
\end{tikzpicture}

识别下面二维码,回复 122 ,领取本文例子源码:

在这里插入图片描述

如果本文对您有帮助,欢迎点击“在看”,转发分享!您的支持是作者写作的动力!

【LaTeX微信交流加群:】

如果你希望交流LaTeX使用或者TikZ作图或者Beamer制作幻灯片方面的问题,请先添加作者微信:niltxz ,然后加入作者的LaTeX+TikZ+Beamer 交流微信群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值