Форум программистов, компьютерный форум CyberForum.ru

Как закрасить треугольник? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка в алфавитном порядке... http://www.cyberforum.ru/cpp-beginners/thread447373.html
Здравствуйте, не могли бы вы помочь мне с задачей? Просто мы на лекциях ещё не разобрали как работать с файлами и текстом на C++, а на лабораторных уже задали такое вот задание. Буду очень признателен.
C++ "BINARY NOT FOUND" Пишу в эклипс срр индиго SR1 incubation.Но...на стадии Building постоянно генерируется сообщение "BINARY NOT FOUND".Как его "найти"? Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread447335.html
дано действительное число x C++
Дано действительное число x. Вычислить ((x-2)(x-4)(x-8)...(x-64))/((x-1)(x-3)(x-7)...(x-63)) решите на С++. Буду очень благодарна!
Как сделать корень квадратный C++
Вычислить расстояние между двумя точками с координатами x1, y1, х2, у2. Как сделать чтобы корень вычислялся? #include<stdio.h> #include<conio.h> void main() { float x1,x2,y1,y2,c; printf(" x1,x2,y1,y2:"); scanf("%f%f,%f,%f",&x1,&x2,&y1,&y2); c=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
C++ Функция формирования новой матрицы http://www.cyberforum.ru/cpp-beginners/thread447279.html
Помогите составить функцию NewMatr, у меня она не правильная. Вот условие задачи:Составить прогу,которая получает матрицу Х размерностью mxn. Прога в каждой строке определяет наименьший элемент и его индексы и формирует из этих чисел матрицу, расположив в первом её столбце наименьшие элементы строк, а во 2 и 3 столбцах их индексы. P.S.то что выделено жирным, эту функцию нужно составить ...
C++ Преобразование строки в массив (C++) Здравствуйте, уважаемые! Я новичок в C++, и при решении такой задачи у меня возникли трудности: В поле Edit4 вводим текст на русском языке,длинной 16 символов, далее нам необходимо в соответствии с определённой таблицей перевести этот текст в массив из шестнадцатеричных чисел ( для дальнейшего удобства их использования). у меня получилось следующее: Код: void __fastcall... подробнее

Показать сообщение отдельно
Boyur
0 / 0 / 0
Регистрация: 13.12.2007
Сообщений: 15

Как закрасить треугольник? - C++

16.02.2012, 18:38. Просмотров 1872. Ответов 2
Метки (Все метки)

Как мне закрасить треугольники?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include<windows.h>
#include<string.h>
#define  ID_TIMER  1
 
HBRUSH tbrush;
HBRUSH tbrush1;
RECT trect;
long tspeed  = 1; // Скорость шарика
HWND hWnd;
MSG lpMsg;
WNDCLASS w;
HDC hdc;
POINT elips, tr1[4] , tr2[4], tr3[4] ,tr4[4];//кординаты круга и треугольников
const BYTE T[4] ={PT_MOVETO,PT_LINETO,PT_LINETO,PT_LINETO}; //нужно для функции PolyDraw
 
const unsigned int TIMER_2SEC = 2;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void __stdcall TimerProc (HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
 InvalidateRect(hWnd, &trect, TRUE);
                         if((elips.x<270 || tr1[0].y<265) && elips.x<665)// двигатся пока круг не дошёл до середины или треугольники не отдвинулись
                         {
                         elips.x += tspeed;
                         elips.y += tspeed;
                         }
 if(elips.x>269 && tr1[0].y>0)// ждут пока круг не подойдёт поближе и потом двигаются пока треугольник 1 не упрутся в стенку
    for(int i=0;i<4;i++)
    {
        tr1[i].y--;
        tr2[i].x--;
        tr3[i].y++;
        tr4[i].x++;
    }
}
char szProgName[]="Грфические возможности Win32 API";
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
elips.x=25;elips.y=25;
 
tr1[0].x=300;tr1[0].y=300;
tr1[1].x=400;tr1[1].y=300;
tr1[2].x=350;tr1[2].y=350;
tr1[3].x=300;tr1[3].y=300;
 
tr2[0].x=300;tr2[0].y=300;
tr2[1].x=350;tr2[1].y=350;
tr2[2].x=300;tr2[2].y=400;
tr2[3].x=300;tr2[3].y=300;
 
tr3[0].x=300;tr3[0].y=400;
tr3[1].x=350;tr3[1].y=350;
tr3[2].x=400;tr3[2].y=400;
tr3[3].x=300;tr3[3].y=400;
 
tr4[0].x=400;tr4[0].y=300;
tr4[1].x=350;tr4[1].y=350;
tr4[2].x=400;tr4[2].y=400;
tr4[3].x=400;tr4[3].y=300;
// задание кординат
 
//дальше я использовал шаблонный код windows application
w.lpszClassName=szProgName; //имя программы - объявлено выше
w.hInstance=hInstance; //идентификатор текущего приложения
w.lpfnWndProc=WndProc; //указатель на функцию окна
w.hCursor=LoadCursor(NULL, IDC_ARROW); //загружаем курсор
w.hIcon=0; 
w.lpszMenuName=0; 
w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //цвет фона окна
w.style=CS_HREDRAW|CS_VREDRAW;
w.cbClsExtra=0;
w.cbWndExtra=0;
 
//Если не удалось зарегистрировать класс окна - выходим
if(!RegisterClass(&w))
return 0;
 
//Создадим окно в памяти, заполнив аргументы CreateWindow
hWnd=CreateWindow(szProgName, //Имя программы
"Грфические возможности Win32 API", //Заголовок окна
WS_OVERLAPPEDWINDOW, //Стиль окна - перекрывающееся
0, //положение окна на экране по х
0, //положение по у
700, //ширина
730, //высота
(HWND)NULL, //идентификатор родительского окна
(HMENU)NULL, //идентификатор меню
(HINSTANCE)hInstance, //идентификатор экземпляра программы
(HINSTANCE)NULL); //отсутствие дополнительных параметров
 
//Выводим окно из памяти на экран
ShowWindow(hWnd, nCmdShow);
//Обновим содержимое окна
UpdateWindow(hWnd);
 
//Цикл обработки сообщений
 
while(GetMessage(&lpMsg, NULL, 0, 0)) {
PeekMessage(&lpMsg, NULL, 0, 0, PM_REMOVE);// нужно для передачи времени    
TranslateMessage(&lpMsg); 
DispatchMessage(&lpMsg);
}
return(lpMsg.wParam); 
}
 
 
 
//Функция окна
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
       PAINTSTRUCT ps;// структура для рисования
       HGDIOBJ  old;// левая структура
       HDC hdc;// дискриптор усстройство вывода
 
       switch (message) {
             case WM_CREATE:
                    SetTimer(hWnd, ID_TIMER, 2, TimerProc); //установка обработки таймера на функцию TimerProc
                    SetRect(&trect, 0, 0, 1280, 1024);// для прорисовки окна
                    break;
             case WM_PAINT: 
                    hdc = BeginPaint(hWnd, &ps);
                    
                    tbrush = CreateSolidBrush(RGB(0, 255, 0)); // создание кисти
                    old  = SelectObject(hdc, tbrush);// выбор кисти
                    Ellipse(hdc,elips.x-25,elips.y-25,elips.x+25,elips.y+25);// рисуем круг
                    
                    PolyDraw(hdc,tr1,T,4);//рисуем треуголькики
                    PolyDraw(hdc,tr2,T,4);
                    PolyDraw(hdc,tr3,T,4);
                    PolyDraw(hdc,tr4,T,4);
                                    
                    EndPaint(hWnd, &ps);
                    break;
            case WM_DESTROY:
                    DeleteObject(tbrush);
                    KillTimer(hWnd, ID_TIMER);
                    PostQuitMessage(0);
                    break;
            default: return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru