|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://anggtwu.net/LUA/Escadas1.lua.html
-- http://anggtwu.net/LUA/Escadas1.lua
-- (find-angg "LUA/Escadas1.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- Integrais de funções escada.
-- (defun i2 () (interactive) (find-angg "LUA/Indent2.lua"))
-- (defun p3 () (interactive) (find-angg "LUA/Pict3.lua"))
-- (defun e1 () (interactive) (find-angg "LUA/Escadas1.lua"))
-- (defun o () (interactive) (find-angg "LUA/Pict2e1-1.lua" "FromYs"))
-- Used in:
-- (c2m232p1p 4 "questao-5-grids")
-- (c2m232p1a "questao-5-grids")
-- (c2m232p1p 9 "questao-5-gab")
-- (c2m232p1a "questao-5-gab")
-- Supersedes:
-- (find-angg "LUA/Pict2e1-1.lua" "FromYs")
-- «.vmatrix» (to "vmatrix")
-- «.vmatrix-tests» (to "vmatrix-tests")
-- «.FromYs» (to "FromYs")
-- «.FromYs-test-1» (to "FromYs-test-1")
-- «.FromYs-test-2» (to "FromYs-test-2")
require "Indent2" -- (find-angg "LUA/Indent2.lua")
require "Pict3" -- (find-angg "LUA/Pict3.lua")
require "Piecewise2" -- (find-angg "LUA/Piecewise2.lua")
-- «vmatrix» (to ".vmatrix")
Pict.__index.vmatrix = function (p)
local f = function (o) return Pict {o, "\\\\"} end
return Pict(map(f, p)):wrapbe("\\begin{matrix}", "\\end{matrix}")
end
-- «vmatrix-tests» (to ".vmatrix-tests")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Escadas1.lua"
p = Pict {"a", "b", "c"}
= p:vmatrix()
= p:vmatrix():em()
= p:vmatrix():em():show("")
= p:vmatrix():em():show("", {scale=2})
= Show.log
= Show.bigstr
* (etv)
--]]
-- _____ __ __
-- | ___| __ ___ _ __ __\ \ / /__
-- | |_ | '__/ _ \| '_ ` _ \ V / __|
-- | _|| | | (_) | | | | | | |\__ \
-- |_| |_| \___/|_| |_| |_|_||___/
--
-- «FromYs» (to ".FromYs")
-- Based on: (c2m221p1p 7 "escadas-defs")
-- (c2m221p1a "escadas-defs")
-- (c2m221p1p 8 "escadas-gab")
-- (c2m221p1a "escadas-gab")
-- (find-angg "LUA/Pict2e1-1.lua" "FromYs")
--
FromYs = Class {
type = "FromYs",
from = function (o) return FromYs(o) end,
fromys = function (ys) return FromYs {ys=ys} end,
__tostring = function (fry) return mytostringv(fry) end,
__index = {
setYs = function (fry)
fry.Y0 = fry.Y0 or 0
fry.Ys = HTable {fry.Y0}
for i,y in ipairs(fry.ys) do
local lastY = fry.Ys[#fry.Ys]
table.insert(fry.Ys, lastY+y)
end
return fry
end,
setranges = function (fry)
fry.xmax = fry.xmax or #fry.ys
fry.ymax = fry.ymax or foldl1(max, fry.ys)
fry.ymin = fry.ymin or foldl1(min, fry.ys)
fry.Ymax = fry.Ymax or foldl1(max, fry.Ys)
fry.Ymin = fry.Ymin or foldl1(min, fry.Ys)
return fry
end,
setyspec = function (fry)
fry.yspec = ""
local hxfmt = " (%s,%s)c--(%s,%s)o"
local hx = function (x, y) return format(hxfmt, x-1,y, x,y) end
for x,y in ipairs(fry.ys) do fry.yspec = fry.yspec .. hx(x, y) end
return fry
end,
setYspec = function (fry)
local xY = function (x) return format("(%s,%s)", x, fry.Ys[x+1]) end
fry.Yspec = mapconcat(xY, seq(0, #fry.Ys-1), "--")
return fry
end,
setall = function (fry)
return fry:setYs():setranges():setyspec():setYspec()
end,
--
pict = function (fry, ymin, ymax, spec)
PictBounds.setbounds(v(0,ymin), v(fry.xmax,ymax))
return PwSpec.from(spec):topict():pgat("pgatc")
end,
ypict = function (fry) return fry:pict(fry.ymin, fry.ymax, fry.yspec) end,
Ypict = function (fry) return fry:pict(fry.Ymin, fry.Ymax, fry.Yspec) end,
ygrid = function (fry) return fry:pict(fry.ymin, fry.ymax, "") end,
Ygrid = function (fry) return fry:pict(fry.Ymin, fry.Ymax, "") end,
grid = function (fry,ymin,ymax) return fry:pict(ymin, ymax, "") end,
},
}
-- «FromYs-test-1» (to ".FromYs-test-1")
--[[
* (show2-use "~/LATEX/Show2.tex")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Escadas1.lua"
usepackages.edrx21 = true
fry = FromYs.from {ys={0,1,2,1,0}, Y0=-2}
= fry:setall()
= fry:ypict()
= fry:Ypict()
p = Pict {
fry:ypict(),
fry:Ypict(),
fry:Ygrid(),
fry:grid(-1, 1)
} :vmatrix()
= p
= p:em():show0("", {scale=0.5})
= p:em():show ("", {scale=0.5})
* (etv)
= Show.log
= Show.bigstr
--]]
-- «FromYs-test-2» (to ".FromYs-test-2")
--[[
* (show2-use "~/LATEX/Show2.tex")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Escadas1.lua"
usepackages.edrx21 = true
fry = FromYs.from {ys={0,-1,1,-2,2,-3,3,-3,2,-2,1,-1,0}, Y0=-2} :setall()
fry = FromYs.from {ys={0,-1,-3,3,1,0,1,2,1,0,-1,-2,-1,0}, Y0=-2} :setall()
-- = fry:ypict():show("")
-- = fry:Ypict():show("")
** (etv)
p = Pict {
fry:ypict() :sa("fig f"),
fry:Ypict() :sa("fig F"),
fry:grid(-4,4):sa("grid F"),
Pict { "\\ga{fig f}",
"\\ga{fig F}",
"\\ga{grid F}",
} :vmatrix(),
}
= p:show("", {scale=0.3})
* (etv)
--]]
-- Local Variables:
-- coding: utf-8-unix
-- End: