|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://anggtwu.net/LUA/Tracinhos1.lua.html
-- http://anggtwu.net/LUA/Tracinhos1.lua
-- (find-angg "LUA/Tracinhos1.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "LUA/Tracinhos1.lua"))
-- Supersedes:
-- (find-angg "LUA/Pict2e1-1.lua")
-- «.Tracinhos» (to "Tracinhos")
-- «.Tracinhos-test» (to "Tracinhos-test")
require "Pict3" -- (find-angg "LUA/Pict3.lua")
require "Piecewise2" -- (find-angg "LUA/Piecewise2.lua")
local v = MiniV.fromab
-- _____ _ _
-- |_ _| __ __ _ ___(_)_ __ | |__ ___ ___
-- | || '__/ _` |/ __| | '_ \| '_ \ / _ \/ __|
-- | || | | (_| | (__| | | | | | | | (_) \__ \
-- |_||_| \__,_|\___|_|_| |_|_| |_|\___/|___/
--
-- «Tracinhos» (to ".Tracinhos")
Tracinhos = Class {
type = "Tracinhos",
new = function (r)
r = r or 0.2
return Tracinhos { r=r, p=Pict {} }
end,
from = function (r, f)
return Tracinhos.new(r):setf(f):drawf()
end,
__index = {
setf = function (tr, f)
if type(f) == "string" then f = Code.ve("x,y => "..f) end
tr.f = f
return tr
end,
v = function (tr, Dy, Dx)
Dx = Dx or 1
if Dx == 0 then
if Dy == 0 then return nil end
return v(0, tr.r)
end
local v0 = v(Dx, Dy)
local v1 = v0 * (1 / v0:norm())
local v2 = v1 * tr.r
return v2
end,
tracinho = function (tr, xy, Dy, Dx)
local vv = tr:v(Dy, Dx)
if not vv then return tr end
tr.p:addline(xy-vv, xy+vv)
end,
drawfxy0 = function (tr,x,y) return tr.f(x,y) end,
drawfxy = function (tr,x,y) tr:tracinho(v(x,y), tr.f(x,y)) end,
drawf = function (tr)
for y=2,-2,-1 do
for x=-2,2 do
tr:drawfxy(x,y)
end
end
return tr
end,
show0 = function (tr) return tr.p:pgat("pNc") end,
show = function (tr) return tr.p:pgat("pNc"):show("") end,
},
}
-- «Tracinhos-test» (to ".Tracinhos-test")
--[==[
** (find-code-show2 "~/LATEX/Show2.tex")
* (code-show2 "~/LATEX/Show2.tex")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Tracinhos1.lua"
tr = Tracinhos.new(0.2)
PictBounds.setbounds(v(-2,-2), v(2,2))
for y=2,-2,-1 do
for x=-2,2 do
tr:tracinho(v(x,y), -y, x)
end
end
= tr.p:pgat("pN"):show("")
* (etv)
** (find-code-show2 "~/LATEX/Show2.tex")
* (code-show2 "~/LATEX/Show2.tex")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Tracinhos1.lua"
PictBounds.setbounds(v(-2,-2), v(2,2))
tr = Tracinhos.from(0.2, "1,x")
= Tracinhos.from(0.2, "1,x"):show0()
= Tracinhos.from(0.2, "1,x"):show()
* (etv)
= Tracinhos.from(0.2, "-y,x"):show()
* (etv)
= Tracinhos.from(0.2, "-x,y"):show()
* (etv)
= Tracinhos.from(0.2, "x,y"):show()
* (etv)
= Tracinhos.from(0.2, "x+y,2"):show()
* (etv)
--]==]
-- Local Variables:
-- coding: utf-8-unix
-- End: