Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

Как нарисовать на форме полупрозрачный полигон?   Найти похожие ветки 

 
kostyl_kostyl   (2009-04-21 15:29) [0]

Добрый день. Скажите пожалуйста как нарисовать на форме полупрозрачный полигон, если на форме уже нарисован определенный рисунок. Необходимо, чтобы этот рисунок как бы просвечивался под нарисованным сверху полигоном. Заранее благодарю.


 
clickmaker ©   (2009-04-21 16:13) [1]

см. в сторону GDI+


 
StriderMan   (2009-04-21 16:48) [2]

можно попробовать заполнить полигон такой маской:

  TR_BMP := TBitMap.Create;
 with TR_BMP do
 begin
   Width := 2;
   Height := 2;
   Canvas.Pixels[0, 1] := clNone;
   Canvas.Pixels[0, 0] := clLtGray;
   Canvas.Pixels[1, 0] := clNone;
   Canvas.Pixels[1, 1] := clLtGray;
 end;


 
kostyl_kostyl   (2009-04-21 17:18) [3]


> заполнить полигон

как это сделать?


 
StriderMan   (2009-04-21 17:22) [4]

а полигон это что? какой класс?


 
Григорьев Антон ©   (2009-04-21 17:30) [5]

Делаете Bitmap такого размера, который гарантировано содержит ваш многоугольник и заполняете этот рисунок целиком нужным вам цветом. Потом с помощью CreatePlygonRgn и SelectClipRgn устанавливаете регион отсечения в виде вашего многоугольника. Выводите рисунок на форму с помощью функции AlphaBlend с нужной степенью прозрачности - цвет изменят только те пиксели, которые попадут в регион отсечения.


 
kostyl_kostyl   (2009-04-21 17:32) [6]


> а полигон это что? какой класс?

TCanvas.Polygon(const Points: array of TPoint);


 
kostyl_kostyl   (2009-04-21 17:36) [7]


> Григорьев Антон ©   (21.04.09 17:30) [5]

да наверно так и буду пробовать, ибо я делал тоже самое только самопалом - рисовал не все точки занимающие площадь верхнего полигона - долго...


 
StriderMan   (2009-04-21 17:37) [8]


> TCanvas.Polygon(const Points: array of TPoint);


тогда

setrop2(Canvas.Handle, R2_MERGEPEN);
Canvas.Brush.Bitmap := TR_BMP;
Canvas.Polygon(...);


но сдается мне > Григорьев Антон ©   (21.04.09 17:30) [5] естественнее и правильнее, хотя и несколько сложнее


 
kostyl_kostyl   (2009-04-21 18:00) [9]


> Григорьев Антон ©


> StriderMan  

спасибо все получилось...



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

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1240231874
night_light
2009-04-20 16:51
2009.06.07
сжатие и отправкакартинки по сети


15-1238498323
Немо
2009-03-31 15:18
2009.06.07
что это может быть *.fbk ?


15-1238776244
Pavia
2009-04-03 20:30
2009.06.07
Конвертация кодировок.


2-1240556887
Vladislav
2009-04-24 11:08
2009.06.07
Как внести программу в контекстное меню Windows


15-1238790611
Юрий
2009-04-04 00:30
2009.06.07
С днем рождения ! 4 апреля 2009 суббота