Студопедия

КАТЕГОРИИ:


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

Построение графика

Лекция 2.

CenterText; 2- RightText;

Параметры вертикального выравнивания:

0-Bottom – переместить вниз; 1 – TextCenter; 2 – TopText – вверх;

Построить кривую астроиду, заданную параметрически.

x=b cos3 t

y=b sin3 t

t € [0;2 pi]

Будем строить астроиду не по точкам, а по отрезкам. Возьмем n=200. Определим область экрана для построения так, чтобы астроида была во весь экран(640x480.) с учетом нанесения размеров b на графике.

Примем следующие обозначения:

N –количество отрезков для построения;

ti – текущее значение;

tmin, tmax – минимальное и максимальное значение;

step – шаг, с которым будем вести построение;

b – размер

ckx,cky – центр координат;

x0, y0, x1,y1 – координаты соседних точек.

program main;

uses graph,crt;{ось красная, астроида зеленая}

var

i,gd,gm,x1,y1,x0,y0,ckx,cky,n:integer;

s:string[5];

c:char;

b,ti,tmin,tmax,step:real;

function kub(a:real):real;

begin

kub:=a*a*a;

end;

begin

n:=200; кол.отрезков для построения астероиды

tmin:=0;

tmax:=2*pi;

step:=(tmax-tmin)/n;

gd:=detect;

initgraph(gd,gm,'');

b:=getmaxy div 2 -10;

ckx:=getmaxx div 2;

cky:=getmaxy div 2;

setcolor(red);

setlinestyle(centerln,0,normwidth); {пунктирная линия}

line(ckx,0,ckx,getmaxy);

line(0,cky,getmaxx,cky);

setcolor(yellow);

setlinestyle(solidln,0,normwidth); { непрерывная линия}

x0:=ckx+round(b*kub(cos(tmin)));

y0:=cky-round(b*kub(SIN(tmin)));

ti:=tmin;

for i:=1 to n do

begin

ti:=ti+step;

x1:=ckx+round(b*kub(cos(ti)));

y1:=cky-round(b*kub(SIN(ti)));

line(x0,y0,x1,y1);

x0:=x1;

y0:=y1;

end;

settextjustify(0,1);

str(b:4:0,s);

outtextxy(ckx+5,cky-round(b),s); {верхн.отм.}

settextjustify(0,2);

outtextxy(ckx+5,cky+5,'0,0'); {центр. отм.}

settextjustify(0,2);

outtextxy(ckx+trunc(b),cky+5,s); {прав. отм }

b:=-b;

str(b:5:1,s);

b:=-b;

settextjustify(2,2);

outtextxy(ckx-trunc(b),cky+5,s); {лев. отм.}

settextjustify(0,1);

outtextxy(ckx+5,cky+trunc(b),s); {нижняя отметка}

readkey;

closegraph;

end.


Построить график y = f (x) для x=[ x0, xk ] по n точкам.

График будем строить по точкам и соединять их линиями. Чем больше точек, тем более плавным получится график.

Выбираем прямоугольную область экрана, в которой будет располагаться график. Определяем количество точек для построения графика. Значения x и y должны быть целыми. По оси x координаты лежат в пределах от 0 до getmaxx (ось направлена слева направо), а по оси y от 0 до getmaxy (ось направлена сверху вниз). Неизвестны единицы, для которых строится график и надо, чтобы он укладывался в выделенной области. Теперь необходимо реальные координаты графика перевести в координаты графического экрана в пикселах(экранные), т. е. надо знать, сколько точек приходится на единицу измерения.

Назовем x, y – координаты графика, а a, b – координаты экрана.

Пусть n =100,

высота графика - hg=300,

ширина графика - wg=500,

Ckx=100,

Cky=420.

По оси х:

Начальная координата по x: x = x0.

Реальный шаг по оси абсцисс h = (xk-x0)/ n.

Экранный шаг по оси x: ha = round(<ширина графика>/n).

По оси y:

Масштаб по y в точках на единицу реального графика:

my = <высота графика >/(ymax - ymin)

Необходимо найти наибольшее и наименьшее значения заданной функции.

Для того, чтобы можно было построить нормальный график, надо, чтобы в начало координат приходился min функции(y).

Обозначим:

a0,b0,a1,b1 - экранные координаты 2-х соседних точек.

Будем вычислять значения в каждой точке i = 0,….100

Координаты графика:

xi = x0+h i

yi = f(xi)

экранные координаты:

ai = ckx+ha*i

bi = cky-rooud(f(xi)-ymin)*my

uses graph,crt;

<== предыдущая лекция | следующая лекция ==>
Вывод текста в графическом режиме | Движение
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 471; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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