View difference between Paste ID: f1fGnKwm and LErbin5K
SHOW: | | - or go back to the newest paste.
1
function lerp(a, b, t)
2
    return a + (b-a)*t
3
end
4
5
width, height = term.getSize()
6
midw = math.floor(width/2)
7
midh = math.floor(height/2)
8
9
p0 = vector.new(1, 1, 0)
10
p2 = vector.new(width, height, 0)
11
12
function quad_bezier(p0, p1, p2, step)
13
14
    local oldx = p0.x
15
    local oldy = p0.y
16
17
    for t=0, 1, step do
18
        local x1 = lerp(p0.x, p1.x, t)
19
        local y1 = lerp(p0.y, p1.y, t)
20
        local x2 = lerp(p1.x, p2.x, t)
21
        local y2 = lerp(p1.y, p2.y, t)
22
        local x = lerp(x1, x2, t)
23
        local y = lerp(y1, y2, t)
24
        
25
        paintutils.drawLine(oldx, oldy, x, y, colors.white)
26
27
        oldx = x
28
        oldy = y
29
    end
30
end
31
32
while true do
33
    local p1 = vector.new(1, height, 0)
34
    local event, button, x, y = os.pullEvent("mouse_drag")
35
    term.setBackgroundColor(colors.black)
36
    term.clear()
37
    p1.x, p1.y = x, y
38
    quad_bezier(p0, p1, p2, 0.2)
39
end
40
41
-- paintutils.drawLine(p0.x, p0.y, p1.x, p1.y, colors.white)