Colormaps

Mar. 31st, 2019 12:28 pm
eddy_em: (Default)
[personal profile] eddy_em
Что-то не могу найти вменяемых формул для определения разных палитр. Глянул в ds9 - а там через таблицы задается, что неудобно (да еще и значений полно)...
Гугол молчит, ничего мне говорить не хочет.. Или я разучился правильно гуглить. Вылезает какой-то бред на пхытоне, из которого ничего путного понять невозможно...

Где найти нормальные формулы для красивых палитр? Вот пример палитры, которую я использовал в fitsview для раскрашивания превьюшек фитсов при открывании файлов:

static void palette_BR(double gray, uint8_t *rgb){
	int i = (int)(gray * 4.);
	double x = 4.*gray - (double)i;
	uint8_t r = 0, g = 0, b = 0;
	switch(i){
		case 0:
			g = (uint8_t)(255. * x);
			b = 255;
		break;
		case 1:
			g = 255;
			b = (uint8_t)(255. * (1. - x));
		break;
		case 2:
			r = (uint8_t)(255. * x);
			g = 255;
		break;
		case 3:
			r = 255;
			g = (uint8_t)(255. * (1. - x));
		break;
		default:
			r = 255;
	}
	rgb[0] = r;
	rgb[1] = g;
	rgb[2] = b;
}

А вот так выглядит тупая "серая" палитра:
static void palette_gray(double gray, uint8_t *rgb){
    rgb[0] = rgb[1] = rgb[2] = (uint8_t)(255.*gray);
}

Хочу еще штук пять популярных в библиотеку добавить.

Вот какие палитры пока у меня получились:
Просто серый

От синего к красному (из кода выше)

«Hot»

«Jet»

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 06:58 am
Powered by Dreamwidth Studios