【问题标题】:How do I draw transparent Rectangles using DirectX in C++?如何在 C++ 中使用 DirectX 绘制透明矩形?
【发布时间】:2013-08-19 05:04:55
【问题描述】:

我想将对象绘制为部分透明,但我不知道如何。 我正在使用 MSDN 和 C++ 编码。

下面的代码是我如何画一个普通的矩形,但是我想画一个透明的矩形。

VOID DrawingObject::Draw()
{
    ID2D1HwndRenderTarget *m_pRenderTarget;
    m_pRenderTarget->FillRectangle(RectF(10, 10, 20, 20),
        m_pD2DDriver->GetBrush(static_cast<DrawingColor>(m_uColorIndex))
        );
}

非常感谢任何帮助或指导。

【问题讨论】:

  • 您的意思是 DirectX API,而不是 MSDN(它是一个供 Windows 程序工程师使用的开发者资源库系统)。
  • 好电话!我很困惑。

标签: c++ graphics draw msdn


【解决方案1】:

看看Brush Interface。您可以创建一个画笔并使用SetOpacity 创建一个透明画笔发送到矩形。

您也可以直接使用D2D1::ColorF(red,green,blue,alpha) 函数创建颜色。 alpha 参数是透明度。 0 是完全透明的,而 1 是不透明的。

如果您不知道如何使用它,this link 包含有关如何使用 ID2D1 画笔的代码的精彩示例。以下是该页面的一些示例代码。

ID2D1SolidColorBrush *pGridBrush = NULL;
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
    D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
    &pGridBrush
    );

【讨论】:

  • 谢谢柯克,这正是我想要的。欣赏它(:
猜你喜欢
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 2012-06-20
  • 2012-01-16
  • 2010-09-13
  • 2021-04-10
  • 2016-03-12
相关资源
最近更新 更多