Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/LUA/Estatistica1.lua.html -- http://anggtwu.net/LUA/Estatistica1.lua -- (find-angg "LUA/Estatistica1.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun e () (interactive) (find-angg "LUA/Estatistica1.lua")) -- (defun es1 () (interactive) (find-angg "LUA/Estatistica1.lua")) -- (find-Deps1-links "Caepro4 Estatistica1") -- (find-Deps1-cps "Caepro4 Estatistica1") -- (find-Deps1-anggs "Caepro4 Estatistica1") -- 5gQ1 -- «.PictDots» (to "PictDots") -- «.PictDots-tests» (to "PictDots-tests") -- «.defcells» (to "defcells") -- «.haxisandticks» (to "haxisandticks") -- «.haxisandticks-tests» (to "haxisandticks-tests") -- «.SqP» (to "SqP") -- «.SqP-tests» (to "SqP-tests") -- «.pacocas-test» (to "pacocas-test") -- «.P2-acumulada» (to "P2-acumulada") require "Pict2e2" -- (find-angg "LUA/Pict2e2.lua") require "PictShow1" -- (find-angg "LUA/PictShow1.lua") -- (find-angg "LUA/Pict2e2.lua" "PictBounds-methods-tests") -- ____ _ _ ____ _ -- | _ \(_) ___| |_| _ \ ___ | |_ ___ -- | |_) | |/ __| __| | | |/ _ \| __/ __| -- | __/| | (__| |_| |_| | (_) | |_\__ \ -- |_| |_|\___|\__|____/ \___/ \__|___/ -- -- «PictDots» (to ".PictDots") PictDots = Class { type = "PictDots", from = function (str) local pat = "([-0-9.]+),([-0-9.]+)" local xys = VTable {} for x,y in str:gmatch(pat) do table.insert(xys, {x+0,y+0}) end return PictDots {str=str, xys=xys} end, __index = { topict = function (pds) local p = Pict {} for _,xy in ipairs(pds.xys) do p:addcloseddotat(v(xy[1], xy[2])) end return p end, }, } pdots = function (str) return PictDots.from(str):topict() end -- «PictDots-tests» (to ".PictDots-tests") --[[ ** (find-angg "LUA/Show2.lua" "texbody") ** (find-code-show2 "~/LATEX/Show2.tex") * (code-show2 "~/LATEX/Show2.tex") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" p = PictDots.from "2,3 4,-6 1.5,-2.34" = p.xys = p:topict() output = print PictBounds.setbounds(v(0,0), v(2,2)) p = pdots "(1,1) (2,1) (2,2)" = p = p:pgat("pat") p:pgat("pat", "foo"):output() = p:pgat("pat"):show() = Show.log = Show.bigstr * (etv) p:pgat("pat", "foo"):output() -- (find-angg "LUA/Pict2e2.lua" "PictBounds-tests") --]] -- «defcells» (to ".defcells") -- (find-es "tex" "picture-cells") defcells = [[ \def\cellhr#1{\hbox to 0pt {\cellfont${#1}$\hss}} \def\cellhc#1{\hbox to 0pt{\hss\cellfont${#1}$\hss}} \def\cellhl#1{\hbox to 0pt{\hss\cellfont${#1}$}} \def\cellva#1{\setbox0#1\raise \dp0 \box0} \def\cellvm#1{\setbox0#1\lower \celllower \box0} \def\cellvb#1{\setbox0#1\lower \ht0 \box0} \def\cellnw #1{\cellva{\cellhl{#1}}} \def\celln #1{\cellva{\cellhc{#1}}} \def\cellne#1{\cellva{\cellhr{#1}}} \def\cellw #1{\cellvm{\cellhl{#1}}} \def\celle #1{\cellvm{\cellhr{#1}}} \def\cellsw #1{\cellvb{\cellhl{#1}}} \def\cells #1{\cellvb{\cellhc{#1}}} \def\cellse#1{\cellvb{\cellhr{#1}}} ]] defs = Dang.from [[ \catcode`\^^J=10 \directlua{dofile "dednat6load.lua"} <<defcells>> \celllower=4pt ]] -- _ _ _ _ _ _ -- | |__ __ ___ _(_)___ __ _ _ __ __| | |_(_) ___| | _____ -- | '_ \ / _` \ \/ / / __|/ _` | '_ \ / _` | __| |/ __| |/ / __| -- | | | | (_| |> <| \__ \ (_| | | | | (_| | |_| | (__| <\__ \ -- |_| |_|\__,_/_/\_\_|___/\__,_|_| |_|\__,_|\__|_|\___|_|\_\___/ -- -- «haxisandticks» (to ".haxisandticks") -- (find-angg "LUA/Pict2e2.lua" "PictBounds-methods") -- (find-angg "LUA/Pict2e2.lua" "PictBounds") -- (find-angg "LUA/Pict2e2.lua" "PictBounds" "axesandticks =") -- table.addentries(PictBounds.__index, -- { haxis = function (pb) -- local p = Pict({"% Axes"}) -- return p:addline(v(pb:x0(), 0), v(pb:x3(), 0)) -- end, -- }) table.addentries(Pict.__index, { enslower = -0.25, ens = function (p, enslower) -- for estatistica: numeros below the h axis for x=0,p:gb().x2-1 do p = p:putcellat(v(x+0.5, enslower or p.enslower), x) end return p end, addsqptext = function (p, xy, str) if not str then return p end local x,y = xy[1],xy[2] return p:puttcellat(v(x+0.5, y+0.5), str) end, addsqp = function (p, xy, str) local x,y = xy[1],xy[2] local x0,x1,y0,y1 = x,x+1,y,y+1 local pts = Points2 {v(x0,y0), v(x1,y0), v(x1,y1), v(x0,y1)} p:add(pts:polygon()) return p:addsqptext(xy, str) end, }) -- «haxisandticks-tests» (to ".haxisandticks-tests") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" = defs p = Pict {} p:addsqp(v(2,2), "foo") = p :pgat("hng"):show() = p:ens():pgat("hng"):show() = Show.log = Show.bigstr * (etv) --]==] -- ____ ____ -- / ___| __ _| _ \ -- \___ \ / _` | |_) | -- ___) | (_| | __/ -- |____/ \__, |_| -- |_| -- -- Diagrams in which each square represents a person. -- -- «SqP» (to ".SqP") SqP = Class { type = "SqP", from0 = function (max) local sqp = SqP {max=max, heights={}, p=Pict{}} if max then for x=0,max do sqp.heights[x] = 0 end end return sqp end, from = function (spec) return SqP.from0():drop(spec) end, __tostring = VTable.__tostring, __index = { height = function (sqp, x) return sqp.heights[x] or 0 end, incrheight = function (sqp, x) sqp.heights[x] = sqp:height(x) + 1 return sqp:height(x) end, drop0 = function (sqp, x, str) local y = sqp:height(x) PP("drop0", x, y) sqp.p:addsqp(v(x,y), str) sqp:incrheight(x) end, drop = function (sqp, spec) for _,str in ipairs(split(spec)) do local x,s = unpack(split(str, "([^:]+)")) PP(x, s) sqp:drop0(x+0, s) end return sqp end, topict = function (sqp, options) return sqp.p:ens():pgat(options or "ph") end, }, } -- «SqP-tests» (to ".SqP-tests") --[==[ ** (find-angg "LUA/Show2.lua" "texbody") ** (find-code-show2 "~/LATEX/Show2.tex") * (code-show2 "~/LATEX/Show2.tex") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" PictBounds.setbounds(v(0,0), v(6,2)) s = SqP.from0(5) s = SqP.from0() = s = s:drop "1:A 1:B 4:C 5:D" = s:topict() = s:topict():show() = Show.log = Show.bigstr * (etv) --]==] -- «pacocas-test» (to ".pacocas-test") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" PictBounds.setbounds(v(0,0), v(6,2)) spec1 = "1:A 1:B 4:C 5:D" spec2 = "1:A 2:B 3:C 5:D" p1 = SqP.from(spec1):topict():sa("pacocas 1") p2 = SqP.from(spec2):topict():sa("pacocas 2") p3 = Pict { p1, p2, "\\ga{pacocas 1}, \\ga{pacocas 2}" } p = p3:preunitlength("13pt") = p = p:show() = Show.log = Show.bigstr * (etv) --]==] --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" PictBounds.setbounds(v(0,0), v(5,4)) spec = [[ 1,3,A 2,3,B 3,3,C 1,2,D 2,2,E 3,2,F 1,1,G 2,1,H 3,1,I 4,1,J ]] p = Pict {} for x,y,name in spec:gmatch("(.),(.),(.)") do print(x,y,name) p:addcloseddotat(v(x+0, y+0)) p:puttcellat(v(x+0.3, y+0.3), name) end = p = p:pgat("pat"):show() = Show.log = Show.bigstr * (etv) = p = p:show() = Show.log = Show.bigstr * (etv) p = s.p:prethickness("0.5pt") p = s.p:prethickness("1pt") = s.p :pgat("pgh") = s.p:ens():pgat("pgh") = s.p:ens():pgat("pgat") p2 = s.p :pgat("pgh") = p2 = s.p:ens():pgat("ph") :show() = p:ens():pgat("ph") :show() = Show.log = Show.bigstr * (etv) = outertexbody.bigstr = defs p = Pict {} = p:pgat("pat") = p:pgat("pat"):show() = Show.log = Show.bigstr * (etv) = p:pgat("pgt"):show() = Show.log = Show.bigstr * (etv) --]==] -- «P2-acumulada» (to ".P2-acumulada") --[[ ** (find-angg "LUA/Show2.lua" "texbody") ** (find-code-show2 "~/LATEX/Show2.tex") * (code-show2 "~/LATEX/Show2.tex") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Estatistica1.lua" PictBounds.setbounds(v(0,0), v(5,2)) string.perc = function (s) return (s:gsub("\n", "%%\n")) end Pict.__index.perc = function (p) return tostring(p):perc() end pts = Points2 {v(1,0), v(1,1), v(1.5,1), v(1.5,0)} p0 = Pict {}:add(pts:region0()):Color"Orange" = type(p0) = p0 = p0:perc() = ("a\nb\nc"):perc() p = (Pict {} :pgat("gat") :pre(p0) ):pgat"p" = p = p:perc() p:show() p:perc():show() = Show.log = Show.bigstr * (etv) --]] -- Local Variables: -- coding: utf-8-unix -- End: