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

графика в VC++(Windows) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Асинхронный ввод с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread351111.html
Доброго времени суток. Имеется клиент named pipes реализованный в консоли. Сервер время от времени шлет сообщения этому клиенту, ввод и отправка сообщений серверу от клиента тоже присутствует. Нужно сделать так, чтобы при вводе сообщения в окне клиента, клиент принимал и отображал сообщения от сервера. В данный момент использую std::wcin.getline(буфер,sizeof(буфер)). Функция отличная, но до...
C++ Создание программы Кто может создать программу для необычного спама вконтакте в группах? Суть такова: Идет поиск по группам с количеством от 10 000 человек и выше. Затем если в группе открыта стена или комментарии под записями на стене то оставляется сообщение,если нет то поиск продолжается. После отсылки сообщения в группу должен делаться скриншот страница на которой эта группа с сообщением,и затем нужно что... http://www.cyberforum.ru/cpp-beginners/thread351107.html
C++ Почему глобальный объект, объявленный до main, конструируется в ней?
Всё просто, имеем код: #include <windows.h> #include <stdio.h> using namespace std; class x { public: x () { printf ("konstruktor\n"); }
C++ Помогите разобраться с задачей, решение должно быть в структуре
Помогите разобраться с задачей, решение должно быть в структуре задача.По данным сведениям об учениках класса определить среднюю массу мальчиков .Кто из них самый тяжелый
C++ Даны действительные числа x,y. Определить, принадлежит ли точка с координатами x,y заштрихованной части плоскости http://www.cyberforum.ru/cpp-beginners/thread351087.html
Даны действительные числа x,y. Определить, принадлежит ли точка с координатами x,y заштрихованной части плоскости. Прошу помочь с выведением формулы для определения, принадлежит ли точка заштрихованной части плоскости. Насчёт "Если x>=0 и y>=1 или x<=0 и y>=1, то принадлежит" сделал условие. Проблемы начинаются, когда y<1. Вот тут, собственно и нужна ваша помощь. Заранее благодарен.
C++ class Point #include<iostream> #include<math.h> #include<stdlib.h> using namespace std; class Point { Point(float,float); ~Point(){} подробнее

Показать сообщение отдельно
volodymyrpr
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 8
13.09.2011, 22:32  [ТС]     графика в VC++(Windows)
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
// консоль.cpp : main project file.
 
 
 
 
 
 
 
 
 
 
 
 
 
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
#include <string>
 
#include <conio.h>
 
#include <Windows.h>
#include <cmath>
#include <cstdlib> //or stdlib.h
 
 
#include <math.h>
#pragma comment(lib, "User32.lib.")
 
using namespace std; 
 
 
 
enum Figure{Other=0, Paralelogram, Pryamokutnik, Kvadrat};
 
Figure CheckPoints(int i, int j, int k, int p, int a[2][20]);
 
 
 
class point
{
public:
    void SetX(int x){itsX=x;}
    int GetX()const{return itsX;}
    void SetY(int y){itsY=y;}
    int GetY()const{return itsY;}
private:
    int itsX;
    int itsY;
};
 
 
 
class Paral
{
public:
    Paral(){}
    ~Paral(){}
    void Draw(int color);
    float GetPer();
    
 
 
    point p1, p2, p3, p4;
    
};
 
 
float Paral::GetPer()
{
    return 2*sqrt((float)(p1.GetX()-p2.GetX())*(p1.GetX()-p2.GetX())+(p1.GetY()-p2.GetY())*(p1.GetY()-p2.GetY()))+2*sqrt((float)(p2.GetY()-p3.GetY())*(p2.GetY()-p3.GetY())+(p2.GetX()-p3.GetX())*(p2.GetX()-p3.GetX()));
}
 
 
 
 
 
 
void Paral::Draw(int color)
{
 
    system("mode con cols=160 lines=90");
    HDC hDC = GetDC( GetConsoleWindow( ) );
 
//  HPEN Pen = CreatePen( PS_SOLID, 1, RGB(255, 0, 0));
    HPEN Pen
 
    if (color==1)
        HPEN Pen = CreatePen( PS_SOLID, 1, RGB(255, 0, 0));
    else 
        if (color==2)
            HPEN Pen = CreatePen( PS_SOLID, 1, RGB(0, 255, 0));
    else 
        HPEN Pen = CreatePen( PS_SOLID, 1, RGB(0, 0, 255));
    
    
    SelectObject( hDC, Pen );
 
 
    MoveToEx( hDC, p1.GetX(), p1.GetY(), NULL );
    LineTo( hDC, p2.GetX(), p2.GetY() );
 
    MoveToEx( hDC, p2.GetX(), p2.GetY(), NULL );
    LineTo( hDC, p3.GetX(), p3.GetY() );
 
    MoveToEx( hDC, p3.GetX(), p3.GetY(), NULL );
    LineTo( hDC, p4.GetX(), p4.GetY() );
 
    MoveToEx( hDC, p4.GetX(), p4.GetY(), NULL );
    LineTo( hDC, p1.GetX(), p1.GetY() );
 
 
 
    getch();
 
}
 
 
 
 
class Pryam: public Paral
{
public:
    Pryam(){}
    ~Pryam(){}
    void Draw(int color); 
};
 
class Kvadr: public Pryam
{
public:
    Kvadr(){}
    ~Kvadr(){}
    void Draw(int color);
};
 
 
float MaxPer(Paral mas1[100], Pryam mas2[100], Kvadr mas3[100], int n);
 
 
int main()
{
    int a[2][20]={{0,20,0,20},{0,0,20,20}};
    bool b[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    int n=5;
 
 
    Paral mas1[100];
    int mas1i=0;
    Pryam mas2[100];
    int mas2i=0;
    Kvadr mas3[100];
    int mas3i=0;
 
 
    
 
 
    for (int i=0; i<n; i++)
    {
        b[i]=1;
        for (int j=0; i<n; i++)
        {
            if (b[j]==1)
                break;
            else
            {
                b[j]=1;
                for (int k=0; i<n; i++)
                {
                    if (b[k]==1)
                        break;
                    else
                    {
                        b[k]=1;
                        for (int p=0; i<n; i++)
                        {
                            if (b[p]==1)
                                break;
                            else
                            {
                                if (CheckPoints(i, j, k, p, a)==1)
                                {
                                    mas1[mas1i].p1.SetX(a[1][i]);
                                    mas1[mas1i].p1.SetY(a[2][i]);
                                    mas1[mas1i].p2.SetX(a[1][j]);
                                    mas1[mas1i].p2.SetY(a[2][j]);
                                    mas1[mas1i].p3.SetX(a[1][k]);
                                    mas1[mas1i].p3.SetY(a[2][k]);
                                    mas1[mas1i].p4.SetX(a[1][p]);
                                    mas1[mas1i].p4.SetY(a[2][p]);
                                    mas1i++;
                                }
                                else
                                    if (CheckPoints(i, j, k, p, a)==2)
                                    {
                                        mas2[mas2i].p1.SetX(a[1][i]);
                                        mas2[mas2i].p1.SetY(a[2][i]);
                                        mas2[mas2i].p2.SetX(a[1][j]);
                                        mas2[mas2i].p2.SetY(a[2][j]);
                                        mas2[mas2i].p3.SetX(a[1][k]);
                                        mas2[mas2i].p3.SetY(a[2][k]);
                                        mas2[mas2i].p4.SetX(a[1][p]);
                                        mas2[mas2i].p4.SetY(a[2][p]);
                                        mas2i++;
                                    }
                                else
                                    if (CheckPoints(i, j, k, p, a)==3)
                                    {
                                        mas3[mas3i].p1.SetX(a[1][i]);
                                        mas3[mas3i].p1.SetY(a[2][i]);
                                        mas3[mas3i].p2.SetX(a[1][j]);
                                        mas3[mas3i].p2.SetY(a[2][j]);
                                        mas3[mas3i].p3.SetX(a[1][k]);
                                        mas3[mas3i].p3.SetY(a[2][k]);
                                        mas3[mas3i].p4.SetX(a[1][p]);
                                        mas3[mas3i].p4.SetY(a[2][p]);
                                        mas3i++;
                                    }
                            }
                        }
                        b[k]=0;
                    }
                }
                b[j]=0;
            }
        }
        b[i]=0;
    }
 
 
 
 
    for (int i=0; i<mas1i; i++)
    {
        mas1[i].Draw(1);
    }
 
    for (int i=0; i<mas2i; i++)
    {
        mas2[i].Draw(2);
    }
 
    for (int i=0; i<mas3i; i++)
    {
        mas3[i].Draw(3);
    }
    return 0;
}
 
 
 
 
 
Figure CheckPoints(int i, int j, int k, int p, int a[2][20])
{
    bool p1=false, p2=false, p3=false;
    
    if (((a[2][j]-a[2][i])*(a[1][k]-a[1][p]))==(a[2][k]-a[2][p])*(a[1][j]-a[1][i]))
        p1=true;
    
    if (((a[2][j]-a[2][i])*(a[2][p]-a[2][i]))==-((a[1][j]-a[1][i])*(a[1][p]-a[1][i])))
        p2=true;
 
    if (((a[1][j]-a[1][i])*(a[1][j]-a[1][i])+(a[2][j]-a[2][i])*(a[2][j]-a[2][i]))==((a[1][p]-a[1][i])*(a[1][p]-a[1][i])+(a[2][p]-a[2][i])*(a[2][p]-a[2][i])))
        p3=true;
 
    if (p1 && p2 && p3)
        return Kvadrat;
    else if (p1 && p2 && !p3)
        return Pryamokutnik;
    else if (p1 && !p2 && !p3)
        return Paralelogram;
    else 
        return Other;
 
}
 
 
 
 
 
 
float MaxPer(Paral mas1[100], Pryam mas2[100], Kvadr mas3[100], int n)
{
    float tmp=-1;
    for (int i=0; i<=n; i++)
    {
        if (mas1[i].GetPer()>tmp)
            tmp=mas1[i].GetPer();
        if (mas2[i].GetPer()>tmp)
            tmp=mas2[i].GetPer();
        if (mas3[i].GetPer()>tmp)
            tmp=mas3[i].GetPer();
    }
    return tmp;
}
 
Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru