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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 71, средняя оценка - 4.90
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
07.04.2013, 13:30     Как нарисовать круг #1
Нужно нарисовать круг
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.04.2013, 20:22     Как нарисовать круг #21
Croessmah, да не завидую я вам в этой теме
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
07.04.2013, 20:25
  #22

Не по теме:

Цитата Сообщение от Игорь с++ Посмотреть сообщение
Croessmah, да не завидую я вам в этой теме
почему?

Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.04.2013, 20:28     Как нарисовать круг #23
Цитата Сообщение от Croessmah Посмотреть сообщение
почему?
потому что у автора столько вопросов , что даже при получение кода переделать под себя не может , и заново обращается к вам , сново и сново
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
07.04.2013, 20:41  [ТС]     Как нарисовать круг #24
Croessmah, та блин ти ище не понял как я задаю чтоб бил синий
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.04.2013, 20:44     Как нарисовать круг #25
Lion-, ты хотя бы смотри , что ты набираеш .
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
07.04.2013, 20:44  [ТС]     Как нарисовать круг #26
та ти ище не понял как я задаю сам цвет там появляеца окно вот с етим и что мне в водить в каждую строку?
Enter R value[0,255]:",0,255);
Enter G value[0,255]:",0,255);
Enter B value[0,255]:",0,255);
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11828 / 6807 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
07.04.2013, 20:46     Как нарисовать круг #27
R - red(красный)
G - green(зеленый)
B - blue(синий)
Название: Безымянный.png
Просмотров: 151

Размер: 2.4 Кб
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
07.04.2013, 20:51  [ТС]     Как нарисовать круг #28
Croessmah, да ето все харашо канешно) но билоюи канешно харашо еслиб я вибирал просто какой цвет я хочю в консоле например 1)ето красний. 2)ет зелений. 3)ет синий.4)ет салатовий или ище какойто там!) у нас преподи строгие)
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
07.04.2013, 20:57     Как нарисовать круг #29
Lion-, вы структуру RGB знаете ? Открой те paint и посмотри те вот это , точнее поиграйтесь с этими значениями
Миниатюры
Как нарисовать круг  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11828 / 6807 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
07.04.2013, 21:02     Как нарисовать круг #30
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
#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;
}
 
 
COLORREF GetPenColor(){
    const COLORREF colors[]={RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),RGB(0,255,255),RGB(255,255,0)};
    const char * texts[]={"Red","Green","Blue","Light blue","Yellow"};
    size_t size=sizeof(colors)/sizeof(*colors);
    for(int i=0;i<size;++i){
        std::cout<<(i+1)<<") "<<texts[i]<<std::endl;
    }
    return colors[InputInteger("Choose color:",1,size)-1];
}
 
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));
    system("cls");
    HBRUSH hBrush=(HBRUSH)GetStockObject(NULL_BRUSH);
    HPEN hPen=CreatePen(PS_SOLID,1,GetPenColor());
    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_SPACE)){
            system("cls");
            InvalidateRect(hWnd,&temp,true);
            HPEN hNewPen=CreatePen(PS_SOLID,1,GetPenColor());
            SelectObject(hBufferDC,hNewPen);
            DeleteObject(hPen);
            hPen=hNewPen;
        }
        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(hPen);
    DeleteObject(hBufferBmp);
    DeleteDC(hBufferDC);
    ReleaseDC(hWnd,hDC);
    return 0;
}
Далее дорабатывайте сами
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
07.04.2013, 21:15  [ТС]     Как нарисовать круг #31
Croessmah, спасибо огромное!!
Taatshi
Администратор
 Аватар для Taatshi
11206 / 4791 / 247
Регистрация: 05.04.2011
Сообщений: 13,321
Записей в блоге: 2
07.04.2013, 21:21     Как нарисовать круг #32
 Комментарий модератора 
Господа. Прекращаем оффтоп. Предупреждение.


Тема почищена.
Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
08.04.2013, 16:54  [ТС]     Как нарисовать круг #33
Croessmah, привет эт снова я) короче мне нужно чтоб в консоле били такие возможности например под номером 1радыус круга, 2 цвет круга ,3 поворот его на заданий кут!

Добавлено через 1 минуту
3 поворот на заданный угол

Добавлено через 13 минут
Croessmah, заделаеш такое?
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
08.04.2013, 17:44     Как нарисовать круг #34
Цитата Сообщение от Croessmah Посмотреть сообщение
почему?
теперь понимаете , почему ( не в обиду , конечно же ) ?
BumerangSP
08.04.2013, 19:16
  #35
 Комментарий модератора 
Выше ведь уже было сказано: прекратили оффтоп! При несоблюдении далее пойдут карты. Свои отношения выясняйте в ЛС.
Puporev
08.04.2013, 19:22
  #36

Не по теме:

Цитата Сообщение от BumerangSP Посмотреть сообщение
Свои отношения выясняйте в ЛС.
Зачем так сказал??? Попал Croessmah

Lion-
-1 / 1 / 0
Регистрация: 03.12.2012
Сообщений: 68
08.04.2013, 19:32  [ТС]     Как нарисовать круг #37
Puporev, непонял? почему Croessmah попал?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2013, 19:39     Как нарисовать круг
Еще ссылки по теме:

C++ Как уместить круг и треугольник друг в друге?
C++ Нарисовать цветной круг. Ошибка компиляции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.04.2013, 19:39     Как нарисовать круг #38
Цитата Сообщение от Lion- Посмотреть сообщение
Croessmah, мне нужен код функции в С++ которая рисует круг!
В языке нет такой функции. Кроме того, это не c#, здесь коды не приняты.
Yandex
Объявления
08.04.2013, 19:39     Как нарисовать круг
Ответ Создать тему
Опции темы

Текущее время: 22:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru