This document describes an electric circuit solver program called Electrica that takes in a jumbled circuit diagram and outputs an organized 2D representation with reduced overlaps. It uses C++ and OpenGL and stores circuit components as nodes connected by edges in a data structure. The algorithm finds the longest chain in the input circuit to lay out the skeleton and draws connections orthogonally while color coding components. The program aims to simplify circuit analysis and has applications in PCB routing, mesh processing, and pathfinding.
10. Data Structure:
struct GLcoordinates
{
int x,y,numConn;
struct
{
int index;
int connAttr;
} conn[10];
}oldpts[50];
Simple and flexible data structure for easy handling,
expansion and manipulation for input points.
Can hold any number of connections and nodes within a
given limit.
A
L
G
O
R
I
T
H
M
11. Output the final circuit in a different window with
appropriate labels.
Drew Connections keeping the color coding in
mind.
Arranged those points on the final graph.
Found the remaining points in the circuit.
Laid out the chain as the skeleton of the output.
Found the Longest Chain in the input Circuit.
Took the input on the OpenGL base.
A
L
G
O
R
I
T
H
M
12. A
L
G
O
R
I
T
H
M
LongestChain()
Finding the longest chain in a set of N points with no
limitations on the connections should take
N!
(N-3)!
steps…
This means the steps for a 50 point limit circuit is
117600!!
Electrica doesn’t calculate the longest chain after the
input is complete, in fact, it intelligently and intuitively
keeps storing the parameters for longest chain as the
user interacts and enters the nodes and makes
connections.
Electrica does it in 3 steps!!
13. A
L
G
O
R
I
T
H
M
DrawConnections()
To avoid overlapping, we use counters in the Y-
direction which completes the circuit with all
orthogonal connections.
Color Codes:-
Resistor
Capacitor
Inductor
DrawText()
OpenGL does not directly support text output, so we
had to include the built In libraries of bitmap fonts and
modify them to serve our purpose of node labeling.
14. A
L
G
O
R
I
T
H
M
Limitations
• Maximum nodes is limited ( Can be increased as per
requirement by the developer)
• Number of build chains is limited ( The algorithm for
‘n’ number of chains has been developed as well.
Recursion would be used and the program can be
modified. Time needed..)
•DrawConnections() is not at its best potential due to
limitations in time, but better algorithms have been
devised and are ready to be implemented for a more
accurate output.
15.
16. This project is presently an infant to the world of
graphs and OpenGL..
It can be taken forward to build applications that
would find use in multiple areas..
17. USP
I. COST
II. INTERFACE
III. ORIGINALITY
IV. PLATFORM INDEPENDENCE (Runs on LINUX OS)
V. RANGE OF APPLICATION
VI. EXPANDABILITY
18. Based on file formats and data structures
Remember “Mesh charting &
Decompression” ?
Easy import and manipulation of heavy meshes on humble
configuration machines.
R G B
19. “GPS Devices..” ?
Use of our algorithms to find suitable(longest, shortest) paths in a
map.
22. Interest in solving Graph based
problems..
Optimization of graph analyzing
algorithms is at a nascent stage ,
quickly developing.
23. Very co$tly similar softwares..
NI MultiSim : ~ $3,000
NI LabView : ~ $3,500
LaB Experiments:
Encounter with complex jumbled
circuits gave a kick..
Prices as on www.ni.com(21/03/08)