赞
踩
各位Tikz 爱好者朋友们,大家好!前段时间比较忙,所以好久没有更文了!
今天在准备高等代数教案——子空间的直和时,需要画一个三维空间中的直和的例子和反例,作了如下的两个图:
下面我们简要介绍一下这两个图的作图步骤和要点。这两幅图是虽是立体图形,可是我们还是可以用tkz-uclide
宏包来画。
掌握八大Tikz 作图工具,Tikz 入门 So easy
对于 Tikz
基本命令不熟悉的朋友可以先阅读我们之前的推文掌握八大Tikz 作图工具,Tikz 入门 So easy,记住8个基本命令就可以入门了。
定义点的 Tikz
命令是\coordinate(<name>)(<coordinate>);
。例如 \coordinate (A) at (1,0);
相当于将坐标
(
1
,
0
)
(1,0)
(1,0)储存在字母
A
A
A 中,下面要引用这个坐标时,就可以用(A)
来引用这个点了。
tkz-uclide
宏包中定义了一个可以批量定义点的命令——\tkzDefPoints{}
,例如\tkzDefPoints{0/0/O,-2.25/-1.5/A,...}
, 就可以将
(
0
,
0
)
(0,0)
(0,0)和
(
−
2.25
,
−
1.5
)
(-2.25,-1.5)
(−2.25,−1.5)分别储存在字母 O 和 A 中了,以后调用就用 (O),(A)
。
例如,上面作图中我们就定义了以下 10 个点:
\tkzDefPoints{0/0/O, -2.25/-1.5/A, 4/0/B, 0/4/C, 2.2/-1.5/D, 2/3/E, -5/-1.7/F, 3/-1.7/G, 6/1.2/H, -1/1.2/I}
tkz-uclide
宏包中的连线命令有\tkzDrawSegment []()
,\tkzDrawSegments[]()
, 第一个用于作一条线段,第二个用于作折线(多条线段首尾相连)。如果要做一个多边形就用\tkzDrawPolygon[]()
来连线。这些命令的小括号中一次放代表点的字母就可以了,字母之间用英文逗号分隔。中括号里放一些属性参数如颜色、虚实线、粗细、箭头等等。
我们的例子在这里混用了Tikz
命令,例如\draw[->](O)--(A);
, 这在tkzuclide
宏包是允许的。如果你想追求命令的统一性就用上面我们介绍的连线命令。
要注意的是,Tikz
语句要以分号 ;
结束, 而 tkz-uclide
中的命令则不需要分号。
几乎每个图都需要对图中的几何元素——点、线、面添加适当的文字说明,就是标签。
我们用\tkzLabelPoint(){}
和 Tikz
中的基本命令node[]{}
, 其中 ()
中放点的坐标,{}
中放标签内容,中括号里添加标签的位置如 left,right,above,below
等。
一般地,通过以上三个步骤,就可以作出各种复杂的平面图几何形了。
坐标的设定和计算是这类作图的难点。作者的经验是先设定一些基本的点的坐标,然后根据图形的相对位置关系来确定其余点的坐标。
例如上述的作图,坐标系的原点、三个坐标轴的终点就是基本点,而各向量的终点、水平平面平行四边形的四个顶点、以及标签的位置点都是根据相对关系来设定的。
又如右图中的代表两个平面的平行四边形是基本点,其余的向量的起点、终点以及标签的位置点都是根据相对关系确定的。
确定点的坐标还有很多方法,例如通过平移、旋转、反射等变换来确定点,也可以直接取曲线的交点、线段的中点等等。tkz-uclide
提供了相关的命令。这些方法以后有机会再来介绍。
\documentclass[margin=4pt, convert, convert={ outext=.png, command=\unexpanded{ pdftocairo -r 600 -png \infile % 将生成的pdf文件转换为png图像 } } ,margin=20pt]{standalone} % 支持中文 \usepackage{ctex} \usepackage{tkz-euclide} \usepackage{pgfplots} \pgfplotsset{compat=1.17} \begin{document} \begin{tikzpicture}[>=Stealth,scale=2] \tkzDefPoints{0/0/O, -2.25/-1.5/A, 4/0/B, 0/4/C, 2.2/-1.5/D, 2/3/E, -5/-1.7/F, 3/-1.7/G, 6/1.2/H, -1/1.2/I} \tkzDrawPolygon[fill=blue!10,draw=blue!15](F,G,H,I) \draw[->](O)node[below]{$O$}--(A); \draw[->](O)--(B); \draw[->](O)--(C)node[left]{$V_2$}; \draw[->,red,thick](O)--node[left]{$\alpha_1$}(D); \draw[->,red,very thick](O)--node[left]{$\alpha$}(E); \draw[->,red,thick](D)--node[left]{$\alpha_2$}(E); \tkzLabelPoint(3,-1){$V_2$} \tkzLabelPoint(-1,-2){$\alpha=\alpha_1+\alpha_2$}; \tkzLabelPoint(-1,-2.4){$V_1\oplus V_2= R^3$} \end{tikzpicture}% \hskip 2cm % \begin{tikzpicture}[>=Stealth,scale=2] \tkzDefPoints{0/0/A, 3.8/0.5/B, 5.6/3.5/C, 2/3/D, 1/6/E, -1/3/F, 2.9/1.75/G, 0.5/3/H, 1/1.5/I, 2.4/3.25/J, 0.5/0.75/K, 1.5/2.25/L, 0/2.25/M, 3.4/2.5/N} \tkzDrawPolygon(A,B,C,D,E,F,A) \tkzDrawSegment[dashed](A,D) \draw[->,red,thick](I)node[right]{$O$}--node[below]{$\alpha_2$}(G); \draw[->,red,thick](I)--node[left]{$\alpha_1$}(H); \draw[->,very thick,red](I)--node[above]{$\alpha$}(J); \draw[red,thick](H)--(J)--(G); \draw[blue,->,thick](I)--node[left]{$\beta$}(K); \draw[blue,->,thick](I)--node[left]{$-\beta$}(L); \draw[orange,->,thick](I)--node[left]{$\alpha_1^\prime$}(M); \draw[orange,->,thick](I)--node[above]{$\alpha_2^\prime$}(N); \draw[orange,thick](M)--(J)--(N); \draw[blue,thick](K)--(M)--(H); \draw[blue,thick](L)--(N)--(G); \tkzLabelPoint(0.8,5.6){$V_1$} \tkzLabelPoint(5,3.3){$V_2$} \tkzLabelPoint(1.2,-0.2){$\alpha=\alpha_1+\alpha_2=\alpha_1^\prime+\alpha_2^\prime$}; \tkzLabelPoint(1.2,-0.6){$\alpha_1^\prime=\alpha_1+\beta, \alpha_2^\prime=\alpha_2-\beta$}; \tkzLabelPoint(1.2,-1){$V_1+ V_2= R^3$} \end{tikzpicture} \end{document}
【LaTeX微信交流加群:】
如果你希望交流LaTeX使用或者TikZ作图或者Beamer制作幻灯片方面的问题,请先添加作者微信:niltxz,然后加入作者的LaTeX+TikZ+Beamer 交流微信群。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。