найти, если 4 точки на плоскости образуют прямоугольник? - PullRequest
49 голосов
/ 20 февраля 2010

Может кто-нибудь показать мне в псевдокоде в стиле C, как написать функцию (представить точки, как вам нравится), которая возвращает true, если 4 точки (аргументы функции) образуют прямоугольник, и false в противном случае?

Я пришел к решению, которое сначала пытается найти 2 различные пары точек с одинаковым значением x, а затем делает это для оси y. Но код довольно длинный. Просто любопытно посмотреть, что придут другие.

Ответы [ 11 ]

0 голосов
/ 05 августа 2018

Как проверить, что эти 4 точки могут сначала образовать параллелограмм , а затем выяснить, существует ли один прямой угол .
1. подтверждение параллелограмма

input 4 points A, B, C, D;

if(A, B, C, D are the same points), exit;// not a rectangle;

else form 3 vectors, AB, AC, AD, verify(AB=AC+AD || AC=AB+AD || AD=AB+AC), \\if one of them satisfied, this is a parallelogram;

2. проверка правильного угла

through the last step, we could find which two points are the adjacent points of A;

We need to find out if angle A is a right angle, if it is, then rectangle.

Я не знал, существуют ли ошибки. Пожалуйста, разберись, если есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...