{{ store.width }} x {{ store.height }}
upload Upload
upload Full crop Thumbnail arrow_selector_tool Start Photographer arrow_selector_tool Slow 1s/page: {{ store.photographerSlow ? 'On' : 'Off' }}
{{ store.uploading ? 'Uploading...' : (store.complete ? 'Done' : '') }} {{ store.photographerRunning ? 'Photographer running...' : '' }}
upload Digitize

{{ store.filename || 'Drop an image onto the page.' }}

Drag the frame to move, corners to resize, top handle to rotate.

upload Choose image
Digitize reference

Elbow Constraints

{{ item.title }}

{{ definition.value }}
Implements elbow constraints and continuation arcs for smooth, connected point-to-point curves.
{{ store.loading ? 'Thinking...' : store.response }}

An elbow contraint ensures a target point is connected to another point, at a distance of the two radii.

    point.constraint.elbow(other)

It's called an elbow, as there will always be an intersection at the max distance. Similar to rings bound at the edge.

Synonymous to:

let pA = this.legL
let pB = this.primaryPoint

pA.leash(pointB,
    (pB.radius + pA.radius) - .01)
pA.avoid(pointB,
    Math.abs(pB.radius - pA.radius) + .01)
Meta Data
title Elbow Constraints
imports ()
files ('head', 'point', 'stroke', '../point_src/point-content.js', 'pointlist', 'mouse', 'dragging', '../point_src/distances.js', '../point_src/functions/clamp.js', '../point_src/mirror.js', '../point_src/stage.js', '../point_src/text/label.js', '../point_src/intersections.js', '../point_src/cone.js', '../point_src/easing.js', '../point_src/arc.js', '../point_src/constrain-distance.js')
unused_keys ()
unknown_keys ('category',)
category ['constraints']
filepath_exists True
path bendy-line-thing-3
filepath bendy-line-thing-3.js
clean_files ('../point_src/core/head.js', '../point_src/pointpen.js', '../point_src/compass.js', '../point_src/center.js', '../point_src/point-content.js', '../point_src/pointdraw.js', '../point_src/relative-xy.js', '../point_src/pointcast.js', '../point_src/point.js', '../point_src/setunset.js', '../point_src/stroke.js', '../point_src/pointlistdraw.js', '../point_src/pointlistgradient.js', '../point_src/pointlistshape.js', '../point_src/pointlistgenerator.js', '../point_src/unpack.js', '../point_src/pointlist.js', '../point_src/pointlistpen.js', '../point_src/events.js', '../point_src/automouse.js', '../point_src/functions/clamp.js', '../point_src/distances.js', '../point_src/protractor.js', '../point_src/text/beta.js', '../point_src/dragging.js', '../point_src/mirror.js', '../point_src/stage-hooks.js', '../point_src/functions/resolve.js', '../point_src/stage.js', '../point_src/text/label.js', '../point_src/intersections.js', '../point_src/cone.js', '../point_src/easing.js', '../point_src/arc.js', '../point_src/constrain-distance.js')
Logger Install Logger {{ store.words }}
{{ store.errorText.message }}
{{ store.errorText.stackText }}