npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ts-2d-geometry

v6.3.5

Published

This is a simple library containing classes with immutable operations to use for 2d Geometry tasks.

Downloads

691

Readme

Node.js CI codecov

2D Geometry

This repository contains basic classes to perform Geometry operations in 2 dimensions.

It is not an optimized repository, but rather aims at containing most operations necessary to assist with layouting logic.

It can be used by anyone that want to add simple geometry operations to a typescript or javascript project.

There are many other geometry repositories already, why create another one? Because I couldn't find any repository that contained the operations on polygons that I needed to perform layouting when visualizing graphs.

Features

  • The library contains some basic 2d geometry concepts:
    • Point
    • Vector
    • Line
    • LineSegment
    • Polygon
  • Transformations of the given shapes can be performed by using the Transformation class. This uses matrices to transform coordinates.
  • The classes are immutable which fits working with Functional Programming.
  • Focus on easy accessibility. The library tries to use simple functions to make writing code using the library fast.

For full information, please refer to the API documentation to see available classes and their functions.

Details

The library assumes a coordinate system where positive x goes to the right, and positive y goes upwards. Most often one doesn't need to consider this, but for example with rotation or the cross product of vectors this is good to know.

Requirements

  • Node and npm
  • To build or develop you will benefit from having npx https://github.com/npm/npx. This allows invoking of the other global npm requirements in the repository (Typescript, Jest) without having to install them.

Pages

Usage

You can install the package using. NOTE: The github name and the npm install names are different.

npm i -S ts-2d-geometry

All main classes are exported from index.js

Contributing

Contributions, if they are in line with expanding functionality that can help with layout logic are welcome. Requirements for pull requests are:

  • All code is tested
  • Naming is consistent with project naming
  • Commits are squashed and contain a clear commit message describing what functionality is added.

License

MIT