Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 16.06.2010, 06:51   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию Точки

Здравствуйте как сделать такую не хитрую операцию , дан массив точек просматриваем первую и следующую если разные по координатам соеденить линией и потом уже смотреть с этой точки не из начальной а с соедененой и так же сравнивать.
Alex_sim вне форума Ответить с цитированием
Старый 16.06.2010, 08:49   #2
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

>с этой точки не из начальной а с соедененой

это как?
Namolem вне форума Ответить с цитированием
Старый 16.06.2010, 09:21   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Вот что мне нужно сделать , даны вершины с разными координатами соответственно у вершин с одинаковым именем и координаты не меняются, например вершины А,Б,В,Г,А,В. У одинаковых вершин одинаковые координаты. И теперь просматриваен эту последовательность сравниваем А и Б они разные соеденяем линией теперь сравниваем Б и В так же соеденяем так до конца , не понятно как каждый раз менять сравниваемую вершину ?
Alex_sim вне форума Ответить с цитированием
Старый 16.06.2010, 09:24   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

Как заданы вершины, в каком виде? Задача графическая, т.е. линию нужно на экране рисовать?
Лучше всего привести исходную задачу, чтобы понятнее было, а то может на самом деле нужно автомат нарисовать или граф какой и все эти проверки не нужны.
pu4koff вне форума Ответить с цитированием
Старый 16.06.2010, 09:28   #5
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Да сделать при помощи графики , исходная задача построить граф по транзакциям составить схему.
Alex_sim вне форума Ответить с цитированием
Старый 16.06.2010, 09:35   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

Что есть граф по транзакциям?
У графа есть вершины, их и рисуем. Потом уже по имеющимся данным линиями соединяем нужные вершины. Зачем тут сравнивать точки я не понимаю.
pu4koff вне форума Ответить с цитированием
Старый 16.06.2010, 09:57   #7
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Вот например последовательность вершин в определенном порядке А Б В А , получается нужно по ним составить схему , а соеденить нужные получается все равно их нужно сравнивать или у тебя другие идеи есть ?
Alex_sim вне форума Ответить с цитированием
Старый 16.06.2010, 10:31   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

Раз последовательность вершин в определенном порядке, значит граф получается ориентированным. Можно описать матрицу смежности:
Код:
   А  Б  В
А 0  1  0
Б 0  0  1
В 1  0  0
Тупо в цикле пробегаем по строкам графа и рисуем стрелочки между теми вершинами, у которых единичка прописана. В первой строке "1" только в столбце для Б, значит соединяем А и Б и т.д. Сравнивать придется только для реализации петель.
Да и реализовывать не обязательно через матрицу смежности. Всё зависит от того, откуда данные берутся. Вводит ли их пользователь в виде строки "А Б В А" или же он графически соединяет вершины или из файла читаем, а может еще как.
pu4koff вне форума Ответить с цитированием
Старый 16.06.2010, 11:49   #9
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

А можешь пример привести что то я не пойму?
Alex_sim вне форума Ответить с цитированием
Старый 16.06.2010, 12:03   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

Код:
struct Вершина
{
  Point Pos; // Координаты вершины на экране
  char Name; // Имя вершины
}
Вершина[] Вершины = new Вершина[10];
int[,] МатрицаСмежности = new int[10,10];
...
for (int i = 0; i < 10; ++i)
{
  for (int j = 0; j < 10; ++j)
  {
    if (МатрицаСмежности[i,j] != 0)
    {
      НарисоватьСвязь(Вершины[i], Вершины[j]);
    }
  }
}
Так понятнее?
pu4koff вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си найти минимальный путь от точки до точки dikr Помощь студентам 4 09.05.2010 11:58
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? Rin Мультимедиа в Delphi 2 10.11.2009 23:47
даны две точки. организовать движение из точки А в точку Б окружности! Wi1D Помощь студентам 6 23.05.2009 19:55
Точки DoGGy Паскаль, Turbo Pascal, PascalABC.NET 11 23.01.2009 20:11
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть Дикий Помощь студентам 7 12.05.2008 17:57