Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2013, 16:41   #1
thedarklord
 
Регистрация: 11.04.2013
Сообщений: 4
По умолчанию Нарисовать график

Добрый день, подскажите пожалуйста, как нарисовать график зависимости от переменной 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
Как мне нарисовать такой график? Чтобы бы получилось вот такое


Я пытаюсь сделать такое рисование
Код:
	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
Что нужно сделать?
Очень срочно прошу помощи!
thedarklord вне форума Ответить с цитированием
Старый 18.04.2013, 14:52   #2
thedarklord
 
Регистрация: 11.04.2013
Сообщений: 4
По умолчанию

Переделал функцию
Код:
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.piccy.info/i7/a3a9ddf9ee85a...ezymiannyi.jpg

Помогите, пожалуйста
thedarklord вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать график у Visual C++ yurets26 Помощь студентам 2 17.10.2012 21:38
Нарисовать график функции OLeJKee C# (си шарп) 0 27.12.2011 23:10
нарисовать на форме график Symba Общие вопросы Delphi 4 17.03.2011 20:20
нарисовать график badaladanbad Мультимедиа в Delphi 4 11.10.2010 16:10
Помогите нарисовать график. Игорь007 Помощь студентам 0 02.06.2008 20:12