[lua]紫猫lua教程-命令宝典-L1-01-08. math数学函数库

L1[math]01. 取绝对值
L1[math]02. 三角函数
小知识:注意 lua下三角函数用的参数是弧度 而不是角度
弧度=角度*pi/180 -->弧度角度换算公式 lua的math库里面也有 弧度和角度转换的2个函数 也可以直接使用 math.rad (x) math.deg (x)
我们要求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=0
y1=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 result
end
print(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 result
end
print(isint("12"))
print(isint("12.54"))
print(isint(12))
print(isint("fds"))
123
L1[math]05. 取随机数
小知识:伪随机的基本原理
种子设置的参数为准 将这个参数带入到math.random()以固定的公式来获取随后的随机数
如果种子设置的参数都是3 那么后面得出的随机数都是一样的
x=3
math.randomseed(x)
for i=1,5 do
print(math.random(-50,50))
end
结果
-28
-22
-22
-29
22
程序于 0.19 秒完成 (pid: 5728).
我们再次运行一次结果依然
-28
-22
-22
-29
22
程序于 0.19 秒完成 (pid: 2740).
结论:为了避免这种伪随机的情况 随机数种子函数的参数必须保持不断的变化
解决办法就是 math.randomseed(os.time()) 当然这种也是有漏洞的 不过大部分时候都管用
经过测试 每个源码 只需要再开头设置下随机数种子就够了
123
[lua]紫猫lua教程-命令宝典-L1-01-08. math数学函数库的更多相关文章
- [lua]紫猫lua教程-命令宝典-L1-01-03. 数值数据
lua5.3在线手册地址 https://cloudwu.github.io/lua53doc/contents.html#contents 其实我们直接啃手册就够了 推荐如果有基础的先啃手册再看紫 ...
- [lua]紫猫lua教程-命令宝典-L1-01-02. 变量
L1[变量]01. 变量命名规则 命名规则:数字字母下划线构成 但是不能数字开头 不推荐中文名 很多都是不支持中文 但是在一些其他的编辑器里面 比如触摸精灵 之类的 就可以 注意 :变量命名必须要包含 ...
- [lua]紫猫lua教程-命令宝典-L1-01-01. Lua环境与IDE
网上大把的lua教程 不过紫猫老师的教程向来都是讲的非常仔细 所以最近天气已经36+了 魔兽世界还需要冲飞行声望 懒得写单子根本没有单子,正好认认真真的看下紫猫老师的lua教程 紫猫老师的lua教 ...
- [lua]紫猫lua教程-命令宝典-L1-01-04. 字符串数据
L1[字符串]01. 单引号与双引号 没什么说得 字符串:以双引号包含 或者单引号包含 或者[[]]包含 L1[字符串]02. 长文本内容 小知识:如果用[[]]包含字符串内容 但是字符串内容里面 包 ...
- [lua]紫猫lua教程-命令宝典-L1-01-10. 自定义函数
L1[function]01. 定义与调用函数 函数的定义 和概念 没什么可说的 lua的函数声明和调用是有先后顺序的 先声明后调用 函数就是变量的一种 所以可以自由的把函数在变量间相互赋值 不过注 ...
- [lua]紫猫lua教程-命令宝典-L1-01-07. table表
L1[table]01. table表的定义与赋值 小知识:声明表的例子 xx={}--创建一个空表xx --给这表的元素赋值 test="a" xx[test]="a& ...
- [lua]紫猫lua教程-命令宝典-L1-01-11. lua的个人补充
1.关于三目运算符的一些补充和纠正 前面没看仔细 a>b ? a: b 这个形式 似乎lua下并不存在...要了命 一般都是使用 a and b or c 的形式 但是这种形式存在一些问题 ...
- [lua]紫猫lua教程-命令宝典-L1-03-01. 闭包
L1[闭包]01. 函数的传递赋值 没什么说的 1.函数作为变量来看 可以轻松的声明 相互赋值 2.函数变量本质是 一个内存指针 所以函数变量的相互赋值不是传递的函数本身 而是指向这个函数的内存地址 ...
- [lua]紫猫lua教程-命令宝典-L1-01-09. string字符串函数库
L1[string]01. ASCII码互转 小知识:字符串处理的几个共同的几点 1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用 2.所 ...
随机推荐
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- 【3】Python中的广播
Python-numpy中有一种很高效的方法:广播. 下面介绍一下广播. 实例:对于这个矩阵,如果想求每列元素的和,怎么才能不用for循环? (1,4)指的是一行四列的矩阵:axis决定了是横向(行 ...
- bugkuCTF-管理员系统(IP伪造)
题目地址:http://123.206.31.85:1003/ 登进去是一个管理员后台登录的样子 试了sql的万能密码,发现进不了,而且下面还报错了ip禁止 禁止了我们的ip,但是他本地的ip肯定没有 ...
- Selenium3+python自动化016-多线程
1.进程 什么是进程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基 ...
- UML 工具 Dia
linux下一款不错的流程图工具:dia. dia是一款非常优秀的制图工具,可以用于绘制 类图,流程图等等 安装此工具: 1.打开终端(快捷键:ctrl+alt+t). 2.输入命令:$sudo ap ...
- .NetCore学习笔记:三、基于AspectCore的AOP事务管理
AOP(面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑 ...
- php文件操作(最后进行文件常用函数封装)
文件信息相关API $filename="./1-file.php"; //filetype($filename):获取文件的类型,返回的是文件的类型 echo '文件类型为:', ...
- Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目
1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...
- php 公众号开发
思考: 1,优先使用php扩展库的sdk,配合微信文档. 2,公众号开发比较简单,重在业务. 公众号关联与消息分发 <?php namespace app\wap\controller; use ...
- AOPS论坛上100+100个积分
100+10 rare and irresistible integrals I bring you many beautiful integrals that I have collected ov ...