Socket
Socket
Sign inDemoInstall

@sumisonic/find-point-on-path

Package Overview
Dependencies
1
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @sumisonic/find-point-on-path

FindPointOnPath is a TypeScript library for computing points on linear and spline paths using functional programming principles.


Version published
Weekly downloads
16
decreased by-58.97%
Maintainers
1
Install size
4.57 MB
Created
Weekly downloads
 

Readme

Source

@sumisonic/find-point-on-path

FindPointOnPath is a TypeScript library that utilizes functional programming principles to compute points on linear and spline paths. This library depends on fp-ts and provides a high-level API to obtain precise coordinates and angles of points on paths defined either linearly or through splines.

Installation

Since this library depends on fp-ts, execute the following command to install:

npm install @sumisonic/find-point-on-path fp-ts

Usage

Linear Path Functions

createFindPointOnLinearPath

Calculates a specific point on a linear path based on a provided parameter. The return type is Option from fp-ts.

import { createFindPointOnLinearPath } from '@sumisonic/find-point-on-path';

const points = [
  { x: 0, y: 0 },
  { x: 10, y: 10 }
];
const findPointOnPath = createFindPointOnLinearPath({})(points);
const t = 0.5; // Parameter indicating position on the path (0 to 1)
const point = findPointOnPath(t);
console.log(point); // Option<{ x: 5, y: 5 }>
createFindPointOnLinearPathWithAngle

Calculates a specific point and its angle (in radians) on a linear path. The return type is Option from fp-ts.

import { createFindPointOnLinearPathWithAngle } from '@sumisonic/find-point-on-path';

const points = [
  { x: 0, y: 0 },
  { x: 20, y: 20 }
];
const findPointOnPathWithAngle = createFindPointOnLinearPathWithAngle({})(points);
const t = 0.75; // Parameter indicating position on the path (0 to 1)
const result = findPointOnPathWithAngle(t);
console.log(result); // Option<{ x: 15, y: 15, angle: 0.7853981633974483 }>

Spline Path Functions

createFindPointOnSplinePath

Calculates a specific point on a spline path. Configuration options such as tension and segments can be specified. The return type is Option from fp-ts.

import { createFindPointOnSplinePath } from '@sumisonic/find-point-on-path';

const splinePath = [
  { x: 0, y: 0 },
  { x: 10, y: 10 },
  { x: 20, y: 0 },
  { x: 30, y: 10 }
];
const config = { tension: 1, segments: 50 }; // Optional: Default values are tension = 1, segments = 50
const findPointOnSplinePath = createFindPointOnSplinePath(config)(splinePath);
const t = 0.5; // Parameter indicating position on the path (0 to 1)
const point = findPointOnSplinePath(t);
console.log(point); // Option<{ x: 15.01822534367541, y: 4.972662105562641 }>
createFindPointOnSplinePathWithAngle

Calculates both the position and angle (in radians) of a specific point on a spline path. The return type is Option from fp-ts.

import { createFindPointOnSplinePathWithAngle } from '@sumisonic/find-point-on-path';

const splinePath = [
  { x: 0, y: 0 },
  { x: 10, y: 20 },
  { x: 20, y: 0 },
  { x: 30, y: 20 }
];
const config = { tension: 1, segments: 50 };
const findPointOnSplinePathWithAngle = createFindPointOnSplinePathWithAngle(config)(splinePath);
const t = 0.25; // Parameter indicating position on the path (0 to 1)
const result = findPointOnSplinePathWithAngle(t);
console.log(result); // Option<{ x: 7.285636734391148, y: 17.3772069343958, angle: 1.0247884906548697 }>

Common Configuration Options

  • Tension: Adjusts how tightly the curve conforms to the control points. Lower values make the curve smoother, while higher values make it more linear. The default value is 1.
  • Segments: Specifies the number of subdivisions along the curve. A higher number of segments results in a smoother curve but increases computational cost. The default is 50.

License

The MIT License (MIT)

FAQs

Last updated on 17 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc