![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Народ подскажите!
Создаю концентрические окружности внутри pDC->FillRgn CRgn rgnEllipse; rgnEllipse.CreateEllipticRgn(0, 0, 2*R1+1, 2*R1+1); CBrush brBlack; brBlack.CreateStockObject(BLACK_BRUSH); pDC->FillRgn(&rgnEllipse, &brBlack); Рисую в цикле for(int i=R1; i>0; i--) { int color = int(255 - i*255/R1); CPen pen(PS_SOLID, 3, RGB(0, 255, 0)); pDC->SelectObject(&pen); CRect inRect(centerX-i,centerY-i, centerX+i,centerY+i); dc.Ellipse(&inRect); } а у меня под конец все закрашивается внешним черным кругом Что делать? |
|||
|
||||
| SDem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Попробуй вот так без твоих предыдущих строк:
for (int i = R1; i > 0; i--) { int color = int(255 - i*255 / R1); CPen pen(PS_SOLID, 3, RGB(0, color, 0)); pDC->SelectObject(&pen); CRect inRect(centerX-i,centerY-i, centerX+i,centerY+i); pDC->Ellipse(&inRect); } |
|||
|
||||
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Все перекрывает внешний круг
|
|||
|
||||
| SDem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Приведи весь свой код, ты не весь код дал, никакого внешнего круга в коде не рисуется
|
|||
|
||||
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
void CEllipseDlg::OnPaint()
{ CPaintDC dc(this); CDC *pDC = &dc; const int R = 150; for(int i=0; i<R; i++) { int color = int(255 - i*255 / R); CPen pen(PS_SOLID, 2, RGB(0, color, 0)); pDC->SelectObject(&pen); CRect inRect(R-i,R-i, R+i,R+i); dc.Ellipse(&inRect); } } |
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
По-моему сейчас должен быть белый круг.
Чтобы круги были прозрачными надо выбрать кисть GetStockObject(HOLLOW_BRUSH) |
|||
|
||||
| SDem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Уже не совсем понятно что ты хочешь достичь, но попробуй вот это:
CBrush brush(RGB(0, color, 0)); pDC->SelectObject(&brush); Вместо вот этого: CPen pen(PS_SOLID, 2, RGB(0, color, 0)); pDC->SelectObject(&pen); |
|||
|
||||
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Мне нужно нарисовать концентрические окружности с убыванием яркости цвета к внешнему кругу (эллипсу) Самый яркий центр
|
|||
|
||||
| Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
В чём проблема-то. Делай как советует SDem, те при помощи кисти . Только не с убыванием а с возрастанием от внешнего к внутреннему. Все вроде парвильно раньше писал. Только непонятно зачем регион
|
|||
|
||||
| SDem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
А, тогда сделай вот так: for (int i = 0; i < R; i++) { int color = int(i*255 / R); CPen pen(PS_SOLID, 2, RGB(0, color, 0)); pDC->SelectObject(&pen); CRect inRect(i, i, 2*R-i, 2*R-i); pDC->Ellipse(&inRect); } |
|||
|
||||
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Пробовал, пробовал ...
void CEllipseDlg::OnPaint() { CPaintDC dc(this); CDC *pDC = &dc; const int R = 150; for(int i=R; i<0; i--) { BYTE color = (BYTE)(255-abs(i*255/R-255)); CBrush brush(RGB(0, color, 0)); pDC->SelectObject(&brush); CRect inRect(R-i,R-i, R+i,R+i); dc.Ellipse(&inRect); } } Результат - пустой диалог |
|||
|
||||
| decembrist |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Спасибо SDem, у меня получилось
|
|||
|
||||
| SDem |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 2.7.2004 Репутация: нет Всего: нет |
Да не за что, обращайся! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |