Нарисовать ламповый диод - Turbo Pascal
Формулировка задачи:
Собственно нужно нарисовать используя graph ламповый диод как на картинке,долго бился над этим(т.к. этого мы еще не проходили),но все-таки получилось что-то более-менее сносное.Тем не менее т.к. я использовал дугу эллипса линии вышли под углом,можно ли как-нибудь выровнять их?
Решение задачи: «Нарисовать ламповый диод»
textual
Листинг программы
uses graph;
{чтобы не писать 3 раза одно и тоже}
procedure krest(x,y:integer);
begin
line(x-3,y+3,x+3,y-3);
line(x-3,y-3,x+3,y+3);
end;
var gd,gm,x0,y0:integer;
begin
gd:=detect;
initgraph(gd,gm,'/tp_71/bgi');
setbkcolor(15);
setcolor(8);
x0:=getmaxX div 2;{центр рисунка в центре экрана}
y0:=getmaxY div 2;
Circle(x0,y0,90);
Line(x0,y0-160,x0,y0-60);
Line(x0-40,y0-60,x0+40,y0-60);
Line(x0-30,y0+80,x0-30,y0+160);
Line(x0+30,y0+80,x0+30,y0+160);
arc(x0,y0+80,0,180,30);
krest(x0,y0-160);
krest(x0-30,y0+160);
krest(x0+30,y0+160);
readln;
end.
Объяснение кода листинга программы
- Подключается библиотека graph.
- Определяется процедура krest, которая рисует крест на экране.
- Определяются переменные gd, gm, x0 и y0, которые используются для работы с графиком.
- Вызывается функция detect, чтобы определить тип графического устройства.
- Инициализируется графическая система с помощью функции initgraph, передавая ей детектор и имя файла библиотек.
- Устанавливается цвет фона с помощью функции setbkcolor.
- Устанавливается цвет текста с помощью функции setcolor.
- Вычисляется центр рисунка как половина максимальных координат экрана.
- Рисуется окружность с радиусом 90, центром в центре экрана.
- Рисуются две линии, соединяющие центр рисунка с верхней и нижней частями экрана.
- Рисуются еще две линии, соединяющие углы креста.
- Вызывается функция readln, чтобы дождаться ввода с клавиатуры.