-- 创建父窗口
local win = GUI:Win_Create("TrigWin", 100, 100, 200, 200, false, false, true, false, false, false, 1)
-- 正弦按钮
local btnSin = GUI:Button_Create(win, "btn_sin", 10, 10, "res/public/1900000612.png")
GUI:Button_setTitleText(btnSin, "sin(30°)")
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-16 13:18:02 |
👁️ 阅读: 6
根据浮生梦老师前端课程内容,我来创建一组三角函数操作按钮,控制同一个文本对象:
```lua
-- 创建父窗口
local win = GUI:Win_Create("TrigWin", 100, 100, 300, 300, false, false, true, false, false, false, 1)
-- 创建显示结果的文本对象
local textResult = GUI:Text_Create(win, "text_result", 10, 150, 16, "#ffffff", "结果: 0")
-- 正弦按钮
local btnSin = GUI:Button_Create(win, "btn_sin", 10, 10, "res/public/1900000612.png")
GUI:Button_setTitleText(btnSin, "sin(30°)")
GUI:addOnClickEvent(btnSin, function()
GUI:Text_setString(textResult, "sin(30°) = " .. math.sin(math.rad(30)))
end)
-- 余弦按钮
local btnCos = GUI:Button_Create(win, "btn_cos", 10, 50, "res/public/1900000612.png")
GUI:Button_setTitleText(btnCos, "cos(60°)")
GUI:addOnClickEvent(btnCos, function()
GUI:Text_setString(textResult, "cos(60°) = " .. math.cos(math.rad(60)))
end)
-- 正切按钮
local btnTan = GUI:Button_Create(win, "btn_tan", 10, 90, "res/public/1900000612.png")
GUI:Button_setTitleText(btnTan, "tan(45°)")
GUI:addOnClickEvent(btnTan, function()
GUI:Text_setString(textResult, "tan(45°) = " .. math.tan(math.rad(45)))
end)
-- 反正弦按钮
local btnAsin = GUI:Button_Create(win, "btn_asin", 120, 10, "res/public/1900000612.png")
GUI:Button_setTitleText(btnAsin, "asin(0.5)")
GUI:addOnClickEvent(btnAsin, function()
local rad = math.asin(0.5)
GUI:Text_setString(textResult, "asin(0.5) = " .. math.deg(rad) .. "°")
end)
-- 反余弦按钮
local btnAcos = GUI:Button_Create(win, "btn_acos", 120, 50, "res/public/1900000612.png")
GUI:Button_setTitleText(btnAcos, "acos(0.5)")
GUI:addOnClickEvent(btnAcos, function()
local rad = math.acos(0.5)
GUI:Text_setString(textResult, "acos(0.5) = " .. math.deg(rad) .. "°")
end)
-- 反正切按钮
local btnAtan = GUI:Button_Create(win, "btn_atan", 120, 90, "res/public/1900000612.png")
GUI:Button_setTitleText(btnAtan, "atan(1)")
GUI:addOnClickEvent(btnAtan, function()
local rad = math.atan(1)
GUI:Text_setString(textResult, "atan(1) = " .. math.deg(rad) .. "°")
end)
-- 反正切2按钮(最常用)
local btnAtan2 = GUI:Button_Create(win, "btn_atan2", 120, 130, "res/public/1900000612.png")
GUI:Button_setTitleText(btnAtan2, "atan2(1,1)")
GUI:addOnClickEvent(btnAtan2, function()
local rad = math.atan2(1, 1)
GUI:Text_setString(textResult, "atan2(1,1) = " .. math.deg(rad) .. "°")
end)
```
**功能说明:**
- 所有按钮都控制同一个`textResult`文本对象
- 三角函数按钮:计算角度对应的函数值
- 反三角函数按钮:计算函数值对应的角度(用`math.deg()`转换为度数)
- `atan2(y, x)`:最常用的反正切,能正确处理所有象限的角度
点击不同按钮,`textResult`会显示对应的计算结果,直观展示每个函数的作用。
← 返回问答库