Построение различных изображений в разных окнах



 

rem наложение окон, внутри которых различные рисунки

rem первое окно – график тригонометрической функции y=a*sin(x)

rem второе окно – круговая равномерная гистограмма

rem использование нескольких операторов view и window

screen 12 ‘ вход в графический экран

flag=2 ‘ flag – признак количества одновременно высвеченных окон

13 view (100,50)-(550,300), 7, 4

locate 1,10: print “задайте амплитудное значение а”

locate 2,20: input “a=”a

locate 1,10: print “                                ” ‘ удаление сообщений о вводе значения а

locate 2,20: print “                                ”

pi=3.141592

x0=0

xk=4*pi ‘ строим график при изменении x от 0 до 4*pi

h=pi/64 ‘ шаг изменения x

window (0,-a)-(xk,a) ‘ оператор window предназначен для преобразования истинных координат точек в координаты активного окна, заданного оператором view

line(0,0)-(xk,0),3 ‘ горизонтальная ось OX

line(0.05,-a)-(0.05,a), 3 ‘ вертикальная ось OY

for x=x0 to xk step h ‘ цикл изменения аргумента – построения графика

y=a*sin(x) ‘ вычисление значений функции

pset (x,y), 4 ‘ построение графика

next x

delay 3

if flag=1 then goto kon

view (200,200)-(600,600) ‘ построение второго окна

window (-100,-100)-(100,100) ‘ преобразование координат

pi=3.141592

alf1=pi/6

for alf=0 to 2*pi step pi/6

circle (0,0), 75,5, -alf, -alf1 ‘ построение окружности во втором окне

alf1=alf

next alf

delay 3

cls

delay 3

view(199,199)-(601,401),0

if flag=2 then flag=1 goto 13 ‘ передача управления на восстановление изображения в 1-м окне

end if

kon:

locate 22, 30: print “конец”

stop

 

Построение движущихся картинок. Анимация

 

rem построение программы сложной структуры с использованием меню, состоящего из двух пунктов.

rem первый пункт меню – закрашивание прямоугольных областей по заданному маршруту. Второй пункт меню – “движение” планет вокруг Солнца в разные стороны

cls

rem определение функциональных клавиш

key 5, “закрас.”

key 6, “дв.пл.”

key 7, “выход”

key on

rem форм-е группы операторов определяющих прерывание от нажатия функциональных клавиш

on key (5) gosub f5

key (5) on

on key (6) gosub f6

key (6) on

on key (7) gosub f7

key (7) on

rem формирование пунктов меню внутри цикла зависания

c$=””

do ‘ меню должно быть внутри цикла зависания, так как в противном случае эти пункты не высвечиваются, если в п/п был оператор cls

13 locate 4,25:print “меню”

locate 5,10:print “1. закрашивание прямоугольных областей”

locate 6,10:print “игрового поля по заданному маршруту – F5”     

locate 7,10:print “2. движение планет вокруг солнца – F6”

locate 10,10:print “3. выход – F7”

locate 20,10:print “для продолжения программы нажмите одну из клавиш”

rem “зависание программы”

c$=inkey$

loop until c$<>””

999 key off

cls

locate 10,10:print “работа завершена”

stop

f5:

print “задайте координаты прямоугольной игровой области (в пикселях)”

print “левый верхний угол: 200<=xa<=300; 200<=ya<=300”

input “xa=”xa

input “ya=”ya

print “правый верхний угол: 500<=xb<=600; 400<=ya<=450”

input “xb=”xb

input “yb=”yb

print “кол-во прям-ков по горизонтали: 5<=n<=10”

print “кол-во прям-ков по вертикали: 3<=m<=7”

input “n=”n

input “m=”m

hx=(xb-xa)/n

hy=(yb-ya)/m

nm=n*m

dim nachix(nm),nachy(nm),konx(nm),kony(nm) ‘ массивы координат для построения игрового поля в виде прямоугольников

dim x(nm),y(nm)

k=0

for i=1 to m

for j=1 to n

k=k+1

nachx(k)=(j-1)*hx+xa

nachy(k)=(i-1)*hy+ya

konx(k)=j*hx+xa

kony(k)=i*hy+ya

next j

next i

gosub и

print

print “схема расположения прямоугольников”

print

l=0

for i=1 to m

for j=1 to n

l=l+1

if l<=9 then print “ “;l;” ”

else

print l;” “;

end if

next j

print

next i

print:print

print “задайте маршрут закраски”

print “от 1 до “;k;” через пробел”

print

line input marshrut$

gosub с

gosub d

screen 0

width 80

return ‘ возврат в меню

b:

rem построение игрового поля

cls

screen 12

for i=1 to k

line(nachx(i), nachy(i))-(konx(i),kony(i)), 3, b

line(nachx(i)+4, nachy(i)+4)-( konx(i)-4, kony(i)-4), 10, b

next i

return ‘ возврат в п/п f5

c:

rem формирование ариф. значения маршрута закраски

dim w$(k), lw(k), marshrut(k)

for i=1 to k

w$(i)=” “

lw(i)=1

next i

lm=len(marshrut$, i, 1)

if le$=” “ then

kz=kz+1

else

w$(kz)=w$(kz)+le$

lw(kz)=lw(kz)+1

end if

next i

for i=1 to kz

w$(i)=right$(w$(i),lw(i)-1)

lw(i)=lw(i)-1

marshrut1(i)=val(w$(i))

next i

print:print “konec subroutine c”

return ‘ возврат в п/п f5

d:

rem закраска по маршруту

for i=1 to kz

j= marshrut1(i)

line(nachx(j)+4, nachy(j)+4)-( konx(j)-4, kony(j)-4), 4, bf

if i>1 then

j1= marshrut1(i-1)

line(nachx(j1)+4, nachy(j1)+4)-( konx(j1)-4, kony(j1)-4), 0, bf

line(nachx(j1)+4, nachy(j1)+4)-( konx(j1)-4, kony(j1)-4), 10, b

delay 0.15

end if

next i

print:print “konec subroutine d”

delay 3

return ‘ возврат в п/п f5

f6:

rem п/п движение планет

cls

print “задайте радиусы вращения планет: 50<=R1<=100; 120<=R2<=200”

input “R1=”R1

input “R2=”R2

screen 12

print “движение длиться 3 оборота дальней планеты”

circle (320,240),30,14

pi=3.141592

fi2=2*pi

for fi=0 to 6*pi step pi/16 ‘ три оборота дальней планеты

x2=R2*cos(fi)+320

y2=-R2*sin(fi)+240

x1=R1*cos(fi2)+320

y2=-R1*sin(fi2)+240

circle(x2,y2), 5, 9

circle(x1,y1), 3, 11

delay 0.2

fi2=fi2-pi/32

circle(x2,y2), 5, 0

circle(x1,y1), 3, 0

next fi

locate 22, 35:print “конец”

delay 2

screen 0

width 80

return ‘ возврат в меню

f7:

rem п/п выход из программы

cls

for i=1 to 10

locate 15,30:print “работа программы завершена”

delay 0.5

locate 15,30:print “”

delay 0.25

next i

return 999

 


ЛИТЕРАТУРА

1. Петров А.В. (под редакцией). Вычислительная техника и программирование. Учебное пособие. М.: Высшая школа, 1998. (1990г.);

2. Солодовников А.Д. Доброхотов В.А. Программирование на Бейсике. Тексты лекций. Часть 1. М.: МГИ, 1986, Часть 2. М.: МГИ 1988;

3. Справочник по программированию на языке Бейсик для профессиональных ЭВМ. М.: Машиностроение, 1996;

4. Солодовников А.Д. Программирование на Турбо Бейсике. Тексты лекций. Часть 1. М.: МГГУ, 1996;

5. Солодовников А.Д. Оганесян А.С. Программирование на Турбо Бейсике. Часть 2. М.: МГГУ, 1996;

6. Оганесян А.С. Солодовников А.Д. методические указания по выполнению курсовой работы по дисциплине «Информатика» для студентов экономических и горных специальностей. Учебное пособие. М.: МГГУ, 1998;

7. TURBO-BASIC. Интеркомпьютер. М.,1990, №3-№6;

8. Торхов В.Л. Турбо Бейсик. Справочное руководство М.: Гендальф, 1993;

9. Торхов В.Л. (под редакцией). Turbo basic. Практикум. Сборник задач. М.: НПО Спектр, 1994;

10. Алиев В.К. Языки BASIC м.: «СОЛОН – Р», 2001.

 

 


Дата добавления: 2021-11-30; просмотров: 14; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!