terrain-generator

digital terrain generation and animation
git clone https://tongong.net/git/terrain-generator.git
Log | Files | Refs | README

rotation.js (1253B)


      1 var startPress = 0;
      2 var startPressTime = 0;
      3 var startPressRotation = 0;
      4 const NORMAL_SPIN = 0.0001;
      5 var spin = NORMAL_SPIN;
      6 var lastMillis = 0;
      7 var currentRotation = 0;
      8 var mousePressed = false;
      9 var pmousePressed = false;
     10 
     11 function getRotation() {
     12     let aktMillis = millis();
     13     if (mousePressed) {
     14         if (!pmousePressed) {
     15             startPress = mouseX + currentRotation * 1000;
     16             startPressTime = millis();
     17             startPressRotation = currentRotation;
     18             pmousePressed = true;
     19         }
     20         currentRotation = -(mouseX - startPress) / 1000;
     21     } else {
     22         if (pmousePressed) {
     23             spin = (currentRotation - startPressRotation) / (millis() - startPressTime);
     24             pmousePressed = false;
     25         }
     26         if (spin > NORMAL_SPIN) {
     27             spin = NORMAL_SPIN + (spin - NORMAL_SPIN) * 0.9;
     28         }
     29         if (spin < NORMAL_SPIN) {
     30             spin = spin + (NORMAL_SPIN - spin) * 0.1;
     31         }
     32         currentRotation += spin * (aktMillis - lastMillis);
     33     }
     34     lastMillis = aktMillis;
     35     return currentRotation;
     36 }
     37 
     38 function mousePress() {
     39     document.getElementById("settings").classList.remove("in");
     40     mousePressed = true;
     41 }
     42 
     43 function mouseRelease() {
     44     mousePressed = false;
     45 }