【问题标题】:Create a green triangle C++ DirectX创建一个绿色三角形 C++ DirectX
【发布时间】:2018-07-23 10:56:26
【问题描述】:

所以我正在尝试创建一个绿色三角形,但完全不知道如何进行。我对 DirectX 和 win32 世界完全陌生,现在迷路了。我玩弄创建我的教授给出的椭圆代码。这是代码。我理解这一点,但对接近三角形一无所知。我正在考虑制作三个联合直线,但无法走多远。救命!

brush->SetColor(D2D1::ColorF(red, green, blue, alpha));
rendertarget->DrawEllipse(D2D1::Ellipse(D2D1::Point2F(x, y), radius, radius), brush, 3.0f); 

brush 和 rendertarget 定义为

ID2D1HwndRenderTarget* rendertarget;
ID2D1SolidColorBrush* brush; 

【问题讨论】:

  • 首先,您似乎将 Direct2D 与 DirectX 混淆了。它们并不完全相同。您可以通过创建和填充ID2D1PathGeometry 的实例在 D2D 中绘制任何形状。
  • 嘿@VTT,非常感谢您的回复。你是对的,我在他们之间感到困惑。我已经编程两年了,但对这个超级陌生并且对所有这些新东西感到不知所措。你能帮我用 ID2D1 绘制填充三角形吗?我知道这听起来像是一个愚蠢的问题,但我真的很困惑。
  • 你应该阅读Path Geometries Overview

标签: c++ winapi directx rendering game-engine


【解决方案1】:

对于 Direct2D,您应该在GitHub 上查看这些 Windows 7 时代经典 Win32 桌面示例。 Direct2D 是一个“矢量图形”或“演示图形”库,用于绘制圆角矩形、实心圆等,它取代了早在 Windows 早期的古老 GDI API。您可以在其中编写 2D 游戏,但由于这些游戏大多只是精灵,因此它可能不是最简单的解决方案。 Direct2D/DirectWrite/WIC API 非常低级,因此如果您的目标是 Windows 10,您应该强烈考虑使用 Win2D 库进行 Direct2D 编程。

对于 Direct3D 11,您应该查看 DirectX Tool Kit tutorials。 Direct3D 可能是 2D 和 3D 游戏开发的更好选择。您可以使用工具包的SpriteBatch 做很多事情。如果您想使用“原始”Direct3D,请查看 GitHub 上的 SimpleTriangle 以获取 PCUWP

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2015-01-13
    • 2014-06-18
    • 2016-07-16
    相关资源
    最近更新 更多