Этап второй. Графика

Сохраним отработанную программу (FILE\SAVE AS\*.bas).

Для построения графика нам потребуется соединить на плоскости уже имеющиеся шесть точек.

Откроем новую программу (FILE\NEW) и наберем следующий блок:

REM полет тела

REM построение координат

   SCREEN 9:

 x0 = 50

 y0 = 300

 x1 = 600

 y1 = 100

REM координата Y

 LINE (x0, y0)-(x0, y1), 12

 LOCATE 18, 4: PRINT "10"

 LOCATE 14, 4: PRINT "20"

 LOCATE 10, 4: PRINT "30"

LINE (48, 245)-(52, 245), 11

LINE (48, 190)-(52, 190), 11

LINE (48, 135)-(52, 135), 11

REM координата X

 LINE (x0, y0)-(x1, y0), 12

 LOCATE 23, 19: PRINT "50"

 LOCATE 23, 31: PRINT "100"

 LOCATE 23, 44: PRINT "150"

 LOCATE 23, 56: PRINT "200"

 LOCATE 23, 69: PRINT "250"

LINE (150, 302)-(150, 298), 11

LINE (250, 302)-(250, 298), 11

LINE (350, 302)-(350, 298), 11

LINE (450, 302)-(450, 298), 11

LINE (550, 302)-(550, 298), 11

END

Ключевое слово (оператор) SCREEN 9 – обеспечивает перевод в графический режим работы программы. Для построения координат надо учитывать, что точка с координатами X=0, Y=0 лежит в верхнем левом углу экрана монитора. По-этому координаты X0, Y0 определяют начало координат, а X1, Y1- конец координат. Построение линии осуществляется оператором LINE- с указанием координат начала и конца линии и ее цвета (от 0 до 15). Строчка c ключевым словом LOCATE- означает расположить надпись в точке с указанными координатами. После запуска программы на экране появится сетка координат.

Объединим (EDIT\COPY, EDIT\PASTE) имеющийся блок с сохраненной программой, не значительно ее видоизменив.

REM полет тела

REM построение координат

 SCREEN 9:

 x0 = 50

 y0 = 300

 x1 = 600

 y1 = 100

 x2 = 50

 y2 = 300

REM координата Y

 LINE (x0, y0)-(x0, y1), 12

 LOCATE 18, 4: PRINT "10"

 LOCATE 14, 4: PRINT "20"

 LOCATE 10, 4: PRINT "30"

LINE (48, 245)-(52, 245), 11

LINE (48, 190)-(52, 190), 11

LINE (48, 135)-(52, 135), 11

REM координата X

 LINE (x0, y0)-(x1, y0), 12

 LOCATE 23, 19: PRINT "50"

 LOCATE 23, 31: PRINT "100"

 LOCATE 23, 44: PRINT "150"

 LOCATE 23, 56: PRINT "200"

 LOCATE 23, 69: PRINT "250"

LINE (150, 302)-(150, 298), 11

LINE (250, 302)-(250, 298), 11

LINE (350, 302)-(350, 298), 11

LINE (450, 302)-(450, 298), 11

LINE (550, 302)-(550, 298), 11

REM полет

v = 50

g = 9.8

a = 30

f = a * 3.14 / 180

100 q = 1

t = t + q

s = v * t * COS(f)                                                                                           (2.1)

h = v * t * SIN(f) - (g * t ^ 2) / 2                                                                   (2.2)

LINE (x2, y2)-(x0 + s, y0 - h), 14

x2 = x0 + s

y2 = y0 - h

IF h < 0 THEN 200

GOTO 100

200 END

Веденные дополнительные значения X2, Y2 обеспечивают привязку координат к началу системы отчета. Программа выдаст график полета тела, который в данном случае не привязан к масштабу сетки координат. Устранить это неудобство можно в ведя множитель для Y координаты 5.5 (1:5,5), а для координаты X множитель 2 (1:2).

Заменив строчки 2.1 и 2.2 на выражения 2.3 и 2.4

s = v * t * COS(f) * 2                                                                                          (2.3)

         h = (v * t * SIN(f) - (g * t ^ 2) / 2) * 5.5                                                            (2.4)

получим окончательную программу полета тела (Приложение 1). График полета представлен на рисунке 2.

Рис. 2

В данном случаи он не отражает истинной траектории полета тела, так как значение координат получены с шагом (дискретой) в 1 сек. Если значению q присвоить 0,5; 0,25; 0,1; и т.д., то график приблизится к идеальной кривой полета тела.

На кривизну графика так же влияет изменение скорости и начального угла полета тела.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: