Файл paintfone.h рисует псевдо окно на котором будут изображены графики
функций. Белый фон представляет собой обычные линии заданой длинны
выведены в цикле функцией paint_fon(), создавая обычный прямоугольник.
meredian() рисует оси. тут есть важный момент, так как в нем не две
прямые размещенные перпендикулярно, а четыре, которые лучами расходятся
от центра в разные стороны. Сделано было для того чтоб легче перемещать
график в разные стороны манипулируя всего лишь одной главной точкой.
scale_div() рисует шкалу деления графика:
- #ifndef PAINTFONE_H_INCLUDED
- #define PAINTFONE_H_INCLUDED
- void paint_fon(HWND hwnd){
- HDC hDC = GetDC (hwnd);
- HPEN hPen = CreatePen (PS_SOLID, 5, RGB(255, 255, 255));
- SelectObject (hDC, hPen);
- for(int i=0; i<500; i++)
- {MoveToEx(hDC, 20, 20+i, NULL);
- LineTo(hDC, 560, 20+i);}
- DeleteObject (hPen);
- ReleaseDC (hwnd, hDC);}
- //.....................SCALE DIVISION...........................
- void scale_div(HWND hwnd, int x_center, int y_center, int zoom){
- HDC hDC = GetDC (hwnd);
- HRGN hrgn = CreateRectRgn(20,20,560,520);
- SelectClipRgn(hDC, hrgn);
- {
- for(int i=0; i<1000; i++)
- {MoveToEx(hDC, x_center+zoom+(i*zoom), y_center-3, NULL);
- LineTo(hDC, x_center+zoom+(i*zoom),y_center+3);}
- for(int i=0; i<1000; i++)
- {MoveToEx(hDC, x_center-(zoom+(i*zoom)), y_center-3, NULL);
- LineTo(hDC, x_center-(zoom+(i*zoom)),y_center+3);}}
- {
- for(int i=0; i<1000; i++)
- {MoveToEx(hDC, x_center-3, y_center-(zoom+(i*zoom)), NULL);
- LineTo(hDC, x_center+3,y_center-(zoom+(i*zoom)));}
- for(int i=0; i<1000; i++)
- {MoveToEx(hDC, x_center-3, y_center+(zoom+(i*zoom)), NULL);
- LineTo(hDC, x_center+3,y_center+(zoom+(i*zoom)));}
- }}
- //....................MEREDIAN..........................
- void meredian(HWND hwnd, int x_center, int y_center, int zoom){
- HDC hDC = GetDC (hwnd);
- HPEN hPen = CreatePen (PS_SOLID, 1, RGB(0, 0, 0));
- SelectObject (hDC, hPen);
- HRGN hrgn = CreateRectRgn(20,20,560,520);
- SelectClipRgn(hDC, hrgn);
- {MoveToEx(hDC, x_center, y_center, NULL);
- LineTo(hDC, x_center, 20);
- MoveToEx(hDC, x_center, y_center, NULL);
- LineTo(hDC, x_center, 520);}
- {
- MoveToEx(hDC, x_center, y_center, NULL);
- LineTo(hDC, 20, y_center);
- MoveToEx(hDC, x_center, y_center, NULL);
- LineTo(hDC, 560, y_center);}
- SelectObject(hDC, hPen);
- DeleteObject (hPen);
- ReleaseDC (hwnd, hDC);
- scale_div(hwnd,x_center,y_center,zoom);
- }
- void mousepaint(HWND hwnd, POINT point){
- HDC hdc = GetDC(hwnd);
- HPEN hPen = CreatePen (PS_SOLID, 10, RGB(0, 0, 0));
- SelectObject (hdc, hPen);
- MoveToEx(hdc, point.x, point.y, NULL);
- LineTo(hdc,point.x-5, point.y-5);
- DeleteObject (hPen);
- hPen = CreatePen (PS_SOLID, 10, RGB(255, 0, 0));
- SelectObject (hdc, hPen);
- MoveToEx(hdc, point.x, point.y, NULL);
- LineTo(hdc,point.x+5, point.y+5);
- //printf("%d",GetPixel(hdc,point.x+15,point.y));
- }
- #endif // PAINTFONE_H_INCLUDED
Комментариев нет:
Отправить комментарий