![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Здраствуйте помогите мне написать программу [D7, XP]
VanDet © (2006-02-16 11:21:00)Здравстуйте, я новичок мне хочется НАПИСАТЬ САМОМУ программу которая бы " Даны N точек на плоскости (N>=4). Выяснить, найдутся ли среди этих точек такие, которые являются вершинами квадрата. Найти стороны этого квадрата.",но не знаю как....
Заранее спасибо.
Fay (2006-02-16 12:21:00) [1]0) Перебираем все возможные точки.
1) Для каждой перебираем все остальные
2) Для каждой пары вершин (для стороны) ищем остальные 2 вершины (возможные координаты вычисляются элементарно). Т.е. проверка четырех (мах) вершин на существавание.
3) После полного просмотра каким-либо образом помечаем вершину (1), как рассмотренную и больше не обращаем на неё внимания.
4) goto 1
Ega23 (2006-02-16 12:07:00) [2]
> От углов тоже можно уйти, сравнив длины диагоналей.
Можно и так. Вариантов - масса.
evvcom (2006-02-16 12:00:00) [3]
> и углов между ними
От углов тоже можно уйти, сравнив длины диагоналей.
Ega23 (2006-02-16 11:32:00) [4]Задача сводится к перебору всех возможных отрезков и сравнения их длин и углов между ними.
Zeqfreed (2006-02-16 11:31:00) [5]
> расстояние между ними
Т.е. расстояние между точками.
Zeqfreed (2006-02-16 11:30:00) [6]Квадрат — это четырехугольник у которого все стороны равны и углы между смежными сторонами равны 90°. Если квадраты должны быть параллельны осям коордитнат, то задача сводится к выбору таких четверок точек, в которых только одна из координат каждой точки отичается на одно и то же число. Иначе придется считать углы между прямыми и расстояние между ними по более сложным формулам.
А коль написать ты это хочешь сам, то непонятно в чем должна заключаться помощь форума.