gpt4 book ai didi

c - 将二维数组内的圆形边界内的值相加的算法

转载 作者:行者123 更新时间:2023-11-30 19:18:59 26 4
gpt4 key购买 nike

我有一个大小为 width * height 的一维数组其中包含逐行来自二维数组的数据,坐标原点位于左下角。

我想用n对数组进行分类radiuses,我想在其边界内将所有数组值相加。

存在一个数组 values[n+1] 。例如,values[0] 应包含索引位于 (0|0) 之间的所有数组元素的总和。和半径1 。半径坐标1将是height/n * 1在 y 轴上和 width/n * 1在 x 轴上。

我不确定我是否能表达我所需要的。

我当前的(伪)代码只会将矩形边界(黄色)中的值相加。我需要的是灰色边界内的值的总和。

感谢您的帮助!

    int n = 5;
int[] array[width*height];
int[] values[n+1];
int* p = array[0];
int i = 0;
int bandwith = width /(n+1);
for(int i= 0; i< n; i ++)
{
for (int nRow = 0; nRow < height; ++nRow){
for (int nColumn = 0, nOff = 0; nColumn < width; ++nColumn){

if(nColumn < (i+1)*bandwidth && nColumn > i*bandwidth
&& nRow < (i+1)*bandwidth && nRow > i*bandwidth)
{
values[i] += p[nOff++];
}
}
p += width;
}
i++;
}

enter image description here

最佳答案

您可以计算表达式的整数部分

v = sqrt(y*y+x*x) / bandwidth

这将为您提供一些环片段(0 表示中心四分之一圆,1 表示第一个环片段,依此类推)

关于c - 将二维数组内的圆形边界内的值相加的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25895416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com