目标是使用每个坐标仅需要一个字节的线段创建微小的256x256像素矢量图,因此每个线段总共32位。动机是创建游戏地图并使用线段进行碰撞检测。通过将地图划分为256x256块,我们可以轻松确定哪些线段足够接近碰撞的候选者。
由于我们不打算以大于256x256的速度显示这些矢量图,并且我们从较少的线段而不是更多的线段中受益,我们希望消除在渲染时将不可见的线段。如果两个线段在光栅化时它们的像素重叠在一起,那么我们想以某种方式检测到这种情况并将线段的重叠部分合并在一起。
例如,如果一个多边形的边角过于尖锐而无法在256x256中正确表示,那么我们应该自动切断该角落。
很容易找到用于检测两个线段之间距离的算法,但这并不是我们在这里尝试做的。段之间没有特别的最小距离;问题是检测两个片段在同一像素上的时间,并将它们合并在一起,而不会严重影响图形的其余部分。
是否有一些技巧可以将这从一个笨拙复杂的计算几何问题变成一个简单的问题?