follow-with-gravity-2.js

total 0
used 0
limit 0
/* src_dir: ../point_src/ categories: constraints files: ../point_src/core/head.js ../point_src/pointpen.js ../point_src/pointdraw.js ../point_src/extras.js ../point_src/math.js ../point_src/point-content.js ../point_src/stage.js ../point_src/point.js ../point_src/distances.js ../point_src/pointlist.js ../point_src/events.js ../point_src/automouse.js ../point_src/functions/rel.js dragging ../point_src/constrain-distance.js */ // var gravity = {x: 0, y:-0.05}; // Gravity constant for helium balloon. var gravity = {x: 0, y:0.95}; // Gravity constant class MainStage extends Stage { canvas = 'playspace' mounted() { console.log('mounted') this.mouse.position.vy = this.mouse.position.vx = 0 this.pins = (new PointList( { x: 200, y: 100, vx: 0, vy: 0} , { x: 400, y: 100, vx: 0, vy: 0} , { x: 600, y: 100, vx: 0, vy: 0} , { x: 800, y: 100, vx: 0, vy: 0} , { x: 200, y: 400, vx: 0, vy: 0} , { x: 400, y: 400, vx: 0, vy: 0} , { x: 600, y: 400, vx: 0, vy: 0} , { x: 800, y: 400, vx: 0, vy: 0} )).cast() this.points = (new PointList( { x: 300, y: 100, vx: 0, vy: 0} , { x: 500, y: 100, vx: 0, vy: 0} , { x: 700, y: 100, vx: 0, vy: 0} , { x: 900, y: 100, vx: 0, vy: 0} , { x: 300, y: 500, vx: 0, vy: 0} , { x: 500, y: 500, vx: 0, vy: 0} , { x: 700, y: 500, vx: 0, vy: 0} , { x: 900, y: 500, vx: 0, vy: 0} )).cast() this.dragging.add(...this.pins) } draw(ctx) { this.clear(ctx); let pins = this.pins let points = this.points let drawSet = function(index, func) { func(points[index], pins[index]) pins[index].pen.circle(ctx, {color:'red'}) points[index].pen.indicator(ctx) } let funcs = [ // (p, pin) => springyString(p, pin) (p, pin) => pin.constraint.string(p, { gravity, damping: .98, dotDamping: .2, forceMultiplier: .9 }) , (p, pin) => pin.constraint.string(p, { gravity, damping: .99 }) , (p, pin) => pin.constraint.string(p, { gravity, damping: .98, dotDamping: false, forceMultiplier: .1 }) , (p, pin) => pin.constraint.string(p, { gravity, damping: .99, dotDamping: false }) , (p, pin) => pin.constraint.string(p, { gravity , dotDamping: 0 , damping: .98 }) , (p, pin) => pin.constraint.string(p, { distance: 200 }) , (p, pin) => pin.constraint.string(p, { forceMultiplier: 1 , distance: 200 }) ] funcs.forEach((f, i)=> drawSet(i, f)) } } const stage = MainStage.go()
Run
Meta Data
imports ()
files ('../point_src/core/head.js', '../point_src/pointpen.js', '../point_src/pointdraw.js', '../point_src/extras.js', '../point_src/math.js', '../point_src/point-content.js', '../point_src/stage.js', '../point_src/point.js', '../point_src/distances.js', '../point_src/pointlist.js', '../point_src/events.js', '../point_src/automouse.js', '../point_src/functions/rel.js', 'dragging', '../point_src/constrain-distance.js')
unused_keys ('title',)
unknown_keys ('categories', 'src_dir')
categories ['constraints']
src_dir ['../point_src/']
filepath_exists True
path follow-with-gravity-2.js
filepath follow-with-gravity-2.js
clean_files ('../point_src/core/head.js', '../point_src/pointpen.js', '../point_src/pointdraw.js', '../point_src/extras.js', '../point_src/math.js', '../point_src/compass.js', '../point_src/center.js', '../point_src/point-content.js', '../point_src/stage-resize.js', '../point_src/functions/resolve.js', '../point_src/stage.js', '../point_src/relative-xy.js', '../point_src/pointcast.js', '../point_src/point.js', '../point_src/distances.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/events.js', '../point_src/automouse.js', '../point_src/functions/rel.js', '../point_src/functions/clamp.js', '../point_src/protractor.js', '../point_src/text/beta.js', '../point_src/dragging.js', '../point_src/constrain-distance.js')
markdown {'html': '', 'content': 'src_dir: ../point_src/\ncategories: constraints\nfiles:\n ../point_src/core/head.js\n ../point_src/pointpen.js\n ../point_src/pointdraw.js\n ../point_src/extras.js\n ../point_src/math.js\n ../point_src/point-content.js\n ../point_src/stage.js\n ../point_src/point.js\n ../point_src/distances.js\n ../point_src/pointlist.js\n ../point_src/events.js\n ../point_src/automouse.js\n ../point_src/functions/rel.js\n dragging\n ../point_src/constrain-distance.js'}