You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MiniScript中所有数字添加rad和deg转换方法?

在MiniScript中为数字添加角度/弧度转换方法以支持链式调用

在MiniScript中,你可以通过扩展内置的Number类型,为所有数字变量添加rad(角度转弧度)和deg(弧度转角度)方法,完美支持链式调用需求。具体实现步骤如下:

1. 扩展Number类型的方法

MiniScript提供了addMethod方法,可以直接给内置类型添加自定义方法。在全局作用域中执行以下代码:

// 确保math模块可用(部分MiniScript环境默认已加载)
import math

// 为数字添加角度转弧度方法
Number.addMethod("rad", function()
    return this * math.pi / 180
end)

// 为数字添加弧度转角度方法
Number.addMethod("deg", function()
    return this * 180 / math.pi
end)

// 可选:添加三角函数方法,让链式调用更完整(对应你的`rad.sin`需求)
Number.addMethod("sin", function()
    return math.sin(this)
end)

Number.addMethod("cos", function()
    return math.cos(this)
end)

2. 链式调用示例

现在你可以直接用面向对象的链式写法处理Sprite旋转:

// 假设MySprite是你的Sprite实例,rotation存储的是角度值
rotationSin = MySprite.rotation.rad.sin
rotationCos = MySprite.rotation.rad.cos

// 反向转换示例:将弧度值转回角度
radianValue = math.pi/2
degreeValue = radianValue.deg  // 结果为90

3. 原理说明

  • 每个方法中的this指代当前的数字实例,调用后返回计算后的数值(依然是Number类型,因此继承了所有扩展方法)
  • 这种方式完全不破坏原有链式调用结构,所有数字变量(包括Sprite的rotation属性值)都能直接调用这些方法
  • 相比手动写*pi/180,.rad和.deg的语义更清晰,避免了转换方向混淆的问题

内容的提问来源于stack exchange,提问作者TurtleZero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:04:57