Nickolay.info. Алгоритмы. Минимум расстояния от точки на оси абсцисс до концов отрезка |
Даны две точки с координатами (Х1, Y1)
и (X2, Y2)
, при этом Х1
не равно Х2
. Найти такую точку на оси абсцисс (X
), что сумма расстояний от неё до точек (Х1, Y1)
и (X2, Y2)
будет наименьшей. Такая задача, как и предыдущая, довольно часто решается в компьютерной графике.
var x,y:array [1..2] of real; a,c:real; i:integer; begin {Ввод данных} writeln; for i:=1 to 2 do begin repeat write ('Введите точку ',i,' (координаты X и Y):'); {$I-}readln (x[i],y[i]);{$I+} until IoResult=0; end; {Реализация алгоритма и вывод результатов} if y[1]=0 then if y[2]=0 then writeln ('Все точки отрезка') else writeln ('Точка X1=',x[1]:6:2) else if y[2]=0 then writeln ('Точка X2=',x[2]:6:2) else begin if y[1]*y[2]>=0 then y[1]:=-y[1]; a:=y[2]-y[1]; c:=-x[1]*(y[2]-y[1])+y[1]*(x[2]-x[1]); writeln ('Точка X=',(-c/a):6:2) end; reset (input); readln; end.
гостевая; E-mail |