algorithm - 快速嵌套用于在矩阵中绘制圆
问题描述
假设我有一个 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)
但是由于我将在将执行每一帧的着色器上运行此代码,我想知道一种更快的方法来找到正确的单元格,而不是询问每个单元格的距离,这很慢。
有没有更聪明的方法?
解决方案
推荐阅读
- javascript - 无法解析剩余部分:来自“rates [0]”的“[0]”-将烧瓶应用程序移植到 Django 2
- php - 如何在单个查询中获取多个 ID 的记录
- bash - bash find exec:重命名文件并保留可选扩展名?
- java - 使用 Java Stream 计算项目列表中日期的出现次数
- r - 新的 data.table 列连续返回第 n 个最大值
- jquery - 如何在 Angular 7 中使用 Jquery 第三方插件?
- fortran - FFTW3 无法识别四倍精度的 MPICH 库?
- parsing - 为什么野牛与明确的语法有移位/减少冲突?
- c# - XNA 4.0 更改 GraphicsDevice 默认 DepthStencilState 值
- c++ - “移动后使用[bugprone-use-after-move]”警告在这里是一个真正的问题吗?