more ink
This commit is contained in:
parent
04ee89ba3b
commit
01e7a95ceb
|
|
@ -22,17 +22,22 @@
|
|||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- <spatial-geometry x="100" y="100" width="50" height="50">Shape with some text</spatial-geometry> -->
|
||||
<spatial-ink
|
||||
size="16"
|
||||
points="[[100.2109375,380.546875,0.5],[100.2109375,380.5859375,0.5],[101.84375,376.14453125,0.5],[111.94921875,356.921875,0.5],[131.48828125,320.9609375,0.5],[159.8359375,267.92578125,0.5],[188.47265625,213.6015625,0.5],[212.35546875,167.1953125,0.5],[232.53515625,129.01171875,0.5],[244.046875,108.0390625,0.5],[250.87109375,96.34375,0.5],[254.7109375,90.04296875,0.5],[255.92578125,88.19140625,0.5],[256.41015625,87.796875,0.5],[256.6875,87.81640625,0.5],[256.8203125,88.10546875,0.5],[256.953125,88.73046875,0.5],[257.18359375,89.95703125,0.5],[257.71484375,92.921875,0.5],[258.69921875,99.1484375,0.5],[260.2109375,112.65625,0.5],[263.10546875,137.46875,0.5],[268.328125,184.9140625,0.5],[275.609375,251.04296875,0.5],[283.671875,323.125,0.5],[289.69140625,378.04296875,0.5],[293.0859375,409.7734375,0.5],[295.54296875,433.94921875,0.5],[297.07421875,446.9453125,0.5],[297.93359375,451.36328125,0.5],[298.31640625,452.4140625,0.5],[298.44921875,452.62890625,0.5],[298.5625,452.4765625,0.5],[298.58203125,452.0625,0.5],[298.58203125,451.61328125,0.5],[298.58203125,451.2890625,0.5],[298.58203125,451.0234375,0.5],[298.58203125,450.6328125,0.5],[298.58203125,450,0.5],[298.26953125,448.9140625,0.5],[297.55859375,446.9921875,0.5],[295.71484375,442.24609375,0.5],[290.54296875,430.1328125,0.5],[275.953125,400.171875,0.5],[249.8125,349.82421875,0.5],[218.24609375,292.22265625,0.5],[184.75,235.58984375,0.5],[152.42578125,182.49609375,0.5],[127.26953125,142.05859375,0.5],[106.046875,109.31640625,0.5],[86.51953125,78.953125,0.5],[72.625,57.46875,0.5],[64.6484375,44.73828125,0.5],[60.76171875,38.24609375,0.5],[58.890625,35.2890625,0.5],[58.41796875,34.43359375,0.5],[58.46875,34.3515625,0.5],[58.7109375,34.59375,0.5],[59.60546875,35.08203125,0.5],[63.8125,37.1328125,0.5],[76.5234375,43.61328125,0.5],[108.08203125,58.6875,0.5],[161.484375,83.85546875,0.5],[221.125,112.5234375,0.5],[276.8828125,139.140625,0.5],[318.1796875,158.30859375,0.5],[339.9765625,168.19921875,0.5],[352.5703125,173.86328125,0.5],[359,176.5703125,0.5],[361.00390625,177.43359375,0.5],[361.53515625,177.81640625,0.5],[361.6328125,178.00390625,0.5],[361.6328125,178.23046875,0.5],[361.515625,178.5078125,0.5],[360.953125,178.921875,0.5],[359.38671875,179.81640625,0.5],[356.04296875,182.3515625,0.5],[349.20703125,188.57421875,0.5],[335.9375,200.86328125,0.5],[314.625,220.796875,0.5],[283.6171875,248.703125,0.5],[244.09375,280.8984375,0.5],[202.40625,310.75390625,0.5],[167.30078125,332.05859375,0.5],[139.609375,345.65625,0.5],[120.84765625,353.5078125,0.5],[111.0625,356.7421875,0.5],[105.20703125,358.45703125,0.5],[102.74609375,358.9765625,0.5]]"
|
||||
></spatial-ink>
|
||||
<script type="module">
|
||||
import { SpatialGeometry } from '../src/canvas/spatial-geometry.ts';
|
||||
import { SpatialInk } from '../src/canvas/spatial-ink.ts';
|
||||
|
||||
SpatialGeometry.register();
|
||||
SpatialInk.register();
|
||||
|
||||
function trace() {
|
||||
const ink = document.createElement('spatial-ink');
|
||||
document.body.append(ink);
|
||||
ink.trace();
|
||||
}
|
||||
|
||||
document.addEventListener('pointerdown', trace);
|
||||
|
||||
trace();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ export type Point = [x: number, y: number, pressure: number];
|
|||
|
||||
export type Stroke = number[][];
|
||||
|
||||
// TODO: look into any-pointer media queries to tell if the user has a mouse or touch screen
|
||||
// https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-pointer
|
||||
const styles = new CSSStyleSheet();
|
||||
styles.replaceSync(`
|
||||
svg {
|
||||
|
|
@ -12,7 +14,8 @@ styles.replaceSync(`
|
|||
touch-action: none;
|
||||
}
|
||||
|
||||
:host(:state(tracing)) svg {
|
||||
:host(:state(tracing)) {
|
||||
cursor: var(--tracing-cursor, crosshair);
|
||||
position: fixed;
|
||||
inset: 0 0 0 0;
|
||||
z-index: calc(infinity);
|
||||
|
|
@ -34,7 +37,7 @@ export class SpatialInk extends HTMLElement {
|
|||
|
||||
#d = '';
|
||||
|
||||
#size = Number(this.getAttribute('size') || 32);
|
||||
#size = Number(this.getAttribute('size') || 16);
|
||||
|
||||
get size() {
|
||||
return this.#size;
|
||||
|
|
@ -114,6 +117,7 @@ export class SpatialInk extends HTMLElement {
|
|||
this.#update();
|
||||
}
|
||||
|
||||
// TODO: cancel trace?
|
||||
trace() {
|
||||
this.points = [];
|
||||
this.#internals.states.add('tracing');
|
||||
|
|
@ -160,7 +164,7 @@ export class SpatialInk extends HTMLElement {
|
|||
// TODO: figure out how to expose these as attributes
|
||||
easing: (t) => t,
|
||||
start: {
|
||||
taper: 0,
|
||||
taper: 100,
|
||||
easing: (t) => t,
|
||||
cap: true,
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue