diff --git a/sd-card/html/edit_analog.html b/sd-card/html/edit_analog.html index bc2ab6611..dba8c0a00 100644 --- a/sd-card/html/edit_analog.html +++ b/sd-card/html/edit_analog.html @@ -156,6 +156,7 @@

Analog ROI




+

@@ -196,6 +197,7 @@

Analog ROI

enhanceCon = false, lockAspectRatio = true, lockSizes = false, + drawFromCenter = true, domainname = getDomainname(); function doReboot() { @@ -316,7 +318,11 @@

Analog ROI

function changelockSizes() { lockSizes = document.getElementById("lockSizes").checked; - UpdateROIs(); + UpdateROIs(); + } + + function changeDrawFromCenter() { + drawFromCenter = document.getElementById("drawFromCenter").checked; } function changeCCW() { @@ -800,8 +806,12 @@

Analog ROI

zw = getCoords(this) rect.startX = e.pageX - zw.left; rect.startY = e.pageY - zw.top; + if (drawFromCenter) { + rect.centerX = rect.startX; + rect.centerY = rect.startY; + } document.getElementById("refx").value = rect.startX; - document.getElementById("refy").value = rect.startY; + document.getElementById("refy").value = rect.startY; drag = true; } @@ -822,16 +832,33 @@

Analog ROI

} function mouseMove(e) { + const mouseX = e.pageX - zw.left; + const mouseY = e.pageY - zw.top; + if (drag) { - zw = getCoords(this) + zw = getCoords(this) + + if (drawFromCenter) { + if (lockAspectRatio) { + rect.h = Math.abs(mouseY - rect.centerY) * 2; + rect.w = Math.round(rect.h * ROIInfo[aktindex]["ar"]); + } else { + rect.w = Math.abs(mouseX - rect.centerX) * 2; + rect.h = Math.abs(mouseY - rect.centerY) * 2; + } - if (lockAspectRatio) { - rect.h = (e.pageY - zw.top) - rect.startY; - rect.w = Math.round(rect.h * ROIInfo[aktindex]["ar"]); - } - else { - rect.w = (e.pageX - zw.left) - rect.startX; - rect.h = (e.pageY - zw.top) - rect.startY; + rect.startX = rect.centerX - rect.w / 2; + rect.startY = rect.centerY - rect.h / 2; + document.getElementById("refx").value = Math.round(rect.startX); + document.getElementById("refy").value = Math.round(rect.startY); + } else { + if (lockAspectRatio) { + rect.h = mouseY - rect.startY; + rect.w = Math.round(rect.h * ROIInfo[aktindex]["ar"]); + } else { + rect.w = mouseX - rect.startX; + rect.h = mouseY - rect.startY; + } } document.getElementById("refdx").value = rect.w; document.getElementById("refdy").value = rect.h; @@ -843,8 +870,8 @@

Analog ROI

var context = canvas.getContext('2d'); zw = getCoords(this); - x = e.pageX - zw.left; - y = e.pageY - zw.top; + x = mouseX; + y = mouseY; context.lineWidth = 2; context.strokeStyle = "#00FF00";