如何绘制的Direct2D透明线C ++ Builder中

问题描述 投票:0回答:1

我使用C ++ Builder的XE4与VCL windows平台,我使用的包装TDirect2DCanvas访问的Direct2D功能。我移植GDI +代码Direct2D和我卡在如何在Direct2D中绘制一个透明的线。当我说透明我走大约具有某种类型的α-共混物或透明设置的行,以便线下的图像可以看出。下面的代码创建的Direct2D渐变画笔和吸取了的Direct2D的线呈现目标但不具有透明性。你能告诉如何设置画笔和/或笔太行绘制透明。谢谢

// begin drawing
Canvas2D_->BeginDraw();
try
{
TColor clrs[] = {clRed, clLime};
// create a gradient brush
DelphiInterface<ID2D1Brush> pBrush =
Canvas->CreateBrush(clrs, 1,
D2D1::Point2F(-w/2, -h/2),
D2D1::Point2F(w/2, h/2));
Canvas->Brush->Handle = pBrush;

Canvas->Pen->Width = 10;
int x=25;
Canvas->MoveTo(x, -half_h);
Canvas->LineTo(x, half_h);

}
__finally
{
// end drawing (actual screen update)
Canvas2D_->EndDraw();
} 
delphi c++builder direct2d
1个回答
1
投票

尝试调用ID2D1Brush :: SetOpacity刷上,用你想要的怎么行透明0.0和1.0之间不同的值:

DelphiInterface<ID2D1Brush> pBrush = // ...
pBrush->SetOpacity(0.5);
© www.soinside.com 2019 - 2024. All rights reserved.