207 lines
3.9 KiB
Lua
207 lines
3.9 KiB
Lua
--[[
|
|
Trig Gates
|
|
]]
|
|
|
|
GateActions("Trig")
|
|
|
|
GateActions["quadratic"] = {
|
|
name = "Quadratic Formula",
|
|
inputs = { "A", "B", "C" },
|
|
outputs = { "Pos", "Neg" },
|
|
output = function(gate, A, B, C)
|
|
local temp = math.sqrt(B^2 - 4*A*C)
|
|
return (-B + temp) / (2*A), (-B - temp) / (2*A)
|
|
end,
|
|
label = function(Out,A,B,C)
|
|
return ("AX^2 + BX + C\n(-%s +/- sqrt(%s^2 - 4*%s*%s)) / (2*%s) = %s,%s"):format( B, B, A, C, A, Out.Pos, Out.Neg )
|
|
end
|
|
}
|
|
|
|
GateActions["sin"] = {
|
|
name = "Sin(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.sin(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "sin("..A.."rad) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["cos"] = {
|
|
name = "Cos(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.cos(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "cos("..A.."rad) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["tan"] = {
|
|
name = "Tan(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.tan(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "tan("..A.."rad) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["asin"] = {
|
|
name = "Asin(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.asin(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "asin("..A..") = "..Out.."rad"
|
|
end
|
|
}
|
|
|
|
GateActions["acos"] = {
|
|
name = "Acos(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.acos(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "acos("..A..") = "..Out.."rad"
|
|
end
|
|
}
|
|
|
|
GateActions["atan"] = {
|
|
name = "Atan(Rad)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.atan(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return "atan("..A..") = "..Out.."rad"
|
|
end
|
|
}
|
|
|
|
GateActions["sin_d"] = {
|
|
name = "Sin(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.sin(math.rad(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "sin("..A.."deg) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["cos_d"] = {
|
|
name = "Cos(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.cos(math.rad(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "cos("..A.."deg) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["tan_d"] = {
|
|
name = "Tan(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.tan(math.rad(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "tan("..A.."deg) = "..Out
|
|
end
|
|
}
|
|
|
|
GateActions["asin_d"] = {
|
|
name = "Asin(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.deg(math.asin(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "asin("..A..") = "..Out.."deg"
|
|
end
|
|
}
|
|
|
|
GateActions["acos_d"] = {
|
|
name = "Acos(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.deg(math.acos(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "acos("..A..") = "..Out.."deg"
|
|
end
|
|
}
|
|
|
|
GateActions["atan_d"] = {
|
|
name = "Atan(Deg)",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.deg(math.atan(A))
|
|
end,
|
|
label = function(Out, A)
|
|
return "atan("..A..") = "..Out.."deg"
|
|
end
|
|
}
|
|
|
|
GateActions["rad2deg"] = {
|
|
name = "Radians to Degrees",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.deg(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return A.."rad = "..Out.."deg"
|
|
end
|
|
}
|
|
|
|
GateActions["deg2rad"] = {
|
|
name = "Degrees to Radians",
|
|
inputs = { "A" },
|
|
output = function(gate, A)
|
|
return math.rad(A)
|
|
end,
|
|
label = function(Out, A)
|
|
return A.."deg = "..Out.."rad"
|
|
end
|
|
}
|
|
|
|
GateActions["angdiff"] = {
|
|
name = "Difference(rad)",
|
|
inputs = { "A", "B" },
|
|
output = function(gate, A, B)
|
|
return math.rad(math.AngleDifference(math.deg(A), math.deg(B)))
|
|
end,
|
|
label = function(Out, A, B)
|
|
return A .. "deg - " .. B .. "deg = " .. Out .. "deg"
|
|
end
|
|
}
|
|
|
|
GateActions["angdiff_d"] = {
|
|
name = "Difference(deg)",
|
|
inputs = { "A", "B" },
|
|
output = function(gate, A, B)
|
|
return math.AngleDifference(A, B)
|
|
end,
|
|
label = function(Out, A, B)
|
|
return A .. "deg - " .. B .. "deg = " .. Out .. "deg"
|
|
end
|
|
}
|
|
|
|
GateActions["atan2"] = {
|
|
name = "Atan2",
|
|
inputs = { "A", "B" },
|
|
output = function( gate, A, B )
|
|
return math.atan2( A, B )
|
|
end,
|
|
label = function( Out, A, B )
|
|
return "atan2(" .. A .. "," .. B .. ") = " .. Out
|
|
end
|
|
}
|
|
|
|
GateActions()
|