Skip to content
This repository was archived by the owner on Jun 16, 2022. It is now read-only.
DeerMichel edited this page Jun 22, 2016 · 17 revisions

min-header

Welcome

Graph provides a real-time interactive notebook as well as a plugin system which you can use to program and automate graphs, create special renderings, do scientific analysis or as a hobby to explore the world of graphs (have fun 😁). Because Graph is based on JavaScript, you can use all the power of JavaScript to write plugins or commands in the notebook.

Note

The core of Graph works very differently that how it behaves. The API introduced in this article is based on an abstraction layer which normalizes the underlying core to be a natural high level abstraction. All the core tools offered by Graph are available under the KaryGraph namespace. Using the core system commands is harmful and may cause damage 😱. However, due to the implementation design they are inevitable. Unless you're contributing to the core, we ask you not to use anything within that namespace. The available API is simple, very dynamic and safe in error handling as well as very optimized. By not using the API, you will end up having a same functioning API with different design and functions which causes compatibility issues across the community. In short, simply not use any of the KaryGraph namespace tools in your plugins and notebooks.

API

Environment

Graph

Reset

Removes all dots and resets the environment

reset( ): void

Notebook

Clear Screen

Cleans the notebook screen

cls( ): void

Say

Prints whatever you want on the notebook screen

say( input: any ): void

Core API

Dot

New Dot

Creates a dot and places it at a random position

newdot( ): Dot

// stores the randomly generated dot
var dot = newdot( )

New Dots

Generates a given number of dots

newdots( howManyDots: number ): Array<Dots>

// create an array of 5 new dots just added to the screen
let dots = newdots( 5 )

New Dot At

Creates a dot at the coordinates (x, y)

newdotat( x: number, y: number ): Dot

// you can create a dot like....
var dot = newdotat( 50, 100 )

Get Dot

Returns a dot based on its number id.

getdot( id: number ): Dot

// gets the object of the dot with id 5
let dot = getdot( 5 )

Get Dots

Returns an array of dots based on an array of ids

getdots( ...ids: Array<number> ): Array<Dot>

var a: Array<Dot> = getdots( 2, 5, 7 )

Connections

Connect

Connects an array of dots in order

connect( ...dotObjectOrId: Array<Dot|number> )

// this connects 1 to 2 and 2 to 3
let dot3 = getdot( 3 )
connect( 1, 2, dot3 )
screen shot 2016-06-22 at 6 53 27 pm

Disconnect

Disconnects two dots from each other

disconnect( dot1: number|Dot, dot2: number|Dot ): boolean

// you can use both dot id or dot object to disconnect each dot from
// each other assuming 1 and 2 are connected to each other.
var dot1 = getdot( 1 )
disconnect( dot1, 2 )

Movements

Move

Moves a dot to coordinates (x, y)

move( dot: number|Dot, x: number, y: number )

// move dot 1 to x=50, y=50
move( 1, 50, 50 )

// move dot 5 to x=20, y=100
let a = getdot( 5 )
move( a, 20, 100 )

Clone this wiki locally