Direct2D 设备中的 C++ 绘图弧

Posted

技术标签:

【中文标题】Direct2D 设备中的 C++ 绘图弧【英文标题】:C++ Drawing arcs in Direct2D Device 【发布时间】:2012-01-28 17:04:34 【问题描述】:

我需要在 D2D 设备中绘制弧线,是否有执行此操作的函数?(类似于 DrawLine 或 DrawEllipse) 否则,我已经看到有返回 D2D1_ARC_SEGMENT 结构的 ArcSegment 函数,我该如何绘制?

【问题讨论】:

【参考方案1】:

D2D1_ARC_SEGMENT 可以在填充路径几何图形 (ID2D1PathGeometry) 时使用。将所需的弧线添加到路径后,您可以使用ID2D1RenderTarget::Draw/FillGeometry() 绘制它。

【讨论】:

【参考方案2】:

我对 Direct2D 不太熟悉,所以我不知道有什么特定功能可以让你这样做,但是它不会阻止你实现自己的功能来实现你想要的。

我建议研究样条曲线以及它们是如何计算的wiki

似乎是一个不错的起点。然后,您可以使用公式和几个 DrawLine 调用生成您的 Arc。

编辑:甚至this 可能会更好地为您服务。

【讨论】:

以上是关于Direct2D 设备中的 C++ 绘图弧的主要内容,如果未能解决你的问题,请参考以下文章

使用 Direct2D 在非客户区绘图

Win32 API之绘图函数

CAD绘图技巧,怎么绘制椭圆弧

使用 Direct2D 和 DirectWrite(C++、DirectX)制作按钮

Direct2D C++编程约定

C++ COM、Direct2D、Win32 和 WM_CLOSE