adriens / my-opt-temps-attente-agences-api

API REST des temps d'attente en agence OPT.nc
MIT License
1 stars 1 forks source link

Faire une démo du temps d'attente d'une agence avec p5js > le feu d'artifice ! #12

Open adriens opened 4 years ago

adriens commented 4 years ago

Bon, pour l'instant, ça coince https://github.com/processing/p5.js/issues/4372

adriens commented 4 years ago

Ca avance image

adriens commented 4 years ago

Premier code pur getter les données d'une agence:

let  url = 'https://xxx/temps-attente/agence/4314'
var agence;

function setup() {
  noLoop();
  createCanvas(100, 100);
  loadJSON(url, drawAgence );
}

function drawAgence(data){
  agence=data;
  stroke(255);
  let ms = agence.realMaxWaitingTimeMs;
  let name = agence.designation;
  print(ms);
  print(name);
  print(data)

  text(name, 0, height - 30, width, 30);

    ellipse(56,46,ms+46, ms+55);
}

function draw() {
  background(200);
}

image

L'idée est de câbler le débit d'un jet à celui de la file d'attente: https://p5js.org/examples/simulate-particle-system.html

Plus le temps d'attente est grand, plus le débit est lent, et plus le temps d'attete est petit, plus le début est important. Il faudra mapper pour éviter les valeurs infinies ou nulles pour que ça bouge soit toujours un minimum, soit fixer un début max. Le 0 est peut-être le pire à gérer...

adriens commented 4 years ago

Je pense que le mieux c'est d'ajouter une variable débit à la classe particule

let Particle = function(position) {
  this.debit=10;
  this.acceleration = createVector(0, 0.05);
  this.velocity = createVector(random(-1*this.debit, 1*this.debit), random(-1*this.debit, 0*this.debit));
  this.position = position.copy();
  this.lifespan = 255;

};

mais de choper le débit en async sur le ws

adriens commented 4 years ago

Le tuto qui va bien: https://youtu.be/UNtqhnhD-wo

adriens commented 4 years ago

Ce sera en fait plus sympa de faire une relation linéaire:

plus il ya du monde plus le jet est fort, comme un volcan

C'est linéaire, et pas de division par 0 😄

J'ai un premier sketch, mais faut attendre lundi, là, le jet est tout mou:

image

adriens commented 4 years ago

J'ai préparé le html et js à part , y'a plus qu'à tester avec de l'activité

adriens commented 4 years ago

éventuellement ajouter un gradient de couleur aux particules

de bleu à jaune puis rouge car plus "chaud"

adriens commented 4 years ago

L'éditeur en ligne n'a pas d'autocomplete et ne permet pas de faire tourner en localhots l'api. J'ai basculé en local pour pas cramer mon heroku. Il faudra bien faire attention à ça.