use*_*573 0 algorithm geometry console-application
我试图理解这种模式,行和列方程式如何,以便我可以做一个循环给我相同的图片.我不一定需要代码,只是模式的方式,我似乎无法理解它已经尝试编码它仍然我的结果是坏的...
当我的输入为1时,这就是结果

当我的输入为3时,这就是结果

当我的输入为15时,这就是结果

它似乎是一个粗略的像素化圆圈.因此,等式是x ^ 2 + y ^ 2 <= r ^ 2.坐标值相对于中心的位置,半径作为输入.
编辑:经过进一步检查,这些是非常宽的圆圈,大概是为了解释角色cels的矩形形状.所以,它应该更像(x/scale)^ 2 + y ^ 2 <= r ^ 2
正如评论中所提到的,要了解更多的关键词是"Bresenham的圆绘制算法",这是一种快速的方法来计算圆的一个象限(以及通过镜像获得的其余部分).使用Bresenham,您可能还需要填充洪水.您也可以搜索"扫描线光栅化圆",这可以跳过填充步骤.
这是一个ASCII艺术圈,半径(r)等于输入数.
双X和双点(XX和..)用作像素内容.
我们可以在像素矩阵上施加坐标系[-r..r,-r..r],并在打印时测试每个坐标系在给定半径圆内的隶属度.测试是x ^ 2 + y ^ 2 <= r ^ 2.
以下C函数完成了所有这些.它为所有输入产生正确的输出(1,3,15).
void print_filled_circle(int r)
{
for (int x = -r; x <= r; x++)
{
for (int y = -r; y <= r; y++)
{
if (x*x + y*y <= r*r)
printf("XX");
else
printf("..");
}
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |