|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.04.2011, 18:33 | #1 |
Новичок
Джуниор
Регистрация: 29.04.2011
Сообщений: 1
|
построение графиоков в B.C 3.1
Делаю курсовой проект. Встретился с проблемой. Программа строит графики. суть в том что мне нужно сделать так чтоб пользователь сам выбирал цифрами от 1 до 9 функцию вбивал коэфиценты. И программа строила бы их.
/*---------------------------Main.cpp главный файл--------------*/ #include "fyn.cpp" void Ent_Drive(); void Grafic_1(); //------------------------ int main() { Ent_Drive(); //Размеры окна в мировых координатах и в пикселях xLeft = -2; xRight = 10; yBottom = -2; yTop = 2; nLeft = 100; nRight = 500; mBottom = 400; mTop = 0; Grafic_1(); do{ os = getch(); switch(os) { case 72: //перемещение по оси в верх closegraph(); xLeft; xRight; yBottom ++; yTop ++; nLeft = 100; nRight = 500; mBottom = 400; mTop = 0; Ent_Drive(); Grafic_1(); break; case 80: //перемещение по оси в низ closegraph(); xLeft; xRight; yBottom --; yTop --; nLeft = 100; nRight = 500; mBottom = 400; mTop = 0; Ent_Drive(); Grafic_1(); break; case 75: //перемещение по оси в право closegraph(); xLeft--; xRight--; yBottom; yTop; nLeft = 100; nRight = 500; mBottom = 400; mTop = 0; Ent_Drive(); Grafic_1(); break; case 77: //перемещение по оси в лево closegraph(); xLeft++; xRight++; yBottom; yTop; nLeft = 100; nRight = 500; mBottom = 400; mTop = 0; Ent_Drive(); Grafic_1(); break; case 115: //Уменьшение окна closegraph(); xLeft; xRight; yBottom; yTop; nLeft; nRight--; mBottom--; mTop; Ent_Drive(); Grafic_1(); break; case 116: //Увелечение окна closegraph(); xLeft; xRight; yBottom; yTop; nLeft; nRight++; mBottom++; mTop; Ent_Drive(); Grafic_1(); break; } }while(os != 27); getch(); closegraph(); return 0; } /*-------------fyn.cpp файл с функциями-------------------*/ #include <stdio.h> #include <conio.h> #include <graphics.h> #include <process.h> #include <math.h> #include <iostream.h> //размеры окна вывода в мировой системе координат double xLeft, xRight, yBottom, yTop; //размеры окна вывода в пикселях на экране монитора int nLeft, nRight, mBottom, mTop; int os, hi; //переход от координат х к пикселям n inline int xn(double x) { return (x - xLeft) / (xRight - xLeft) * (nRight - nLeft) + nLeft; } //переход от координаты y к пикселям m inline int ym(double y) { return (y - yBottom) / (yTop - yBottom) * (mTop - mBottom) + mBottom; } void Ent_Drive() { int gdriver = DETECT, gmode, errorcode; initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI\\"); errorcode = graphresult(); if (errorcode != grOk) / { printf("ошибка графики : %s\n", grapherrormsg(errorcode)); printf("нажмите клавишу для выхода:"); getch(); exit(1); } } void Grafic_1() { //создаем массив точек для аргумента х и функции y= const int N = 100; double corX[N], corY[N]; double x, y, dx = (xRight - xLeft) / ( N - 1 ); for (int i = 0; i < N; i++) { x = xLeft + dx * i; y = 3/(1-(2*cos(x))); corX[i] = x; corY[i] = y; } //черный цвет экрана монитора setbkcolor(0); //®оформляем поле вывода setfillstyle( SOLID_FILL, BLUE ); bar (nLeft, mBottom, nRight, mTop); setfillstyle ( SOLID_LINE, 0); setcolor (YELLOW); rectangle (nLeft, mBottom, nRight, mTop); //рисуем координатные оси setlinestyle ( SOLID_LINE, 0, 1); setcolor ( LIGHTCYAN ); int nb, ne, mb, me; nb = xn ( xLeft ); mb = ym ( 0 ); ne = xn ( xRight ); me = ym ( 0 ); line (nb, mb, ne, me); nb = xn ( 0 ); mb = ym ( yBottom ); ne = xn ( 0 ); me = ym ( yTop ); line (nb, mb, ne, me); //* название графика и осей setcolor (15); // outtextxy ((nLeft + nRight) / 2 - 0, mTop + 25, "Y = SIN(X)"); outtextxy ( nLeft - 5, (mBottom + mTop) / 2, "Y"); outtextxy ((nLeft + nRight) / 2, mBottom + 25, "X"); //выводим числа вдоль осей char ss[10]; sprintf (ss, "%6.11f", xLeft); outtextxy (nLeft - 0, mBottom + 7, ss); sprintf (ss, "%6.11f", xRight); outtextxy (nRight - 0, mBottom + 7, ss); sprintf (ss, "%6.11f", yBottom); outtextxy (nLeft - 55, mBottom - 7, ss); sprintf (ss, "%6.11f", yTop); outtextxy (nLeft - 0, mTop + 1, ss); //рисуем график по двум массивам setcolor (12); nb = xn ( corX[0] ); mb = ym ( corY[0] ); moveto (nb, mb); for ( i = 1; i < N; i++) { nb = xn ( corX[i] ); mb = ym ( corY[i] ); lineto (nb, mb); } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
построение графиков | Алёна | Microsoft Office Excel | 9 | 27.02.2016 10:00 |
Построение дерева | TzX | Компоненты Delphi | 2 | 20.07.2010 15:20 |
Построение цикла | Sensizu | Общие вопросы Delphi | 3 | 18.06.2010 15:56 |
построение кадров | Woodyy | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 14.06.2010 11:59 |
Построение To Be | Baronesa-07 | Помощь студентам | 0 | 17.05.2010 19:28 |