ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

График на Visual С++
  #1  
Старый 19.12.2009, 19:49
«Adult Holding»
Banned
Регистрация: 07.10.2009
Сообщений: 128
Провел на форуме:
725524

Репутация: 63
Отправить сообщение для «Adult Holding» с помощью ICQ
Exclamation График на Visual С++

Господа, напишите код на Visual С++:
Вывождение графика ф-ций: y=3x-cos(x) - 1

Буду дико благодарен!
 
Ответить с цитированием

  #2  
Старый 19.12.2009, 23:22
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

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

Юзай гугль
 
Ответить с цитированием

  #3  
Старый 20.12.2009, 13:59
Noir
Новичок
Регистрация: 20.10.2009
Сообщений: 11
Провел на форуме:
55143

Репутация: 0
По умолчанию

Код:
#include <windows.h>
#include <tchar.h>
#include <math.h>

#define MAXLENTH 100

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
ATOM MyRegisterClass(HINSTANCE hInstance);

TCHAR szAppName[] = _TEXT("Graphic");
TCHAR szTitleMain[MAXLENTH];
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	HWND hWndMain;
	MSG msg;


	if(!MyRegisterClass(hInstance))
	{
		//MessageBox(hWnd,_TEXT("Can't register class"),_TEXT("Error..."), MB_OK | MB_ICONINFORMATION);
	}
	LoadString(hInstance,101,szTitleMain,MAXLENTH);
	hWndMain = CreateWindow(szAppName,szTitleMain,WS_OVERLAPPEDWINDOW,
							CW_USEDEFAULT,CW_USEDEFAULT,
							CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,
							hInstance,NULL);
	ShowWindow(hWndMain, iCmdShow);
	UpdateWindow(hWndMain);

	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;
	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.cbClsExtra	= 0;
	wcex.cbWndExtra = 0;
	wcex.style = CS_VREDRAW | CS_HREDRAW;
	wcex.lpfnWndProc = WndProc;
	wcex.hInstance = hInstance;
	wcex.hCursor = LoadCursor(NULL,IDC_ARROW);
	wcex.hIcon = LoadIcon(NULL,IDI_QUESTION);
	wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
	wcex.lpszMenuName = NULL; // Пока не используем
	wcex.hIconSm = LoadIcon(NULL,IDI_QUESTION);
	wcex.lpszClassName = szAppName;
	return RegisterClassEx(&wcex);
}					

float fn(float x)
{
	return 3*x-cos(x) - 1;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	HDC hDC;
	PAINTSTRUCT ps;
	RECT rect;
	static int draw_graf;
	static int clx,cly,mx=20,my=20;
	switch(iMsg)
	{
	case WM_CREATE:
		draw_graf = 1;
		return 0;
	case WM_SIZE:
		clx = LOWORD(lParam);
		cly = HIWORD(lParam);
	case WM_PAINT:
		hDC = BeginPaint(hWnd,&ps);
		GetClientRect(hWnd,&rect);
		
		if(draw_graf)
		{MoveToEx(hDC,0,cly/2,NULL);
        LineTo(hDC,clx,cly/2);
        LineTo(hDC,clx-5,(cly/2)-5);
        MoveToEx(hDC,clx,cly/2,NULL);
        LineTo(hDC,clx-5,(cly/2)+5);

        MoveToEx(hDC,clx/2,cly,NULL);
        LineTo(hDC,clx/2,0);
        LineTo(hDC,(clx/2)-5,5);
        MoveToEx(hDC,(clx/2)+5-1,5-1,NULL);
        LineTo(hDC,clx/2,0);

			for(int i=0;i<clx;i++)
				SetPixel(hDC,i,(cly/2)-my*fn((float)i/mx),RGB(255,50,9));
		}
		EndPaint(hWnd,&ps);
		return 0;
	case WM_LBUTTONDOWN:
		if(mx<256)
		{
			mx*=2;
			my=mx;
			draw_graf=1;
			InvalidateRect(hWnd,NULL,true);
		}
		return 0;
	case WM_RBUTTONDOWN:
		if(mx>32)
		{
			mx/=2;
			my=mx;
			draw_graf=1;
			InvalidateRect(hWnd,NULL,true);
		}
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return DefWindowProc(hWnd,iMsg,wParam,lParam);
}

Извени вот только не компилировал, должно работать
 
Ответить с цитированием

  #4  
Старый 20.12.2009, 14:08
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Это просто деградация!!! График нарисовать не могут Тогда назревает вопрос: А что вообще могут в наше время студенты?
 
Ответить с цитированием

  #5  
Старый 20.12.2009, 14:19
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

думать точно не умеют. идут учиться на специальности, в которых абсолютные нули.
по сабжу - чтобы построить график в школе же наверное учили - нужно заполнить таблицу f(x).
Ну а потом через функцию LineTo построить сам график, соединив последовательно точки таблицы. Noir, привыкай отделять логику от представления. Не должно окно само считать и тут же рисовать. Привыкайте к хорошему стилю.
 
Ответить с цитированием

  #6  
Старый 20.12.2009, 21:33
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Или проще меняешь х(тоесть увеличиваешь его), и рисуешь точку.Тут буквально 6-10 строк кода
 
Ответить с цитированием

  #7  
Старый 20.12.2009, 21:40
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме:
3718311

Репутация: 1118


Отправить сообщение для POS_troi с помощью ICQ
По умолчанию

Цитата:
Это просто деградация!!! График нарисовать не могут Тогда назревает вопрос: А что вообще могут в наше время студенты?
В теме новичкам просил один тело перевести Char To ASCП, Сразу видно что задание списал с личсточка и даже понятия не имеет что-такое ASCП (ASCII)
 
Ответить с цитированием

  #8  
Старый 27.12.2009, 18:25
«Adult Holding»
Banned
Регистрация: 07.10.2009
Сообщений: 128
Провел на форуме:
725524

Репутация: 63
Отправить сообщение для «Adult Holding» с помощью ICQ
По умолчанию

И все таки искренне, надеюсь на вашу помощь господа.
 
Ответить с цитированием

  #9  
Старый 27.12.2009, 21:53
~Shapaev~
Новичок
Регистрация: 24.10.2009
Сообщений: 26
Провел на форуме:
306200

Репутация: 10
По умолчанию

«Adult Holding» тебе дал рабочий код , более того там можно не только эту функцию рисовать.
 
Ответить с цитированием

  #10  
Старый 28.12.2009, 02:22
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

оффтоп

Цитата:
Сообщение от Ra$cal  
идут учиться на специальности, в которых абсолютные нули.
они просто думают, что в институте их обучат ухахаха

а там почему-то дают задание на лабы и непонятную методичку (если она вообще есть). Вот и появляются Char To ASCП. Мой знакомый лаборант, только на 3м курсе увидел, что у компьютера внутри, а на первом даже не знал, какие разъемы для чего нужны. Но самые веселые первокуры из области. Мы минут 10 смотрели как парень сидел перед BSOD и пытался нажать что-то типа Ctrl+alt+delite xD
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка Visual Studio Dead4ik Болталка 6 18.11.2009 00:12
Visual Basic k@sper Болталка 2 09.04.2009 02:41
Вышла предварительная версия Visual Basic 9.0 dinar_007 Мировые новости 0 26.01.2006 17:08
С++ В трех вариациях... byte57 С/С++, C#, Delphi, .NET, Asm 30 30.12.2005 06:09



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ