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";