Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проверка на четырехугольность

29K
09 июля 2008 года
Rifler
24 / / 12.05.2008
Условие : Даны четыре точки. Определить, является ли фигура четырёхугольником, если да, то определить, является ли четырёхугольник прямоугольником и квадратом.

Подскажите хотя бы способ. В голову вообще ничего не лезет.
7.0K
09 июля 2008 года
Rusd
88 / / 26.08.2006
Каноническое уравнение прямой, проходящей через две точки (x0,y0), (x1,y1)
(x-x0)/(x0-x1)=(y-y0)/(y0-y1)
приводишь к уравнению прямой в общем виде
Ax+By+C=0
и проверяешь, не лежат, ли на этой прямой еще точки. Если лежат, то это не четырехугольник.
Дальше берешь скалярные произведения нормалей прямых (их можно получить из общего уравнения). Если произведение равно нулю, значит ортогональны. Если каждой прямой ортогональны две прямые, значит у тебя прямоугольник.
Если после всего этого расстояния между точками равны, значит к тому же еще и квадрат.
9.4K
14 июля 2008 года
AIGrifon
165 / / 13.11.2007
А если точки в пространстве, то нужно проверить лежат ли они в одной плоскости.
8.2K
17 июля 2008 года
RusHak
86 / / 02.03.2006
Если нужен код то можно примерно таким способом.

Код:
Begin
WriteLn('Введите точки A(x1,x2),B(x3,x4),C(x5,x6),D(x7,x8)');
For i=1 to 8 do
 begin
   write('x'+ i +'=');
   readln(A);
 end;
If (A[2]=A[4]) and (A[1]=A[5]) and (A[3]=A[7]) and (A[6]=A[8]) then
 If (A[7]-A[5])=(A[6]-A[2]) then
   WriteLn('Это квадрат')
  else
   Writeln('Это прямоугольник');
 else
 writeln('Не пр. и не кв.');
readkey;
End;
1.9K
28 июля 2008 года
andriano
474 / / 10.01.2008
Цитата: AIGrifon
А если точки в пространстве, то нужно проверить лежат ли они в одной плоскости.


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

9.4K
29 июля 2008 года
AIGrifon
165 / / 13.11.2007
Цитата: andriano
а для прямоугольника наличие 4 прямых углов является достаточным условием.



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

6.8K
31 июля 2008 года
Аццкий программер
91 / / 27.11.2006
[QUOTE=Rifler]Определить, является ли фигура четырёхугольником[/QUOTE]
что-то мне подсказывает, что любые четыре точки будут четырехугольником(правда он может быть вырожденным в прямую).

лично я бы так решил.
1) определить выпуклый или невыпуклый четырехугольник - самая сложная часть алгоритма. Есть несколько способов. Один из самых простых - алгоритм заворачивания подарка. Поищи, в инете куча инфы по нему. Кажется на английской википедии его видел
2) определить углы - тест на "прямоугольность"
3) определить размеры сторон - тест на "квадратность"

решение в лоб. я бы так сделал, хотя, возможно, есть более оптимальный вариант.
6.8K
31 июля 2008 года
Аццкий программер
91 / / 27.11.2006
[QUOTE=AIGrifon]Т. к. иначе можно иметь 4 прямых угла, но при этом не лежащие в одной плоскости[/QUOTE]
[QUOTE=andriano]Произвольный четырехугольник не обязан лежать в плоскости...[/QUOTE] Че-то либо меня тупит, либо вас...
Нарисуйте мне, пожалуйста, четыре угла не лежащие в одной плоскости на декартовой системе координат(на которой только одна плоскость ХоУ).
6.8K
31 июля 2008 года
Аццкий программер
91 / / 27.11.2006
хм..че-то я перемудрил с заворачиванием xD его нецелесообразно использовать для всего 4ех точек. проще перебрать все 3х2х1=6 комбинаций соединения точек по оставшимся 2м критериям:
1. проверить на "прямоугольность" (перпендикулярность 1ой строны 2орой, 2ой третьей и пр.)
2. "квадратность" и вуаля :)
1.9K
01 августа 2008 года
andriano
474 / / 10.01.2008
Цитата: AIGrifon
Т. е. подразумевается не обязательно плоский прямоугольник? Т. к. иначе можно иметь 4 прямых угла, но при этом не лежащие в одной плоскости.



Попытайся нарисовать фигуру, имеющую 4 прямых угла и при этом не лежещую в одной плоскости.

9.4K
02 августа 2008 года
AIGrifon
165 / / 13.11.2007
Цитата: andriano
Попытайся нарисовать фигуру, имеющую 4 прямых угла и при этом не лежещую в одной плоскости.



Да, верно. Забыл я стереометрию:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог