計算尺的原理與制作
事情是這樣的,我在b站看到了一個古董計算尺的視頻,就想著自己能不能搞一把,但是奈何在網(wǎng)上逛了一圈沒找到能用的圖片,所以只好自己學(xué)習(xí)一下他的原理然后寫寫代碼自動生成。
本文是介紹簡易計算尺的制作過程,目前只完成了乘除部分。
什么是計算尺
計算尺就是在沒有電子計算工具的時代用來輔助計算的一種儀器。 ?
詳情可以在這個視頻里面看到 ?
(計算尺)
計算尺的原理
計算尺的乘除部分使用的是**對數(shù)原理**,上個學(xué)期在數(shù)學(xué)書上看到的對數(shù)原理的應(yīng)用終于在這里找到了鐵證。
計算尺的基本原理是把其他的運算變成**加減運算**,所以才可以用尺子的平行移動來計算。
簡單來說,$lg(x \cdot y) = lg(x) + lg(y)$, 所以,我們可以制作出兩把一樣的尺子,這兩把尺子的每一個刻度長度都是相應(yīng)數(shù)字的$log_{10}$值,且這兩把尺子的左端刻度起點都是1,那么我們把上尺的1對準(zhǔn)下尺的第一個乘數(shù),然后找到上尺上的另一個乘數(shù)的刻度,再把這個刻度嚙合的下尺刻度讀出,就可以得到結(jié)果。
這個過程就是把兩個乘數(shù)的$log_{10}$值相加,然后用這個$log$值再對應(yīng)回原乘積
除法是乘法的逆運算,所以計算與原理也很簡單。原理就是$lg(\dfrac x y) = lg(x) - lg(y)$.如果要計算除法,那么則需要把上尺的除數(shù)對準(zhǔn)下尺的被除數(shù)刻度,然后讀出上尺中的對準(zhǔn)了下尺中的1刻度的刻度,這個刻度就是商數(shù)。
具體的用法也可以在剛剛我提到的b站視頻里面看到。
計算尺的圖像生成
svg: 可縮放矢量圖形(Scalable Vector Graphics,SVG)基于 [XML] 標(biāo)記語言,用于描述二維的矢量圖形
考慮到svg作為純文本(代碼)的圖像格式比較好生成,所以我就選用svg生成。
一張簡單的svg圖像的代碼大概這樣:
使用python語言進(jìn)行開發(fā),不導(dǎo)入第三方庫了因為要學(xué)習(xí)很麻煩,我就用一點點功能,所以直接使用print的方法就好了。
然后把這個svg文件打開做個微調(diào)就可以用來打印了??
程序的使用
你也可以通過調(diào)整**注釋:參數(shù)設(shè)置**下面的那幾行代碼中的值來更改你想要的尺子的范圍、大小、縮放等等。
最終效果
本來此處應(yīng)有圖片
說明一下,bilibili無法插入svg, 所以如果你要下載,請到我的博客:
xht8350.github.io
其他的運算我以后可能也會做。
2023-06-06 小核桃