Algorithm 矩阵中圆的快速嵌套绘制

Algorithm 矩阵中圆的快速嵌套绘制,algorithm,math,optimization,geometry,Algorithm,Math,Optimization,Geometry,假设我有一个NxN矩阵,其中每个单元是一个1x1的白色正方形 假设我有一个位置p和半径R,我想画以p为中心半径R的圆的所有单元 我当然可以这样做: for(int i = P.x - R; i < P.x + R; i++) for(int j = P.y - R; j < P.y + R; j++) if (distance from P to (i,j) < R) Paint(i,j) for(inti=P.x-R;i

假设我有一个NxN矩阵,其中每个单元是一个1x1的白色正方形

假设我有一个位置p和半径R,我想画以p为中心半径R的圆的所有单元

我当然可以这样做:

for(int i = P.x - R; i < P.x + R; i++)
    for(int j = P.y - R; j < P.y + R; j++)
        if (distance from P to (i,j) < R)
            Paint(i,j)
for(inti=P.x-R;i
但是,由于我将在执行每一帧的着色器上运行这段代码,我想知道一种更快的方法来找到正确的单元,而不是询问每个单元的距离,这很慢


有没有更聪明的方法呢?

你可以为每个给定高度的圆计算它的线段宽度,并完全填充它

从y=p-R到p+R填充弦中的所有点(圆段)


对于弦的长度,只需使用公式(9)即可。

这是在圆周上画圆还是填充圆的单元格?填充圆内的所有内容。好的,因此不访问单元格就不太可能绘制单元格。是的。我正在寻找一种智能的方式来访问手机,这样我就不需要查看那些不会被访问的手机。你可能正在寻找你正在寻找的手机。