[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.所 ...
随机推荐
- 0008 基于DRF框架开发(01 DRF开发的基本流程)
1 创建模型 由于之前在<004 工程配置>中,已在Applications/Organizations/models中创建了一个UserInfo模型.此处引用这个模型. from dja ...
- JavaDay10(下)
生产者消费者问题 问题描述 有两个进程:一组生产者进程和一组消费者进程共享一个初始为空.固定大小为n的缓存(缓冲区).生产者的工作是制造一段数据,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必 ...
- MST Unification CodeForces - 1108F
#include<iostream> #include<cstring> #include<algorithm> using namespace std; ; in ...
- C# NanUI WinFormium监听页面加载开始\结束
个人博客 地址:https://www.wenhaofan.com/article/20190501213608 因为NanUI文档中仅介绍了Formium窗口的监听,但是没有WinFormium相关 ...
- ECMAScript基本语法——⑤运算符 比较运算符
><>=<======全等于 比较运算符 Java中只能比类型相同的,JavaScript没有限制比较方式 1.类型相同:直接比较 字符串:安装字典顺序比较.按位逐一比较直到比 ...
- Postgresql Json Sql
a detailed website about json sql query; official website: here, chinese version: here Json query: - ...
- python package install error and little code bugs
When you install packages using setup.py, the error: (py37) C:\Users\weda\Phd\python packages\visibi ...
- Keep、小红书、美图…独角兽App能拿到新一轮救命钱吗?
大多数人热爱手机,不是因为时尚的外观或者结实的零部件,而是因琳琅满目的App赋予其太多的功能.智能手机最先是清理掉人类的零碎时间,现如今又开始肢解我们大块的时间,或者说,智能手机本身就是生活.在如此背 ...
- HTML连载62-固定定位练习、z-index属性
一.固定定位应用场景 1.练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- pandas处理csv,分组统计
需求: /tmp/demo/data下有10个csv文件,按col0和col1分组分别统计col2和col3总和并计算col2和col3的商 # encoding:utf-8 import panda ...