CAD画图狗的救赎——Lisp语言学习之路(三):强化练习数学计算

上期有初步讲过Lisp中关于四则运算的方式,今天再深入讲下四则运算,然后再讲一些其余的数学计算。

本期你会学到以下内容:

  1. 四则运算
  2. 三角函数计算,圆周率的表示,求绝对值
  3. 四舍五入

1.四则运算

Lisp的特色在运算符放在前面,例如5+5它会写成(+ 5 5),其余如括号优先运算则和普通运算一致,例如(+ 5 (/ 100 2))=5+(100/2)=55。

再来看几个复杂一点的:

10/5+2+(1+3):(+ (+ (/ 10 5) 2) (+ 1 3))=8,先算10+5,然后再加2,然后再加(1+3)

100+10/5/2+1:(+ (+ 100 (/ (/ 5 5) 2) 1))=102

刚开始的时候学Lisp,可能第一个难点就是这个四则运算了,乍一看其实这个还挺难的,不过只要理解了,其实就不难了,我总结的一点就是从左向右看,每次运算加一个括号。

2.三角函数

CAD其实都是几何图形,那几何图形是离不开三角函数的,而Lisp是自带了三角函数计算的,下面是常用的几个:

圆周率的表示:直接用英文’pi’表示,很简单,Lisp中自带的三角函数都是用弧度表示而不是角度,这点要注意,我发现只有下列3个三角函数,其余都要靠用这3个函数来计算。

正弦函数:(cos pi)=-1

正切函数:(sin (/ pi 2))=1,我测试了下(sin pi)近似为0.0016。

反正切函数:(atan 1)=0.785,其实就是pi/4

3.角度与弧度的相互转化

弧度转角度的函数是angtos,角度转弧度是angtof,下面是它们的使用方法:

(angtof “45” 3)=3.141,就是把45度转化为了弧度,其实就是pi,里面的那个3是指输出的弧度保留几位小数,3就是3位,所以是3.141

(angtos -4.1 0 1)=”-125.1″,第一个参数-4.1就是弧度,第二个参数是0,这个不用深究,是计数的一种表示,照写就行,第三个参数1就是要保留几位小数。

值得注意的是角度都要用英文的双引号“”表示,其本质是Lisp把角度当作字符串。所以不能直接把得出的值进行数学运算,要转化一下,这个后面再说。

4.四舍五入

Lisp自带的函数是rtos,它的用法如下:

(rtos 10.154 2 1)=10.2,第一个参数10.154不说了,要操作的值,第二个参数2也不必深究,,第三个参数1就是要保留小数位了,1就是保留一位。

以上都学会了吗?一定要学会啊。

发表评论