![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.02.2016
Сообщений: 37
|
![]()
компоненты бинарного файла-записи,
состоящие из четырех чисел-координат центра кольца и его внешнего и внутреннего радиусов. Определить, какое кольцо имеет наибольшую площадь, какое-наименьшую. (входные данные не трогаем и все через указатели должно быть)(тут на самом деле еще графика,но думаю я ее не успею,т.к. до сих пор библиотеку SDL не смог установить,хотя мозг уже просто разрывается) #include <windows.h> #include <math.h> #define ROUND(a) ((int) (a + 0.5)) /* set window handle */ static HWND sHwnd; static COLORREF redColor=RGB(255,0,0); static COLORREF blueColor=RGB(0,0,255); static COLORREF greenColor=RGB(0,255,0); void SetWindowHandle(HWND hwnd){ sHwnd=hwnd; } /* SetPixel */ void setPixel(int x,int y,COLORREF& color=redColor) { if(sHwnd==NULL){ MessageBox(NULL,"sHwnd was not initialized !","Error",MB_OK|MB_ICONERROR); exit(0); } HDC hdc=GetDC(sHwnd); SetPixel(hdc,x,y,color); ReleaseDC(sHwnd,hdc); return; } void ellipsePlotPoints(int xCenter, int yCenter, int x, int y){ setPixel(xCenter + x, yCenter + y); setPixel(xCenter - x, yCenter + y); setPixel(xCenter + x, yCenter - y); setPixel(xCenter - x, yCenter - y); } void drawEllipse(int xCenter, int yCenter, int Rx, int Ry){ int Rx2 = Rx*Rx; int Ry2 = Ry*Ry; int twoRx2 = 2 * Rx2; int twoRy2 = 2 * Ry2; int p; int x = 0; int y = Ry; int px = 0; int py = twoRx2 * y; ellipsePlotPoints(xCenter, yCenter, x, y); /* For Region 1 */ p = ROUND(Ry2 - (Rx2*Ry) + (0.25) * Rx2); while(px < py){ x++; px += twoRy2; if(p < 0){ p += Ry2 + px; }else{ y--; py -= twoRx2; p += Ry2 + px - py; } ellipsePlotPoints(xCenter, yCenter, x, y); } /* For Region 2*/ p = ROUND(Ry2 * (x + 0.5)*(x + 0.5) + Rx2 * (y - 1)*(y - 1) - Rx2 * Ry2); while(y > 0){ y--; py -= twoRx2; if(p > 0){ p += Rx2 - py; }else{ x++; px += twoRy2; p += Rx2 - py + px; } ellipsePlotPoints(xCenter, yCenter, x, y); } } /* Window Procedure WndProc */ LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){ switch(message){ case WM_PAINT: SetWindowHandle(hwnd); drawEllipse(200, 200, 100, 50); break; case WM_CLOSE: // FAIL THROUGH to call DefWindowProc break; case WM_DESTROY: PostQuitMessage(0); return 0; default: break; // FAIL to call DefWindowProc // } return DefWindowProc(hwnd,message,wParam,l Param); } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow){ static TCHAR szAppName[] = TEXT("Ellipse"); WNDCLASS wndclass; wndclass.style = CS_HREDRAW|CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; // Register the window // if(!RegisterClass(&wndclass)){ MessageBox(NULL,"Registering the class failled","Error",MB_OK|MB_ICONERROR ); exit(0); } // CreateWindow // HWND hwnd=CreateWindow(szAppName,"Mid Point Ellipse Drawing - Programming Techniques", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if(!hwnd){ MessageBox(NULL,"Window Creation Failed!","Error",MB_OK); exit(0); } // ShowWindow and UpdateWindow // ShowWindow(hwnd,iCmdShow); UpdateWindow(hwnd); // Message Loop // MSG msg; while(GetMessage(&msg,NULL,0,0)){ TranslateMessage(&msg); DispatchMessage(&msg); } /* return no error to the operating system */ return 0; } |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
Отформатируйте код!
DefWindowProc надо вызывать всегда, кроме случаев, когда вы точно знаете почему этого делать на надо. |
![]() |
![]() |
![]() |
#3 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Кот, лентяев плодишь? Ну-ну. Успехов
![]()
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#5 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
А чо я-то?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Третья тема и нет горчичника за кросспостинг... да еще и лабу за него делают
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Так вот, код отформатировал, а это обязанность ТС. Это, конечно, твоё решение (уважаю), но я-бы не стал.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#8 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]() Цитата:
Ты ж знаешь, что я в чужих исходниках не ковыряюсь. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Я то знаю. В чужих ковыряюсь, но только в том случае, если чётко указано, где, что не работает. А рыться в "проверьте мою программу", мне лениво да и бессмысленно. Чел где-то её скомуниздил, а ты иди за кем-то какашки разгребай. Не интересно.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 28.02.2016
Сообщений: 37
|
![]()
[IMG]C:\Users\Roman\Desktop[/IMG]
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите дописать прогу | wall33 | C++ Builder | 21 | 18.12.2015 11:58 |
Паскаль Не получаеться дописать прогу помогите ПЛИЗ | ученик91 | Помощь студентам | 3 | 08.12.2009 19:50 |
Помогите дописать прогу на делфи | fox7 | Помощь студентам | 3 | 16.06.2007 23:44 |