《Programming in Lua 3》读书笔记(十四)

2023-11-01

日期:2014.7.22
Programming in Lua 3 的第二部分已经看完了,现在进入第三部分:标准库的阅读

PartⅢ     The Standard Libraries
18 The Mathematical Library
标准数学库
math 库包含如三角函数(sin,cos,tan),取幂和对数(exp,log,log10),伪随机函数(random,randomseed)等。
默认情况下,math库中的三角函数使用的是弧度制(radian),但是可以通过deg和rad函数在角度(degree)和弧度(radian)之前进行转换。而且可以通过重新定义三角函数实现使用角度制进行运算:

e.g.
do
     local sin,asin = math.sin,math.asin
     local deg,rad = math.deg,math.rad
     math.sin = function ( x )
          return sin(rad(x))
     end
     math.asin = function ( x )
          return deg(asin(x))
     end
end

使用do end 结构实现一个chunk,使现有的改动不影响其余地方对math库的影响。


math.random函数的使用
有三种使用方法:不带参数、带一个参数、带两个参数。
1、不带参数

--no param
local a = math.random()
print(a)          -- [0,1)之间的随机一个数

不带参数的时候,该函数返回[0,1)之间的一个数

2、带一个参数

--one param
a = math.random(6)
print(a)          --[1,6] 之间的一个数

带一个参数的时候,返回值为1至传递的参数直接的一个数

3、两个参数

--two param
a = math.random(6,10)
print(a)          --[6,10]

返回两个参数之间(可等于)的随机数

math.randomseed函数
可以设置随机数种子,使得每次调用的随机数会依据种子的不同而产生不同的随机数,可控。如果不设置随机数,直接使用random函数,会使得每次运行程序得到的随机数为同一个随机数,而加入了随机数种子通过设置不同的种子便可以得到不同的随机数。通常将随机数种子设置为系统时间是一个不错的选择:
math.randomseed(os.time())

转载于:https://www.cnblogs.com/zhong-dev/p/4044571.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Programming in Lua 3》读书笔记(十四) 的相关文章

  • lua_resume 的 from 参数的含义

    From Lua 5 2 参考手册 http www lua org manual 5 2 manual html lua resume int lua resume lua State L lua State from int nargs
  • 使用 FastCGI 运行 Lua 脚本

    我目前正在尝试找出使用 FastCGI 与 lighttpd 或 Nginx 一起运行 Lua 脚本的方法 我唯一能挖到的是WSAPI http keplerproject github com wsapi 开普勒计划的一部分 但我想知道是
  • 在Lua中获取前一天的日期

    谁能告诉我如何使用 Lua 获取 YYYY MM DD 格式的前一天日期 即 一个片段 它将返回运行当天的前一天的日期 Try print os date Y m d os time 24 60 60 严格来说 这只能保证在 POSIX 系
  • Lua 将字符串转换为数字 - 取决于语言环境

    刚刚注意到字符串 and tonumber 在 Lua 中是依赖于语言环境的 知道如何在不使用的情况下将字符串转换为数字tonumber 谢谢 例如将字符串 58 5 转换为 58 5 另外 当我尝试将带点的数字传递给函数时 该函数会转换
  • Lua 访问表的键和值

    我想在关卡编辑器中读取 Lua 文件 这样我就可以以可视化格式显示其数据供用户编辑 如果我有一个像这样的 Lua 表 properties Speed 10 TurnSpeed 5 Speed显然是关键并且10价值 我知道如果我知道像这样的
  • 如何通过 C API 在自己的环境中执行不受信任的 Lua 文件

    我想通过调用在其自己的环境中执行不受信任的 lua 文件lua setfenv http pgl yoyo org luai i lua setfenv这样它就不会影响我的任何代码 该函数的文档仅解释了如何调用函数 而不解释如何执行文件 目
  • LuaJ 导入 Lua 方法

    我正在使用 LuaJ 并且我有一个 lua文件充满了一堆函数 如何通过 LuaJ 导入这些函数以在 Java 中使用 一种选择是将文件编译为 Java 代码并导入它 另一种方法是使用可嵌入解释器直接从 Java 代码中调用 Lua 文件 E
  • 关闭 Löve2D 中的抗锯齿功能

    我在用着L ve2D http love2d org用于编写一个小游戏 L ve2D 是 Lua 的开源游戏引擎 我遇到的问题是 当您在非整数位置绘制精灵时 某些抗锯齿过滤器会自动应用于精灵 love graphics draw sprit
  • Lua中有状态迭代器和无状态迭代器的区别

    Lua中无状态和有状态迭代器有什么区别 请详细解释一下 什么时候需要使用无状态 什么时候需要使用另一种 我需要例子来理解这个概念 首先让我们就一个定义达成一致 在 Lua 中 迭代器是function 类似对象 每次调用时都会返回序列中的下
  • 推送 Lua 表

    我已经创建了一个Lua表C 但我不知道如何将该表推入堆栈顶部 以便我可以将其传递给 Lua 函数 有谁知道如何做到这一点 这是我当前的代码 lua createtable state libraries size 0 int table i
  • 如何在 Lua - Lightroom 插件中使用 HMAC

    首先我要提的是我对 Lua 真的很陌生 如果你认为我的问题太愚蠢 请耐心等待 这是我的要求 我需要使用 HMAC sha256 进行 Lightroom 插件开发 因为我使用它是为了安全 我试图使用这个但没有运气https code goo
  • 如何使用 Lua 运行可执行文件?

    我有一个可执行文件想要使用 Lua 运行 我该怎么做 似乎无法在任何地方找到有关此的任何文档 您可以使用 Lua 原生的 执行 命令 Example os execute c temp program exe 资料来源 Lua 指南 os
  • lua 和 walk_block 中的 pandoc 过滤器

    我正在尝试应用一个 LUA 过滤器 该过滤器只会更改文档的正文 而不影响元数据 而且比我想象的要难 过滤器应将文本添加到内联元素和块元素的前面和后面 如果它适用于内联元素 这里Code 对于块元素失败CodeBlock function P
  • 云到设备 Azure IoT REST API

    我探索了如何使用 Azure REST API 将数据从设备发送到云 它运行无缝 没有任何问题 我没有找到有关使用 Azure IoT Hub REST API 向 Arduino 板发送云到设备消息的好文章 有人可以就此提供建议吗 您还可
  • 从命令行运行 vlc 扩展

    我有一个用 Lua 编写的 vlc 扩展 我知道如何从 GUI 运行它 查看 gt 我的扩展 我想从命令行运行它 这样我就不需要每次都启动X 它还没有实施 查看门票 3883 https trac videolan org vlc tick
  • 在 Lua/LuaFileSystem 中创建一个新文件

    我已经查看了 Lua 和 LuaFileSystem 文档 但尚未找到创建新文件的方法 我也在这里四处寻找 但目的相同 请注意 我正在寻找的解决方案必须与操作系统无关 以确保可移植性 但我很高兴针对不同的系统获得不同的答案 示例 将 Hel
  • 将值存储在 lua 的 userdata 对象中

    我想做的是这样的 object foo bar print object foo 其中 对象 是用户数据 我已经用谷歌搜索了一段时间 使用关键字 newindex 和 lua rawset 但我找不到任何可以实现我想要的功能的示例 我想用
  • luajit2.0.0 -- 分段错误:11

    我使用一个简单的例子http lua users org wiki SimpleLuaApiExample http lua users org wiki SimpleLuaApiExample进行测试 该示例可以成功静态链接libluaj
  • 构建自动化和 MySQL Workbench 脚本:正向工程师 SQL CREATE SCRIPT

    我目前正在研究自动化软件构建过程 其中包括 MySQL Workbench 中定义的数据库架构 使用 Workbench 的脚本编写功能 我想打开一个 Workbench 文档并将其架构导出为 SQL CREATE 脚本 我想知道是否有一个
  • 我需要对 Metatable.__index 进行澄清

    我之前问过为什么 Lua 没有找到我的元表方法 并被告知通过设置 index到我的元表 它会解决问题 所以我假设调用时的方法是按元表中的索引搜索的 但现在我遇到了一个问题 我需要使用索引括号 and 在我的元表上 所以 index被分配从其

随机推荐