import { Vector } from './vector.js' import { KepplerObject } from './kepplerObject.js' import * as utils from './utils.js' let ctx; let planets = []; let G = 5; let sun = {}; function update(dt) { for (let p of planets) { p.track(); p.attrackt(sun); p.move(); } } window.onload = function () { let canvas = document.getElementById("canvas"); ctx = canvas.getContext("2d"); document.querySelector('#canvas').addEventListener('click', setPlanet) sun = new KepplerObject("sun", 100, 20, new Vector(canvas.clientWidth / 2, canvas.clientHeight / 2), new Vector(0, 0), "yellow"); window.requestAnimationFrame(draw); } function addPlanet(position) { let startVel = Math.sqrt(2 * G * 10 / position.getDistance(sun.position)); let colors = ['red', 'blue', 'pink', 'green', 'grey']; startVel *= utils.random(1, 100) <= 10 ? -1 : 1; startVel *= 1.4; let planet = new KepplerObject("planet", utils.random(5, 25), utils.random(5, 15), position, new Vector(startVel, startVel), colors[utils.random(0, colors.length)]); planets.push(planet); } function setPlanet(event) { let position = new Vector(event.x, event.y); addPlanet(position); } function draw(time) { let dt = utils.getDeltaTime(time); utils.clearScreen(ctx, '#000000'); sun.draw(ctx); update(dt); for (let p of planets) { p.draw(ctx); } window.requestAnimationFrame(draw); }