Студопедия

КАТЕГОРИИ:


Архитектура-(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);

Рисует и заполняет маской сектор круга. Контур сектора вычерчивается текущим цветом, а тип закраски и стиль задаются процедурой
SetFillStyle(pattern,color: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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.