Вход

Просмотр полной версии : кто подскажет


Гарпун
16.01.2004, 02:15
На плоскости находится 100 точек произвольных
нужно их соединить чтобы получились треугольники
но линии не должны пересекаться
Это моя задачка по прг че- то не могу решить
может условий мало в смысле расстояний между точками?

Штрек
16.01.2004, 04:45
Это к Нурану - он любит точки соединять. :D
ЗЫ.Координаты точек известны?
Общая сторона для соседн.треуг. - возможна?
Что то типа -
берём произв.точку - ищем ближайшую -
соединяем - ищем ближайшую/исключая первую/ -
соединяем - соединяем с первой - первую иключаем
из массива точек окончательно - берём вторую -
и по тому же алгоритму/временно исключая третью/-
исключаем вторую - берём третью и тд...

Гарпун
16.01.2004, 07:17
Вот как раз про исключаем пред точку я и не додумал
тяжело на старость лет пргр заниматься
а интересно как это в скипте бедет выглядеть
С уважением Гарпун

nuran
16.01.2004, 08:21
Оригинал написал(а) Штрек
Это к Нурану - он любит точки соединять. :D
ЗЫ.Координаты точек известны?
Общая сторона для соседн.треуг. - возможна?
Что то типа -
берём произв.точку - ищем ближайшую -
соединяем - ищем ближайшую/исключая первую/ -
соединяем - соединяем с первой - первую иключаем
из массива точек окончательно - берём вторую -
и по тому же алгоритму/временно исключая третью/-
исключаем вторую - берём третью и тд...
О балин насмешил :D

Кароче, если ты в векторах и в геометрии не бум бум, то тебе это не сделать.

Называется эта штука уложение графа на плоскость, оно же триангуляция. Я как раз сейчас её реализовываю в flash для генерации ландшавта.

Можешь почитать кое что здесь:
http://algolist.manual.ru/maths/geom/index.php
опять же повторяю, если ты с геометрией раньше не дружил, то ты этого в ближайшие пол года не осилишь. Алгоритмов по триангуляции много. Я знаю как минимум 15.

nuran
16.01.2004, 08:25
Да я тут недавно реализовал выпуклую оболочку, если интересно:
http://flash.plux.ru/lab/flash/preview/hull.html