我想使用这个被称为体育场的人物:
可以使用三个参数将其定义为与线段[AB]
的距离小于或等于r
的所有点的集合。
给定正方形网格的轴对齐栅格,其中每个正方形都定义了两个整数坐标,那么计算体育场内全部或部分重叠的所有像元的集合的最有效方法是什么? (我在这里不需要任何抗锯齿)
问题:
答案 0 :(得分:0)
您可以使用Bresenham圆栅格化算法(以及其他类似中点算法的算法)。
重点是使用对称性。让体育场(也称为“胶囊”)以原点为中心,并具有以下参数:半径R
和半圆之间的距离D
从Bresenham弧的右点开始(在(R, 0)
坐标处)。生成点(x,y)
以形成四分之一圆,并生成反射点和偏移点以生成水平扫描线
(x + D/2 , y) connect to (-x - D/2, y)
(x + D/2, -y) connect to (-x - D/2, -y)
对于任意方向,值得将交点按Y排序并最多划分5个区域-扫描线为弧线,弧线,线线,线弧,弧线。然后为每个Y坐标计算X端坐标