catenary-curve

Calculate the perfect catenary between two points

Usage no npm install needed!

<script type="module">
  import catenaryCurve from 'https://cdn.skypack.dev/catenary-curve';
</script>

README

Catenary Curve - Calculate the ideal catenary between two points

Given two points and a length, this library will calculate and draw the catenary between two points, the "correct" way, so that it behaves natural (technically).

How to use

import { Catenary, Point } from 'catenary-curve'

// This is optional, you can also use a simple { x: 200, y: 300 } object.
let p1 = new Point(200, 300)
let p2 = new Point(250, 400)

let chain = new Catenary({
  segments: 50,
  iterationLimit: 100
})

const context = canvas.getContext('2d')

// The drawToCanvas function will only call the actual draw function (moveTo,
// lineTo, quadraticCurveTo), so you have to call beginPath() and stroke()
// yourself.
context.beginPath()
context.lineWidth = 1
context.strokeStyle = 'black'
chain.drawToCanvas(context, p1, p2, 500)
context.stroke()

Acknowledgement

The basis of this library is an ActionScript by poiasd, originally released on wonderfl.net, archived and preserved at http://wa.zozuar.org/code.php?c=8Bnl.

Unfortunately I wasn't able to find out who the original author was and ask them if and how they want to be mentioned/linked.