ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Построение графиков. Пользуясь графическими командами, мы можем нарисовать очень ограниченный набор линий. Более сложные задачи, например, моделирование движения по сложным траекториям, требует построения линий из точек. Один из способов решения этой задачи известен вам из алгебры - построение графиков функций. Давайте попробуем такую программу разработать. Значение x будет меняться от края до края экрана, а значение y вычисляться по заданной формуле. Для того, чтобы графики "знакомых" функций выглядели привычно, нужно выбрать более удобную систему координат. Начало координат поместим в центр экрана, а оси направим, как обычно, Ox - влево, а Oy - вверх. Изобразим их на экране (для простоты ограничимся лишь прямыми линиями, не изображая стрелок и надписей). SetColor(Green); Line(0,240,639,240); ось Ox Line(320,0,320,479); ось Oy Начнем строить график. Теперь нам придется иметь дело с двумя системами координат - "экранной" и "нарисованной". Вычислять значение функции нам удобнее в нарисованной системе, а рисовать точки придется в экранной. Обозначим через x и y координаты точки в нарисованной системе, а x_ekr и y_ekr - в экранной. Связь между ними будет такой: x_ekr = x - 320 y_ekr = -y + 240 Из этих соотношений видно, что когда x_ekr меняется от 0 до 639 (от левого до правого края экрана), x меняется от -320 до +319, а при изменении y_ekr от 0 до 479 (от верхнего края до нижнего) y меняется от +240 до -239 (т.е. в обратном направлении). Пользуясь этими соотношениями, составим новую программу построения графика: #include<stdio.h> #include <conio.h> #include <stdlib.h> #include <graphics.h> #include <math.h> int gd=DETECT,gr; main() {initgraph(&gd,&gr,"..\\bgi"); float x,y,xg,yg,a,i; a=0; x=-20; for (i=0;i<2000;i++) {y=sin(x); xg=x*20+320; yg=240-y*20; putpixel(xg,yg,2); x=x+0.05; } getch(); closegraph; }
Программа- заставка из зачета по графике #include<stdio.h> #include <conio.h> #include <stdlib.h> #include <graphics.h> #include <dos.h> int gd=DETECT,gr; main() {initgraph(&gd,&gr,"..\\bgi"); int x,y,xg,yg,a,i; i=0; for (y=50;y<620;y++) { setcolor(1); settextstyle(3,0,i); outtextxy(y,50,"VASYA"); delay(10); setcolor(0); outtextxy(y,50,"VASYA"); delay(10); if (y%10==0) i++; } getch(); closegraph; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0043)http://www.edu.severodvinsk.ru/book/c/9.htm --><!-- saved from url=(0047)http://archive.1september.ru/inf/2000/6/C/9.htm --> Строки Не нашли, что искали? Воспользуйтесь поиском:
|