用Tikz 画一幅神舟12号简图,致敬中国航天工作者,顺便学习Tikz作图的高级技巧!

@[用Tikz 画一幅神舟12号简图,致敬中国航天工作者,顺便学习Tikz作图的高级技巧!]

在这里插入图片描述

用Tikz 画神舟12号简图

第一步 画推进舱、返回舱

用矩形工具构建三个长方形,然后向上平移3pt,平移用选项参数:yshift=3pt 实现。

\draw (-2.5,0)rectangle(2.5,9);
\draw [rounded corners=2pt] (-2.5,0)--(-2.4,-10pt)--(2.4,-10pt)--(2.5,0);
\draw (-2.5,9)rectangle(2.5,15);	
\draw (-2.5,15)rectangle(2.5,19);

\begin{scope}
	\draw[yshift=3pt] (-2.5,9)rectangle(2.5,15);	
	\draw[yshift=3pt] (-2.5,15)rectangle(2.5,19);
\end{scope}

第二步 画轨道舱、国旗等图标

轨道舱顶部用圆弧工具,由于左右有对称关系,所以只画出左侧部分。

%% 轨道舱

\draw [yshift=3pt,rounded corners=3pt](-2.55,19)rectangle(2.55,27);
\draw (-1.5,20)rectangle(1.5,22);
\draw (-1.5,23)--(1.5,23)--(1,26)--(-1,26)--cycle;


第三步 画推进舱左侧火箭、火焰

为了是图形看起来光滑圆润,使用了 rounded corners = 4pt这样圆角选项参数。火焰的绘制完全靠感觉和个人的艺术眼光。

%%顶部左侧
%\draw (0,27)--(0,37);
\draw [rounded corners=3pt](-2.55,27)arc[start angle=180,end angle=113,radius=4]--(-0.1,33)arc[start angle=270,end angle=90,radius=5pt]--(-0.1,36)--(0,36.5);

%%左侧小火箭

\draw [rounded corners=4pt](-2.55,26)--(-3,25.8)--(-3.1,23)--(-2.55,22.8);

\draw [rounded corners=4pt](-2.5,0)--(-5,0)--(-5,6.5)--(-3.75,9.1)--(-2.45,6.5)--(-5,6.5);
\draw [rounded corners=2pt](-5,6.3)--(-2.5,6.3)--(-2.5,6.5)--(-5,6.5)--(-5,6.3);
	\draw [rounded corners=4pt](-5,0)--(-5,1)--(-2.5,1)--(-2.5,0)--cycle;
\draw [rounded corners=5pt](-4.99,0.1)--(-5.7,0.4)--(-5.7,2)--(-5,2.9);

%%火焰
\draw [rounded corners=6pt](-4.9,0.02)--(-5.1,-1)--(-4.7,-0.8)--(-5,-2)--(-4.6,-1.6)--
(-4.5,-3.8)--(-3.6,-1.7)--(-3.6,-2.4)--(-3.2,-0.8)--(-3,-1.4)--(-2.5,0)--cycle;

第四步 画右侧部分

将第三步所有部分放在 scope环境中,添加一个xscale=-1,实现关于 y轴的反射,画出右侧部分。

\begin{scope}[xscale=-1]
%%顶部右侧
%\draw (0,27)--(0,37);
\draw [rounded corners=3pt](-2.55,27)arc[start angle=180,end angle=113,radius=4]--(-0.1,33)arc[start angle=270,end angle=90,radius=5pt]--(-0.1,36)--(0,36.5);
%%右侧小火箭
\draw [rounded corners=4pt](-2.55,26)--(-3,25.8)--(-3.1,23)--(-2.55,22.8);

\draw [rounded corners=4pt](-2.5,0)--(-5,0)--(-5,6.5)--(-3.75,9.1)--(-2.45,6.5)--(-5,6.5);
\draw [rounded corners=2pt](-5,6.3)--(-2.5,6.3)--(-2.5,6.5)--(-5,6.5)--(-5,6.3);
	\draw [rounded corners=4pt](-5,0)--(-5,1)--(-2.5,1)--(-2.5,0)--cycle;
\draw [rounded corners=5pt](-4.99,0.1)--(-5.7,0.4)--(-5.7,2)--(-5,2.9);

%%火焰
\draw [rounded corners=6pt](-4.9,0.02)--(-5.1,-1)--(-4.7,-0.8)--(-5,-2)--(-4.6,-1.6)--
(-4.5,-3.8)--(-3.6,-1.7)--(-3.6,-2.4)--(-3.2,-0.8)--(-3,-1.4)--(-2.5,0)--cycle;
\end{scope}

第五步 画底部火焰

为了使其具有层次感,画了两层火焰。内层火焰是将外层火焰缩小尺寸得到的,用scale=0.75这个选项参数。


%%底座火焰
	\draw [rounded corners=6pt](-2.2,-10pt)--(-1.8,-1.8)--(-1.5,-1.3)--(-1.3,-2.9)--(-1.1,-2.6)
--(-0.9,-3.8)--(-0.7,-3.4)--(0,-4.8)--(0.7,-3.4)--(0.9,-3.8)--(1.1,-2.6)--(1.3,-2.9)--
(1.5,-1.3)--(1.8,-1.8)--(2.2,-10pt);
%%底座内层火焰
\begin{scope}[scale=0.75]	
	\draw [rounded corners=6pt](-2.2,-10pt)--(-1.8,-1.8)--(-1.5,-1.3)--(-1.3,-2.9)
--(-1.1,-2.6)--(-0.9,-3.8)--(-0.7,-3.4)--(0,-4.8)--(0.7,-3.4)--(0.9,-3.8)--(1.1,-2.6)--
(1.3,-2.9)--(1.5,-1.3)--(1.8,-1.8)--(2.2,-10pt);
\end{scope}

第六步 为国旗添加五星、添加中国航天四个汉字

五星用美国数学会提供的符号宏包:amssymb。 确定了大星位置后,四个小星用\foreach ...\draw ...一次性画出,小星星的位置以大星为参考,用极坐标确定他们平移的位置。

\node at (0,13.6){\text 中};
\node at (0,12.5){\text 国};
\node at (0,11.4){\text 航};
\node at (0,10.2){\text 天};

\node at (-0.9,21.3){$\bigstar$};
\foreach \x in {-40,-10,20,50} \draw (-0.9,21.3)+(\x:0.55)node{\tiny$\bigstar$};

第七步 着色

着色只需要在上面相应的地方draw或者filldraw后面的中括号中加上颜色选项参数即可。

需要本文例子源文件的朋友们可以扫描下面二维码,关注公众号:大哉数学之为用,然后在公众号消息框里回复:137 领取。

在这里插入图片描述

更多学习资料,欢迎添加微信:niltxz, 拉你加入 LaTeXTikz 爱好者学习交流群领取!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值