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

Как нарисовать круг - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Лабораторная по программированию. ХЕЛП=( http://www.cyberforum.ru/cpp-beginners/thread830434.html
В общем, такая задача. Дана последовательность, к примеру 1 2 4 2 5 6 7 100. Задача найти возрастающий отрезок с максимальной крутизной, т.е. его длину. Выводить надо в формате Элемент Последовательность Крутизна 1 100 1 99.000000 1 21 2 20.000000 3 3 0.000000 2 22 4 20.000000...
C++ Наследование На языке С++ описать модель данных для вычисления площадей и периметров геометрических фигур на плоскости: треугольников и прямоугольников. Необходимо вывести на экран площадь и периметр треугольника со сторонами 4, 5.5, 7, а также прямоугольника с шириной 6.7 и высотой 4. Разработать модель данных, основанных на иерархии классов. Базовый класс описывает общие поля и методы фигур, в классе... http://www.cyberforum.ru/cpp-beginners/thread830433.html
Наследование (описать модель данных для вычисления площадей и периметров геометрических фигур на плоскости:) C++
На языке С++ описать модель данных для вычисления площадей и периметров геометрических фигур на плоскости: треугольников и прямоугольников. Необходимо вывести на экран площадь и периметр треугольника со сторонами 4, 5.5, 7, а также прямоугольника с шириной 6.7 и высотой 4. Разработать модель данных, основанных на иерархии классов. Базовый класс описывает общие поля и методы фигур, в классе...
Дана квадратная матрица порядка. Найти суммы элементов ее диагоналей, параллельных главной, побочной C++
Помогите пожалуйста решить. 4. Дана квадратная матрица порядка*M. Найти суммы элементов ее диагоналей, параллельных главной, побочной (начиная с*одноэлементной диагонали*A A.
C++ Дана строка вида отдел_фамилия_оклад. Пробелов может быть несколько.Получить из нее название_отдела,оклад http://www.cyberforum.ru/cpp-beginners/thread830427.html
дана строка вида отдел_фамилия_оклад пробелов может быть несколько получить: - название_отдела(string) оклад(int)
C++ Дана целочисленная матрица.Вывести номер ее первой, последней строки, столбца, содержащего максимальное количество одинаковых элементов. Помогите пожалуйста решить. 2. Дана целочисленная матрица размера*M*x*N. Вывести номер ее первой, последней строки, столбца, содержащего максимальное количество одинаковых элементов. подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
07.04.2013, 16:12     Как нарисовать круг
Кривой вариант:
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
#include <windows.h>
#include <iostream>
 
int InputInteger(const char * str, int min, int max){
    int x;
    std::cout<<str;
    bool ErrorFlag;
    do{
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin>>x;
        ErrorFlag=!std::cin.good() || x< min|| x>max;
        if(ErrorFlag){
            std::cout<<"Error. "<<str;
        }
    }while(ErrorFlag);
    std::cin.ignore(std::cin.rdbuf()->in_avail());
    return x;
}
 
int main(){
    HWND hWnd=GetConsoleWindow();
    HDC hDC=GetDC(hWnd);
    RECT temp;
    GetClientRect(hWnd,&temp);
    HDC hBufferDC=CreateCompatibleDC(hDC);
    HBITMAP hBufferBmp=CreateBitmap(temp.right,temp.bottom,1,32,NULL);
    HBITMAP hBufferBmpOld=(HBITMAP)SelectObject(hBufferDC,hBufferBmp);
    FillRect(hBufferDC,&temp,(HBRUSH)GetStockObject(WHITE_BRUSH));
    std::cout<<"Enter color:\n";
    int r,g,b;
    r=InputInteger("Enter R value[0,255]:",0,255);
    g=InputInteger("Enter G value[0,255]:",0,255);
    b=InputInteger("Enter B value[0,255]:",0,255);
    system("cls");
    HBRUSH hBrush=CreateSolidBrush(RGB(r,g,b));
    HPEN hPen=CreatePen(PS_SOLID,1,RGB(r,g,b));
    HBRUSH hOldBrush=(HBRUSH)SelectObject(hBufferDC,hBrush);
    HPEN hOldPen=(HPEN)SelectObject(hBufferDC,hPen);
    RECT circle={0,0,100,100};
    size_t step_h=3,step_v=3;
    while(!GetAsyncKeyState(VK_ESCAPE)){
        FillRect(hBufferDC,&circle,(HBRUSH)GetStockObject(WHITE_BRUSH));
        if(GetAsyncKeyState(VK_LEFT)){
            circle.left-=step_h;
            circle.right-=step_h;
        }
        if(GetAsyncKeyState(VK_RIGHT)){
            circle.left+=step_h;
            circle.right+=step_h;
        }
        if(GetAsyncKeyState(VK_DOWN)){
            circle.top+=step_v;
            circle.bottom+=step_v;
        }
        if(GetAsyncKeyState(VK_UP)){
            circle.top-=step_v;
            circle.bottom-=step_v;
        }
        Ellipse(hBufferDC,circle.left,circle.top,circle.right,circle.bottom);
        BitBlt(hDC,0,0,temp.right,temp.bottom,hBufferDC,0,0,SRCCOPY);
        Sleep(10);
    }
    SelectObject(hBufferDC,hOldBrush);
    SelectObject(hBufferDC,hOldPen);
    SelectObject(hBufferDC,hBufferBmpOld);
    DeleteObject(hBrush);
    DeleteObject(hPen);
    DeleteObject(hBufferBmp);
    DeleteDC(hBufferDC);
    ReleaseDC(hWnd,hDC);
    return 0;
}
 
Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru