Ai
1 Star 0 Fork 0

opengis-leaflet/leaflet-fractal

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Palettes.js 2.77 KB
一键复制 编辑 原始数据 按行查看 历史
Patrick Simmelbauer 提交于 2014-10-17 08:16 +08:00 . add palette candy
var paletteController = {
//each generator receives index from 0 to 1 and return RGBA values (as array of 4 numbers 0<= x <= 255)
_paletteGenerators: {
'hsv': function(colorIndex) {
var h = colorIndex * 360;
var s = (1 - colorIndex < 1e-2) ? 0 : 0.75;
//from http://schinckel.net/2012/01/10/hsv-to-rgb-in-javascript/
var v = 0.75*255;
var vi = Math.floor(v);
var rgb, i, data = [];
if (s === 0) {
rgb = [Math.floor(0.75*255), Math.floor(0.1875*255), Math.floor(0.75*255)];
} else {
h = h / 60;
i = Math.floor(h);
data = [Math.floor(v*(1-s)), Math.floor(v*(1-s*(h-i))), Math.floor(v*(1-s*(1-(h-i))))];
switch(i) {
case 0:
rgb = [vi, data[2], data[0]];
break;
case 1:
rgb = [data[1], vi, data[0]];
break;
case 2:
rgb = [data[0], vi, data[2]];
break;
case 3:
rgb = [data[0], data[1], vi];
break;
case 4:
rgb = [data[2], data[0], vi];
break;
default:
rgb = [vi, data[0], data[1]];
break;
}
}
rgb[3] = 255;
return rgb;
},
'green': function(colorIndex) {
return [0, Math.floor(colorIndex * 255), 0, 255]
},
'candy': function(colorIndex) {
var i = Math.floor(colorIndex * 360) % 5
switch(i) {
case 0: return[30,144,255,255];
case 1: return[255,64,64,255];
case 2: return[173,255,47,255];
case 3: return[191,239,255,255];
case 4: return[154,50,205,255];
}
}
},
addPalette: function(paletteName, paletteGenerator) {
this._paletteGenerators[paletteName] = paletteGenerator;
},
getPaletteAsBuffer: function(paletteName, numIndexes) {
if (!(paletteName in this._paletteGenerators)) {
return;
}
var generator = this._paletteGenerators[paletteName];
var res = new Array(numIndexes+1);
for (var c = 0; c < numIndexes+1; c++) {
var color = generator(c / numIndexes);
res[c] = color[0] + (color[1]<<8) + (color[2]<<16) + (color[3]<<24);
}
return (new Uint32Array(res)).buffer;
},
forEach: function(callback) {
for (var p in this._paletteGenerators) {
callback(p);
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/opengis-leaflet/leaflet-fractal.git
git@gitee.com:opengis-leaflet/leaflet-fractal.git
opengis-leaflet
leaflet-fractal
leaflet-fractal
master

搜索帮助