GraphMaker

Graph Editor

Back Home — Download this app on GitHub

Introduction

gamescreen

This software was designed for drawing graphs, and somewhat for the practice designing nice UIs. For almost all purposes, I recommend the software Geogebra for any geometry or diagram creation purposes. However, for drawing graphs specifically there are a few shortcomings to Geogebra that I wanted to work on. They are

  1. the ability to easily create smooth curved graph edges,

  2. printing adjacency matrices of graphs,

  3. efficient keyboard shortcuts,

  4. less cumbersome saving and loading, and

  5. specialized graph scripting. For example: graph products and easy generation/combination of graphs.

For my purposes, I really only desired points 1 and 2 while developing this, but the skeleton is there for point 5. If anyone out there is reading this and desires this functionality, you could send me an email. It will motivate me to keep work on it.

Usage

— Opening the Program

The program should be fairly easy to run, there is a brief instruction given on the GitHub page. The program opens to a menu which displays your saved graphs, and gives you the option to create a new one, or open and delete any of the saved ones. The first buttons in the main screen, Back and Save do what you expect them to. Print Adj. Matrix will print the adjaceny matrix of the graph in the terminal.

Combine Graph is currently non-functional. In future releases, it will open a menu to add one of your other saved graphs to the current one, and run other things like graph products.

— Move Function (Keybinds: 1 and M, or you can hold shift)

With this selected, you can move vertices and modify (curve) the edges. For point 1 from the introduction, I implemented the edges as bezier curves. This makes it super easy to control the edges, but sometimes results in slightly off arrows in directed graphs, and sometimes it's finicky to click on an edge. Overall, I am happy with the state of them.

Bezier

— Add Vertex, Edge Functions (Keybinds: 2, 3 and V, E respectively)

These are mostly self explanatory. If you add multiedges, it will automatically update the curvature so that they don't overlap unless you have manually edited the curvature already.

— Edit Info Function (Keybinds: 4 and C, or right click on something)

This will bring up a new menu where you can modify the colour of a vertex or edge, and edit the label. You can also make an edge dashed using this.

Editmenu

— Delete Function (Keybinds: 5 and D, or hold Delete and click on something)

This one is also self explanatory. Be careful with this one, there is no Ctrl+z yet!

— The Checkboxes

The Auto Labelers will show the label for vertices and edges as you create them. Otherwise the checkboxes are self explanatory.