本文介紹了為當(dāng)前顏色尋找和諧的顏色的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我有一種顏色:禍不單行(#aeeb12)或rgb(1742318)。
我需要為這個(gè)顏色找兩個(gè)相似的顏色。
有沒(méi)有什么數(shù)學(xué)公式可以編程來(lái)做呢?
圖片如下:
推薦答案
根據(jù)您在評(píng)論中提供的站點(diǎn)(sessions.edu/color-culator)
您對(duì)顏色使用的是類(lèi)似圖案:當(dāng)您轉(zhuǎn)換RGB顏色HSB/HSV表示法時(shí),我將您重定向到此站點(diǎn)以了解此系統(tǒng)表示顏色的方式http://colorizer.org/。
相似顏色是一個(gè)三和弦:Left One MainOne Right One
在HSB表示中,我這樣定義主要的一個(gè):[h,S,B]
H色調(diào)是度角度
S飽和度在0和1之間浮動(dòng)
B亮度/值在0和1之間浮動(dòng)
如果定義為:[H-30,S,B]
和right One如果定義為:[H+30,S,B]
在Java中,如果您使用的是java.awt.color API,則色調(diào)是浮點(diǎn)值(介于0和1之間),因此只需將角度除以360.
下面是如何在Java中獲得此結(jié)果的代碼片段:
double anglerotation = 1d / 12; // 30 /360
Color mainColor = new Color(174, 235, 18);
float[] hsbLeftColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbLeftColor[0] -= anglerotation;
Color leftColor = new Color(Color.HSBtoRGB(hsbLeftColor[0], hsbLeftColor[1], hsbLeftColor[2]));
float[] hsbRightColor = Color.RGBtoHSB(mainColor.getRed(), mainColor.getGreen(), mainColor.getBlue(), null);
hsbRightColor[0] += anglerotation;
Color rightColor = new Color(Color.HSBtoRGB(hsbRightColor[0], hsbRightColor[1], hsbRightColor[2]));
這篇關(guān)于為當(dāng)前顏色尋找和諧的顏色的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,