Giter Club home page Giter Club logo

7's Introduction

Demo

Visit http://tdillon.github.io/7/demo.html for a demo of what information this library can produce.

Installation

You can use npm, jspm, or directly link the files as you see fit.

npm i seven-segment

After you have the library, import it.

import {Seven} from 'seven-segment/7';

Basic options

The default options give you a quintessential seven segment.

var x = new Seven();

Configuration Parameter

You can optionally pass a configuration object to the constructor. Each property is optional.

//import Digit if you want access to the enum for setting the digit type.
import {Seven, Digit} from 'seven-segment/7';

var x = new Seven({segmentLength: 10, angle: 0, ratioLtoW: 2, ratioLtoS: .5, digit: Digit.TWO});

Setters

You can configure the Seven by using setters after the object has been instantiated.

var x = new Seven();
x.segmentLength = 20;
x.angle = -25;
x.ratioLtoW = 4;
x.ratioLtoS = 5;
x.digit = Digit.SIX;

Getters

Each of the configuration properties as well as height and width are getters.

var x = new Seven();
console.log(x.height, x.width, x.segmentLength, x.angle, x.ratioLtoW, x.ratioLtoS, Digit[x.digit]);

Exceptions

Setting the configuration properties to invalid values will cause an exception to be thrown. All properties expect a number, except for the digit property which expects a member of the Digit enum. Passing a string that can be converted to a number may work. Objects, nulls, and other 'non-numeric' values will throw exceptions. Setting a property to a number which would produce bad geometry will also throw an exception. You should wrap construction and property setters in try/catches if you are unsure of the validity of the settings.

//constructor throws an exception
var x = new Seven({angle: 'foo'});  //ERROR

//setting a property throws an exception
var x = new Seven();
x.angle = 89;  //ERROR, too sharp an angle produces bad geometry

Geometry

Finally, we've configured our Seven how we want it, now we can access the geometry.

var x = new Seven();

for (let s of x.segments) {  //Access the segments A-G
  //'on' specifies if the segment is used for the 'digit' specified
  if (s.on) {
    for (let p of s.points) {  //each segment has a 'point' array
      console.log(p.x, p.y);  //points have 'x' and 'y' properties
    }
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.