Синтаксис: Lua
------------
-- ЗНАЙТИ ПЕРЕТИН ДВОХ ВІДРІЗКІВ
----------------
function perehrest(x1,y1,x2,y2,x3,y3,x4,y4) -- пересікання 2 відрізків
if x1 > x2 then x1,x2,y1,y2=x2,x1,y2,y1 end
if x3 > x4 then x3,x4,y3,y4=x4,x3,y4,y3 end
if y2 == y1 then k1 = 0 else k1 = ( y2 - y1 ) / ( x2 - x1 ) end
if y3 == y4 then k2 = 0 else k2 = ( y4 - y3 ) / ( x4 - x3 ) end
if k1 == k2 then
print(" прямі паралельні и відрізки пересікатись не можуть")
else
if (x1<=x4 and x4<= x2) or (x1<=x3 and x3<=x2 ) then
print("перетин в межах відрізку")
end
b1 = y1 - k1 * x1
b2 = y3 - k2 * x3
--точка перетину x,y
x = ( b2 - b1 ) / ( k1 - k2 )
y = k1*x + b1
print("точка перетину"..x, y)
end
end
perehrest(10,10,100,100,10,100,100,10)
-- ЗНАЙТИ ПЕРЕТИН ДВОХ ВІДРІЗКІВ
----------------
function perehrest(x1,y1,x2,y2,x3,y3,x4,y4) -- пересікання 2 відрізків
if x1 > x2 then x1,x2,y1,y2=x2,x1,y2,y1 end
if x3 > x4 then x3,x4,y3,y4=x4,x3,y4,y3 end
if y2 == y1 then k1 = 0 else k1 = ( y2 - y1 ) / ( x2 - x1 ) end
if y3 == y4 then k2 = 0 else k2 = ( y4 - y3 ) / ( x4 - x3 ) end
if k1 == k2 then
print(" прямі паралельні и відрізки пересікатись не можуть")
else
if (x1<=x4 and x4<= x2) or (x1<=x3 and x3<=x2 ) then
print("перетин в межах відрізку")
end
b1 = y1 - k1 * x1
b2 = y3 - k2 * x3
--точка перетину x,y
x = ( b2 - b1 ) / ( k1 - k2 )
y = k1*x + b1
print("точка перетину"..x, y)
end
end
perehrest(10,10,100,100,10,100,100,10)
Немає коментарів:
Дописати коментар