{{ 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

Directional Tangent 5

{{ item.title }}

{{ definition.value }}
Calculates and renders precise tangent lines to plot arcs through a pseudo-center for smooth curves.
{{ store.loading ? 'Thinking...' : store.response }}

This version presents a more complete version of tangent lines.

It builds a line by plotting the tangent points to the siblings through a psuedo center. This ensures the arc is drawn through the center rather than arcing around the outside.

It works very well at small scales, but at larger scales the tangent lines to points tends to overshoot the center, causing the two lines to cross before reaching the center point.

This should be fixed by limiting the length of the tangent lines to a reasonable distance, given the radius of the arc (the target point).

For example, if four points are connected, with A and C being very large radius points, when moving B, the tangent lines from A and C will intersect before reaching B, causing the arc to loop back on itself.

Meta Data
title Directional Tangent 5
imports ()
files ('head', 'stroke', '../point_src/point-content.js', 'pointlist', 'point', '../point_src/tangents.js', '../point_src/bisector.js', '../point_src/math.js', '../point_src/split.js', 'mouse', 'dragging', '../point_src/functions/clamp.js', 'stage', '../point_src/tangents.js', '../point_src/text/beta.js')
unused_keys ()
unknown_keys ('categories',)
categories ['tangents', 'bisector', 'raw']
filepath_exists True
path directional-tangent-5
filepath directional-tangent-5.js
clean_files ('../point_src/core/head.js', '../point_src/setunset.js', '../point_src/stroke.js', '../point_src/compass.js', '../point_src/center.js', '../point_src/point-content.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/pointpen.js', '../point_src/pointdraw.js', '../point_src/relative-xy.js', '../point_src/pointcast.js', '../point_src/point.js', '../point_src/tangents.js', '../point_src/bisector.js', '../point_src/math.js', '../point_src/functions/clamp.js', '../point_src/split.js', '../point_src/events.js', '../point_src/automouse.js', '../point_src/distances.js', '../point_src/protractor.js', '../point_src/text/beta.js', '../point_src/dragging.js', '../point_src/stage-hooks.js', '../point_src/stage-resize.js', '../point_src/functions/resolve.js', '../point_src/stage.js')
Logger Install Logger {{ store.words }}
{{ store.errorText.message }}
{{ store.errorText.stackText }}