summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-24 03:01:47 +0000
committerNorbert Preining <norbert@preining.info>2022-06-24 03:01:47 +0000
commit1ef4c041ba74d4619dd62209ae48a2b24563954c (patch)
treeb45a2e8da583a0f219e75f9536d9696f9af2aca7 /macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex
parent00e67dfd87c53faeafcf0c9e66c8c2c7a410fcb8 (diff)
CTAN sync 202206240301
Diffstat (limited to 'macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex')
-rw-r--r--macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex69
1 files changed, 69 insertions, 0 deletions
diff --git a/macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex b/macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex
new file mode 100644
index 0000000000..14a713dee9
--- /dev/null
+++ b/macros/luatex/generic/barracuda/test/test-ga-pdfliteral/002-polyline.tex
@@ -0,0 +1,69 @@
+% !TeX program = LuaTeX
+
+\directlua{
+ brcd = require "barracuda"
+}
+\newbox\mybox
+
+Test 1: a simple polyline:
+\directlua{
+ local Polyline = brcd._libgeo.Polyline
+ local p = Polyline:new()
+ p:add_point(0, 0)
+ p:add_point(tex.sp "32pt", 0)
+ p:add_relpoint(tex.sp "16pt", tex.sp "16pt")
+
+ local gaCanvas = brcd._gacanvas
+ local ga = gaCanvas:new()
+ assert(ga:encode_polyline(p))
+
+ local driver = brcd:get_driver()
+ driver:ga_to_hbox(ga, [[mybox]])
+}\vrule\box\mybox\vrule
+
+
+Test 2: a staircase:
+\directlua{
+ local h = tex.sp "18pt"
+ local b = tex.sp "36pt"
+ local Polyline = brcd._libgeo.Polyline
+ local p = Polyline:new()
+ p:add_point(0, 0)
+ for _ = 1, 5 do
+ p:add_relpoint(0, h)
+ p:add_relpoint(b, 0)
+ end
+
+ local gaCanvas = brcd._gacanvas
+ local ga = gaCanvas:new()
+ assert(ga:encode_polyline(p))
+
+ local driver = brcd:get_driver()
+ driver:ga_to_hbox(ga, [[mybox]])
+}\vrule\box\mybox\vrule
+
+Test 3: several regular polygons:
+\directlua{
+ local Polyline = brcd._libgeo.Polyline
+ local l = tex.sp "36pt" % side length
+ local gaCanvas = brcd._gacanvas
+ local ga = gaCanvas:new()
+ ga:encode_linewidth(tex.sp "0.4pt")
+ for n = 3, 13 do
+ local p = Polyline:new()
+ p:add_point(0, 0)
+ local alpha = 2*math.pi/n % angle
+ local a = alpha/2 % regular angles sum
+ for _ = 1, n do
+ local x, y = l * math.cos(a), l * math.sin(a)
+ a = a + alpha
+ p:add_relpoint(x, y)
+ end
+ assert(ga:encode_polyline(p))
+ end
+ local driver = brcd:get_driver()
+ driver:ga_to_hbox(ga, [[mybox]])
+ driver:save("svg", ga, "polygon")
+}\vrule\box\mybox\vrule
+
+\bye