Skip to content

roland31x/GraphUI3

Repository files navigation

GraphUI3

GraphUI3 is an app based on Graph Theory concepts, the app allows you to create, edit and run visual algorithms on graphs.

For more information about Graph Theory, click here.

Installation

Simply download and install the app from the Microsoft Store for the latest release.

If you want to open the app in Visual Studio Community / Pro / Enterprise and see how the code actually works, you'll need the Windows App SDK and clone this repository.

Usage

1. The Graphing Area & Components

1.1 Nodes

image

The fundamental unit of which graphs are formed.

Tip

Create nodes by double clicking anywhere on the app.

Tip

You can move a node around by moving the mouse while holding left click on a node.

Right clicking on a node brings up it's option menu where you can give it a name or delete it from your graph.

image

Tip

Double click on an existing node to select it (its border will turn red), a selected node can interact with another selected node.

image

1.2 Edges

image

Edges link nodes together, their weight determines the "distance" between nodes.

Tip

Create edges by selecting two distinct nodes.

Important

Loops are not yet supported, you cannot create an edge from the same node to the same node.

Important

So far, the app only supports unoriented graphs (WiP).

Right clicking on an edge brings up its options menu where you can change its weight or delete it from your graph.

image

Note

Edge weights CANNOT be negative. If set to 0 their weight will not show up in the UI but they are treated as "1".

2. The App Bar & Title

image

2.1. The 'File' menu

Your basic file opening / saving / loading menu, you can choose to save your current graph to a file, load up another graph or create a new graph.

image

Note

If the graph is not saved the app will ask if you want to save your changes before discarding.

Caution

It is not recommended to manually edit these graph files, it can lead to errors where the app cannot load up the graph! If you want to manually edit the graph please refer to the end of this readme to see how the files are actually formed.

2.2. The 'Raw' menu

Contains your entire current graph data, it is exactly what is saved inside a graph file as text, you can opt to copy the contents directly from here if you want.

image

Note

The graph is not editable from the 'Raw' menu yet.

2.3. The 'Edit' menu

Contains various quick editing features of your current loaded graph.

image

2.3.1. The difference between creating a new graph and resetting current is when you already have a graph loaded from file, resetting keeps file path, creating a new one will require you to assign a path to it when saving.

2.3.2. Resetting the colors doesn't affect your graphs traits. ( Colors are not saved , they are purely visual )

2.3.3. Resetting weights converts your current graph to a fully unweighed one.

2.3.4. Auto-Set Weights by Distance will convert your graph to a weighed one where the weights are the pixel distances between nodes. ( updated automatically )

Note

In this app edge weight default values are 1, even if edge weight is 0 it is always considered 1 since there cannot be two or more nodes 0 distance apart. If you leave weights at 0 they will not show up on the UI, 1 will show up but they are treated as equal!

2.4 The 'Help' menu contains the button that brings you to this page :)

image

3. The Algorithms

image

*as of ver 1.0.0

3.2. Elementary Paths

*The "First Path only" switch sets wether these algorithms should return the full list ( capped at 100 ) existent path ( there can be a lot of them ) or just stop at the first one found. ( to check for existance and visually show it )

3.2.1-3.2.2 Hamilton Path / Cycle

3.2.3-3.2.4 Euler Path / Cycle

3.3. Distance Paths (WiP)

3.4. Spanning Trees

3.4.1 Minimum Spanning Tree

Contributing

Pull requests are welcome. I'll try my best to add as much interactive stuff to the app and make it robust. Hit me up with ideas.

Advanced Stuff

About

A graph theory visualization app, simple mechanics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages