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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
#1

Закрасить окружность - C++

20.04.2014, 14:18. Просмотров 656. Ответов 15
Метки нет (Все метки)

Помогите закрасить таким образом...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<conio.h>
#include<graphics.h>
 
using namespace std;
 
main()
{
    initwindow (300, 300);
    int c,x=150,y=150,R=10,n,i=300;
    setbkcolor(0xFFFFFF);
    cleardevice();
    printf("n="); scanf("%d",&n);
    int d=R+(R/4);
    for (c=0; c<n; c++)
        {
        circle (x,y,R+c*d);
    }
    getch();
    closegraph();
}
Миниатюры
Закрасить окружность  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 14:18     Закрасить окружность
Посмотрите здесь:

закрасить круг - C++
подскажите как можно нарисовать закрасить круг в borlandc

Закрасить фигуру - C++
Строятся многоугольники с общей стороной , нужно их закрасить разными цветами ( или хотя бы одним ) попыталась сделать выдаёт ошибку...

Как закрасить Rectangle - C++
Всем привет, у меня такая проблема - сделал програмку которая рисует рандомно прямоугольники в небольшой форме, теперь хочу чтобы они были...

Как закрасить линию? - C++
Вот линия MoveToEx(hdc,0,350,0); LineTo(hdc,700,350); Как сделать чтобы она была красной например?

Как закрасить треугольник? - C++
Как мне закрасить треугольники? #include&lt;windows.h&gt; #include&lt;string.h&gt; #define ID_TIMER 1 HBRUSH tbrush; HBRUSH tbrush1; ...

Как закрасить круг (circle) - C++
Как закрасить круг в любой цвет, не могу найти таких ф-ций, setfillstyle не подходит

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 15:09     Закрасить окружность #2
Надо начинать рисовать с самого большого круга,
тогда меньшие будут закрывать фон, нарисованный большим.
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
color=0xFFFFFF;
R=150;dR=150/n;
dColor=color/n;
for (c=0; c<n; c++)
{
   setbkcolor(color);
   circle (x,y,R);
   R-=dR;
   color-=dColor;
}
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 15:19  [ТС]     Закрасить окружность #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<conio.h>
#include<graphics.h>
 
using namespace std;
 
main()
{
    initwindow (300, 300);
    int c,x=150,y=150,n,i,color,R,dR,dColor;
    printf("n="); scanf("%d",&n);
        color=0xFFFFFF;
        R=150;dR=150/n;
        dColor=color/n;
        for (c=0; c<n; c++)
        {
        setbkcolor(color);
        circle (x,y,R);
        R-=dR;
        color-=dColor;
        }
    getch();
    closegraph();
}
Так?
Пока тоже рисует круги, но ничего не закрашивает...
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 15:25     Закрасить окружность #4
Я не знаю, как менять цвет закраски в graphics.h.
Похоже, предположение, что это setbkcolor(color);
оказалось неверным.
Найдите в помощи по graphics.h как это делать.
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 15:27  [ТС]     Закрасить окружность #5
У меня есть такая теория, но реализовать у меня не получилось..
Миниатюры
Закрасить окружность  
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 15:33     Закрасить окружность #6
Кажется нашел
C++
1
setfillstyle( SOLID_FILL,color);
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 17:53  [ТС]     Закрасить окружность #7
zss,
hc=255/n; // чтобы делилось на значение колец.
И мне нужно 3 цикла... Чтобы значение r и g с 255 падало до 0, b поднялось с 0 до 255.
Ведь 255,255,0 - желтый, а 0,0,255 - синий.
А в цикле с отображением колец - setfillstyle(SOLID_FILL, COLOR(r, g, b));
Как-то так?
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 18:17     Закрасить окружность #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
R=150;dR=150/n;
    dColor=255/n;
    red=green=255;
    blue=0;
    for (c=0; c<n; c++)
    {
        setfillstyle(SOLID_FILL, COLOR(red, green, blue));
        circle (x,y,R);
        R-=dR;
        red-=dColor;
        green-=dColor;
        blue+=dColor;
    }
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 21:00  [ТС]     Закрасить окружность #9
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
#include<conio.h>
#include<graphics.h>
 
using namespace std;
 
main()
{
    initwindow (300, 300);
    int c,x=150,y=150,n,i,color,R,dR,dColor,red,green,blue;
    printf("n="); scanf("%d",&n);
        R=150;
        dR=150/n;
        dColor=255/n;
        red=green=255;
        blue=0;
        for (c=0; c<n; c++)
    {
      setfillstyle(SOLID_FILL, COLOR(red, green, blue));
      circle (x,y,R);
      R-=dR;
      red-=dColor;
      green-=dColor;
      blue+=dColor;
    }
    getch();
    closegraph();
}
Ничего не красит...
Миниатюры
Закрасить окружность  
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 21:21  [ТС]     Закрасить окружность #10
В примере у меня в источнике работы круг так закрашивается правильно.
circle (200, 150,50);
setfillstyle (1, 10);
floodfill (200,150, 15);

Вот я цикл переделал:
C++
1
2
3
4
5
6
7
8
9
10
for (c=0; c<n; c++)
    {
      circle (x,y,R);
      setfillstyle(SOLID_FILL, COLOR(red, green, blue));
      floodfill (200,150, 15);
      R-=dR;
      red-=dColor;
      green-=dColor;
      blue+=dColor;
}
Но почему-то 4й круг от центра не того цвета. Таким центром последний (центр) должен окраситься...
Миниатюры
Закрасить окружность  
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 21:31  [ТС]     Закрасить окружность #11
А всё, подправил.
floodfill (150,150,15);
Почему-то последнее число 15(белый)-граница линии как я понял не хочет меняться. Сразу всё становится под цвет, который я ставлю. Даже фон.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 21:35     Закрасить окружность #12
Цитата Сообщение от b0nny Посмотреть сообщение
floodfill (200,150, 15);
заливает текущим цветом начиная с 200,150
Замените на floodfill (x,y, 15);
Кстати, почему 15?
Если границы кругов черные, то должен стоять ноль.
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 22:04  [ТС]     Закрасить окружность #13
"Кстати, почему 15?"
15-белый. Я просто скопипастил с примера. Сработало. Говорю, если меняю-всё, ужас.
Допустим 0-границы кругов белые, а всё вокруг чёрное.
Остальные, кроме 0-синий почему-то. На Миллисекунду заметил, что оно окрашивается в правильный цвет и сразу становится снова синий. А вот, если 14-то всё жёлтое, а линии белые.

Добавлено через 24 минуты
Остальные, кроме 0-синий почему-то. На Миллисекунду заметил, что оно окрашивается в правильный цвет и сразу становится снова синий.
Т.е. не правильно написал. Изначально вроде в правильном цвете, но тоже окрашивается всё подряд и всё синим закрашивается. Это очень быстро произошло. 1 раз только это заметил.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 1
20.04.2014, 22:36     Закрасить окружность #14
Цитата Сообщение от b0nny Посмотреть сообщение
15-белый
Неправда Белый - это 0xFFFFFF
А окружности у Вас черные, т.е. надо floodfill (x,y, 0);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 22:53     Закрасить окружность
Еще ссылки по теме:

Как закрасить шар полностью? - C++
Здравствуйте! Мне хотелось закрасить шар полностью, но при использовании команды SetFillColor закрашивался фон. Где у меня в логике...

Как закрасить прямоугольник кроме кружков? - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;clocale&gt; using namespace std; class figure { protected: int x = 100, y =...

Закрасить текст определённым цветом в консоли - C++
Привет, подскажыте пожалуста как можно закрасить текст, при чем мне нужно например штобы 1 рядок был одним кольором второй вторим. ...

Окружность - C++
Господа! Как нарисовать систему координат (две оси Ох и Оу) круг с центром в начале координат, если известен максимум по одной из...


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

Или воспользуйтесь поиском по форуму:
b0nny
3 / 1 / 0
Регистрация: 11.11.2013
Сообщений: 346
20.04.2014, 22:53  [ТС]     Закрасить окружность #15
Ну у меня в таблице цветов в источнике 16 пунктов. С 0-15. 15 указан белый.
Yandex
Объявления
20.04.2014, 22:53     Закрасить окружность
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru