Изобразить на экране прямую, вращающуюся в плоскости экрана вокруг одной из своих точек - Turbo Pascal
Формулировка задачи:
Turbo Pascal Изобразить на экране прямую, вращающуюся плоскости экрана вокруг одной из своих точек, при этом центр вращения с постоянной скорость перемещается от одного края экрана до другого параллельно горизонтально оси экрана. Составить программу что бы цвет прямой изменялся при переходе от предыдущего положения к следующему.
Решение задачи: «Изобразить на экране прямую, вращающуюся в плоскости экрана вокруг одной из своих точек»
textual
Листинг программы
uses crt,graph; var d,x,y,x1,y1,x2,y2,c:integer; a:real; begin initgraph(x,y,''); d:=50;{треть длины отрезка} x:=0; y:=getmaxY div 2; outtextXY(270,20,'Quit - any key...'); a:=0; c:=9; repeat x1:=x+round(d*cos(a)); y1:=y-round(d*sin(a)); x2:=x-round(2*d*cos(a)); y2:=y+round(2*d*sin(a)); setcolor(c); setlinestyle(0,0,3); line(x1,y1,x2,y2); delay(50); setcolor(0); setlinestyle(0,0,3); line(x1,y1,x2,y2); a:=a+0.2; if a>=2*pi then begin inc(c); if c=16 then c:=9; a:=0; end; x:=x+2; if x>getmaxX then x:=0; until keypressed; end.
Объяснение кода листинга программы
- Используется библиотека crt для работы с графиком и функция initgraph для настройки параметров графика.
- Переменная d инициализируется значением 50, что представляет треть длины отрезка.
- Переменные x и y инициализируются значениями, полученными от функции getmaxY, которая возвращает максимальное значение Y, которое может быть отображено на графике. Значение y делится на 2, чтобы получить среднее значение Y.
- Функция outtextXY используется для вывода текста на график. В данном случае текст
Quit - any key...
выводится в позиции (270,20). - Переменная a инициализируется значением 0.
- Переменная c инициализируется значением 9.
- Запускается цикл repeat, который будет выполняться до тех пор, пока пользователь не нажмет клавишу.
- Внутри цикла переменные x1, y1, x2, y2 и setcolor(c) используются для рисования прямой на экране. Функция line используется для рисования линии между точками (x1,y1) и (x2,y2).
- Задержка в 50 миллисекунд вызывается с помощью функции delay, чтобы линия была видна на экране.
- Переменная a инициализируется значением 0.
- Если значение a превышает 2*pi (что эквивалентно 360 градусам), то увеличивается значение переменной c. Если значение c достигает 16, то оно сбрасывается обратно на 9. Это позволяет создавать эффект вращения прямой вокруг одной из своих точек.
- Переменная x инициализируется значением, полученным от функции getmaxX, которая возвращает максимальное значение X, которое может быть отображено на графике. Если значение x превышает это максимальное значение, то оно сбрасывается обратно на 0.
- Проверка keypressed используется для определения, была ли нажата клавиша, и если да, то цикл прерывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д