Как вывести график на си
Перейти к содержимому

Как вывести график на си

  • автор:

Построить график функции с помощью символов

Нужно нарисовать график функции в консоли на С++, но проблема в том, что нельзя использовать библиотеки для работы с графикой. То есть нарисовать её нужно с помощью символов (*) и цикла, а я не понимаю, как это сделать.Вот сама функция exp(x-2)-5*x^2+3

#include #include #include double foo(const double x) < return exp(x-2)-5*x*x+3; >int main() < SetConsoleCP(1251); SetConsoleOutputCP(1251); int x,a,b,t; while (true) < std::cout > a; std::cin >> b; if (a > b) < std::cout b" else < break; >> while (true) < std::cout > t; if (t <=0) < >else < break; >> for (int i = a; i > 

Получилось только ось нарисовать. Функция может возвращать как положительные так и отрицательные значения.

Отслеживать
задан 20 мая 2020 в 7:58
1 1 1 серебряный знак 1 1 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

примерно так. Но под вашу функцию надо оси масштабировать. этим займитесь сами В общем и целом подход такой — график «рисуется» в двумерном массиве и потом выводится.

// размеры "экрана" // по оси абсцисс #define scene_length 150 // по оси ординат #define scene_width 40 char scene[scene_length][scene_width*2]; // тут будем график рисовать. по оси ординат делаем в 2 раза больше (под отрицательные значения) for(int x=0;x // тут будем обсчитывать функцию и рисовать график for(int x=0;x // выводим на экран for(int y=scene_width*2-1;y>=0;y--) < printf ("%03d ", y-scene_width); for(int x=0;xprintf("\n"); > return 0; 

Построение графика функции на языке C?

Добрый день, подскажите как максимально просто построить график функции средствами языка C?

#include #include int main() < float x, y, z, step; printf("input x:\n"); scanf("%f", &x); printf("Input y:\n"); scanf("%f", &y); printf("input step:\n"); scanf("%f", &step); printf("result:\n"); for(int i = 0; i < 32; i++) < z = (sin(x)+cos(y))/(cos(x)-sin(y))*tan(x*y); printf("%.2f\t %f\n", x, z); x += step; >>

5a9ba82c11315920922107.jpeg

В итоге чтобы получить что то максимально похожее на график из Excel:

  • Вопрос задан более трёх лет назад
  • 6198 просмотров

Графика в Си.

В графическом режиме в Си можно отображать на экране различные фигуры, строить изображения, реализовывать анимацию и компьютерные игры.

Чтобы работать в графическом режиме в Си, необходимо перейти в графический режим, инициализировав графическое окно си initwindow ( ширина окна, высота окна ); в котором и будут рисоваться изображения. После завершения работы с графикой, необходимо выйти из графического режима с помощью команды closegraph();

Структура программы с графикой в Си.

#include // подключение заголовочного файла с графическими функциями
#include
main()
initwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500
…рисуем графические объекты
getch(); // ждем нажатия клавиши
closegraph(); // закрываем графический режим
>

Основные графические объекты в си, такие как точка, линия, окружность, прямоугольник задаются с помощью системы координат. Система координат в графическом режиме Си задается следующим образом. Верхний левый угол экрана имеет координату x=0 и y=0.

Координата X задается слева направо. Т.е. чем больше X, тем правее точка.

Координата Y задается сверху вниз. Т.е. чем больше Y, тем ниже точка.

Максимальные X это ширина окна. Максимальное Y это высота окна.

графический режим в си с

Задание цвета изображения в Си

Чтобы задать цвет изображаемого объекта, используется оператор setcolor(номер цвета);

Таблица цветов в Си.

0 черный
1 синий
2 зеленый
3 морской волны
4 красный
5 фиолетовый
6 коричневый
7 светло-серый
8 темно-серый
9 светло-синий
10 светло-зеленый
11 светлый морской волны
12 светло-красный
13 светло-фиолетовый
13 светло-фиолетовый
14 желтый
15 белый

setcolor(4) ;// устанавливаем красный цвет

Отображение точки в Си.

Для рисования точки в графических программах си используется оператор

putpixel (x, y, номер цвета );

x, y – координаты точки

номер цвета – цвет, которым будет отображена точка

Отображение линии в Си

Для рисования отрезка в графических программах си используется оператор

x1, y1 – координаты одного конца отрезка

x2, y2 – координаты другого конца отрезка

Отображение окружности в Си

Для рисования окружности в графических программах си используется оператор

x, y – координаты центра окружности

r- радиус окружности

Пример. Отображение окружности белого цвета с центром 100, 100 и радиусом 20.

setcolor(15);// устанавливаем цвет рисования 15 — белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

Отображение прямоугольника в Си.

Для рисования прямоугольной рамки в графических программах си используется оператор.

rectangle (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла прямоугольника

x2, y2 – координаты нижнего правого угла прямоугольника

Чтобы задать цвет рамки необходимо предварительно установить цвет рисования с помощью оператора setcolor(номер цвета);

Для отображения закрашенного прямоугольника в Си используются два оператора.

setfillstyle ( 1, номер цвета );

bar (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла прямоугольника

x2, y2 – координаты нижнего правого угла прямоугольника

Закрашивание ограниченной области в Си.

Чтобы закрасить определенным цветом целую ограниченную область в графической программе си используются два оператора.

setfillstyle (1, цвет закраски );

floodfill (x, y, цвет границы области);

x, y – координаты внутри области

цвет закраски – цвет , которым будет закрашиваться область

цвет границы области – цвет границы закрашиваемой области

Пример закрашенного кругав графических программах си

setcolor(15);// устанавливаем цвет рисования 15 — белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

setfillstyle ( 1, 15 ); // устанавливаем цвет заполнения круга белый -15

floodfill (100, 100, 15); // заполняем окружность, указывая точку внутри ее – центр

Пример графической программы на си

Пример программы 17 графическая программа на си рисует автомобиль.

#include
#include
main()
initwindow(500, 500);// инициализируем графическое окно
// рисуем кузов
setfillstyle (1,4 ); // устанавливаем вид заливки 1 -полный, цвет заливки 4 — красный
bar(100, 150, 200, 170);// закрашенный прямоугольник нижняя часть кузова
bar(120, 150, 170, 130);// закрашенный прямоугольник верхняя часть кузова
// рисуем колеса
setcolor(15); // устанавливаем цвет колеса
circle(120, 170, 10); // левое колесо окружность ниже кузова
circle(170, 170, 10); // правое колесо окружность ниже кузова
setfillstyle (1,8); // устанавливаем вид заливки полный — 1 цвет серый — 8
floodfill(120,170,15); // закрашиваем круг левого колеса до границы круга цветом 15
floodfill(170,170,15); // закрашиваем круг левого колеса до границы круга цветом 15
getch(); // ждем нажатия кнопки
closegraph(); // выход из графического режима
>

рисунок на си

Вернуться к содержанию Перейти к следующему уроку Случайные числа в Си

Программа на си для построения графика функции

В этой статье мы разберем программу на языке программирования си для построения графиков функций. В нашей программе будут отражаться система координат с делениями и подписями на них и будут строиться графики двух функций, который может сам задать пользователь.
В программе на си для построения графика функции вводятся следующие константы
X0 , Y0 — координаты центра координат
k – масштаб одного деления на осях (сколько пикселов в одном делении)
Опишем все функции и процедуры используемые в программе для построения графиков функций
Подробно о задании функций и процедур в си
int osx (float x) переводит реальную координату на оси ox в координату экрана
int osy (float y) переводит реальную координату на оси oy в координату экрана
float F1 ( float x ) и float F2 ( float x ) задают функции , графики которых мы будем строить
void Point ( float x, float y, int color ) рисует точку графика функции на экране
Перед построением графиков функций необходимо построить систему координат. Для построения системы координат используется процедура
void Axes()
В этой процедуре в цикле for рисуются линии меток делений на равном расстоянии друг от друга, который определяется масштабом одного деления k и выводятся значения делений с помощью двух операторов
sprintf ( s, «%d», i ); // записываем в строковую переменную число деления
outtextxy ( xe-10, Y0+4, s ); // вывод числа
Процедура grafik1() и grafik2() строят графики функций f1 и f2
В этих процедурах в цикле for для всех доступных значений x определяется координата y и точка графика строится с помощью процедуры point()

Пример работы программы построения графиков на си, функции пользователь может менять

графики функций на си

Программа на си для построения графиков функций
#include
#include //графический режим
#include // математические функции

//————————————————
const int X0 = 100, Y0 = 400;// координаты центра координат
const float k = 15;// масштаб в точках одного деления на графике
//——————————————
// перевод y в координаты экрана
//——————————————
int osx (float x)
return X0+k*x;
>
//——————————————
//перевод y в координаты экрана
//——————————————
int osy (float y)
return Y0-k*y;
>
// первая функция
float F1 ( float x )
return sqrt(2*x);
>
// вторая функция
float F2 ( float x )
return x*x/2;
>
// построение осей
void Axes()
int i, xe,ye,y1;
char s[10];
line ( X0, 0, X0, 599 ); // ось ox
line ( 0, Y0, 799, Y0 ); // ось oy
// метки на оси ox
for ( i = 1; i xe = osx ( i );
line ( xe, Y0-2, xe, Y0+2 ); // рисуем деление разметки
sprintf ( s, «%d», i ); // записываем в строковую переменную число деления
outtextxy ( xe-10, Y0+4, s ); // вывод числа
>
// метки на оси oy
for ( i = 1; i ye = osy( i+1 );
line ( X0-2, ye, X0+2, ye ); // рисуем деление
sprintf ( s, «%d»,i ); // записываем в строковую переменную число деления
outtextxy ( X0+10, ye+4, s ); // вывод числа
>
>
// построение точки графика функции
void Point ( float x, float y, int color )
int xe, ye;
xe = osx(x);
ye = osy(y);
if ( xe >= 0 && xe < 800 && ye >= 0 && ye < 600 )
putpixel(xe, ye, color);
>
// построение графика первой функции
void grafik1()
float x, h, xmin, xmax;
h = 1 / k;
xmin = (-X0)/ k;
xmax=(800-X0)/k;
for ( x = xmin; x Point(x, F1(x), WHITE);
>
>
// построение графика второй функции
void grafik2()
float x, h, xmin, xmax;
h = 1 / k;
xmin = (-X0)/ k;
xmax=(800-X0)/k;
for ( x = xmin; x Point(x, F2(x), WHITE);
>
>
// главная программа
main ()
initwindow ( 800, 600 ); // создать окно для графики
Axes(); // построение и разметка осей координат
grafik1(); // строим график первой функции
grafik2(); // строим график второй функции
getch(); // ждать нажатия на клавишу
closegraph(); // закрыть окно для графики
>
Полезно почитать по теме построение графиков функций в программа си
Графика в си
Процедуры и функции в си

Комментарии ( 0 )

Нет комментариев. Ваш будет первым!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *