X-Git-Url: https://git-public.kairo.at/?p=mandelbrot.git;a=blobdiff_plain;f=xulapp%2Fchrome%2Fmandelbrot%2Fcontent%2Fimage-settings.js;h=3b1943420bc4cb49c802e708ab8eb55366e606bb;hp=a907f5a20bf677a820a4350f3c40b43f88d18a2d;hb=76a4363b8fef4641e47d6e357ebbc6b4637b8ac0;hpb=7727ce46183a6fb4adaaf0e5b63cd06a6034a2a8;ds=sidebyside diff --git a/xulapp/chrome/mandelbrot/content/image-settings.js b/xulapp/chrome/mandelbrot/content/image-settings.js index a907f5a..3b19434 100644 --- a/xulapp/chrome/mandelbrot/content/image-settings.js +++ b/xulapp/chrome/mandelbrot/content/image-settings.js @@ -46,6 +46,21 @@ function drawPreview() { let canvas = document.getElementById("mbrotPreview"); let context = canvas.getContext("2d"); + if (document.getElementById("imgWidth").value / + document.getElementById("imgHeight").value + < 80 / 50) { + canvas.height = 50; + canvas.width = canvas.height * + document.getElementById("imgWidth").value / + document.getElementById("imgHeight").value; + } + else { + canvas.width = 80; + canvas.height = canvas.width * + document.getElementById("imgHeight").value / + document.getElementById("imgWidth").value; + } + let Cr_min = parseFloat(document.getElementById("Cr_min").value); let Cr_max = parseFloat(document.getElementById("Cr_max").value); if ((Cr_min < -2) || (Cr_min > 2) || @@ -82,14 +97,41 @@ function drawPreview() { } function recalcCoord(coord, target) { + let othercoord = (coord == 'Ci') ? 'Cr' : 'Ci'; + let owndim = (coord == 'Ci') ? 'height' : 'width'; + let otherdim = (coord == 'Ci') ? 'width' : 'height'; if (target == 'scale') { - document.getElementById(coord + '_scale').value = + var myscale = parseFloat(document.getElementById(coord + '_max').value) - parseFloat(document.getElementById(coord + '_min').value); + document.getElementById(coord + '_scale').value = roundCoord(myscale); } else if (target == 'max') { - document.getElementById('mandelbrot.last_image.' + coord + '_max').value = + let mymax = parseFloat(document.getElementById(coord + '_min').value) + parseFloat(document.getElementById(coord + '_scale').value); + document.getElementById('mandelbrot.last_image.' + coord + '_max').value = roundCoord(mymax); + var myscale = document.getElementById(coord + '_scale').value; } + if (document.getElementById('syncProp').checked) { + let otherscale = myscale * + document.getElementById('mandelbrot.image.' + otherdim).value / + document.getElementById('mandelbrot.image.' + owndim).value; + document.getElementById(othercoord + '_scale').value = roundCoord(otherscale); + let othermax = + parseFloat(document.getElementById(othercoord + '_min').value) + + parseFloat(document.getElementById(othercoord + '_scale').value); + document.getElementById('mandelbrot.last_image.' + othercoord + '_max').value = roundCoord(othermax); + } +} + +function checkProportions() { + if (!document.getElementById('syncProp').checked) { + recalcCoord('Cr', 'scale'); + } +} + +function roundCoord(floatval) { + // We should round to 10 decimals here or so + return floatval; } \ No newline at end of file