Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
ВнизРадиальный градиент. Как создать в Делфи7? Найти похожие ветки
← →
Tifon © (2007-04-04 13:59) [0]Подскажите алгоритм или ссылку, знаю как создать полосный, разной длины, но немогу понять как создать радиальный, может кто знает.
← →
Думкин © (2007-04-04 14:06) [1]Покажи как полосный. Переделаем в радиальный.
← →
Думкин © (2007-04-04 14:19) [2]Canvas.Ellipse()
← →
Tifon © (2007-04-04 14:25) [3]while a <= x - 2 do
{Перед рисованием я задаю ему цвет и в этом же цикле по RGB палитре уменьшаю его, для создания уходящего градинта, первый цвет у меня определяется по интенсивности x, а второй - черный}
Im.Canvas.MoveTo(75, Im.Height div 2 - a + 1);
Im.Canvas.LineTo(275, Im.Height div 2 - a + 1);
Im.Canvas.MoveTo(75, Im.Height div 2 + a - 1);
Im.Canvas.LineTo(275, Im.Height div 2 + a - 1);
{так у меня получается две расходящиеся линии градиента вниз и вверх, одного цвета}
end;
← →
Tifon © (2007-04-04 14:26) [4]>Canvas.Ellipse()
а пойдет ли? когда рисуешь эллипс, то он внутри не полый.
← →
Думкин © (2007-04-04 14:29) [5]
> Tifon © (04.04.07 14:26) [4]
А ты от внешнего к внутреннему иди.
← →
Tifon © (2007-04-04 14:31) [6]с эллипсом получается проблема, я попробовал его рисовать не из нутри а с наружи, уменьшая его радиус, и тогда у меня получается эффект градинта, но есть пропуски на местах закруглений.
← →
Думкин © (2007-04-04 14:31) [7]Либо стиль у кисти выставь bsClear
← →
Tifon © (2007-04-04 14:31) [8]а что дает этот стиль?
← →
Думкин © (2007-04-04 14:33) [9]> Tifon © (04.04.07 14:31) [8]
Не заполняет внутренность. Это если от внутреннего к внешнему.
← →
Tifon © (2007-04-04 14:38) [10]Даже если рисовать изнутри с bsClear, получается такая же проблема.
Похоже, что эллипсы различающиеся диаметром на единицу не сливаются полностью, все равно есть места пропусков.
Думкин, а ты не знаешь какой стиль у Canvas.Brush, чтоб он полностью заливал эллипс?
← →
MBo © (2007-04-04 14:48) [11]Можно использовать функцию GradientFill, рисуя узкие треугольники с вершиной в центре круга
← →
Tifon © (2007-04-04 15:05) [12]рисуя узкие треугольники с вершиной в центре круга
извини, но не совсем понял, это как? солько, в какие стороны, треугольники - линиями или у canvas есть функция рисования треугольников?
← →
{RASkov} (2007-04-04 15:24) [13]Рисуй эти элипсы от края к центру с Brush.Style=bsSolid, Brush.Color=NewColor и PenColor:=NewColor Думаю мысль понял?
← →
MBo © (2007-04-04 15:29) [14]Ты в WInSDK хелпе или в MSDN про GradientFill почитал?
Предупреждаю, что использование этой функции - не очень простая задача.
← →
{RASkov} (2007-04-04 15:37) [15]Пример к [13] на всякий случай, если с GradientFill будут проблемы.
procedure TForm1.Button1Click(Sender: TObject);
var N, X, Y: Integer; Cl: TColor;
begin
X:=Width div 2;
Y:=Height div 2;
Canvas.Brush.Style:=bsSolid;
for N:= 0 to 100 do begin
Cl:=RGB(N+100, N+150, N);
Canvas.Brush.Color:=Cl;
Canvas.Pen.Color:=Cl;
Canvas.Ellipse(X+(100-N), Y+(100-N), X-(100-N), Y-(100-N));
end;
end;
← →
Tifon © (2007-04-04 15:48) [16]Наконец, все получилось, просто нужно было дважды задавать Brush.Color., а второй раз задавать его с Pen.Color.
Вообщето я делал, спектро анализатор, и в таймере при отображении, я сначала заливал Image черным цветом, это мой конечный цвет градиента, а потом уже рисовал сам градиент, и у меня не получалось, но к стате, при Brush.Style = bcSolid, когда я в цикле рисовал эллипсы, задавая только Brush.Color без Pen.Color, у меня зарисовывались как раз те пиксели, которые при прежних попытках не зарисовывались:)
Большое всем спасибо за помощь.:)
← →
StriderMan © (2007-04-04 16:19) [17]это что в итоге получается? эллипс темнее снаружи и светлее внутри?
я как-то эллиптические кнопки делал. там градиент нужен был по фаске (для эффекта выпуклости). делал черезCanvas.Arc
← →
Amoeba © (2007-04-04 16:39) [18]Относительно реализации "хитрых" градиентных заливок можно посмотреть исходники одного интересного компонента:
http://anfilat.chat.ru/tpcolore.htm
← →
Tifon © (2007-04-04 17:30) [19]>это что в итоге получается? эллипс темнее снаружи и светлее внутри?
да, но я делал его кругом, а не эллипсом, хотя, конечно, функцию использовал туже:)
Amoeda, а на 7 Делфи они пойдут? ты не пробовал?
← →
Amoeba © (2007-04-04 17:42) [20]
> Tifon © (04.04.07 17:30) [19]
>
> >это что в итоге получается? эллипс темнее снаружи и светлее
> внутри?
>
> да, но я делал его кругом, а не эллипсом, хотя, конечно,
> функцию использовал туже:)
>
> Amoeda, а на 7 Делфи они пойдут? ты не пробовал?
Нет, использую D5. Но на D7 пойти обязаны, может лишь кое-что придется подправить, скорее всего в Uses (компилятор ткнет носом)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c