windows - 使用自定义笔样式在 win32/GDI 中绘制线条?

标签 windows graphics winapi gdi

我需要使用 win32/GDI( native ,而非 .NET)进行绘图,但我遇到了以下问题:

我需要绘制“样式化”的线条。例如,在附图中,标记为“A”的线就我的应用程序数据而言是一条直线,只需要以额外的锯齿形作为样式绘制即可。当然,这很容易以编程方式完成,但是当线可以是任意角度(“B”)甚至是贝塞尔曲线(“C”)时,它会变得更加复杂。

现在,我可以通过编程方式完成这一切,煞费苦心地做数学运算,在每条线的可能性周围画一个锯齿形,但这会花费很多时间,更重要的是,很容易出错。

是否可以只给 windows/GDI 一个“样式”来应用到线条上,也许是一个像标记为“D”的位图,并让它用作画线的笔?如果不是,是否有比为每个“样式化”线条编写一堆特定绘图代码更灵活、更不容易出错的方法?

*显然初学者不能发布图片。示例可以在 http://i.imgur.com/IC0T2.png 找到

最佳答案

这在 Win32 GDI 中是不可能的。您需要自己计算。

但是应该注意的是,您可以获得用于构成直线或曲线的点,这应该会大大简化它。

有关示例,请参阅此“ HitTest ”教程。

对于贝塞尔曲线,您可以使用 Path Functions :

对于直线你可以使用:

LineDDA

关于windows - 使用自定义笔样式在 win32/GDI 中绘制线条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002203/

相关文章:

windows - 如何远程连接到网络中的另一台windows机器并从该机器获取操作系统信息? (Telnet 除外)

node.js - 安装后无法识别 Heroku CLI 命令

multithreading - CreateRemoteThread 32->64 和/或 64->32

c - glPolygonOffset中factor参数的含义和用法

graphics - 是否有任何来源可以获取可负担得起的软件产品和游戏图形和声音?

c - c程序中的链接器错误

c - 从进程 ID 获取进程名称 (win32)

windows - Windows 启动时在后台运行批处理文件

javascript - Electron JS : Uncaught TypeError: Cannot read property "BrowserWindow"/ "getCurrentWindow" of undefined

java - 简单的Java显示图像