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);
вы можете предоставить полный код этого метода? –