首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于图像像素分析(x,y) C#的螺旋环路

用于图像像素分析(x,y) C#的螺旋环路
EN

Stack Overflow用户
提问于 2021-05-05 23:56:22
回答 1查看 56关注 0票数 1

我正在尝试在坐标(x,y)中进行像素搜索

我需要一个函数( int width,int height),它返回一个从中心开始的点数组。

如果镜像有1000x1000,我需要获取{500,500},{501,500},{501,501},{500,501},{499,501},{499,500} ...

示例:

EN

回答 1

Stack Overflow用户

发布于 2021-05-06 05:07:15

嗯,这比我想象的要容易。

代码语言:javascript
复制
static IEnumerable<Point> GetPixels(int size)
{
    Point point = new Point(size/2, size/2);

    yield return point;
    int sign = 1;
    for (int row = 1; row < size; row++)
    {
        // move right/left by row, and then up/down by row
        for (int k = 0; k < row; k++)
        {
            point.Offset(sign*1, 0);
            yield return point;
        }
        for (int k = 0; k < row; k++)
        {
            point.Offset(0, -sign*1);
            yield return point;
        }
        sign *= -1;
    }
    // last leg to finish filling the area
    for (int k = 0; k < size-1; k++)
    {
        point.Offset(sign*1, 0);
        yield return point;
    }

}

结果(size=5)

代码语言:javascript
复制
{X=2,Y=2}
{X=3,Y=2}
{X=3,Y=1}
{X=2,Y=1}
{X=1,Y=1}
{X=1,Y=2}
{X=1,Y=3}
{X=2,Y=3}
{X=3,Y=3}
{X=4,Y=3}
{X=4,Y=2}
{X=4,Y=1}
{X=4,Y=0}
{X=3,Y=0}
{X=2,Y=0}
{X=1,Y=0}
{X=0,Y=0}
{X=0,Y=1}
{X=0,Y=2}
{X=0,Y=3}
{X=0,Y=4}
{X=1,Y=4}
{X=2,Y=4}
{X=3,Y=4}
{X=4,Y=4}

或图形化的size=50

测试代码非常简单

代码语言:javascript
复制
static void Main(string[] args)
{
    foreach (var point in GetPixels(5))
    {
        Console.WriteLine($"{point}");
    }

    Console.WriteLine();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67404737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档