gpt4 book ai didi

java - 如何逆时针旋转数组并将其垂直反转?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:22 25 4
gpt4 key购买 nike

假设这张图片(图 1)中的每个像素都是数组中的一个元素。我如何将它逆时针旋转 90 度(图 2)并垂直反转(图 3)?

图 1: fig 1

图 2:fig 2

图 3:enter image description here

我当前的代码是:

private static Color[][] invert(Color[][] chunk){ //same as rotate
Color[] temp;
for(int i=0;i<chunk.length/2;i++){ //reverse the data
temp=chunk[i];
chunk[i]=chunk[chunk.length-i-1];
chunk[chunk.length-i-1]=temp;
}
return chunk;
}

private static Color[][] rotate(Color[][] chunk){
int cx = chunk.length;
int cz = chunk[0].length;
Color[][] rotated = new Color[cz][cx];
for(int x=0;x<cx;++x){
for(int z=0;z<cz;++z){
rotated[z][x]=chunk[cz-z-1][x];
}
}
return rotated;
}

虽然反转与旋转具有相同的功能。有帮助吗?

最佳答案

似乎您正在尝试转置数组 (fig3 = transpose(fig1))。

使用双 for 循环并在条目 [i][j] 中保存 [j][i] 的值。

参见 LINK有关矩阵转置的更多信息...

总而言之,您可以使用 transpose 得到 fig3,然后使用 invert 得到 fig2。

关于java - 如何逆时针旋转数组并将其垂直反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176377/

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