Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Четырехугольник, И середины сторон 
:(
    Опции темы
SoWa
Дата 14.2.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Задача такая:
Даны четыре точки, которые являются серединами сторон четырехугольника.
Надо построить этот 4-х угольник.
Как это сделать?
Была мысль разбивать на треугольники(их ведь строить без проблемм по серединам сторон) и их строить. Потом выделять стороны. Но я окончательно запутался в линиях. Может есть какая литература на эту тему, или кто уже решал- помогите плз.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Fin
Дата 14.2.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



Задача по геометрии. Это решение будет работать только для прямоугольника.
Дано:
A1 (X1, Y1)
A2 (X2, Y2)
A3 (X3, Y3)
A4 (X4, Y4)

Допустим A1 и А3 противоположные точки. Соответственно А2 и А4 также противоположны. (В принципе можно программно найти, какая точка противоположна. Самая дальняя для данной точки.)
Составляем уравнение линий
X=(X3-X1)*t+X1
Y=(Y3-Y1)*t+Y1
t изменяется от 0 до 1.
Избавляемся от t
Y=((Y3-Y1)/(X3-X1))*X+((Y1-Y3)/(X3-X1))*X1+Y3
Нас интересует только коэфицент стояший у X. Свойство уравнений паралейных линий. Этот коэфицент не будет меняться. Будет меняться только свободный член уравнения. Осталось только найти этот свободный член для точек A2 и A4. Тем самым мы найдем уравнения прямых ребер.
Аналогично считаем уравнения ребер для другой комбинации.
Затем только останется найти точки пересечения этих прямых.


--------------------
Пролетал мимо.
PM MAIL   Вверх
cardinal
Дата 14.2.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Предположение: Через четыре точки, которые являются серединами сторон четырехугольника можно проложить сколько угодно соответствующих условию 4-х угольников. smile Может я и не прав...

Или нужен любой из них?

(рисовал на глаз поэтому неточно!)

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  chetireh.png 2,77 Kb


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
SoWa
Дата 14.2.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Fin, ты не прав.
cardinal, так вот надо способ для любых 4-х точек.
Конечно есть исключения, когда нельзя построить такой 4-х угольник, вот например:

Это сообщение отредактировал(а) SoWa - 14.2.2006, 21:25

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  i.JPG 0,94 Kb


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Fin
Дата 14.2.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



Цитата(SoWa @ 14.2.2006, 20:24 Найти цитируемый пост)
Fin, ты не прав.

Где именно?


Цитата(SoWa @ 14.2.2006, 20:24 Найти цитируемый пост)
cardinal, так вот надо способ для любых 4-х точек.



SoWa, Тут понимаеш, есть бесконечная куча возможностей построения данного четырехугольника.
Должны быть какие либо ограничения еше. Иначе тебе придется писать ну очень большую прогу, чтобы учесть все возможности.
Добавлено @ 21:30
Случаи которые ты привел в рисунке, как раз и нужно проверять сразу.


--------------------
Пролетал мимо.
PM MAIL   Вверх
SoWa
Дата 14.2.2006, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Ох прости. Я подумал, что ты говоришь что только прямоугольник можно построить.
Во вторых- мне не надо программу. Мне надо алгоритм, как это делать. Это задача по мат.моделированию.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Akina
Дата 14.2.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Нам известны координаты 4 точек - середин сторон. Надо найти координаты других 4 точек - вершин. Т.о. имеем 8 неизвестных (икс и игрек каждой из вершин) и 8 уравнений, их связывающих (координата центра стороны равна ср. арфм. той же координаты вершин этой стороны). Т.е. обычная линейная система из 8 уравнений. Решение которой - более чем тривиальная задача.

В зависимости от исходных условий возможно 1 решение (система определена), беск. мн-во решений (система не определена), нет решения (система несовместна).

Теперь объясните, в чем собсно проблема...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fin
Дата 14.2.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 1
Всего: 10



Цитата(Akina @ 14.2.2006, 21:11 Найти цитируемый пост)
Теперь объясните, в чем собсно проблема...

Проблема будет в том, что этих решений будет или слишком бесконечно, или вообше не будет. Тебе выбирать, что именно предпочитаеш.


--------------------
Пролетал мимо.
PM MAIL   Вверх
maxim1000
Дата 15.2.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(Akina @ 14.2.2006, 21:11 Найти цитируемый пост)
Т.е. обычная линейная система из 8 уравнений

а т.к. задача просто сводится к линейной, то получается вот что:
при некоторых данных задача решения не имеет (а при некоторых - бесконечно много)
это автоматически означает, что матрица вырождена и единственного решения получено никогда не будет...
Цитата(Fin @ 14.2.2006, 21:17 Найти цитируемый пост)
Проблема будет в том, что этих решений будет или слишком бесконечно, или вообше не будет

это - да, а вот это:
Цитата(Fin @ 14.2.2006, 21:17 Найти цитируемый пост)
Тебе выбирать, что именно предпочитаеш.

нет smile
сами координаты определяют количество решений


--------------------
qqq
PM WWW   Вверх
SoWa
Дата 15.2.2006, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Т.е. вывести систему уравнений и смотреть сколько у нее решений.
Спасибо! Пойду решать!

Это сообщение отредактировал(а) SoWa - 15.2.2006, 05:26


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Akina
Дата 15.2.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Fin @ 14.2.2006, 23:17 Найти цитируемый пост)
Проблема будет в том, что этих решений будет или слишком бесконечно, или вообше не будет.

Ты невнимательно читал мой пост - это я указал. Какой из трех возможных вариантов будет в каждом конкретном случае - однозначно определяется исходными данными - т.е. заданными координатами точек-центров.

При решении системы СЛАУ методом, скажем, Гаусса ненулевой главный определитель означает единственность решения, нулевой при всех частных нулевых - бесконечное множество решений, при хотя бы одном частном ненулевом - отсутствие решения.
В случае бесконечного множества решений может возникнуть задача найти хотя бы одно решение, для этого достаточно задать какое-либо случайное значение одной из неизвестных и решать остатнюю систему из 7 уравнений с 7 неизвестными. Если она несовместна - придется поискать другое случайное значение, если опять не определена - можно задать случайное значение следующей переменной.

Еще одно - если не задано соответствие того, на каких сторонах лежат заданные точки, то придется составлять и решать 6 аналогичных систем. Причем может статься, что каждая имеет решение...

И еще одно - четырехугольник может получиться самопересекающийся или вырожденный.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SoWa
Дата 15.2.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Akina @ 15.2.2006, 09:36 Найти цитируемый пост)
И еще одно - четырехугольник может получиться самопересекающийся или вырожденный.

Это понятно, но ничего страшного.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.