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

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

Восстановить пароль Регистрация
 
Mansu
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 236
25.05.2014, 17:22     Построить график по точкам из файла #1
У меня есть файл, в котором есть координаты моих точек и еще всякий мусор. Мне надо считать координаты с этого файла и построить график по ним. Я написал прогу для построения прямой по 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++
C++ Построить график
Построить график C++
Построить график C++
C++ Построить график
C++ Прочитать данные из файла и построить график
Как построить график по точкам для проведения по нему расчетов? C++
C++ Построить график в С++

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

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

Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru