Консольная Графика - построение графиков функций - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно построить в консоле 2 графика функции, друг под другом. Проблема в том что не знаю вобще модуля graphics. Кто может скиньте литературу по графике в С или примеры программ построения графиков функции.

Решение задачи: «Консольная Графика - построение графиков функций»

textual
Листинг программы
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
 
void drawAxes(void)     //чертим оси
{
int xmax,ymax,i;
char c[3];
setcolor(15);           //цвет - белый
xmax = getmaxx();
ymax = getmaxy();
 
line(xmax/2-200,ymax/2,xmax/2+200,ymax/2);
line(xmax/2,ymax/2-200,xmax/2,ymax/2+200);
 
for(i=-9;i<10;i++)
{   line(xmax/2+i*20,ymax/2,xmax/2+i*20,ymax/2-5);
    line(xmax/2,ymax/2+i*20,xmax/2+5,ymax/2+i*20);
}
setcolor(12);           //засечки и цифры - красные
for(i=-9;i<10;i++)
{       itoa(i,c,10);
    outtextxy(xmax/2+i*20-5,ymax/2+5,c);
    if (i) outtextxy(xmax/2-15,ymax/2-i*20,c);
}
}
 
 
void drawFunction(void)     //чертим функцию
{
int xmax,ymax,i,j,i0,j0;
double x,y;
setcolor(11);               //цвет - бирюзовый
xmax = getmaxx();
ymax = getmaxy();
 
x=-200/20.0;
y=x/(x*x-2*x+1);
j=-y*20+ymax/2; //y(x) для начальной точки
i0=xmax/2-200;j0=j;
 
for(i=xmax/2-200;i<xmax/2+200;i++)
{   x=(i-xmax/2)/20.0;
    if(x<0.96 || x>1.04)        //обходим особую точку Х =1
    {     y=x/(x*x-2*x+1);  //y(x) в цикле
        j=-y*20+ymax/2;
        line(i0,j0,i,j);
        i0=i;j0=j;
    }
}
}
 
int main()
{
int graphdriver=DETECT, graphmode,errorcode;
initgraph(&graphdriver,&graphmode,"");
errorcode = graphresult();
if(errorcode != grOk)
{
   printf("Graphics error: %s\n", grapherrormsg(errorcode));
   printf("Press any key to halt:");
   getch();
   exit(1);             //возврат с кодом ошибки
}
 
drawAxes(); //вызов процедуры черчения осей
drawFunction(); // вызов процедуры черчения графика
getch();        //задержка консоли
closegraph();   //конец работы в графическом режиме
return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы