Графика в Паскале - Pascal (8154)
Формулировка задачи:
Плиз, помогите написать прогу. Мне нужно написать программу, изображающую на экране движение точки со случайными приращениями координат («броуновское движение»), используя аддитивный генератор чисел. Я уже замучился, аддитивный генератор я написал, а вот как броуновское движение сделать без понятия. Очень буду благодарен!!!
Генератор чисел:
program lab1; uses crt; const m=1000; var k,i:longint; x: array[0..m] of integer; begin clrscr; for i:=0 to 16 do begin x[i]:=random(16); end; k:=16; for i:=16 to m-1 do begin x[i+1]:=(x[i]+x[i-k]) mod m; write(x[i],' '); end; end.
Решение задачи: «Графика в Паскале»
textual
Листинг программы
program graph4; uses graph,crt; var x,y,x0,y0,d,r,dx,dy:integer; begin x:=0; initgraph(x,y,'EGAVGA.BGI'); x0:=getmaxX div 2; y0:=getmaxY div 2; outtextXY(x0-80,20,'Exit-press any key'); d:=200; r:=10; rectangle(x0-d,y0-d,x0+d,y0+d); x:=x0; y:=y0-d+r+1; dx:=-1; dy:= 1; repeat setcolor(12); circle(x,y,r); setfillstyle(1,12); Fillellipse(x,y,r,r); delay(10); setcolor(0); circle(x,y,r); setfillstyle(1,0); Fillellipse(x,y,r,r); x:=x+dx; y:=y+dy; if x=x0-d+r+2 then dx:=1 else if y=y0+d-r-2 then dy:=-1 else if x=x0+d-r-2 then dx:=-1 else if y=y0-d+r+2 then dy:=+1; until Keypressed; end.
Объяснение кода листинга программы
- Создается программа
graph4
, которая использует библиотекуgraph
иcrt
. - Объявляются переменные: x, y, x0, y0, d, r, dx, dy - целые числа.
- Вычисляется значение x0 как половина максимального значения x и y.
- Вычисляется значение y0 как половина максимального значения x и y.
- Выводится текст на экран (координаты выхода указаны в виде десятичной дроби).
- Значения переменных d и r инициализируются.
- Выводится окружность с радиусом r.
- Вычисляются новые координаты x и y.
- Устанавливается цвет для заполнения фигуры.
- Выводится окружность с радиусом r.
- Если новые координаты x и y совпадают с координатами x0-d+r+2 и y0-d+r+2 соответственно, то dx устанавливается равным 1.
- Если новые координаты x и y совпадают с координатами x0+d-r-2 и y0-d+r+2 соответственно, то dy устанавливается равным -1.
- Если новые координаты x и y совпадают с координатами x0+d-r-2 и y0+d-r-2 соответственно, то dx устанавливается равным -1.
- Если новые координаты x и y совпадают с координатами x0-d+r+2 и y0+d-r-2 соответственно, то dy устанавливается равным +1.
- Цикл повторяется до тех пор, пока не будет нажата клавиша.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д