JSPM

normalize-path-scale

2.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 167
  • Score
    100M100P100Q79589F
  • License MIT

normalizes a 2D path to its bounding box

Package Exports

  • normalize-path-scale

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (normalize-path-scale) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

normalize-path-scale

stable

Normalizes a 2D path to its bounding box, producing positions that are in the -1.0 ... 1.0 range with correct aspect ratio. For example; to render arbitrary SVG paths in 3D, centred in world units.

This does not produce a copy of the path, but instead mutates it in place.

var path = [ [x1, y1], [x2, y2], ... ]

//normalize path to -1.0 .. 1.0
normalize(path)

//render with webgl / canvas / etc
//...

Usage

NPM

normalize(path[, bounds])

Normalizes the 2D path in place, scaling the points to -1.0 .. 1.0 range. Maintains aspect ratio of the path.

You can specify bounds for a custom bounding box:

[ [minX, minY], [maxX, maxY] ]

Otherwise calculates the bounding box with bound-points.

Returns the specified path.

If the width or height of the bounding box is zero, this function returns early.

Changes

  • 2.0 changes the array in place, uses bound-points, returns early on zero size
  • 1.0 a simple version that does not mutate the input

License

MIT, see LICENSE.md for details.