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

a "Hole"

{{ item.title }}

{{ definition.value }}
Create a "hole" effect by overlaying shapes to cut through previous vector drawings.
{{ store.loading ? 'Thinking...' : store.response }}

Cut a hole through another vector. In this example we have a box and a circle.

Because the second entity (the hole) is drawn immediately after the first entity (the box). The canvas pen cuts through the previous drawing.

The polypus image is applied before the overlay.

Meta Data
title a "Hole"
imports ()
files ('head', 'point', 'mouse', 'stage', 'dragging', '../point_src/image.js')
unused_keys ()
unknown_keys ('categories',)
categories ['hole']
filepath_exists True
path hole-example
filepath hole-example.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/events.js', '../point_src/automouse.js', '../point_src/stage-hooks.js', '../point_src/stage-resize.js', '../point_src/functions/resolve.js', '../point_src/stage.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/image.js')
Logger Install Logger {{ store.words }}
{{ store.errorText.message }}
{{ store.errorText.stackText }}