From 5ef3255233f14ac2b295c2b44357fae07a29e598 Mon Sep 17 00:00:00 2001
From: yunahi <60233430+yunahi@users.noreply.github.com>
Date: Fri, 21 Aug 2020 00:08:56 +0900
Subject: fixed ink being cut off

---
 src/client/views/GestureOverlay.tsx | 66 ++++++++++++++++++++++++++++++-------
 1 file changed, 55 insertions(+), 11 deletions(-)

(limited to 'src/client/views/GestureOverlay.tsx')

diff --git a/src/client/views/GestureOverlay.tsx b/src/client/views/GestureOverlay.tsx
index 76e786257..7e26f8ec4 100644
--- a/src/client/views/GestureOverlay.tsx
+++ b/src/client/views/GestureOverlay.tsx
@@ -754,20 +754,64 @@ export default class GestureOverlay extends Touchable {
 
                 break;
             case "circle":
+                // const centerX = (right + left) / 2;
+                // const centerY = (bottom + top) / 2;
+                // const radius = bottom - centerY;
+
+
+                // for (var y = top; y < bottom; y++) {
+                //     const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
+                //     this._points.push({ X: x, Y: y });
+                // }
+                // for (var y = bottom; y > top; y--) {
+                //     const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
+                //     const newX = centerX - (x - centerX);
+                //     this._points.push({ X: newX, Y: y });
+                // }
+                // this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top });
+                // this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top - 1 });
+
                 const centerX = (right + left) / 2;
                 const centerY = (bottom + top) / 2;
-                const radius = bottom - centerY;
-                for (var y = top; y < bottom; y++) {
-                    const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
-                    this._points.push({ X: x, Y: y });
-                }
-                for (var y = bottom; y > top; y--) {
-                    const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
-                    const newX = centerX - (x - centerX);
-                    this._points.push({ X: newX, Y: y });
+                if ((bottom - centerY) < (right - centerX)) {
+                    const radius = bottom - centerY;
+                    for (var y = top; y < bottom; y++) {
+                        const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
+                        this._points.push({ X: x, Y: y });
+                    }
+                    for (var y = bottom; y > top; y--) {
+                        const x = Math.sqrt(Math.pow(radius, 2) - (Math.pow((y - centerY), 2))) + centerX;
+                        const newX = centerX - (x - centerX);
+                        this._points.push({ X: newX, Y: y });
+                    }
+                    this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top });
+                    this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top - 1 });
+
+                } else {
+                    //right = bottom
+                    //left = top
+                    const radius = right - centerX;
+                    for (var x = left; x < right; x++) {
+                        const y = Math.sqrt(Math.pow(radius, 2) - (Math.pow((x - centerX), 2))) + centerY;
+                        this._points.push({ X: x, Y: y });
+                    }
+                    for (var x = right; x > left; x--) {
+                        const y = Math.sqrt(Math.pow(radius, 2) - (Math.pow((x - centerX), 2))) + centerY;
+                        const newY = centerY - (y - centerY);
+                        this._points.push({ X: x, Y: newY });
+                    }
+                    this._points.push({ X: left, Y: Math.sqrt(Math.pow(radius, 2) - (Math.pow((left - centerX), 2))) + centerY });
+                    this._points.push({ X: left, Y: (Math.sqrt(Math.pow(radius, 2) - (Math.pow((left - centerX), 2))) + centerY) - 1 });
+
+
                 }
-                this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top });
-                this._points.push({ X: Math.sqrt(Math.pow(radius, 2) - (Math.pow((top - centerY), 2))) + centerX, Y: top - 1 });
+
+
+
+
+
+
+
 
                 break;
             case "line":
-- 
cgit v1.2.3-70-g09d2

