КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Движение
Begin Begin Var Const End. Begin Begin Begin Var Const Var Begin Var Type ft=function(x:real):real; a,b,max,min:real; function f1(x:real):real; far; f1:=x*x+sqrt(x*x+0.1); end; i,gd,gm,x:integer; s:string[5]; my,xp,hp:real; n=100; hg=300; wg=500; ckx=100; cky=420; procedure maxmin(f:ft;a,b:real;n:integer;var max,min:real); var i:integer; h,x,y:real; begin x:=a; h:=(b-a)/n; min:=f(a); max:=min; for i:=1 to n do begin x:=x+h; y:=f(x); if y>max then max:=y; if y<min then min:=y; end; end; procedure grafic(x0,xk:real;f:ft;ymax,ymin:real;hg,wg,n,ckx,cky:integer); {my - масштаб по y } {x, y-координаты графика} {a, b- координаты экрана} {ha – экранный шаг по x, h – шаг графика} my :real; x1,xa,ha:integer; h,x:real; gd,gm,a0,a1,b0,b1,i:integer; s:string[5]; gd:=detect; initgraph(gd,gm,''); my:=hg/(ymax-ymin); ha:=round(wg/n); x:=x0; h:=(xk-x0)/n; a0:=ckx; b0:=cky-trunc((f(x0)-ymin)*my); for i:=1 to n do x:=x+h; a1:=ckx+trunc(ha*i); b1:=cky-trunc((f(x)-ymin)*my); line (a0,b0,a1,b1); a0:=a1; b0:=b1; end; setcolor(red); {оси координат} line(ckx,cky,ckx,cky-hg); line(ckx,cky,ckx+wg,cky); {nfnesenie risok po osi x} x1:=ckx; xp:=x0; hp:=(xk-x0)/5; settextjustify(centertext,toptext); for i:=1 to n do begin line(x1,ckx+5,x1,cky+5); str(xp:4:2,s); outtextxy(x1,cky+5,s); x1:=x1+100; xp:=xp+hp; end; end; writeln('bb a,b'); readln(a,b); maxmin(f1,a,b,n,max,min); grafic(a,b,f1,max,min,hg,wg,n,ckx,cky); readkey; closegraph; gggg {разметка осей поводится в зависимости от значений интервала} {на котором строится график. Надо определить количество рисок на осях. } Построение круговой диаграммы. По данным о распределении стипендий на факультете, содержащихся в массиве построить круговую диаграмму. Такие данные могут быть легко представлены в процентах по отношению к общему количеству студентов. Для наглядного представления такой информации используются круговые диаграммы. Исходные данные: радиус, количество секторов, массив наименований секторов (именные, повышенные, обычные, без стипендии), массив значений процентного содержания компонент. Закрашенный сектор: PieSlice(x, y:integer; StAngle, EndAngle, R:word); Рисует и заполняет маской сектор круга. Контур сектора вычерчивается текущим цветом, а тип закраски и стиль задаются процедурой uses graph,crt; { круговая диаграмма} r=100; n=4; a1,a2,gd,gm,i,ckx,cky:integer; d:array[1..n]of real; writeln('bb. massiv '); s:=0; for i:=1 to n do begin readln(d[i]); s:=s+d[i]; end; gd:=detect; initgraph(gd,gm,''); ckx:=getmaxx div 2; cky:=getmaxy div 2; a1:=0; {нач угол сектора} for i:=1 to n do a2:=round(d[i]/s*360); { кон уг сектора} setfillstyle(i,i); pieslice(ckx,cky,a1,a1+a2,r); a1:=a1+a2; end; readkey; closegraph; end. Полный вариант программы: Program main; uses graph,crt; { круговая диаграмма} const r=100; n=4; x:array[1..n]of string[10]=('именная','повыш','обычная','нет'); var a1,a2,s,gd,gm,i,x1,y1,x0,y0,ckx,cky,pd:integer; d:array[1..n]of integer; st:string[5]; dt,wt:real; begin writeln('bb. massiv '); s:=0; for i:=1 to n do begin readln(d[i]); s:=s+d[i]; end; gd:=detect; initgraph(gd,gm,''); ckx:=getmaxx div 2; cky:=getmaxy div 2; settextjustify(centertext,toptext); outtextxy(ckx,cky-round(cky*0.6),'круговая диаграмма'); a1:=0; {нач угол сектора} x1:=ckx+150; y1:=cky-20; dt:=2*pi/n; settextjustify(centertext,centertext); for i:=1 to n do begin a2:=round(d[i]/s*360); { кон уг сектора} setfillstyle(i,i); pieslice(ckx,cky,a1,a1+a2,r); wt:=(a1+a2/2)*pi/180; x0:=ckx+round(r*0.6*cos(wt)); y0:=cky-round(r*0.6*SIN(wt)); pd:=round(d[i]*100/s); str(pd,st); outtextxy(x0,y0,st+' %'); a1:=a1+a2; bar(x1,y1,x1+40,y1+20); rectangle(x1,y1,x1+40,y1+20); settextjustify(lefttext,centertext); outtextxy(x1+40+4,y1+20 div 2,x[i]); y1:=y1+20; end; readkey; closegraph; end. Программы, которые строят, перемещают, изменяют форму, в соответствии с разработанным сценарием называются анимационными. Анимационные программы работают с двумя классами объектов: средой и спрайтами. Спрайт – это движущийся элемент на экране. Среда – фон по которому движется спрайт. Самый простой способ заставить спрайт двигаться заключается в следующем: Выводится рисунок любым цветом, через определенное время тот же рисунок закрашивается цветом фона, что обеспечивает исчезновение изображения. Затем рисунок выводится в другом месте и т. д.. Пример.
Дата добавления: 2014-01-07; Просмотров: 327; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |