大佬教程收集整理的这篇文章主要介绍了c# – 每次都创建相同颜色对应数组的算法?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
你为什么要问?好吧,因为用户可以向用户控件添加自定义项目,并且通过添加每个项目,项目应该与特定颜色相关联.
显然这会很糟糕:
Red Dark Red Light Red Pink
因为在视觉上所有这些在色彩和颜色上非常相似,并且用户将无法区分它们.理想情况下,函数会产生如下所示:
Red Dark Green Light Cyan Orange
在这种情况下,每种颜色与其他颜色大不相同,并且用户可以容易地在视觉上区分它们.
但是,我在提出一个执行此操作的算法时遇到了一些麻烦.我知道我想使用COlor.FromArgb,但我不确定如何构造循环,其中每个项目与其他项目有很大不同,但每次运行该函数时都是相同的.模数运算符可能会有所帮助.我一直在使用不同的方法,但每个方法总是有一个颜色太过类似于数组中的另一种颜色.我想用循环来做这件事,但这似乎暗示了一种模式以及所有颜色之间的色调,色调或亮度的相似性.
我想我可以硬编码大量的值,但我真的不想…… = X.
好吧,如果您有任何想法,请告诉我!谢谢!!
例如….
8种宽间距的颜色看起来像这样.请注意,D0和50相距80或者宽到8位空间,但提供的选项与00和80不同,IMO是可怕的颜色.
D0D0D0
50D0D0
D050D0
D0D050
5050D0
50D050
D05050
505050
如果需要更多颜色,可以缩小间距.对于每个单词,所有具有3个8位值而不是2个值的排列将给出27个变体(3 ^ 3),这在大多数情况下应该足够.在这种情况下,将您的数字空间大约相隔55(十六进制). 4个8位值变为64种颜色(4 ^ 3),这当然可以.
我看到的唯一另一个问题是,一些较暗的颜色很难区分,所以你可能想要将你的价值观欺骗到较轻的一端.但我认为,如果你只是跳过最暗的颜色(它将是深灰色),其他颜色应该全部工作并且相互之间可以区分.
一旦确定在三个单词中旋转哪些值,生成颜色的算法应该相当简单.
以上是大佬教程为你收集整理的c# – 每次都创建相同颜色对应数组的算法?全部内容,希望文章能够帮你解决c# – 每次都创建相同颜色对应数组的算法?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。