Вниз
Скачать: CL | DM;

Полупрозрачность   Найти похожие ветки 

 
Владимир2   (2002-09-03 10:32) [0]

Проблема.
Нужно получить эффект наложения на отрисованную область "затенённых стёкол" (залитые фигуры), при этом те участки области, которые "видны" через одно "стекло", затенены немного (по контуру "стекла"), через два "стекла" - больше, через три - ещё больше и т.д. Затенение "стёкол" - одинаковое.

Подскажите, пожалуйста:

1. Можно ли добиться такого эффекта, комбинируя режимы отрисовки, копирования, маски и т.п., без расчёта областей пересечения.

2. Каков порядок действий при этом. Кажется, перебрал все комбинации, ничего не получается. Смог только, если пересекаются два "стекла", больше - никак.

Заранее благодарю за помощь в решении этой "простой" задачи.


 
Ч а й н и к ©   (2002-09-03 17:18) [1]

Ну смотри:

можно по пиксельно просто изменять оттенок пикселя картинки.

например так:
var x,y:integer;OdnoSteklo:TColor;
begin
for x:=1 to image1.Width do
for y:=1 to image1.Height do
image1.Canvas.Pixels[x,y]:=image1.Canvas.Pixels[x,y] or OdnoSteklo;
end;

OdnoSteklo можешь задавать как после колор диалога так и програмно. Например OdnoSteklo:=$111111 . Тогда картинка посветлеет. Эксперементальным пуьем я думаю ты дальше справишься


 
SI-riuss ©   (2002-09-03 20:12) [2]

Да не мучайся:
http://g32.org/
Компонента Graphics32 - качай и радуйся. Тут все для 2Д-графики.


 
Ч а й н и к ©   (2002-09-03 22:37) [3]

А если вместо or поставишь and и число например $eeeeee то картинка сделается темнее.


 
Владимир2   (2002-09-04 10:45) [4]

Спасибо за ответы.

Чайнику: попиксельно - медленно, к тому же я не знаю какой области затенения принадлежит точка, нужны дополнительные проверки/вычисления.

SI-riuss: спасибо за ссылку. Я не знал об этой библиотеке.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-51693
Маленький
2002-12-05 21:28
2002.12.16
Как закрыть чужое приложение из своей программы?


1-51668
--Magic--
2002-12-04 15:44
2002.12.16
Перестал открываться файл проекта


1-51811
ELKa
2002-12-05 11:59
2002.12.16
Как программно задать процедуру на событие?


1-51775
DVM
2002-12-02 17:05
2002.12.16
Как открыть OpenDialog в нужном месте экрана? Что-то я торможу.


14-51916
Карлсон
2002-11-22 21:07
2002.12.16
я чего то не читал?




   Наверх