赤と青の間の補間をしたい。このhsvの色間の奇妙な補間?
が、単一のラインのようなもの。
私のJavaコード:
private PixelData InterpolateColour(float totalLength, float curLength){
float startColourV[] = new float[3];
Color.RGBtoHSB(m_start.getColour().getR() & 0xFF, m_start.getColour().getG() & 0xFF, m_start.getColour().getB() & 0xFF, startColourV);
float endColourV[] = new float[3];
Color.RGBtoHSB(m_end.getColour().getR() & 0xFF, m_end.getColour().getG() & 0xFF, m_end.getColour().getB() & 0xFF, endColourV);
float endPercent = curLength/totalLength;
float startPercent = 1 - curLength/totalLength;
float h = endColourV[0] * endPercent + startColourV[0] * startPercent;
float s = endColourV[1] * endPercent + startColourV[1] * startPercent;
float b = endColourV[2] * endPercent + startColourV[2] * startPercent;
int colourRGB = Color.HSBtoRGB(h, s, b);
byte[] ByteArray = ByteBuffer.allocate(4).putInt(colourRGB).array();
return new PixelData(ByteArray[0], ByteArray[3], ByteArray[2], ByteArray[1]);
}
と私は取得していた結果がこの
です。
緑がすべてどこから来ているのか分かりません。誰か助けてくれますか?
誰かが私を助けることができますか? –
赤は0度、青は240度、緑は120度の中間にあります。その方向を補間すると、緑色になります。おそらく240から360に行ってみるべきです。 – beaker
@beaker Ok iは$ \ frac {4 \ pi} {3} $から$ 2 \ pi $まで補間しました。しかし、もし私が与えられた目的地にどんな色があるのか分からなければ、私は何をしますか? –