1.$LaTex$绘制物理图的原理 !
Latex是一款非常优秀的排版软件,开源、免费、功能强大。当然缺点也明显,需要花时间学习,但我敢保证,绝对比精通王者荣耀游戏所需时间短的多,你会感受到顶级思想家带给你的震撼,并且后悔没有早点结识。
tex由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。
简单介绍一下如何绘制初高中的电路图,Latex有很多宏包,这些包都是为了解决各种困难而开发的,都是开源的,集合了很多高人的智慧。
所谓宏包,就是提前做好的模板,方便大家使用,只是这些模板是通过代码使用。
cicutis软件包提供了一组用于设计电路的宏,要使用此包,找了很多资料发现中文网站基本搜不到有价值的信息,另外中国初高中物理的电路图并非符合规范,更增加了使用该宏的难度,特此制作了这个教程。
期待更多的优秀老师能够理解这个软件,还要把思想传递给下一代。
2.基本语法实例
命令格式: 名称:[属性](坐标) note[属性] ;
简单来说,就是用命令画图,这样可以做到图像标准化,不用鼠标拖来拖去,掌握基本的代码后,你会吃惊的发现:鼠标绘图非常浪费时间,因为为了精准要不停的调整。
画线:
\draw:绘制开始,默认画实线 \draw[dashed]:虚线 \draw[->,thick] 带箭头的实线线。
(x,y) :为坐标(0,0)为原点, \draw[->,thick] (0,0) to (0,1)to(1,0) ;画一折线。
[contact] :点,
;:命令结束
%:%后面是注释,不会被执行
\draw (0,0) to [contact] (0,1) to [contact] (0,1) to (0,1.5);% 会画出下面的部分
\draw (3,0) to [current direction={pos=0.8 },current direction’={pos=0.2}](1,0);%带箭头的导线,direction’右边
\draw[dashed](3,0) to [current direction={pos=0.8 },current direction’={pos=0.2}](1,0); 添加[dashed] 虚线,direction 左向 0.2=20%
添加元器件:
\draw[] (0,0) to [resistor](0,1) :实线后面跟着起始坐标,中间放电阻 ,就会自动帮你把电阻放在两个坐标之间,无需要调整位置。
\draw (0,0.5) to [resistor={info={$3\Omega$},info'={$P$}}] (1,0.5) to[resistor={info={$R_2$}}] (2,0.5) to[resistor={info={$R_3$}}] (3,0.5); % 电阻信息写法 [resistor={info={$R_2$}}],info'在下面,info在上面
3.完整代码实例
% Electrical circuit
% Author: 开源物理 秋风
% https://www.7mgh.com/?p=6833
\documentclass[border = 14pt]{standalone}
%%%<
\usepackage{verbatim}
\usepackage{tikz} %添加绘图宏
\tikzset{>=latex} % 符合中国习惯的箭头
%%%>
\begin{comment}
\end{comment}
\usetikzlibrary{circuits.ee.IEC}
\begin{document}
\begin{tikzpicture}[
circuit ee IEC,
x = 2cm, y = 1.5cm,
every info/.style = {font = \scriptsize},
set diode graphic = var diode IEC graphic,
set make contact graphic = var make contact IEC graphic,
]
\draw (0,0) to [contact] (0,1) to [contact] (0,1) to (0,1.5);% [contact] 放在两个坐标之间代表中间添加一个点,放相同坐标表示增加一个相同距离的点,终点坐标高度还是1.5
\draw[->] (0,0) to (0.6,0)to (0.6,0.4);% 画折线
\draw (0,1.5) to [make contact = {near start,info = {$S$}}](1,1.5) to
[battery = {near end,info = {$E,r$}}] (1.1,1.5) to [circuit handle symbol={draw,shape=circle,info=center:$A$}](3,1.5);
\draw (3,0) to[contact] (3,1)to (3,1.5); % 左侧线条
\draw (3,0.5) to (3,0) to [circuit handle symbol={draw,shape=circle,info=center:$V_2$}] (1,0) to (1,0.5);% V2连线
\draw (0,1) to [circuit handle symbol={draw,shape=circle,info=center:$V_1$}] (2,1) to (2,0.5);% V1连线
\draw (0,0.5) to [resistor={info={$3\Omega$},info'={$P$}}] (1,0.5) to[resistor={info={$R_2$}}] (2,0.5) to[resistor={info={$R_3$}}] (3,0.5); % 电阻信息
\end{tikzpicture}
\end{document}
% Electrical circuit
% Author: 开源物理 秋风
% https://www.7mgh.com/?p=6833
\documentclass[border = 14pt]{standalone}
%%%<
\usepackage{verbatim}
\usepackage{tikz} %添加绘图宏
\tikzset{>=latex} % 符合中国习惯的箭头
%%%>
\begin{comment}
\end{comment}
\usetikzlibrary{circuits.ee.IEC}
\begin{document}
\begin{tikzpicture}[
circuit ee IEC,
x = 2cm, y = 2cm,
every info/.style = {font = \scriptsize},
set diode graphic = var diode IEC graphic,
set make contact graphic = var make contact IEC graphic,
]
\node [circuit handle symbol={draw,shape=circle,scale=0.4}] at (0,0){};%画一个圈,scale:尺寸
\draw (0,0.04)
to[amperemeter](0,0.6)% 0.6与0.04之间放一个电流表
to[contact] (0,0.6)% 在0.6高度加一个点
to[contact](0,2) ;% 在0.6和2 之间
\node [circuit handle symbol={draw,shape=circle,scale=0.4}] at (3,0){};%画一个圈,scle:尺寸
\draw (3,0.04)
to(3,0.6)% 0.6与0.04之间连线
to[contact](3,0.6)% 在0.6高度加一个点
to[contact](3,2);)% 在0.6和2 之间
\draw[<->] (2.96,0) to(0.04,0);
\node [circuit handle symbol={draw,shape=circle,color=white,scale=0.1cm,fill=white,info=center:$U$}] at(1.5,0) {};%画一个圈,scale:尺寸,color:线条颜色,fill:充填颜色 info:内容信息,center 位置
\draw (0,0.6)to [make contact = {near start,info = {$S_1$}}](1.5,0.6)to [resistor={info'={$N$}}] (3,0.6);
\draw (0,1.3)to [make contact = {near start,info = {$S_2$}}](1.5,1.3)to [circuit handle symbol={draw,shape=circle,info=center:M}] (3,1.3);
\draw (0,2)to [make contact ={near start,info = {$S_3$}}](1.4,2) to (1.4,2) to(1.4,1.8);
\draw (3,2)to (1.9,2) to(1.9,1.8);
\draw (1,1.9)to (1,1.6) to(2.3,1.6)to(2.3,1.9);
\draw[dashed](1,1.8)to (2.3,1.8);
\draw[dashed](1,1.725)to (2.3,1.725);
\draw[dashed](1,1.65)to (2.3,1.65);
\end{tikzpicture}
\end{document}
Latex输出的是PDF,如果实在搞不了代码,就把他变成矢量图,做成一个一个部件,去拼接也行。
推荐inlscape 这个软件!!!!
开源世界不可多得的矢量绘图软件,可见可得的巅峰,也可以非常方便的制作数学图例图形,生成你可以看到的任何图像格式。
4.图标代码和使用规则
对象名称 | 代码 |
---|---|
[battery = {near end,info = {$E,r$}}] %电池 | |
[amperemeter={info={$3A$},info’={$I_1$}}] %电流表:amperemeter电压表: voltmeter | |
[resistor={ohm = 3,info’={$P$}}]$},info’={$P$}}] %电阻 ohm电阻单位 | |
[circuit handle symbol={draw,shape=circle,color=white,scale=0.1cm,fill=white,info=center:$V$}] % 电压表、电流表自定义 | |
[bulb = {minimum height = 0.6cm}]% 灯泡尺寸 | |
[inductor={info={$L_3$}}]% 电感 | |
[diode=light emitting] %发光二极管 | |
[capacitor={info={$3\mu f $},info’={$C$}}] %电容 | |
[resistor={adjustable,info = {$R$}}]%可调电阻 | |
[ground]%接地 | |
滑动变阻器 | 需要自定义 \draw[->] (0,0) to (0.6,0)to (0.6,0.4);% 画折线 结合电阻即可 |
https://www.latexstudio.net/uploads/20200703/ManualNotes315b0703.pdf 说明文档
下表所示为IEC环境中电路内的基本符号,要使用图形,您必须按照这个格式
[resistor={ohm = 3,info’={$P$}}] % ohm电阻单位使用,
Key | 图 | 其他图 |
/tikz/resistor | ||
/tikz/inductor | ||
/tikz/capacitor | ||
/tikz/battery | ||
/tikz/bulb | [bulb = {minimum height = 0.6cm}] | |
/tikz/current source | ||
/tikz/voltage source | ||
/tikz/ac source | ||
/tikz/dc source | ||
/tikz/ground | ||
二极管
下表所示为IEC环境中电路内部的二极管。
Key | Appearance | |
/tikz/diode | ||
/tikz/Zener diode | ||
/tikz/Schottky diode | ||
/tikz/tunnel diode | ||
/tikz/backward diode | ||
/tikz/breakdown diode | ||
开关
下表为开关
Key | 图示 | |
/tikz/contact | ||
/tikz/make contact | ||
/tikz/break contact | ||
测量设备
下表所示为IEC环境中电路内部的测量设备。
Key | 图示 | |
/tikz/amperemeter | ||
/tikz/voltmeter | ||
/tikz/ohmmeter | ||
单位
单位按如下方法使用:[resistor={ohm = 3,info’={$P$}}]
Key | 图示 |
unit | |
/tikz/ampere | |
/tikz/volt | |
/tikz/ohm | |
/tikz/siemens | |
/tikz/henry | |
/tikz/farad | |
/tikz/coulomb | |
/tikz/voltampere | |
/tikz/watt | |
/tikz/hertz | |
注释
Key | 图 | |
/tikz/light emitting | ||
/tikz/light dependent | ||
/tikz/direction info | ||
/tikz/adjustable | ||