Navigation bar
  Print document Start Previous page
 126 of 144 
Next page End  

126
Dx = Dx - (х2 - х1)*[(у4 - у3)*х3 - (х4 - х3)*у3] 
Dy = (у2 - у1)*[(у4 - у3)*х3 - (х4 - х3)*у3] 
Dy = Dy - [(у2 - yl)*xl - (х2 - х1)*у1]*(у4 - уЗ) 
х = Dx/D 
у = Dy/D 
? х; у
return
lin 1: 'отрезки на одной прямой 
d2 = (х2 - х1)*(х2 - х1) + (у2 - у1)*(у2 - 1) 
d3 = (хЗ - х1)*(х2 - х1) + (уЗ - у1)*(у2 - 1) 
d4 = (х4 - xl)*(x2 - х1) + (у4 - у1)*(у2 - 1) 
if d3 > d2 and d4 > d2 then
' нет пересечения 
Iseif d3 < 0 and d4 < 0 then
' нет пересечения 
else ' отрезки пересекаются:
gosub otrеz ' общий отрезок 
end if 
return
otrez: 'расчет общего отрезка 
np = np + 1
? «отрезок пересечения:» 
if d3 < 0 or d4 < 0 then
? х1; у1; «-» 
elseif d3 < d4 then
? х3; у3; «-»
else                                     
? х4; у4; «-» 
end if 
if d2 < d3 or d2 < d4 then
? х2; у2 
elseif d3 < d4 then
? x3; y3 
else
? х4; у4 
end if 
return
vvod: ' ввод данных 
restore test1 
read n
? «точек:»;nt
for k = 1 to nt
read x(k), y(k)
? x(k); y(k) 
next kn 
t = nt + 1 
x(nt) = x(l) 
y(nt) = y(l) 
return
test1: 'точки ломаной:
data 4 
data 0, 0 
Сайт создан в системе uCoz