Изобразить на экране прямую, вращающуюся в плоскости экрана вокруг одной из своих точек - 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.

Объяснение кода листинга программы

  1. Используется библиотека crt для работы с графиком и функция initgraph для настройки параметров графика.
  2. Переменная d инициализируется значением 50, что представляет треть длины отрезка.
  3. Переменные x и y инициализируются значениями, полученными от функции getmaxY, которая возвращает максимальное значение Y, которое может быть отображено на графике. Значение y делится на 2, чтобы получить среднее значение Y.
  4. Функция outtextXY используется для вывода текста на график. В данном случае текст Quit - any key... выводится в позиции (270,20).
  5. Переменная a инициализируется значением 0.
  6. Переменная c инициализируется значением 9.
  7. Запускается цикл repeat, который будет выполняться до тех пор, пока пользователь не нажмет клавишу.
  8. Внутри цикла переменные x1, y1, x2, y2 и setcolor(c) используются для рисования прямой на экране. Функция line используется для рисования линии между точками (x1,y1) и (x2,y2).
  9. Задержка в 50 миллисекунд вызывается с помощью функции delay, чтобы линия была видна на экране.
  10. Переменная a инициализируется значением 0.
  11. Если значение a превышает 2*pi (что эквивалентно 360 градусам), то увеличивается значение переменной c. Если значение c достигает 16, то оно сбрасывается обратно на 9. Это позволяет создавать эффект вращения прямой вокруг одной из своих точек.
  12. Переменная x инициализируется значением, полученным от функции getmaxX, которая возвращает максимальное значение X, которое может быть отображено на графике. Если значение x превышает это максимальное значение, то оно сбрасывается обратно на 0.
  13. Проверка keypressed используется для определения, была ли нажата клавиша, и если да, то цикл прерывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы