Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/LUA/Numerozinhos1.lua.html -- http://anggtwu.net/LUA/Numerozinhos1.lua -- (find-angg "LUA/Numerozinhos1.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun n1 () (interactive) (find-angg "LUA/Numerozinhos1.lua")) -- (defun p3 () (interactive) (find-angg "LUA/Pict3.lua")) -- -- Used by: (find-angg "LUA/ExprDxDy1.lua") -- Supersedes: (find-angg "LUA/Pict2e1-1.lua" "Numerozinhos") -- «.Numerozinhos» (to "Numerozinhos") -- «.Numerozinhos-test-basic» (to "Numerozinhos-test-basic") -- «.Numerozinhos-test-f» (to "Numerozinhos-test-f") -- «.Numerozinhos-test-spec» (to "Numerozinhos-test-spec") -- «.Numerozinhos-test-minus-0» (to "Numerozinhos-test-minus-0") -- «.Numerozinhos-test-piramide» (to "Numerozinhos-test-piramide") -- «.Numerozinhos-test-question-marks» (to "Numerozinhos-test-question-marks") require "Pict3" -- (find-angg "LUA/Pict3.lua") require "Piecewise2" -- (find-angg "LUA/Piecewise2.lua") require "StrGrid1" -- (find-angg "LUA/StrGrid1.lua") usepackages.edrx21 = true -- «Numerozinhos» (to ".Numerozinhos") -- Based on this: (find-angg "LUA/Pict2e1-1.lua" "Numerozinhos") -- but many methods were rewritten in incompatible ways! -- Numerozinhos = Class { type = "Numerozinhos", from = function (xmin, ymin, bigstr) return Numerozinhos {xmin=xmin, ymin=ymin, bigstr=bigstr} end, fromf = function (xy_sw, xy_ne, f) local xmin,xmax,ymin,ymax = xy_sw[1], xy_ne[1], xy_sw[2], xy_ne[2] return Numerozinhos {xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, f=f} end, __tostring = function (ns) return mytostringpv(ns) end, __index = { -- -- See: (find-angg "LUA/lua50init.lua" "minus-0") preprocs = {["."]="", ["?"]="\\ColorRed{?}"}, preprocn = function (ns, n) return fix0(n) end, preproc = function (ns, n) return type(n) == "number" and ns:preprocn(n) or (ns.preprocs[n] or n) end, -- xyn = function (ns, x, y, n) local text = ns:preproc(n) return pformat("\\put(%s,%s){\\cell{\\text{%s}}}", x, y, text) end, xyf = function (ns, x, y) return ns:xyn(x, y, ns.f(x, y)) end, -- -- See: (find-angg "LUA/StrGrid1.lua") strgrid = function (ns) return StrGrid.from(ns.bigstr, ns.xmin, ns.ymin) end, strgridpict = function (ns) local p = Pict {} for x,y,c in ns:strgrid():xycs() do table.insert(p, ns:xyn(x, y, c)) end return p end, puts = function (ns) return ns:strgridpict() end, fputs = function (ns) local p = Pict {} for y=ns.ymax,ns.ymin,-1 do for x=ns.xmin,ns.xmax do table.insert(p, ns:xyf(x, y)) end end return p end, -- setspec = function (ns, spec) ns.spec = spec; return ns end, speclines = function (ns) return PwSpec.from(ns.spec):topict():prethickness("2pt"):Color("Orange") end, -- topict = function (ns, Opts) Opts = Opts or {} local puts = ns.f and ns:fputs() or ns:puts() local lines = ns.spec and ns:speclines() local u = Opts.u or "11pt" local p = Pict {} table.insert(p, lines) -- lines first, below table.insert(p, puts) -- numbers over the lines table.insert(p, ns.etc) -- gradient vectors and other things p = p:pgat("Npc"):preunitlength(u) return p end, show00 = function (ns,Opts) return ns:topict(Opts) end, show0 = function (ns,Opts) return ns:topict(Opts) end, show = function (ns,...) return ns:show0(...):show("") end, }, } -- «Numerozinhos-test-basic» (to ".Numerozinhos-test-basic") -- (c2m221isp 7 "exercicio-2-dica") -- (c2m221isa "exercicio-2-dica") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(0,0), v(5,4)) printfun = function (f) print(DGetInfo.fromfunction(f)) end Numerozinhos.__index.preprocs["."] = "" Numerozinhos.__index.preprocs["."] = "$\\cdot$" ns = Numerozinhos.from(2, 3, "24 34 44 \n 23 33") ns = Numerozinhos.from(2, 0, "21 31 41 \n 20 30 .") = ns = ns:strgrid() = ns:strgrid():printxycs() = ns:strgridpict() = ns:puts() = ns:show0() = ns:show0 {u="14pt"} = ns:show {u="14pt"} * (etv) = Show.log documentclassoptions = "12pt" defs = [[ \celllower=3.5pt ]] = outertexbody.bigstr = outertexbody = ns:show {u="14pt"} = ns:show {u="16pt"} * (etv) --]==] -- «Numerozinhos-test-f» (to ".Numerozinhos-test-f") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(0,0), v(5,4)) ns = Numerozinhos.fromf(v(1,2), v(3,4), function (x,y) return 10*x+y end) = ns = ns:xyf(2, 3) = ns:show {u="14pt"} * (etv) --]==] -- «Numerozinhos-test-spec» (to ".Numerozinhos-test-spec") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(0,0), v(4,3)) ns = Numerozinhos.from(2, 1, [[ a b c d e f g h i ]]) = ns = ns:show0() ns:setspec("(2,1)--(2,3)--(4,3)--(2,1)") = ns:show0() = ns:show() = Show.log = Show.bigstr * (etv) --]==] -- «Numerozinhos-test-minus-0» (to ".Numerozinhos-test-minus-0") -- See: (find-angg "LUA/lua50init.lua" "minus-0") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(0,0), v(6,5)) f1 = function (x1,y1) local Dx,Dy = x1-x0,y1-y0 return Dx*Dy end x0,y0 = 4,3 ns = Numerozinhos.fromf(v(x0-2,y0-2), v(x0+2,y0+2), f1) = ns.f(2,3) Numerozinhos.__index.preprocn = function (ns,n) return fix0(n) end Numerozinhos.__index.preprocn = function (ns,n) return n end = ns:xyf(2,3) = ns:show() * (etv) --]==] -- «Numerozinhos-test-piramide» (to ".Numerozinhos-test-piramide") -- (c3m221nfp 19 "piramide") -- (c3m221nfa "piramide") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(-1,-1), v(9,9)) ns = Numerozinhos.from(0, 0, [[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 2 2 2 1 0 0 0 0 1 2 3 2 1 0 0 0 0 1 2 2 2 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]) = ns:show() * (etv) pyr_spec = "(1,1)--(7,1)--(7,7)--(1,7)--(1,1)--(7,7) (1,7)--(7,1)" pyr_spec2 = [[ (1,7)--(7,7)--(7,1)--(1,1)--(1,7)--(7,1) (1,1)--(2,2) (3,3)--(7,7) (2,2)--(2,3)--(3,3)--(3,2)--(2,2) (2,3)--(3,2) ]] = ns:setspec(pyr_spec) :show() * (etv) = ns:setspec(pyr_spec2):show() * (etv) = ns:setspec(nil) :show() * (etv) --]==] -- «Numerozinhos-test-question-marks» (to ".Numerozinhos-test-question-marks") -- (c3m221fhp 5 "exercicio-2-fig") -- (c3m221fha "exercicio-2-fig") --[==[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(-5,-5), v(5,5)) Numerozinhos.__index.preprocs["?"] = "\\tiny\\ColorRed{?}" ns = Numerozinhos.from(-4, -4, [[ . . ? . . . . . . . . . . ? . . ? . . . . ? ? . ? . ? . . . . 3 2 5 . . . . ? ? ? 8 ? ? . . . ? ? ? . . . . ? . ? . ? 4 . . . . . . . . . . . . . . . . . . ? . .]]) = ns = ns:show() * (etv) --]==] -- «Numerozinhos-test5» (to ".Numerozinhos-test5") -- (c3m221fhp 7 "exercicio-5") -- (c3m221fha "exercicio-5") -- (c3m221fha "exercicio-5" "nff \"Dx*Dy\"") --[[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" PictBounds.setbounds(v(0,0), v(6,5)) x0,y0 = 4,3 nff = function (str) return Code.vc("x,y => local Dx,Dy = x-x0,y-y0; return "..str) end ns = Numerozinhos.fromf(v(x0-2,y0-2),v(x0+2,y0+2), nff "Dx*Dy") = ns:show() * (etv) -- (find-pdftoolsr-page "~/LATEX/2022-1-C3-VR.pdf" 2) F = nff "Dy " G = nff " Dx * (Dx+Dy)" H = nff "Dy + Dx * (Dx+Dy)" pF = Numerozinhos.fromf(v(x0-2,y0-2),v(x0+2,y0+2), F):pgat("pN") pG = Numerozinhos.fromf(v(x0-2,y0-2),v(x0+2,y0+2), G):pgat("pN") pH = Numerozinhos.fromf(v(x0-2,y0-2),v(x0+2,y0+2), H):pgat("pN") = pH sp = "\\quad" p3 = Pict({ pF, sp, pG, sp, pH }):preunitlength("11pt") = p3:bshow("") * (etv) = pH:preunitlength("25pt"):bshow("") * (etv) * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) [x0,y0] : [4,3]; [Dx,Dy] : [x-x0,y-y0]; G : Dy + Dx * (Dx+Dy); subst([x=4,y=1], G); --]] -- «Numerozinhos-test6» (to ".Numerozinhos-test6") -- (find-angg "LUA/Pict2e1.lua" "Pict2eVector-tests") -- (find-angg "LUA/lua50init.lua" "minus-0") --[[ * (show2-use "$SHOW2LATEXDIR/") * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Numerozinhos1.lua" truncn = function (n) return trunc0(string.format("%.3f", fix0(n))) end nff = function (str) return Code.vc("x,y => local Dx,Dy = x-x0,y-y0; return "..str) end PictBounds.setbounds(v(0,0), v(6,5)) x0,y0 = 4,3 p = Numerozinhos.fromf(v(x0-2,y0-2),v(x0+2,y0+2), nff "Dx*Dy") p:adddv("\\color{Red2}", "\\linethickness{1.0pt}") p:adddv({4,1}, {4,2,2,1}) PPPV(p) = p = p:pgat("pN"):preunitlength("12.5pt"):bshow("") * (etv) --]] -- Local Variables: -- coding: utf-8-unix -- End: