141 lines
3.7 KiB
Lua
141 lines
3.7 KiB
Lua
simulated_resolution = v2(1920, 1080)
|
|
|
|
function screenwriter_to_coords(pos, scale)
|
|
|
|
local x, y, width, height, x_px, y_px, width_px, height_px, x_left, x_right, y_top, y_bottom
|
|
|
|
x = pos.x
|
|
y = pos.y
|
|
width = scale.x
|
|
height = scale.y
|
|
|
|
x_px = x * simulated_resolution.x / 2 + simulated_resolution.x / 2
|
|
y_px = y * simulated_resolution.y / 2 + simulated_resolution.y / 2
|
|
width_px = width * simulated_resolution.x / 2 + simulated_resolution.x / 2
|
|
height_px = height * simulated_resolution.y / 2 + simulated_resolution.y / 2
|
|
|
|
x_left = x_px - width_px / 2
|
|
x_right = x_px + width_px / 2
|
|
y_top = y_px - height_px / 2
|
|
y_bottom = y_px + height_px / 2
|
|
|
|
return v2(x_left, y_top), v2(x_right, y_bottom)
|
|
|
|
end
|
|
|
|
function coords_to_screenwriter(coord1, coord2)
|
|
|
|
local x_left, x_right, y_top, y_bottom, width, height
|
|
|
|
x_left = math.min(coord1.x, coord2.x)
|
|
x_right = math.max(coord1.x, coord2.x)
|
|
y_top = math.min(coord1.y, coord2.y)
|
|
y_bottom = math.max(coord1.y, coord2.y)
|
|
|
|
width = x_right - x_left
|
|
height = y_bottom - y_top
|
|
|
|
return coords_partial_to_screenwriter(v2(x_left, x_top), v2(width, height), 1)
|
|
|
|
end
|
|
|
|
function coords_partial_to_screenwriter(pos_px, scale_px, anchor)
|
|
|
|
local x_px, y_px, x, y, width, height
|
|
|
|
if anchor == 1 then --top left
|
|
x_px = pos_px.x + scale_px.x / 2
|
|
y_px = pos_px.y + scale_px.y / 2
|
|
elseif anchor == 2 then --top right
|
|
x_px = pos_px.x - scale_px.x / 2
|
|
y_px = pos_px.y + scale_px.y / 2
|
|
elseif anchor == 3 then --bottom right
|
|
x_px = pos_px.x - scale_px.x / 2
|
|
y_px = pos_px.y - scale_px.y / 2
|
|
elseif anchor == 4 then --bottom left
|
|
x_px = pos_px.x + scale_px.x / 2
|
|
y_px = pos_px.y - scale_px.y / 2
|
|
else --center
|
|
x_px = pos_px.x
|
|
y_px = pos_px.y
|
|
end
|
|
|
|
x = x_px / simulated_resolution.x * 2 - 1
|
|
y = y_px / simulated_resolution.y * 2 - 1
|
|
width = scale_px.x / simulated_resolution.x * 2
|
|
height = scale_px.y / simulated_resolution.y * 2
|
|
|
|
return v2(x, y), v2(width, height)
|
|
|
|
end
|
|
|
|
--[[
|
|
|
|
simulated_resolution = v2(1920, 1080)
|
|
|
|
# screenwriter to coords
|
|
|
|
local pos, scale, x, y, width, height, x_px, y_px, width_px, height_px, x_left, x_right, y_top, y_bottom
|
|
|
|
#x = .5
|
|
#y = 0
|
|
#width = 1
|
|
#height = 1
|
|
|
|
pos = v2(.5, 0)
|
|
scale = v2(1, 1)
|
|
|
|
x = pos.x
|
|
y = pos.y
|
|
width = scale.x
|
|
height = scale.y
|
|
|
|
x_px = x * simulated_resolution.x / 2 + simulated_resolution.x / 2
|
|
y_px = y * simulated_resolution.y / 2 + simulated_resolution.y / 2
|
|
width_px = width * simulated_resolution.x / 2 + simulated_resolution.x / 2
|
|
height_px = height * simulated_resolution.y / 2 + simulated_resolution.y / 2
|
|
|
|
x_left = x_px - width_px / 2
|
|
x_right = x_px + width_px / 2
|
|
y_top = y_px - height_px / 2
|
|
y_bottom = y_px + height_px / 2
|
|
|
|
print(x_left) -- 960
|
|
print(x_right) -- 1920
|
|
print(y_top) -- 270
|
|
print(y_bottom) -- 810
|
|
|
|
# coords to screenwriter
|
|
|
|
local coord1, coord2, x_left, x_right, y_top, y_bottom, width_px, height_px, x_px, y_px, x, y, width, height
|
|
|
|
#x_left = 960
|
|
#x_right = 1920
|
|
#y_top = 270
|
|
#y_bottom = 810
|
|
|
|
coord1 = v2(1920, 270)
|
|
coord2 = v2(960, 810)
|
|
|
|
x_left = math.min(coord1.x, coord2.x)
|
|
x_right = math.max(coord1.x, coord2.x)
|
|
y_top = math.min(coord1.y, coord2.y)
|
|
y_bottom = math.max(coord1.y, coord2.y)
|
|
|
|
width_px = x_right - x_left
|
|
height_px = y_bottom - y_top
|
|
|
|
x_px = x_left + width_px / 2
|
|
y_px = y_top + height_px / 2
|
|
|
|
x = (x_px - simulated_resolution.x / 2) / simulated_resolution.x * 2
|
|
y = (y_px - simulated_resolution.y / 2) / simulated_resolution.y * 2
|
|
width = (width_px - simulated_resolution.x / 2) / simulated_resolution.x * 2
|
|
height = (height_px - simulated_resolution.y / 2) / simulated_resolution.y * 2
|
|
|
|
print(x)
|
|
print(y)
|
|
print(width)
|
|
print(height)
|
|
|
|
]] |