Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mansu
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 240
#1

Построить график по точкам из файла - C++

25.05.2014, 17:22. Просмотров 409. Ответов 0
Метки нет (Все метки)

У меня есть файл, в котором есть координаты моих точек и еще всякий мусор. Мне надо считать координаты с этого файла и построить график по ним. Я написал прогу для построения прямой по 2 точкам, но не могу её протестировать потому, что на мониторе всякий мусор.(Работаю в borland C++). Скажите правильно ли эта программа работает и если я запишу координаты этих точек в 2 массива и задам цикл для построения будет ли она работать?

Текст программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<dos.h>
#include<math.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
int main(void)
{
//Блок считывания файл, тоже не уверен в нём
//    int A[20],i;
//    int B[20],j;
//  FILE *fp;
//    fp=fopen("C:\\name.txt", "r+");
//    for(i=0;i<20;i++){
//  fscanf(fp,"%d\n", &A[i]);}
//       for(j=0;j<20;j++){
//  fscanf(fp,"%d\n", &B[j]);}
//Дальше вывод на экран, он не нужен.
//    for(i=0;i<10;i++){
//  fprintf(NULL,"%d", A[i]);
//    i++;}
//fclose(fp);
 
int gdriver=DETECT;
int gmode;
int xmax, ymax;
 
initgraph(&gdriver,&gmode,PATHTODRIVER);
 
 setcolor(getmaxcolor());
   xmax = getmaxx();
   ymax = getmaxy();
//   int x1=50; int x2=75;int y1=50;int y2=100;
   clrscr();
//Оно конечно же работает не правильно. Помогите как тут записывать в (x1;y1) (x2;y2)? 
//for (i=0;i<20;i++);{
//for (j=0;j<20;j++);
//x1=A[i];
//y1=B[j];}
   line(x1,y1,x2,y2);
   getch();
   closegraph();
   return 0;
}
Добавлено через 9 минут
Буду еще очень благодарен, если кто-то объяснит, как в ту прогу присабачить оси и разметку на них. А то мне надо еще нарисовать решетку, по которой можно будет понять координаты. Чуть позже закину картинку, как должно быть. Спасибо заранее всем, кто будет помогать)

Добавлено через 59 минут
Все-таки она строит. Запустил на ноуте, она построила, понял даже как делать оси. Вот последняя поправка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<dos.h>
#include<math.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
int main(void)
{
//Блок считывания файл, тоже не уверен в нём
// int A[20],i;
// int B[20],j;
//  FILE *fp;
// fp=fopen("C:\\name.txt", "r+");
// for(i=0;i<20;i++){
//  fscanf(fp,"%d\n", &A[i]);}
// for(j=0;j<20;j++){
//  fscanf(fp,"%d\n", &B[j]);}
//Дальше вывод на экран, он не нужен.
// for(i=0;i<10;i++){
//  fprintf(NULL,"%d", A[i]);
// i++;}
//fclose(fp);
 
int gdriver=DETECT;
int gmode;
int xmax, ymax;
 
initgraph(&gdriver,&gmode,PATHTODRIVER);
 
setcolor(getmaxcolor());
xmax = getmaxx();
ymax = getmaxy();
 int x1=50; int x2=75;int y1=50;int y2=100; int x3=-15; int y3=35;
clrscr();
//Оно конечно же работает не правильно. Помогите как тут записывать в (x1;y1) (x2;y2)?
//for (i=0;i<20;i++);{
//for (j=0;j<20;j++);
//x1=A[i];
//y1=B[j];}
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(xmax/2,ymax,xmax/2,-ymax);
line(-xmax,ymax/2,xmax,ymax/2);
getch();
closegraph();
return 0;
}
Добавлено через 1 час 28 минут
а можно так задать цыклом ?
for (i=0;i<20;i++){
line(A[i],B[j],A[i+1],B[j+1]);
j++;
}

Добавлено через 30 минут
Уже сам разобрался с осями. Помогите только с 1 - надо сделать блок который считывает цифры и записывает одни в массив А(иксы), а (игрики) в массив Б.
Навсякий кину программу еще раз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<dos.h>
#include<math.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
int main(void)
{
//Ѓ«®Є бзЁвлў**Ёп в®зҐЄ
 int A[20],i;
 int B[20],j;
    FILE *fp;
 fp=fopen("D:\\name.txt", "r+");
 for(i=0;i<20;i++){
    fscanf(fp,"%d\n", &A[i]);}
// cout<<"\n";
 for(j=0;j<20;j++){
    fscanf(fp,"%d\n", &B[j]);}
//Дальше вывод на экран, он не нужен.
 for(i=0;i<10;i++){
    fprintf(NULL,"%d", A[i]);
 i++;}
fclose(fp);
 
int gdriver=DETECT;
int gmode;
int xmax, ymax;
 
initgraph(&gdriver,&gmode,PATHTODRIVER);
 
setbkcolor(7);
xmax = getmaxx();
ymax = getmaxy();
int x_max, x_min, y_max, y_min;
clrscr();
 
//‘ва®Ё¬ Ја*дЁЄ
//for (i=0;i<20;i++);{
//for (j=0;j<20;j++);
j=0;
for (i=0;i<20;i++){
//x1=A[i];
//y1=B[j];}
line(A[i],B[j],A[i+1],B[j+1]);
j++;
}
//„®Ї Ў«®Є ¤«п Ї®бв஥*Ёп
x_max=0;
for(i=0;i<20;i++){
if (A[i]>x_max)
  x_max=A[i];
}
x_min=0;
for(i=0;i<20;i++){
if (A[i]<x_min)
  x_min=A[i];
}
y_max=0;
for(j=0;j<20;j++){
if (B[j]>y_max)
  y_max=B[i];
}
y_min=0;
for(j=0;j<20;j++){
if (B[j]<y_min)
  y_min=B[j];
}
//—ҐавЁ¬ ®бЁ
line(xmax/2,ymax,xmax/2,-ymax);
line(-xmax,ymax/2,xmax,ymax/2);
 
//„Ґ«*Ґ¬ ¬*бив*Ў
int z;
for(z=1;z<11;z++){
line(x_max/10*z,-ymax,x_max/10*z,ymax);
outtextxy(x_max/10*z,ymax/2,"x_max/10*z");
}
for(z=1;z<11;z++){
line(x_min/10*z,-ymax,x_min/10*z,ymax);
outtextxy(x_min/10*z,ymax/2,"x_min/10*z");
}
for(z=1;z<11;z++){
line(-xmax,y_max/10*z,xmax,y_max/10*z);
outtextxy(xmax/2,y_max/10*z,"y_max/10*z");
}
for(z=1;z<11;z++){
line(-xmax,y_min/10*z,xmax,y_min/10*z);
outtextxy(xmax/2,y_min/10*z,"y_min/10*z");
}
 
getch();
closegraph();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2014, 17:22     Построить график по точкам из файла
Посмотрите здесь:

Как построить график по точкам для проведения по нему расчетов? - C++
Есть несколько десятков пар значений X и Y по которым необходимо построить график (лучше в TChart, но можно нарисовать на PaintBox или...

Прочитать данные из файла и построить график - C++
Программа, у которой не ясно, откуда ноги растут У меня есть программа, которая выдаёт данные в формате DAT. Там есть названия колонок...

Построить прямоугольник по двум заданным точкам - C++
Построить прямоугольник по двум заданным точкам: левому верхнему и правому нижнему углам. Обе точки указываются с клавиатуры, а именно:...

Построить по 3 точкам выпуклый шестиугольник минимального размера - C++
Доброго времени суток. Большая просьба помочь с кодом. Задача: Даны координаты 3 точек в двумерной плоскости. Необходимо найти...

Построить график - C++
в windows form построить y=a+3/x, aє а вводим с клавиатуры, нажимаем на кнопку график строится

Построить график - C++
Построить график

Построить график в С++ - C++
Нужно построить в С++, один любой график из 7 функций. Помогите пожалуйста, срочно!

Построить график - C++
Помогите с созданием графика по функции y=(x^2)-6|x|+3, где x принадлежит отрезку . Спасибо.

Построить график - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #define f(x,y) (1.3*x-5.3*sin(x))+(5.3*x+y); void main(){ double x0, x1, y0, y1, h; ...

Построить график в С++ - C++
Что не так? (1/9)*(sin(x)/2) #include &lt;Windows.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; int main() { float...

Построить график функции - C++
программа которая строит график функции y=|x|sin x Заранее большое спасибо.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru