gpt4 book ai didi

c# - 如何在 Unity 中高效地对大量 RGB 颜色进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:39 24 4
gpt4 key购买 nike

什么是对 Unity Colors 的一维数组进行排序的有效方法(它们是 RG?我有一个包含 921,600 个 Color 的数组>s(一张 1280 x 720 像素的图片)。是否有一种基数排序类型,或者您是否知道任何其他有效的方法来对这么多颜色进行排序?通过排序,我的意思是说我有一些颜色,(123, 17, 2),(5, 16, 16),(5, 2, 150),等等。为了对这些进行排序,我先按 R 然后 G 然后 B 排序(有可能是这个的名称,但我不知道)所以排序的列表将是 (5, 2, 150), (5, 16, 16), (123, 17, 2)。

最佳答案

除了蛮力,我看不到任何其他方法。最好的方法是使用 Array.Sort<T>如评论部分所述。

创建这个排序方法:

    private int SortColors(Color a, Color b)
{
if (a.r < b.r)
return 1;
else if (a.r > b.r)
return -1;
else
{
if (a.g < b.g)
return 1;
else if (a.g > b.g)
return -1;
else
{
if (a.b < b.b)
return 1;
else if (a.b > b.b)
return -1;
}
}

return 0;
}

然后像这样使用它:

Color[] colors = new Color[] { new Color (5, 2, 150), new Color (5, 16, 16), new Color (123, 17, 2) }; 
Array.Sort<Color> (colors, SortColors);

关于c# - 如何在 Unity 中高效地对大量 RGB 颜色进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37412371/

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