|
|
|
|
@ -103,21 +103,21 @@ OK, the datapoints are all corners. Now I know. Find which way is inside |
|
|
|
|
#+end_src |
|
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp |
|
|
|
|
(defun incompatible-p (rect corner) |
|
|
|
|
(let ((minx (min (caar rect) (cadr rect))) |
|
|
|
|
(maxx (max (caar rect) (cadr rect))) |
|
|
|
|
(miny (min (cadar rect) (caddr rect))) |
|
|
|
|
(maxy (max (cadar rect) (caddr rect))) |
|
|
|
|
(px (caar corner)) |
|
|
|
|
(py (cadar corner)) |
|
|
|
|
(quadrant-list (cdr (assoc (cdr corner) quadrant-map)))) |
|
|
|
|
(or (and (= px minx) (< miny py) (< py maxy) (< 2 (length (-intersection '(1 4) quadrant-list)))) ; on left edge |
|
|
|
|
(and (= px maxx) (< miny py) (< py maxy) (< 2 (length (-intersection '(2 3) quadrant-list)))) |
|
|
|
|
(and (= py miny) (< minx px) (< px maxx) (< 2 (length (-intersection '(3 4) quadrant-list)))) |
|
|
|
|
(and (= py maxy) (< minx px) (< px maxx) (< 2 (length (-intersection '(1 2) quadrant-list))))))) |
|
|
|
|
|
|
|
|
|
(setq final-rects (-remove (lambda (rect) (--any (incompatible-p rect it) data-corners)) rects-sifted)) |
|
|
|
|
(-max (-map #'area final-rects)) |
|
|
|
|
(defun incompatible-p (rect corner) |
|
|
|
|
(let ((minx (min (caar rect) (cadr rect))) |
|
|
|
|
(maxx (max (caar rect) (cadr rect))) |
|
|
|
|
(miny (min (cadar rect) (caddr rect))) |
|
|
|
|
(maxy (max (cadar rect) (caddr rect))) |
|
|
|
|
(px (caar corner)) |
|
|
|
|
(py (cadar corner)) |
|
|
|
|
(quadrant-list (cdr (assoc (cdr corner) quadrant-map)))) |
|
|
|
|
(or (and (= px minx) (< miny py) (< py maxy) (< 2 (length (-intersection '(1 4) quadrant-list)))) ; on left edge |
|
|
|
|
(and (= px maxx) (< miny py) (< py maxy) (< 2 (length (-intersection '(2 3) quadrant-list)))) |
|
|
|
|
(and (= py miny) (< minx px) (< px maxx) (< 2 (length (-intersection '(1 2) quadrant-list)))) |
|
|
|
|
(and (= py maxy) (< minx px) (< px maxx) (< 2 (length (-intersection '(3 4) quadrant-list))))))) |
|
|
|
|
|
|
|
|
|
(setq final-rects (-remove (lambda (rect) (--any (incompatible-p rect it) data-corners)) rects-sifted)) |
|
|
|
|
(-max (-map #'area final-rects)) |
|
|
|
|
#+end_src |
|
|
|
|
|
|
|
|
|
#+RESULTS: |
|
|
|
|
@ -144,6 +144,7 @@ OK, the datapoints are all corners. Now I know. Find which way is inside |
|
|
|
|
| (11 1) | 9 | 5 | |
|
|
|
|
| (11 1) | 2 | 5 | |
|
|
|
|
| (11 1) | 2 | 3 | |
|
|
|
|
|
|
|
|
|
| (11 1) | 7 | 3 | |
|
|
|
|
| (11 7) | 9 | 7 | |
|
|
|
|
| (11 7) | 9 | 5 | |
|
|
|
|
|