Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "windows.h"
- #include "cmath"
- #include "windowsx.h"
- #include "tchar.h"
- #include "iostream"
- LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
- #define defwidth 640
- #define defheight 480
- int WINAPI WinMain(HINSTANCE hInst,HINSTANCE Hst,LPSTR str,int mode)
- {
- TCHAR* szClassName = _T("MyWindClass");
- TCHAR* szWinName = _T("Math");
- MSG msg;
- WNDCLASS wnc;
- ZeroMemory(&wnc,sizeof wnc);
- wnc.lpfnWndProc = WndProc;
- wnc.hInstance = hInst;
- wnc.lpszClassName = szClassName;
- wnc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
- wnc.hCursor = LoadCursor(NULL,IDC_ARROW);
- wnc.hbrBackground = CreateSolidBrush(RGB(255,255,255));
- RegisterClass(&wnc);
- HWND hwnd = CreateWindow(
- szClassName,
- szWinName,
- WS_SYSMENU,
- 10,
- 10,
- defwidth,
- defheight,
- HWND_DESKTOP,
- NULL,
- hInst,
- NULL
- );
- ShowWindow(hwnd,SW_SHOWDEFAULT);
- while(GetMessage(&msg,NULL,0,0))
- DispatchMessage(&msg);
- }
- void OnDestroy(HWND);
- void OnPaint(HWND);
- BOOL OnCreate(HWND,LPCREATESTRUCT);
- LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
- {
- switch(msg)
- {
- HANDLE_MSG(hwnd,WM_DESTROY,OnDestroy);
- HANDLE_MSG(hwnd,WM_PAINT,OnPaint);
- HANDLE_MSG(hwnd,WM_CREATE,OnCreate);
- default:
- return DefWindowProc(hwnd,msg,wParam,lParam);
- }
- }
- void _stdcall TiMe(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
- {
- InvalidateRect(hwnd,NULL,true);
- }
- BOOL OnCreate(HWND hw,LPCREATESTRUCT)
- {
- return true;
- }
- void OnDestroy(HWND)
- {
- PostQuitMessage(1);
- }
- #define LN2 0.69314718055994530942;
- #define PI 3.141592653589793;
- inline double getFuncY(long double x)
- {
- if(x < -3)
- return 3*x + 7;
- else if(x >= -3 && x <= 3)
- return -2;
- else if(x > 3)
- return 3*x-11;
- }
- void OnPaint(HWND hw)
- {
- PAINTSTRUCT ps;
- RECT rect;
- GetClientRect(hw,&rect);
- int xaxis = rect.right/2,yaxis = rect.bottom/2;
- HDC hdc = BeginPaint(hw,&ps);
- SelectBrush(hdc,CreateSolidBrush(RGB(0,0,0)));
- MoveToEx(hdc,0,yaxis,NULL);
- LineTo(hdc,rect.right,yaxis);
- MoveToEx(hdc,xaxis,0,NULL);
- LineTo(hdc,xaxis,rect.bottom);
- MoveToEx(hdc,0,0,NULL);
- for(register double x = -100.0,y=0;x < 100.0;x+=0.01){
- y = -(getFuncY(x));
- int mn = 51;
- SetPixel(hdc,xaxis+x*mn,yaxis+y*mn,RGB(0,0,0));
- }
- EndPaint(hw,&ps);
- }
Advertisement
Add Comment
Please, Sign In to add comment