Нужно провести вторую линию под 90 градусов относительно этой линии длиной r - Pascal ABC
Формулировка задачи:
дано линию с координатами (х1, у1) начало, (х2, у2) конец, радиусом r нужно провести вторую линию под 90 градусов относительно этой линии длиной r.
Решение задачи: «Нужно провести вторую линию под 90 градусов относительно этой линии длиной r»
textual
Листинг программы
uses graphABC,crt; var x0,y0,i:integer; x1,y1,x2,y2,xc,yc,x3,y3,x4,y4,r,m,u:real; begin repeat writeln('Введите координаты концов отрезка от -10 до 10'); readln(x1,y1,x2,y2); until(x1>=-10)and(x1<=10)and(y1>=-10)and(y1<=10) and (x2>=-10)and(x2<=10)and(y2>=-10)and(y2<=10); repeat write('Введите длину перпендикулярного отрезка от -10 до 10'); readln(r); until(r>=-10)and(r<=10); setwindowsize(600,600); centerwindow; clearwindow; hidecursor; x0:=windowwidth div 2;//начало координат y0:=x0; line(0,y0,2*x0,y0); //оси line(x0,0,x0,2*y0); m:=(x0-20)/20; //мастаб for i:=1 to 20 do //разграфка осей if i mod 2=0 then begin line(x0+round(i*m),y0+3,x0+round(i*m),y0-3); line(x0-round(i*m),y0+3,x0-round(i*m),y0-3); textout(x0+round(i*m),y0+10,inttostr(i)); textout(x0-round(i*m),y0+10,inttostr(-i)); line(x0+3,y0-round(i*m),x0-3,y0-round(i*m)); line(x0+3,y0+round(i*m),x0-3,y0+round(i*m)); textout(x0-20,y0-round(i*m),inttostr(i)); textout(x0-25,y0+round(i*m),inttostr(-i)); end; textout(2*x0-10,y0-15,'X'); textout(x0+5,5,'Y'); textout(x0+5,y0+10,'0'); x3:=(x1+x2)/2;//координаты центра 1 отрезка y3:=(y1+y2)/2; if x1=x2 then //1 отрезок вертикальный begin x4:=x3+r; y4:=yc; end else begin u:=arctan((y2-y1)/(x2-x1)); x4:=x3+r*cos(u-pi/2); y4:=y3+r*sin(u-pi/2); end; setpenwidth(3);//рисуем оба отрезка setpencolor(clRed); line(x0+round(x1*m),y0-round(y1*m),x0+round(x2*m),y0-round(y2*m)); setpencolor(clBlue); line(x0+round(x3*m),y0-round(y3*m),x0+round(x4*m),y0-round(y4*m)); end.
Объяснение кода листинга программы
- Используется библиотека graphABC и crt.
- Задаются начальные значения переменных x0, y0, i, x1, y1, x2, y2, x3, y3, x4, y4, r, m, u.
- В цикле повторяется запрос координат концов отрезка от -10 до 10.
- В цикле повторяется запрос длины перпендикулярного отрезка от -10 до 10.
- Устанавливается размер окна приложения.
- Вычисляется мастаб (m).
- Запускается цикл разграфки осей, который повторяется 20 раз.
- В каждой итерации цикла вычисляются координаты точек на осях и их текстовые метки.
- Вычисляются координаты центра первого отрезка (x3, y3).
- Если первый отрезок вертикальный, то вычисляются координаты его конца (x4, y4).
- Устанавливается ширина пера.
- Устанавливается цвет пера.
- Рисуются оба отрезка.
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д