Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2020, 11:08   #11
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Цитата:
А вы не пробовали сравнивать квадраты сторон.
Дык не только Sqrt вносит погрешность - любые действия с действительными числами из-за конечной длины машинного слова могут дать расхождения в результатах - хоть в микроскопическом размере, но для сравнения этого бывает достаточно.
Но это мы чересчур углубились
digitalis вне форума Ответить с цитированием
Старый 30.11.2020, 18:23   #12
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Мне кажется, что предложение
Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Берем любую из точек , считаем расстояния до 3-х других. Получаем 3 величины.
Для квадрата - две из этих величин равны, третья в корень из 2 раз больше.
не подойдёт алгоритмически - ведь не обещают, что длинный отрезок лежит на биссектрисе угла, образованного меньшими равными отрезками. Визуально - строим две окружности радиусов R и R*sqrt(2) и выбираем на них три произвольных точки (одну на большей и две на меньшей окружностях).
FPaul вне форума Ответить с цитированием
Старый 30.11.2020, 21:54   #13
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Если 4 короткие равны и оставшиеся 2 длинные равны меж собой и выполняется Sqrt(2) - квадрат без разговоров. Кто не согласен - приведите пример 4 точек, где условие выполняется - но не квадрат. Опровергательный пример - в студию!
digitalis вне форума Ответить с цитированием
Старый 30.11.2020, 23:11   #14
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

digitalis
Цитата:
Если 4 короткие равны и оставшиеся 2 длинные равны меж собой и выполняется Sqrt(2) - квадрат без разговоров.
Требование выполнения Sqrt(2) - отличие в длине диагоналей и сторон излишне.
Достаточно равенства четырёх сторон и диагоналей.

А вообще то это не заваленка для семечек пожевать.
ТС это вообще никак не интересно.
Замечание FPaul справедливо и на этом можно было бы закончить.
Предложенных алгоритмов предостаточно.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 01.12.2020, 07:52   #15
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
По моему - проще всего так:
Берем любую из точек , считаем расстояния до 3-х других. Получаем 3 величины.
Для квадрата - две из этих величин равны, третья в корень из 2 раз больше.
это лучший вариант, т.к. точки в любом порядке можно вводить. Только сравнивать, как сказали выше, с учетом эпсилона (т.е. погрешности).

Т.е. вместо if ((a1-a2)=0) писать
eps=0.0001
if (abs(a1-a2)<eps) ...
blackstrip вне форума Ответить с цитированием
Старый 01.12.2020, 08:58   #16
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

blackstrip
Цитата:
это лучший вариант, т.к. точки в любом порядке можно вводить.
Писать такое после замечания от FPaul - демонстрировать свою невнимательность и ...
Кроме равенства сторон требуется и их перпендикулярность.
Алгоритм, предложенный type_Oleg, полностью нерабочий.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 01.12.2020, 09:33   #17
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

1) найти 4 стороны и сравнить их. (у квадрата они равны)
2) найти 2 диагонали и сравнить их. (у квадрата они должны быть равны) - это чтоб не проверять на перпендикулярность прямые, образующие квадрат
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 01.12.2020, 10:14   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
1) найти 4 стороны ...
2) найти 2 диагонали ...
и это ВСЕ расстояния которые можно "обнаружить" у четырехугольника.
т.е. найти ВСЕ расстояния и среди них найти 4 равных (стороны) и 2 других равных(диагонали) .
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 01.12.2020, 10:45   #19
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

......

Последний раз редактировалось digitalis; 01.12.2020 в 10:57. Причина: да ну его...
digitalis вне форума Ответить с цитированием
Старый 01.12.2020, 14:20   #20
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Придумать проверочные варианты точек
создающих стороны ортогональные и наклонные
Код:
x1=0	y1=0	x2=5	y2=0	x3=5	y3=5	x4=0	y4=5
x1=0	y1=0	x2=7	y2=0	x3=7	y3=5	x4=0	y4=5
x1=0	y1=0	x2=-5	y2=-5	x3=10	y3=0	x4=5	y4=5
Вычислить квадраты сторон и квадраты диагоналей

Сравнить квадраты диагоналей
Сравнить квадраты сторон 2-х противоположных
Сравнить квадраты сторон 2-х рядом
Сравнить оставшиеся стороны не требуется

Иллюстрация аж позапрошлогодняя настолько универсальная

https://www.youtube.com/watch?v=cesSFpUl7uI

Результат: моё сообщение №7
https://www.programmersforum.ru/show...32&postcount=7

Перевели бы на другие языки
вводимые в онлайн компиляторы

Будет время переведу сам как учусь в теме из моей подписи ... ... ... ... >
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ и матан. Как проверить то, что три точки лежат на одной прямой? Алексей_2012 Помощь студентам 30 16.12.2016 15:19
нарисовать точки и проверить их циклом(DELPHI) beygul Помощь студентам 1 24.03.2014 14:46
решение задачи в Pascal - Проверить принадлежность точки с заданными координатами кругу с заданным радиусом и координатами центра Екатерина23 Помощь студентам 1 05.12.2013 16:35
Как в С квадрат поставить? Ol'ga Общие вопросы C/C++ 10 31.10.2010 10:31
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? Rin Мультимедиа в Delphi 2 10.11.2009 22:47