-
Notifications
You must be signed in to change notification settings - Fork 3
Home
myStack will be used as an example variable.
-
Create a new Stack Object:
let myStack = new Stack();
-
Push elements into Stack:
myStack.push(value); //This function returns the value being added/pushed
-
Pop element from Stack:
myStack.pop(); //This function returns the _popped/removed value_
-
Peek elements of Stack:
myStack.view(); //This function returns the _stack array_
myQueue will be used as an example variable.
-
Create a new Queue Object:
let myQueue= new Queue();
-
Push elements into Queue:
myQueue.push(value); //This function returns the _value being pushed_
-
Pop element from the Queue:
myQueue.pop(); //This function returns the _popped value_
-
Peek elements of Queue:
myQueue.view(); //This function returns the _Queue array_
Library only provides static function. I will be using 'v' as an example variable name.
-
Create a new (0,0) vector:
let v = new Vector();
-
Create a new vector at (x,y):
let v = new Vector(x, y);
-
Addition of Vectors:
- add two vectors:
Vector2D.add(vector_object, vector_object);
- addition of vector and a constant:
Vector2D.add(vector_object, constant);
-
Scaling of Vectors:
- To a particular number:
Vector2D.setMag(constant, vector_object);
- With a vector:
Vector2D.mul(vector_object, vector_object);
- With a constant:
Vector2D.mul(vector_object, constant);
-
Subtraction of Vectors:
- Subtract two vectors:
Vector2D.sub(vector_object, vector_object);
- Subtraction of vector and a constant:
Vector2D.sub(vector_object, constant);
-
Division of Vectors:
- Divide two vectors:
Vector2D.div(vector_object, vector_object);
- Division of vector and a constant:
Vector2D.div(vector_object, constant);
-
Dot Product of Vectors:
Vector2D.dot(vector_object, vector_object);
-
Magnitude of Vector:
Vector2D.magnitude(vector_object);
-
Normalization of Vectors:
Vector2D.normalize(vector_object);
-
Limit the size of a Vector:
Vector2D.limit(constant_limit, vector_object);
-
Distance between two Vectors:
Vector2D.distance(vector_object, vector_object);
-
Angle between two Vectors:
Vector2D.angleBetween(vector_object, vector_object);
-
Create a new Shapes object and provide canvas context interface as an argument.
For example:const ctx = document.querySelector('canvas').getContext('2d'); let s = new Shapes(ctx);
-
Fill
/* c :: RGB, RGBA, HEX, etc. */ s.fill({c:"red"});
-
Stroke
/* c :: RGB, RGBA, HEX, etc. path :: the canvas path object w :: width of line dash(array) :: sets the line dash pattern dashOff :: sets the line dash offset, or "phase." */ s.stroke({color:"red"});
-
Lines:
s.line(start_x, start_y, end_x, end_y);
For example:
s.line(0, 0, 10, 10);
s.fill('gray');
-
Box:
s.box(start_x, start_y, width, height);
For example:
s.box(0, 0, 10, 10);
s.stroke('black');//to make a stroked box
s.fill('red'); //to make a filled box
-
Circle:
s.circle(start_x, start_y, radii);
For example:
s.circle(10, 10, 10);
s.stroke('black');//to make a stroked ball
s.fill('red'); //to make a filled ball
-
Triangle:
- Equilateral:
s.eqTri(length, start_x, start_y, rotate_angle);
rotate is not mandatory and it's default value is 0. For example:
s.eqTri(10, 10, 10, 10);
s.stroke('black');//to make a stroked triangle
s.fill('red'); //to make a filled triangle
- Equilateral:
-
Ellipse:
s.ellipse(start_x, start_y, radius_x, radius_y, startangle, endangle, rotate, anticlock);
rotate and anti-clock are not mandatory and there default values are 0 and false respectively.
For example:
s.ellipse(10, 10, 10, 10, Math.PI*4, 0);
s.stroke('black');//to make a stroked ellipse
s.fill('red'); //to make a filled ellipse
-
Complex Shapes (more than 4 sides):
s.complex(length, start_x, start_y, sides, angle);
sides has a default value of 3 and angle is not mandatory and it's default values is 0.
For example:
s.complex(10, 10, 10, 5); //creates a pentagon
s.stroke('black');//to make a stroked ellipse
s.fill('red'); //to make a filled ellipse
+++++++++++++end++++++++++++++++
+++++++++++++end++++++++++++++++