博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[lua]紫猫lua教程-命令宝典-L1-01-08. math数学函数库
阅读量:5364 次
发布时间:2019-06-15

本文共 2029 字,大约阅读时间需要 6 分钟。

L1[math]01. 取绝对值

L1[math]02. 三角函数

小知识:注意 lua下三角函数用的参数是弧度 而不是角度

弧度=角度*pi/180  -->弧度角度换算公式  lua的math库里面也有 弧度和角度转换的2个函数 也可以直接使用    

我们要求30度的sin值  那么

print(math.sin(30*math.pi/180))

小知识:知道半径和圆心 如何遍历出圆上的所有点 对于常见的鼠标轨迹 还是有点用处的

圆心坐标(x0,y0) 半径为r

角度为a

圆上任意一点坐标公式

x1=x0+r*cos(a)

y1=y0+r*sin(a)

lua下的取圆上坐标的源码

--圆心坐标x0=100 y0=100--半径r=50--圆上点初始坐标x1=0y1=0--10度一个间隔输出圆上坐标for a=0,360,10 do    x1=x0+r*math.cos(a*math.pi/180)    y1=y0+r*math.sin(a*math.pi/180)        print(a .."°",x1,y1)end

123

L1[math]03. 取整数

10 //4 =2

L1[math]04. 取余数

print(math.fmod(12,4))

补充知识:以前的table.pack 和table.unpack的用法

table.pack  把参数里面的内容变成1个数字索引表

table.unpack  把参数表的元素一个个返回 相当于return list[i], list[i+1], ···, list[j]

常见用途就是用在了函数的参数 功能和 …类似

小知识:转化为整数 类似按键的isnumeric()函数 检测是否是整数 只要不能转换为整数的返回nil 但是这个是5.3独有的函数

print(math.tointeger("12"))--12

print(math.tointeger(14))—14

自己写了一个判断是否是数值(不是整数)函数

function isnumeric(x)    local temp=tonumber(x)     local result    --print(temp)    if (temp) then        result=true    else    result=false    end     return resultendprint(isnumeric(12))print(isnumeric("12fsdf"))print(isnumeric("as12fsdf"))print(isnumeric("12"))

判断是否是整数的小函数

function isint(x)    local temp=tonumber(x)     local result    --print(temp)    if (temp) then                --这里判断是数值了 进一步判断是否是整数        --print(tostring(temp),tostring(math.floor(temp)))        if (tostring(temp)==tostring(math.floor(temp))) then            result=true            else            result=false        end    else        result=false    end     return resultendprint(isint("12"))print(isint("12.54"))print(isint(12))print(isint("fds"))

123

L1[math]05. 取随机数

小知识:伪随机的基本原理

种子设置的参数为准  将这个参数带入到math.random()以固定的公式来获取随后的随机

如果种子设置的参数都是3  那么后面得出的随机数都是一样的

x=3math.randomseed(x)for i=1,5 do    print(math.random(-50,50))end
结果
-28-22-22-2922程序于 0.19 秒完成 (pid: 5728).

我们再次运行一次结果依然

-28-22-22-2922程序于 0.19 秒完成 (pid: 2740).

结论:为了避免这种伪随机的情况 随机数种子函数的参数必须保持不断的变

解决办法就是 math.randomseed(os.time())  当然这种也是有漏洞的 不过大部分时候都管用

经过测试 每个源码 只需要再开头设置下随机数种子就够了

123

转载于:https://www.cnblogs.com/zjl8455482/p/11191734.html

你可能感兴趣的文章
oracle 简述
查看>>
ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
查看>>
Solr之java实现增删查操作
查看>>
httpClient连接工具类实测可用
查看>>
CDOJ 1965 连通域统计【DFS】
查看>>
飞机大战3-我的飞机
查看>>
c#接口
查看>>
MyEclipse部署Jboss出现java.lang.OutOfMemoryError: PermGen space
查看>>
ZOJ 1133
查看>>
HIVE和HADOOP的一些东西
查看>>
alibaba / zeus 安装 图解
查看>>
Planned Delivery Time as Work Days (SCN discussion)
查看>>
Ubuntu:让桌面显示回收站
查看>>
Android上传头像代码,相机,相册,裁剪
查看>>
git 安装体验
查看>>
Oracle 给已创建的表增加自增长列
查看>>
《DSP using MATLAB》Problem 2.17
查看>>
if 循环
查看>>
uva 111 History Grading(lcs)
查看>>
Python学习week2-python介绍与pyenv安装
查看>>