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

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

Восстановить пароль Регистрация
 
thedarklord
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 3
18.04.2013, 14:51     Нарисовать график #1
Добрый день, подскажите пожалуйста, как нарисовать график зависимости от переменной T - это по y, а func - это по х.

Я пересчитываю выражение
Код
	for(T=0;T<1000;T+=1)
	{
	rA=a*pow(T,2);
	rB=b*T;
	func=rA-rB;

	if ( bKey )  
		{
			sprintf( szString, "Расстояние. = %g\r\n Время=%g\r\n", func, T);
			WriteFile( hOutFile, szString, strlen( szString ), &dwNumberOfBytes, NULL );
		}
	if(func>1000)
	{
		break;
	}
В текстовом файле получаю

Код
Коэффициент a.= 1.4
 Коэффициент b = 10
Расстояние. = 0
 Время=0
Расстояние. = -8.6
 Время=1
Расстояние. = -14.4
 Время=2
Расстояние. = -17.4
 Время=3
Расстояние. = -17.6
 Время=4
Расстояние. = -15
 Время=5
Расстояние. = -9.6
 Время=6
Расстояние. = -1.4
 Время=7
Расстояние. = 9.6
 Время=8
Расстояние. = 23.4
 Время=9
Расстояние. = 40
 Время=10
Расстояние. = 59.4
 Время=11
Расстояние. = 81.6
 Время=12
Расстояние. = 106.6
 Время=13
Расстояние. = 134.4
 Время=14
Расстояние. = 165
 Время=15
Расстояние. = 198.4
 Время=16
Расстояние. = 234.6
 Время=17
Расстояние. = 273.6
 Время=18
Расстояние. = 315.4
 Время=19
Расстояние. = 360
 Время=20
Расстояние. = 407.4
 Время=21
Расстояние. = 457.6
 Время=22
Расстояние. = 510.6
 Время=23
Расстояние. = 566.4
 Время=24
Расстояние. = 625
 Время=25
Расстояние. = 686.4
 Время=26
Расстояние. = 750.6
 Время=27
Расстояние. = 817.6
 Время=28
Расстояние. = 887.4
 Время=29
Расстояние. = 960
 Время=30
Расстояние. = 1035.4
 Время=31
Как мне нарисовать такой график? Чтобы бы получилось вот такое
[IMG]http://i.***********/i7/a3a9ddf9ee85aa6179aec48ff9a577d5/4-57-1293/62954629/Bezymiannyi.jpg[/IMG]

Я пытаюсь сделать такое рисование
Код
	CWnd* pWnd = ( CWnd* )GetDlgItem( IDC_DRAW_AREA );
	if ( pWnd )
	{
		CClientDC dc( pWnd );
		CRect rect;
		pWnd->GetClientRect( &rect );
		dc.FillRect( &rect, NULL );
	
		double dScale = ( rect.right - rect.left ) / 41.;
		char szBuf[256];
	
		HANDLE hFile; 
		
				hFile = CreateFile( "Result.txt",	
					GENERIC_READ,	
					0,				
					NULL,			
					OPEN_EXISTING,
					FILE_ATTRIBUTE_NORMAL,
					NULL);			
		if (hFile == INVALID_HANDLE_VALUE) 
		{ 
			return; 
		} 
		DWORD dwFileSize = GetFileSize( hFile, NULL );
		/
		char* pBuf = new char[ dwFileSize + 1 ];
		memset(pBuf, 0, dwFileSize + 1);

		DWORD dwBytesReaded;
		ReadFile( hFile, pBuf, dwFileSize, &dwBytesReaded, NULL );
		CloseHandle( hFile );
		char seps[]   = "\t\n\r";
		char *token;
		int i = 0;
	token = strtok( pBuf, seps );
	while ( token != NULL )
		{
			double x, y;
			x = atof( token );
			token = strtok( NULL, seps );
			if ( token == NULL )
			{
				return;
			}
			y = atof( token );
			sprintf( szBuf, "Текущее время %g", y );
			T=szBuf;
			sprintf( szBuf, "Текущее расстояние %g", x );
			func=szBuf;
			
			UpdateData( FALSE );
			dc.MoveTo( ceil( i * dScale ), rect.bottom - 1 );
			dc.LineTo( ceil( i * dScale ), rect.bottom - 1 - y * ( rect.bottom - rect.top )/ 10 );

			token = strtok( NULL, seps );
			i++;
		
			Sleep( 300 );
		}
		delete[] pBuf;
Но ругается на
error C2440: '=' : cannot convert from 'char [256]' to 'double'
There is no context in which this conversion is possible
error C2440: '=' : cannot convert from 'char [256]' to 'double'
There is no context in which this conversion is possible
Что нужно сделать?
Очень срочно прошу помощи!

Добавлено через 22 часа 7 минут
Переделал функцию
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
UpdateData (TRUE);
    func=0;
    
    ofstream OutFile;
    OutFile.open("Result.txt");  
 
 
    for(T=0;T<1000;T+=1)
    {
    func=(a/3*pow(T,3))-(b/2*pow(T,2));
 
        if(func<=0)
    {
        func=0;
    }
 
    if(bKey)
    {
        OutFile << T << "\t" << func << "\n";
    }
    if(func>1000)
    {
        break;
    }
    }
 
    
 
 
    OutFile.close();
 
 
    UpdateData(FALSE);
Как теперь нарисовать такой график?

http://i.***********/i7/a3a9ddf9ee85a...ezymiannyi.jpg

Помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 14:51     Нарисовать график
Посмотрите здесь:

Как нарисовать график? C++
C++ Как нарисовать график функции?
C++ Нарисовать график функции
C++ Как нарисовать график функции?
C++ Как нарисовать график в Excel через Visual Studio?
Нарисовать график функции в отдельном окне C++
Как в Visual C++ 2012 нарисовать линию или график функции C++

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

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

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