Current state of development

This commit is contained in:
2022-03-12 02:07:00 +01:00
parent 94378af9d9
commit c41bc2c796
6 changed files with 108 additions and 84 deletions

View File

@ -8,11 +8,25 @@
* @author HATBE <https://github.com/HATBE>
*/
const debugmode = true // Enables debug messages
let ExportImageC = new ExportImage();
const ExportImageC = new ExportImage(); // Class
const debugmode = true; // Enables debug messages
// TODO
let globalConfig = { // Initial config object including initial values. ONLY STATIC VALUES, function generated values are declared as "NULL".
width: 3840,
height: 2160,
xColors: null,
yColors: null,
cellSize: 255 * 0.5,
variance: 0.5,
seed: null,
colorSpace: 'lab',
colorFunction: null,
}
const targetCanvas = document.getElementById('pattern');
let colorPaternsEl = $("#color-patterns");
let colorPaternsElX = $("#color-patterns-x");
let colorPaternsElY = $("#color-patterns-y");
const colorpatterns = {
YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],
@ -42,11 +56,15 @@ const colorpatterns = {
RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],
Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],
RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],
spacelord: ['#000000', '#0bff09'],
hatbe: ['#2B3342', '#9F9F9F'],
greydiamond: ['#000000', '#FFFFFF', '#000000'],
blacks: ['#000000', '#FFFFFF', '#000000'],
dgreys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000', '#252525', '#525252', '#737373', '#969696', '#bdbdbd', '#d9d9d9', '#f0f0f0', '#ffffff'],
rdgreys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000']
rdgreys: [ "#000000", "#252525", "#525252", "#737373", "#969696", "#bdbdbd", "#d9d9d9", "#f0f0f0", "#ffffff", '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],
rdgreysr: [ "#000000", "#252525", "#525252", "#737373", "#969696", "#bdbdbd", "#d9d9d9", "#f0f0f0", "#e31a1c", '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000']
};
let selectedColorPattern = generateRandColor(); // get random init colors
@ -78,13 +96,13 @@ function generateSeed() {
for (let i = 0; i < 64; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return (btoa(result)); // TODO DEPRECATED
return (btoa(result));
}
/**
* Regenerates canvas
* @param {*} targetCanvas Canvas to print on.
* @returns
* @returns {Object} trianglifyObj Generated basic Trianglify object
*/
function generateCanvas(targetCanvas) {
@ -118,6 +136,8 @@ function generateCanvas(targetCanvas) {
seed: seed,
colorSpace: "lab",
colorFunction: colFunc,
// strokeWidth: 1,
fill: true
}
const trianglifyObj = trianglify(options);
@ -125,7 +145,7 @@ function generateCanvas(targetCanvas) {
try {
trianglifyObj.toCanvas(targetCanvas);
} catch (e) {
if (debugmode) {console.error(e)};
debugmode && console.error(e);
console.error("Could not print to canvas! Resolution is probably to high.");
}
@ -153,7 +173,7 @@ function generateColorPatterns() {
liEl.appendChild(colEl);
});
colorPaternsEl.append(liEl);
colorPaternsElX.append(liEl);
}
updateActiveColor(document.querySelector(`.colorpattern-${selectedColorPattern}`));
@ -165,6 +185,23 @@ function updateActiveColor(activeItem) {
activeItem.classList.add('active');
}
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
function generateRandomColorArray(size) {
let colors = [];
for (let i = 0; i < size; i++) {
colors.push(getRandomColor());
}
return colors;
};
// ================
// Listeners
@ -190,7 +227,7 @@ $('#export_png').on('click', () => {
});
// == listen on click on colors
colorPaternsEl.on('click', (e) => {
colorPaternsElX.on('click', (e) => {
if (e.target.parentNode.dataset.name) {
selectedColorPattern = e.target.parentNode.dataset.name;
updateActiveColor(e.target.parentNode);
@ -225,5 +262,12 @@ $('#randomize').on('click', () => {
seed = generateSeed();
for (let i = 2; i < 9; i=i*2) {
for (let j = 1; j < 17; j++) {
//debugmode && console.log(`I=${i}, J=${j}`);
colorpatterns[`random-${i}-${j}`] = generateRandomColorArray(i, j);
}
}
generateColorPatterns();
pattern = generateCanvas(targetCanvas);
pattern = generateCanvas(targetCanvas);

View File

@ -1,45 +0,0 @@
let obj1 = document.getElementById("CanvasWidth");
let obj2 = document.getElementById("CanvasHeight");
let current1 = null;
let current2 = null;
function countup() {
current1 = parseInt(obj1.value);
current2 = parseInt(obj2.value);
current1 = current1 + 16;
current2 = current2 + 9;
obj1.value = current1;
obj2.value = current2;
selectedColorPattern = generateRandColor()
pattern = generateCanvas(targetCanvas);
}
//let counter = setInterval(countup, 10);
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results==null) {
return null;
}
return decodeURI(results[1]) || 0;
}
let urlParams = new URLSearchParams(window.location.search);
//if (debugmode) {
if (urlParams.has("rick")) {
console.warn("You are getting ricked in randomness ;)");
}
//} else {
// console.warn("You are NOT getting ricked in randomness ;)");
//}
//console.log(urlParams.toString());
console.info("FUCK= " + $.urlParam('fuck'));
console.info("RICK= " + $.urlParam('norick'));