local node = Node:extend('nodes.at', { }) -- local papa = love.graphics.newImage("papa.png") local h = 25.0 local v = { {-h, -h, -h}, { h, -h, -h}, { h, h, -h}, {-h, h, -h}, {-h, -h, h}, { h, -h, h}, { h, h, h}, {-h, h, h} } local c = { {0, 1, 31}, {1, 2, 31}, {2, 3, 31}, {3, 0, 31}, {0, 4, 34}, {1, 5, 34}, {2, 6, 34}, {3, 7, 34}, {4, 5, 32}, {5, 6,32}, {6, 7,32}, {7, 4,32} } local E = 100 * math.tan(2*math.pi/3) function to2d(p) return p[1] * E / (p[3]+E), p[2] * E / (p[3]+E) end function node:render() love.graphics.setColor( 0, 0, 0 ) love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight()) love.graphics.setColor( 1.0, 1.0, 1.0 ) local w = love.graphics.getWidth() / 2 local h = love.graphics.getHeight() / 2 local scl = 6 for _, p in ipairs(c) do x1, y1 = to2d(v[p[1]+1]) x2, y2 = to2d(v[p[2]+1]) love.graphics.line(x1 * scl + w, y1 * scl + h, x2 * scl + w, y2 * scl + h) end end function node:update(dt) for _, vec in ipairs(v) do angle = -dt/3 nv0 = math.cos(angle) * vec[1] + math.sin(angle) * vec[3] nv2 = -math.sin(angle) * vec[1] + math.cos(angle) * vec[3] vec[1] = nv0 vec[3] = nv2 angle = dt nv1 = math.cos(angle) * vec[2] - math.sin(angle) * vec[3] nv2 = math.sin(angle) * vec[2] + math.cos(angle) * vec[3] vec[2] = nv1 vec[3] = nv2 end end return node