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数学函数库的更多相关文章

  1. [lua]紫猫lua教程-命令宝典-L1-01-03. 数值数据

    lua5.3在线手册地址  https://cloudwu.github.io/lua53doc/contents.html#contents 其实我们直接啃手册就够了 推荐如果有基础的先啃手册再看紫 ...

  2. [lua]紫猫lua教程-命令宝典-L1-01-02. 变量

    L1[变量]01. 变量命名规则 命名规则:数字字母下划线构成 但是不能数字开头 不推荐中文名 很多都是不支持中文 但是在一些其他的编辑器里面 比如触摸精灵 之类的 就可以 注意 :变量命名必须要包含 ...

  3. [lua]紫猫lua教程-命令宝典-L1-01-01. Lua环境与IDE

    网上大把的lua教程  不过紫猫老师的教程向来都是讲的非常仔细 所以最近天气已经36+了 魔兽世界还需要冲飞行声望  懒得写单子根本没有单子,正好认认真真的看下紫猫老师的lua教程 紫猫老师的lua教 ...

  4. [lua]紫猫lua教程-命令宝典-L1-01-04. 字符串数据

    L1[字符串]01. 单引号与双引号 没什么说得 字符串:以双引号包含 或者单引号包含 或者[[]]包含 L1[字符串]02. 长文本内容 小知识:如果用[[]]包含字符串内容 但是字符串内容里面 包 ...

  5. [lua]紫猫lua教程-命令宝典-L1-01-10. 自定义函数

    L1[function]01. 定义与调用函数 函数的定义 和概念 没什么可说的 lua的函数声明和调用是有先后顺序的  先声明后调用 函数就是变量的一种 所以可以自由的把函数在变量间相互赋值 不过注 ...

  6. [lua]紫猫lua教程-命令宝典-L1-01-07. table表

    L1[table]01. table表的定义与赋值 小知识:声明表的例子 xx={}--创建一个空表xx --给这表的元素赋值 test="a" xx[test]="a& ...

  7. [lua]紫猫lua教程-命令宝典-L1-01-11. lua的个人补充

    1.关于三目运算符的一些补充和纠正 前面没看仔细  a>b ? a: b 这个形式 似乎lua下并不存在...要了命 一般都是使用  a and b or c 的形式 但是这种形式存在一些问题 ...

  8. [lua]紫猫lua教程-命令宝典-L1-03-01. 闭包

    L1[闭包]01. 函数的传递赋值 没什么说的 1.函数作为变量来看 可以轻松的声明 相互赋值 2.函数变量本质是 一个内存指针 所以函数变量的相互赋值不是传递的函数本身 而是指向这个函数的内存地址 ...

  9. [lua]紫猫lua教程-命令宝典-L1-01-09. string字符串函数库

    L1[string]01. ASCII码互转 小知识:字符串处理的几个共同的几点 1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用 2.所 ...

随机推荐

  1. [HNOI2015]接水果[整体二分]

    [HNOI2015]接水果 给出一个树上路径集合\(S\) 多次询问\(x,y\)中的\(k\)小值 如果你问我数列上那么我会 树上的话 树上差分了吧直接?- 令 \(st_x<st_y\) 1 ...

  2. 最简单的githut操作命令

    创建SSH Key: 参考:https://blog.csdn.net/weixin_30345055/article/details/95139358 在用户目录下,看看有没有.ssh文件夹,如果有 ...

  3. 字符串问题----去掉字符串中连续出现K个0的子串

    去掉字符串中连续出现K个0的子串 给定一个字符串str,和一个整数k, 如果str中正好有连续K 个'0'字符出现,把连续的 k 个 '0'去掉,返回处理后的子串. [解题思路] 1. 定义两个变量, ...

  4. mysql 时间,时间戳,字符串之间相互转换

    时间转字符串 date_format(now(),'%Y-%m-%d') 时间转时间戳 unix_timestamp(now()) 字符串转时间 str_to_date('2020-01-19','% ...

  5. vue router的嵌套使用与传值的query方式

    嵌套路由 当我们不满足与 /home这种路由,而是希望通过 /home/news和/home/message访问一些内内容 那么就需要嵌套路由了 实现嵌套路由有两个步骤: ·创建对应的子组件,并且在路 ...

  6. poj1000-1009小结

    poj1000-1009小结 poj1000-1009小结 poj1000 AB poj1001 Exponentiation poj1002 poj1003 poj1004 Financial Ma ...

  7. php实现简易留言板效果

    首先是Index页面效果图 index.php <?php header('content-type:text/html;charset=utf-8'); date_default_timezo ...

  8. MPI Maelstrom POJ - 1502 floyd

    #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> usin ...

  9. rp算法 随机化 刷题记录

    刷随机化是真的会上瘾quq 洛谷P3973 [TJOI2015]线性代数 看oiwiki上说可以随机化...于是... 就随机在a[i]上选一位取反,然后更新答案,最后输出答案. ...无话可说 代码 ...

  10. 安装 centos8.1

    阿里云镜像下载链接 http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 选择 CentOS-8.1.1911-x86_64-dvd1.iso ...