我正在寻找一种快速算法来绘制轮廓线。对于这个应用程序,轮廓只需要 1 个像素宽。无论是默认情况下还是通过选项,都应该可以使两条线无缝连接在一起,如果它们共享一个公共点。
请原谅 ASCII 艺术,但这可能是展示它的最佳方式。
正常线:
##
##
##
##
##
##
“概述”行:
**
*##**
**##**
**##**
**##**
**##**
**##*
**
我正在研究 dsPIC33FJ128GP802。它是一个小型微控制器/数字信号处理器,能够处理 40 MIPS(每秒百万条指令)。它只能进行整数数学运算(加法、减法和乘法:它可以进行除法,但需要大约 19 个周期。)它正在被使用同时处理一个 OSD 层,只有 3-4 MIPS 的处理时间可用于计算,因此速度至关重要。像素占据三种状态:黑色、白色和透明;视频场为 192x128 像素。这是针对 Super OSD,一个开源项目:http ://code.google.com/p/super-osd/
我想到的第一个解决方案是在第一遍绘制带有轮廓像素的 3x3 矩形,在第二遍绘制普通像素,但这可能会很慢,因为每个像素至少有 3 个像素被覆盖,并且浪费了绘制它们的时间. 所以我正在寻找一种更快的方法。每个像素大约需要 30 个周期。目标是 <50, 000 个周期来绘制一条 100 像素长度的线。