Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2009, 18:19   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Круг цвета

Даже не знаю, куда запихнуть эту темку. Мне необходимо создать такой круг: http://www.programmersforum.ru/attac...1&d=1253283352. Буквами обозначены цвета, между ними не полосы, а плавные переходы.У края светлые оттенки, ближе к центру - темные. Я даже не могу представить, как это соорудить. Формат bmp, размер 250*250.
Изображения
Тип файла: jpg Фото005.jpg (17.9 Кб, 165 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.09.2009, 18:22   #2
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Элементарно!
Sin и Cos помним?
Код:
for r:=1 to 125 do
begin
  for angle:=1 to 360 do
  begin
     Image1.Canvas.Pixels[Round(125+r*Cos(angle*Pi/180)),Round(125+r*Sin(angle*Pi/180))]:=ColoR_F(r,angle);
  end;
end;
К сожалению сейчас делфя неустановлена, и код привести не смогу.
//-------------------------------------
Ф-ю ColoR_F напишешь или помочь
Даю наводку самый светлый цвет(белый)-0,0,0 , черный-255,255,255
Код:
function ColoR_F(int r,angle):Color;
var
r,g,b:byte;
begin
   ColoR_F:=TColor(RGB(r,g,b));
end;

Последний раз редактировалось Levsha100; 17.09.2009 в 18:38.
Levsha100 вне форума Ответить с цитированием
Старый 17.09.2009, 19:30   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Получилось не совсем то:
Даже если наплевать на цвет, градиента нет и белая линия...
Может попытаться через фотожаб? Создать горизонтальную радугу и зугнуть её в кольцо? Сейчас попробую.
Изображения
Тип файла: jpg 1.JPG (17.4 Кб, 63 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.09.2009, 19:40   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Нужно задачу разбить на подзадачи. И обдумать по отдельности, тогда вероятность найти решение выше. Ясно что круг нужно создавать линиями из центра к окружности, т.к. он не одноцветный. Нужно продумать формулу на основании к-рой будет меняться оттенок линии по мере увеличения радианы (полный круг = 2Пи радиан кажется, я не помню )
Ну и так как нужно при увеличении радиуса менять яркость, то линию тоже нужно создавать с нуля (а не LineTo), градиентную.

Что в принципе почти реализовано в коде приведенном выше, но его нужно доработать, так как он не сплошной получается по мере удаления от центра. Также тебе нужно написать функцию ColoR_F, от r должна зависить яркость, а от angle цвет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 17.09.2009 в 19:51.
mutabor вне форума Ответить с цитированием
Старый 17.09.2009, 19:49   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Хм... Если разбивать на подзадачи, то можно так:
Цитата:
из центра к окружности
Наверное все-таки наоборот, от края к центру, иначе будут незакрашенные области. Я думаю, может рисовать друг на друге 125 окружностей, постепенно уменьшая радиус и увеличивая темность цветовой гаммы, теперь осталось разобраться с самими цветами.
___________________________________ ____________________________
Вот, что получилось в фотожабе, по крайней мере уже ближе
Изображения
Тип файла: jpg 1.jpg (40.4 Кб, 89 просмотров)
Тип файла: jpg 2.jpg (33.8 Кб, 59 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 17.09.2009 в 19:59. Причина: Фотожаба
Alex Cones вне форума Ответить с цитированием
Старый 17.09.2009, 19:56   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Хм... Если разбивать на подзадачи, то можно так:
Наверное все-таки наоборот, от края к центру, иначе будут незакрашенные области. Я думаю, может рисовать друг на друге 125 окружностей, постепенно уменьшая радиус и увеличивая темность цветовой гаммы, теперь осталось разобраться с самими цветами.
Можно и так, принципиальной разницы нет. Чтобы дыр не было нужно чаще точки рисовать, их частота должна увеличиваться пропорционально диаметру. Если взять первый вариант, то нужно не 360 градусов, а чаще в несколько раз шаг сделать (в радианах, а не в грудусах).

Рисовать окружности тоже идея. С помощью синуса опять же из точек рисуется окружность, а по мере удаления от центра менять яркость.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 17.09.2009, 20:02   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

По-моему все-таки проще намалевать в фотож. Осталось только затемнить:
Изображения
Тип файла: jpg 3.jpg (37.3 Кб, 93 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.09.2009, 20:06   #8
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Я бы заюзал опенГл если нужно нарисовать только этот круг.
А легче всего нарисовать в фотошопе.
Вот из корела:
http://t1.gstatic.com/images?q=tbn:C...HSV-Slider.png

Последний раз редактировалось Levsha100; 17.09.2009 в 20:14.
Levsha100 вне форума Ответить с цитированием
Старый 17.09.2009, 20:16   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Как насчёт всемогущего JEDI VCL - TJvFullColorCircle (TJvFullColorPanel, TJvFullColorTrackBar...)?
пыщь

Последний раз редактировалось JTG; 17.09.2009 в 20:18.
JTG вне форума Ответить с цитированием
Старый 17.09.2009, 20:17   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Готово! Спасибо всем!
Изображения
Тип файла: jpg READY.jpg (43.5 Кб, 93 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Круг на ассемблере Hesheit Помощь студентам 6 13.05.2009 22:48
Паскаль Круг ! BuTeK1 Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2009 14:27
КАК нарисовать круг Elmut Общие вопросы Delphi 5 27.05.2008 14:54
Нарисовать круг Brunette Помощь студентам 2 17.05.2008 00:01