Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.006 c
2-1240278582
AIRDIGER
2009-04-21 05:49
2009.06.07
Где лучше освобождать память?


11-1201435065
Blackman
2008-01-27 14:57
2009.06.07
ограничения на размер PStrList


2-1240231874
night_light
2009-04-20 16:51
2009.06.07
сжатие и отправкакартинки по сети


2-1240213953
Iriss
2009-04-20 11:52
2009.06.07
Потоки


15-1238837032
Minimaltower
2009-04-04 13:23
2009.06.07
Нумерация страниц начиная с третьей в Open Office 3 Write кто знает ПОМОГИТЕ !




   Наверх