So, earlier today, I made a script that would draw a Gui line between two points. It works pretty well, but problem is, the closer the two points are, the less accurate the line is. At a certain point, the line's rotation is for some reason set to Infinite. I honestly have no idea why this is happening.
alright, to set up,
use the following model and mess with the point positions. http://www.roblox.com/Line-graph-stuff-item?id=175365940
Heres the script :
function sin(num)
return math.sin(num)
end
function asin(num)
return math.asin(num)
end
function drawline(point1,point2,thickness) -- currently working with pixels, not scale
local line = Instance.new("Frame")
line.Name = "line"
line.Parent = script.Parent
local xpos1 = point1.X.Offset
local ypos1 = point1.Y.Offset
local xpos2 = point2.X.Offset
local ypos2 = point2.Y.Offset
local distx = math.abs((xpos1 - xpos2))
local disty = math.abs((ypos1 - ypos2))
print(distx,disty)
-- ||
--direction logic here \/
local direction
if ypos1 >= ypos2 then
direction = 1
print("Going Up")
else
direction = -1
print("Going Down")
end
if direction == 1 then
line.Position = UDim2.new(0,(xpos1 + (distx /2)),0,(ypos1 - (disty /2)))
else
line.Position = UDim2.new(0,(xpos1 + (distx /2)),0,(ypos1 + (disty /2)))
end
local oa = disty/distx
local angle = asin(oa)
print(math.deg(angle))
local zdist = (distx^2 + disty^2)^.5
print(zdist)
line.Size = UDim2.new(0,zdist,0,10)
line.Position = line.Position - UDim2.new(0,zdist/2,0,thickness)
line.Rotation = 180-((math.deg(angle))* direction)
end
drawline(script.Parent["#1"].Position,script.Parent["#2"].Position,3)
any help or ideas are strongly appreciated!
