Провести прямую (а не отрезок) через заданные точки - Pascal ABC

  1. Дан отрезок с координатами (x1,x2);(x2,y2). Как провести через эти точки прямую на все окно?(а не только отрезок прямой)


textual

Код к задаче: «Провести прямую (а не отрезок) через заданные точки - Pascal ABC»

uses graphABC;
var x1,y1,x2,y2:integer;
    k,x,y,c:real;
begin
repeat
writeln('Введите координаты первой точки от 50 до 450:');
readln(x1,y1);
until(x1>=50)and(x1<=450)and(y1>=50)and(y1<=450);
repeat
writeln('Введите координаты второй точки от 50 до 450:');
readln(x2,y2);
until(x2>=50)and(x2<=450)and(y2>=50)and(y2<=450)and((x1<>x2)or(y1<>y2));
setwindowsize(500,500);
centerwindow;
setpencolor(clRed);
setbrushcolor(clRed);
circle(x1,y1,3);
circle(x2,y2,3);
setbrushstyle(bsClear);
setfontsize(12);
textout(x1+10,y1-15,'A');
textout(x2+10,y2-15,'B');
// вертикальная
setpencolor(clBlue);
if x1=x2 then
 begin
  x:=x1;
  y:=0;
  while y<windowheight do
   begin
    if y=0 then moveto(round(x),round(y))
    else lineto(round(x),round(y));
    y:=y+0.1;
   end
 end
//горизонтальная
else if y1=y2 then
 begin
  x:=0;
  y:=y1;
  while x<windowwidth do
   begin
    if x=0 then moveto(round(x),round(y))
    else lineto(round(x),round(y));
    x:=x+0.1;
   end
 end
//наклонные
else
 begin
  x:=0;
  k:=(y1-y2)/(x2-x1);
  c:=y2+x2*k;
  while x<=windowwidth do
   begin
    y:=-round((k*x-c));
    if x=0 then moveto(round(x),round(y))
    else lineto(round(x),round(y));
    x:=x+1;
   end;
 end;
end.

СДЕЛАЙТЕ РЕПОСТ

8   голосов, оценка 3.875 из 5



Похожие ответы
  1. В правильной четырехугольной пирамиде провести сечение, проходящее через вершину пирамиды и перпендикулярное плоскости основания. Буду очень благодарен, спасибо.

  1. дано линию с координатами (х1, у1) начало, (х2, у2) конец, радиусом r нужно провести вторую линию под 90 градусов относительно этой линии длиной r.

  1. В треугольной призме построить сечение, проходящее через одну из сторон нижнего основания и противолежащую вершину верхнего может кто подскажет,как ее решить?? пожаалуйста

  1. В правильной четырехугольной пирамиде провести сечение, проходящее через диагональ основания и середину бокового ребра.

  1. Помогите с решением плиз Справочник учреждений и организаций: название, адрес (улица, № дома), № телефона, район местонахождения. Район местонахождения определить программным путем по второй цифре в номере телефона: 1 — Дашково—Песочня, 2 — Горроща, 3 — Приокский и Канищево, 5 — Московское шоссе, 6,7 — Центр. Провести сортировку записей, расположив фамилии согласно алфавиту.

  1. построить чертеж в pascal В прямой треугольной призме провести сечение,проходящее через диагональ нижнего основания и одну из вершин верхнего основания. помогите пожалуста

  1. Определить количество нечетных элементов в массиве и вывести их индексыДобавлено через 3 минуты Указание. Создать и вывести массив У(8), с элементами уk = ln(k) - 3k, где k = 1,2…. Выполнить дополнительно задание своего варианта поиска данных по некоторому критерию (признаку). Результат вывести на экран.

  1. Вычислить произведение тех элементов массива, для которых выполняется неравенство -2.1< aij<1.5. Указание. Создать генератором случайных чисел в интервале от - 20 до 20, двумерный массив (4 х 4)с элементами aij . Вывести его на экран в виде таблицы (матрицы). Далее выполнить задание своего варианта для созданного массива.