Автор Тема: GD - линии по точкам  (Прочитано 2773 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
GD - линии по точкам
« : 08 Ноября 2006, 13:47:08 »
Здравствуйте...

У меня есть квадрат, в нем раскидано 10 точек... координаты каждой точки есть...

Как можно их соединить линиями так, чтобы линии не пересекались?

P.S. Сейчас координаты хранятся в массиве типа
$c
  • [y]
Космическая игрушка

Оффлайн 09h

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 82
  • +0/-0
  • 0
    • Просмотр профиля
GD - линии по точкам
« Ответ #1 : 09 Ноября 2006, 20:44:50 »
хмм я в школе на геометрию почти не ходил )) компутерные клубы были более популярны ) но в учебнике 7-11 класс тончо есть это ...

допустим есть 4 точки:
х1=4 у1=0
х2=5 у2=8
х3=2 у3=2
х4=7 у4=5

ну сколько их эт не важно дальше все аналогично ... разберемся на 4 точках

первую линию проводим например между точками 3 и 4
и гденить запоминаем на будущее что точки 3 и 4 соеденены линией

дальше берем точку 1 и пытаемся соеденить линией с точкой 2
и проверяем пересечется наша пока не нарисаваная линия с какойнить из тех что раньше рисовали ... а рисовали тока между 3 и 4 вот и проверим

(x-x1)/(x1-x2) = (y-y1)/(y1-y2)
(x-x3)/(x3-x4) = (y-y3)/(y3-y4)
решаем эту систему ур и получаем х0 и у0 пересечения

дальше проверяем лежит точка пересечения в линиях или нет
если:
x3y3x1y1то линии пересекутся )
а если нет то рисуем и запоминаем что у нас уже линии между 1 и 2 , 3 и 4

GD не пользовался как линию рисовать наверное знаеш )

сделай функцию для проверки пересечения линии которую тока собираешся нарисовать с всеми линиями которые уже нарисованы

и штампуй скока хочеш линий которые не будут пересекатся :)

вроде все ...
« Последнее редактирование: 09 Ноября 2006, 20:53:04 от 09h »

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
GD - линии по точкам
« Ответ #2 : 10 Ноября 2006, 10:43:26 »
СПАСИБО!!!
Космическая игрушка

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28