Closed. This question needs debugging details。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
对于给定的
它应该确实很容易,但是无论操作不正确是什么。
这是整个方法,将CIELab颜色映射到CIELch空间,计算相反的颜色(只需相加或相减180º),然后将其转换回CIELab。映射已独立检查,可以正常工作。
注意Java使用camelCase,例如
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
if (CIElchOpposite[2] < 180.0) {
CIElchOpposite[2] = CIElchOpposite[2] + 180;
} else {
CIElchOpposite[2] = CIElchOpposite[2] - 180;
}
对于给定的
CIElchOpposite[2] = 82;
,当返回值应为180
时,返回结果为262
。CIELchOpposite
是double []
。它应该确实很容易,但是无论操作不正确是什么。
这是整个方法,将CIELab颜色映射到CIELch空间,计算相反的颜色(只需相加或相减180º),然后将其转换回CIELab。映射已独立检查,可以正常工作。
double CIElch[] = MapFromCIElabtoCIElch
.mapLabToLch(inputColorOneCIELAB);
double CIElchOpposite[] = new double[3];
CIElchOpposite[0] = CIElch[0];
CIElchOpposite[1] = CIElch[1];
if (CIElchOpposite[2] < 180.0) {
CIElchOpposite[2] = CIElchOpposite[2] + 180;
} else {
CIElchOpposite[2] = CIElchOpposite[2] - 180;
}
double[] CIElabOpposite = new double[3];
CIElabOpposite = MapFromCIElabtoCIElch.mapLchToLab(CIElchOpposite);
最佳答案
CIElchOpposite[2]
永远不会在if语句之前分配任何值
也许你是说
if (CIElch[2] < 180.0) {
CIElchOpposite[2] = CIElch[2] + 180;
} else {
CIElchOpposite[2] = CIElch[2] - 180;
}
注意Java使用camelCase,例如
cielchOpposite
和cieLch
09-12 12:28