Курсовая работа: Разработка программы нахождения всех полных подграфов (клик) данного графа
Public методы
int AddVertex(PointF coords) - добавляет к графу вершину с координатами coords, при этом порядок матрицы графа увеличивается на единицу. Возвращает индекс добавленной вершины.
void DeleteVertex(int index) - удаляет из графа вершину с индексом index. При этом из матрицы графа также удаляется соответствующие вершине строка и столбец.
int GetVertexIndexFromPoint(PointF p) - возвращает индекс вершины графа, которой принадлежит точка с координатами p. В случае если такой вершины не найдено, возвращает -1.
int[] GetVerticesFromNodePoint(PointF node) – возвращает массив размерностью 2, в которых находятся индексы вершин графа, ребру которых (если такое существует) принадлежит точка с координатами node. Если таких вершин не найдено или они не соединены ребром, функция возвращает null.
void SetVertexCoordinats(int index, PointF coord) - устанавливает координаты вершины с индексом index равными coord.
void ArrangeByCircle()
void ArrangeByCircle(int radius) - располагает вершины графа по окружности радиусом Radius.
Image DrawVerticesToImage(int[] indexes) - рисует вершины с индексами indexes графа в объект класса Image. Размеры области рисования вычисляются из нахождения вершин с координатами максимально и минимально удаленными от осей X и Y.
Возвращает объект класса Image, в котором было произведено рисование.
void Draw(Graphics g) - рисует граф в области g.
void SaveToFile(string filename) - сохраняет граф в бинарный файл. Описание формата представлено в таблице 2.3.1.
Таблица 2.1 - Формат файла .g
Смещение (байт) DEC | Размер (байт) | Содержимое |
0 | 2 | Сигнатура файла .g: 0x0A0D |
2 | 2 | Версия файла ( 0 ) |
4 | 2 | Число вершин в графе (порядок матрицы смежности). |
6 | Число вершин графа в квадрате | Матрица смежности графа. Хранится построчно |
sizeof(float)*2 * число вершин в графе | Координаты вершин графа. Хранятся построчно:x1y1x2y2…xnyn |
static Graph FromFile(string filename) - создает граф из файла графа.
List<List<int>> FindAllCliques() - возвращает список списков вершин графа, образующих клики.
Private методы
PointPlace pointClassify(PointF point, PointF origin, PointF dest) - возвращает перечисление PointPlace, указывающую в каком положении относительно отрезка, начинающегося в точке origin и оканчивающемуся в точке dest находится точка.
Перечисление PointPlace:
enum PointPlace : int
{
LEFT = 0,
RIGHT = 1,
BEYOND = 3,
BEHIND = 4,
BETWEEN = 5,
ORIGIN = 6,
DESTINATION = 7,
}
bool pointInTriangle(PointF p, PointF a, PointF b, PointF c) - возвращает true, если точка p принадлежит треугольнику с координатами вершин a, b, c. В противном случае возвращает false.