计算尺的原理与制作
事情是这样的,我在b站看到了一个古董计算尺的视频,就想着自己能不能搞一把,但是奈何在网上逛了一圈没找到能用的图片,所以只好自己学习一下他的原理然后写写代码自动生成。
本文是介绍简易计算尺的制作过程,目前只完成了乘除部分。
什么是计算尺
计算尺就是在没有电子计算工具的时代用来辅助计算的一种仪器。
详情可以在这个视频里面看到
(计算尺)
计算尺的原理
计算尺的乘除部分使用的是**对数原理**,上个学期在数学书上看到的对数原理的应用终于在这里找到了铁证。
计算尺的基本原理是把其他的运算变成**加减运算**,所以才可以用尺子的平行移动来计算。
简单来说,$lg(x \cdot y) = lg(x) + lg(y)$, 所以,我们可以制作出两把一样的尺子,这两把尺子的每一个刻度长度都是相应数字的$log_{10}$值,且这两把尺子的左端刻度起点都是1,那么我们把上尺的1对准下尺的第一个乘数,然后找到上尺上的另一个乘数的刻度,再把这个刻度啮合的下尺刻度读出,就可以得到结果。
这个过程就是把两个乘数的$log_{10}$值相加,然后用这个$log$值再对应回原乘积
除法是乘法的逆运算,所以计算与原理也很简单。原理就是$lg(\dfrac x y) = lg(x) - lg(y)$.如果要计算除法,那么则需要把上尺的除数对准下尺的被除数刻度,然后读出上尺中的对准了下尺中的1刻度的刻度,这个刻度就是商数。
具体的用法也可以在刚刚我提到的b站视频里面看到。
计算尺的图像生成
svg: 可缩放矢量图形(Scalable Vector Graphics,SVG)基于 [XML] 标记语言,用于描述二维的矢量图形
考虑到svg作为纯文本(代码)的图像格式比较好生成,所以我就选用svg生成。
一张简单的svg图像的代码大概这样:
使用python语言进行开发,不导入第三方库了因为要学习很麻烦,我就用一点点功能,所以直接使用print的方法就好了。
然后把这个svg文件打开做个微调就可以用来打印了😃
程序的使用
你也可以通过调整**注释:参数设置**下面的那几行代码中的值来更改你想要的尺子的范围、大小、缩放等等。
最终效果
本来此处应有图片
说明一下,bilibili无法插入svg, 所以如果你要下载,请到我的博客:
xht8350.github.io
其他的运算我以后可能也会做。
2023-06-06 小核桃