Lua和cos的问题?
我已经在论坛上重写了我以前的代码,这是为TI Nspire Calculator设计的,它将解决三角形中所有缺少的边和角,然后用提供的度量值或边/角在右侧绘制三角形。当我在a、B、C、a字段中输入数据时,解决方案查找器出现问题,b、 c它不会计算任何缺失的边或面积/周长。我可以单击enter,它不会崩溃或解决任何问题。但是,如果我填充所有字段,我的If语句会出错,在此之前,我的cos^1会出错。代码如下Lua和cos的问题?,lua,Lua,我已经在论坛上重写了我以前的代码,这是为TI Nspire Calculator设计的,它将解决三角形中所有缺少的边和角,然后用提供的度量值或边/角在右侧绘制三角形。当我在a、B、C、a字段中输入数据时,解决方案查找器出现问题,b、 c它不会计算任何缺失的边或面积/周长。我可以单击enter,它不会崩溃或解决任何问题。但是,如果我填充所有字段,我的If语句会出错,在此之前,我的cos^1会出错。代码如下 platform.apilevel = '2.3' A,B,C,a,b,c,Per
platform.apilevel = '2.3'
A,B,C,a,b,c,Perimeter,Area=1,2,3,4,5,6,7,8
values = {0,0,0,0,0,0,0,0}
selection=1
function on.arrowKey(key)
if key=="up" then
selection=selection-(selection>1 and 1 or -7)
elseif key=="down" then
selection=selection%8+1
end
platform.window:invalidate()
end
function on.paint(gc)
gc:setColorRGB(0,0,0)
gc:fillRect(0,0,318,212)
gc:setFont("sansserif", "r", 12)
gc:setColorRGB(0,200,0)
gc:drawString("Welcome Right Triangle Solver V:1",37,-2)
gc:setColorRGB(200,0,0)
gc:setFont("sansserif","i",6)
gc:drawString("Created by: ApprenticeCoder And Ldstudios Of tifreakware.net",30,16)
gc:setFont("sansserif","b",12)
gc:drawString("Only Click",16,160)
gc:drawString("Enter Once!",10,180)
gc:drawRect(6,160,98,44)
gc:drawRect(5,32,100,125)
gc:drawRect(151,32,165,178)
gc:drawRect(151,45,165,165)
gc:setFont("sansserif","i",6)
gc:drawString("Section For Drawing Triangle",173,32)
gc:setColorRGB(200,0,0)
for i,v in ipairs({"A","B","C","a","b","c","Perimeter","Area"}) do
gc:setFont("serif","r",12)
if selection==i then
gc:setFont("serif","b",12)
end
gc:drawString(v..": "..values[i],10,15+15*i)
end
end
function on.charIn(char)
if char:find("%d") then
values[selection]=tonumber(values[selection]..char)
platform.window:invalidate()
end
end
function on.backspaceKey()
values[selection]=string.sub(tostring(values[selection]),0,-2)
if values[selection]:find("%d") then
values[selection]=tonumber(values[selection])
else
values[selection]=0
end
platform.window:invalidate()
end
function on.enterKey()
if values[A]==0 and values[B]~=0 and values[C]~=0 and values[a]~=0 then
values[A]=math.sqrt(values[B]^2+values[C]^2-((2*values[B]*values[C])*math.cos(values[a])))
elseif values[B]==0 and values[A]~=0 and values[C]~=0 and values[b]~=0 then
values[B]=math.sqrt(values[A]^2+values[C]^2-((2*values[A]*values[C])*math.cos(values[b])))
elseif values[C]~=0 and values[A]~=0 and values[B]~=0 and values[c]~=0 then
values[C]=math.sqrt(values[A]^2+values[B]^2-((2*values[A]*values[B])*math.cos(values[c])))
end
if values[a]==0 and values[A]~=0 and values[B]~=0 and values[C]~=0 then
values[a]=(math.cos^-1)((values[B]^2+values[C]^2-values[A]^2)/(2*values[B]*values[C]))
elseif values[b]==0 and values[A]~=0 and values[B]~=0 and values[C]~=0 then
values[b]=(math.cos^-1)((values[A]^2+values[C]^2-values[B]^2)/(2*values[A]*values[C]))
elseif values[c]==0 and values[A]~=0 and values[B]~=0 and values[C]~=0 then
values[c]=(math.cos^-1)((values[A]^2+values[B]^2-values[C]^2)/(2*values[A]*values[B]))
end
if values[Perimeter]==0 and values[A]~=0 and values[B]~=0 and values[C]~= 0 then
values[Perimeter]=values[A]+values[B]+values[C]
end
if values[Area]==0 and values[A]~=0 and values[B]~=0 and values[C]~=0 then
s=((values[A]+values[B]+values[C])/2)
values[Area]=math.sqrt(s*(s-values[A])(s-values[B])(s-values[C]))
end
platform.window:invalidate()
end
你好像在用余弦定律。在本例中,您希望使用
math.acos
而不是math.cos^-1
在您的示例中,我没有看到任何可以进行任何类型计算的代码。我的错误是,我剪切了代码来测试其余代码,现在一切都结束了。math.cos^-1
这是无效的。什么是“一个-1的幂函数”?math.cos()^1呢?