From 157f6c0fdb37e8490c293a44d9ed08cd3dc63291 Mon Sep 17 00:00:00 2001 From: s-ol Date: Sun, 3 Nov 2019 17:23:43 +0100 Subject: update examples, fixes --- examples/capsule.moon | 25 +++++++++++++++++++++++++ examples/create_star.lua | 26 ++++++++++++++++++++++++++ examples/demo.lua | 40 ---------------------------------------- examples/demo.moon | 25 ------------------------- examples/place_in_rect.lua | 17 +++++++++++++++++ examples/test.moon | 8 ++++++++ 6 files changed, 76 insertions(+), 65 deletions(-) create mode 100644 examples/capsule.moon create mode 100644 examples/create_star.lua delete mode 100644 examples/demo.lua delete mode 100644 examples/demo.moon create mode 100644 examples/place_in_rect.lua create mode 100644 examples/test.moon (limited to 'examples') diff --git a/examples/capsule.moon b/examples/capsule.moon new file mode 100644 index 0000000..2a9033c --- /dev/null +++ b/examples/capsule.moon @@ -0,0 +1,25 @@ +-- let's load a vector library for doing some +-- more interesting transformations + +import vec2 from require 'cpml' + +=> + -- let's try to construct a pill-shape + input.rectangle @rect + rect = @rect! + hsize = (rect.max - rect.min) / 2 + + input.circle @left, { + center: rect.min + vec2 0, hsize.y + radius: hsize.y + } + input.circle @left, { + center: rect.min + vec2 hsize.x*2, hsize.y + radius: hsize.y + } + + -- right, so that's that.... + -- kinda forgetting whether there was something + -- else I wanted to show. + -- does this seem interesting to you? + -- let me know :) diff --git a/examples/create_star.lua b/examples/create_star.lua new file mode 100644 index 0000000..520cf07 --- /dev/null +++ b/examples/create_star.lua @@ -0,0 +1,26 @@ +local vec2 = (require 'cpml').vec2 + +function draw_star(S) + input.circle(S.inner) + input.circle(S.outer, { center = S.inner().center }) + + local inner, outer = S.inner(), S.outer() + + local cnt = 20 + local step = 2*math.pi/cnt + local lag = inner.center + vec2(inner.radius, 0) + for i = 0, 20 do + local r = (i % 2 == 0) and inner.radius or outer.radius + local pos = inner.center + vec2.from_cartesian(r, step * i) + + draw.cross(pos) + draw.line(pos, lag) + + -- obj = Object("object_"..i, pos, vec2(20, 20)) + -- op.add(obj) + + lag = pos + end +end + +return draw_star diff --git a/examples/demo.lua b/examples/demo.lua deleted file mode 100644 index 22076b9..0000000 --- a/examples/demo.lua +++ /dev/null @@ -1,40 +0,0 @@ --- return function (state) -function place_in_rect(state) - selection = Select_objs(state.objs, '^led-') - rect = Select_rect(state.dest) - - sx = rect.w / (#selection + 1) - - x = sx - for i, obj in ipairs(selection) do - Move(obj, rect.x + x - obj.w/2, rect.y) - x = x + sx - end -end - -function create_star(state) - local inner = Select_circle(state.inner) - local outer = Select_circle(state.outer, inner.cx, inner.cy) - - cnt = 20 - step = 2*math.pi/cnt - lag_x, lag_y = inner.cx + inner.r, inner.cy - for i = 0, 20 do - r = (i % 2 == 0) and inner.r or outer.r - x = inner.cx + math.cos(step * i) * r - y = inner.cy + math.sin(step * i) * r - obj = Object("object_"..i, x-10, y-10, 20, 20) - Add(obj) - - love.graphics.line(lag_x, lag_y, obj:center()) - lag_x, lag_y = obj:center() - end -end - -function test(S) - rect = input.rectangle(S.rect) - - input.circle(S.circle, { center = rect.min, radius = 100 }, { center = true, radius = true }) -end - -return test diff --git a/examples/demo.moon b/examples/demo.moon deleted file mode 100644 index 2a9033c..0000000 --- a/examples/demo.moon +++ /dev/null @@ -1,25 +0,0 @@ --- let's load a vector library for doing some --- more interesting transformations - -import vec2 from require 'cpml' - -=> - -- let's try to construct a pill-shape - input.rectangle @rect - rect = @rect! - hsize = (rect.max - rect.min) / 2 - - input.circle @left, { - center: rect.min + vec2 0, hsize.y - radius: hsize.y - } - input.circle @left, { - center: rect.min + vec2 hsize.x*2, hsize.y - radius: hsize.y - } - - -- right, so that's that.... - -- kinda forgetting whether there was something - -- else I wanted to show. - -- does this seem interesting to you? - -- let me know :) diff --git a/examples/place_in_rect.lua b/examples/place_in_rect.lua new file mode 100644 index 0000000..3650257 --- /dev/null +++ b/examples/place_in_rect.lua @@ -0,0 +1,17 @@ +-- return function (state) +function place_in_rect(S) + input.selection(S.objs, '^led-') + input.rect(S.dest) + + local start = S.min() + local step = S.dest():size() + step.y = 0 + + for i, obj in ipairs(S.objs()) do + local pos = start + step:scale(i) + draw.cross(pos) + -- op.move(obj, pos) + end +end + +return place_in_rect diff --git a/examples/test.moon b/examples/test.moon new file mode 100644 index 0000000..352ebd2 --- /dev/null +++ b/examples/test.moon @@ -0,0 +1,8 @@ +import vec2 from require 'cpml' + +=> + input.point @p + + input.rectangle @re, max: @p! + + input.circle @circ, center: @p! -- cgit v1.2.3