| 1 | = Assignment 2 - A graph editor = |
| 2 | |
| 3 | [[Image(thumbnail.png,right)]] |
| 4 | |
| 5 | == Project Overview == |
| 6 | |
| 7 | This project started out as an attempt to make a particle system |
| 8 | affected by interesting-looking physics which "balanced" a graph |
| 9 | automatically. I settled on a compromise where it is more of a graph |
| 10 | editor with mathematical relationships which help slightly balance the |
| 11 | graph but don't actually model any real physics. |
| 12 | |
| 13 | Nodes that are near each other are pushed apart. Nodes that are far apart |
| 14 | and connected by an edge are pulled together. |
| 15 | |
| 16 | == Interaction == |
| 17 | |
| 18 | * Keyboard: (primarily "extra" in terms of using the program) |
| 19 | * Escape - exits |
| 20 | * 1 - sets the edge length to the default |
| 21 | * 2 and 3 - changes the edge length |
| 22 | * 0 - sets the "force" strength to the default |
| 23 | * - and + - changes the "force" strength |
| 24 | * Mouse: |
| 25 | * Right click to get a pop-up menu |
| 26 | * Left click on the menu to do the following: |
| 27 | * The yellow rectangle switches to the "node" tool. When it is |
| 28 | selected, clicking in the drawing area creates a new node. |
| 29 | * The green line switches to the edge tool. Press down near one node |
| 30 | and release near another to draw an edge. A temporary line is drawn |
| 31 | to show you where it will be placed. |
| 32 | * The red X removes all of the edges and nodes. |
| 33 | * The play button pauses and unpauses the animation. |
| 34 | * Drag nodes with the middle mouse button to move them |
| 35 | * The node nearest the cursor is the "selected" node. It is blue. |
| 36 | |
| 37 | == Files == |
| 38 | * assignment2.cpp - The one and only source file |
| 39 | * globj - The executable |
| 40 | * globj.png - A screenshot of a person |
| 41 | * Makefile - A very simple, strict, yet sadly not very portable makefile |
| 42 | * README - This |
| 43 | * graph.txt - An example graph which can be loaded with the right mouse |
| 44 | button's menu |
| 45 | |
| 46 | == Compilation Instructions == |
| 47 | Compiled in Linux with: |
| 48 | * gcc-3.3.1 |
| 49 | * glut-3.7.1 |