Advertisement
MrMusAddict

Destin Contrail v2

Feb 5th, 2018
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.54 KB | None | 0 0
  1. //60ft up
  2. //rocket is 3.55km away, tip is 144 meters up
  3. //plane is 339.04km away, and 11.28km up
  4. //earth has an approx diameter of 12,742 km
  5.  
  6. //measurements in meters
  7. float destinHeight = 18.288;
  8. float rocketDistance = 3550.0;
  9. float rocketHeight = 144.0;
  10. float planeDistance = 339040.0;
  11. float planeHeight = 11280.0;
  12. float earthDiameter = 12742000.0;
  13.  
  14. float destinElevation = 190.8;
  15. float rocketElevation = 202.5;
  16. float planeElevation = 262.9;
  17.  
  18. float scale = 0.4;  //zoom in
  19. //float scale = 0.005;  //zoom out
  20.  
  21.  
  22.  
  23. void setup(){
  24.   size(1920,1080);
  25.   strokeCap(SQUARE);
  26. }
  27.  
  28. void draw(){
  29.   background(51);
  30.   noStroke();
  31.   fill(100,150,100);
  32.   ellipse(width/2.0, earthDiameter/2.0*scale+height/2.0, earthDiameter*scale, earthDiameter*scale);
  33.  
  34.   float rocketRadians = (rocketDistance / (earthDiameter * PI)) * TWO_PI;
  35.   float planeRadians = (planeDistance / (earthDiameter * PI)) * TWO_PI;
  36.  
  37.   float startingAngle = PI*3.0/2.0-PI/11500.0;  //zoom in
  38.   //float startingAngle = PI*3.0/2.0-PI/115.0;  //zoom out
  39.  
  40.   strokeWeight(8);
  41.   stroke(200,150,10);
  42.   //arc(width/2.0, earthDiameter/2.0*scale+height/2.0, earthDiameter*scale, earthDiameter*scale, startingAngle, startingAngle+planeRadians);
  43.   strokeWeight(4);
  44.   stroke(100,150,200);
  45.   //arc(width/2.0, earthDiameter/2.0*scale+height/2.0, earthDiameter*scale, earthDiameter*scale, startingAngle, startingAngle+rocketRadians);
  46.  
  47.  
  48.   PVector destinPos = new PVector(cos(startingAngle), sin(startingAngle));
  49.   PVector rocketPos = new PVector(cos(startingAngle+rocketRadians), sin(startingAngle+rocketRadians));
  50.   PVector planePos = new PVector(cos(startingAngle+planeRadians), sin(startingAngle+planeRadians));
  51.  
  52.   strokeWeight(2);
  53.   stroke(0,0,255);
  54.  
  55.   line(width/2.0 + destinPos.x * (earthDiameter/2.0 + destinElevation + destinHeight) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0+ destinElevation + destinHeight)* scale, width/2.0 + planePos.x * (earthDiameter/2.0 + planeElevation + planeHeight) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0+ planeElevation + planeHeight)* scale);
  56.  
  57.  
  58.  
  59.   strokeWeight(8);
  60.  
  61.   stroke(0,255,0);
  62.  
  63.   line(width/2.0 + destinPos.x * (earthDiameter/2.0) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0) * scale, width/2.0 + destinPos.x * (earthDiameter/2.0 + destinElevation) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0+ destinElevation)* scale);
  64.   line(width/2.0 + rocketPos.x * (earthDiameter/2.0) * scale, earthDiameter/2.0*scale+height/2.0 + rocketPos.y * (earthDiameter/2.0) * scale, width/2.0 + rocketPos.x * (earthDiameter/2.0 + rocketElevation) * scale, earthDiameter/2.0*scale+height/2.0 + rocketPos.y * (earthDiameter/2.0+ rocketElevation)* scale);
  65.   line(width/2.0 + planePos.x * (earthDiameter/2.0) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0) * scale, width/2.0 + planePos.x * (earthDiameter/2.0 + planeElevation) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0+ planeElevation)* scale);
  66.  
  67.   stroke(255,0,0);
  68.  
  69.   line(width/2.0 + destinPos.x * (earthDiameter/2.0 + destinElevation) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0+ destinElevation)* scale, width/2.0 + destinPos.x * (earthDiameter/2.0 + destinElevation + destinHeight) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0+ destinElevation + destinHeight)* scale);
  70.   line(width/2.0 + rocketPos.x * (earthDiameter/2.0 + rocketElevation) * scale, earthDiameter/2.0*scale+height/2.0 + rocketPos.y * (earthDiameter/2.0+ rocketElevation)* scale, width/2.0 + rocketPos.x * (earthDiameter/2.0 + rocketElevation + rocketHeight) * scale, earthDiameter/2.0*scale+height/2.0 + rocketPos.y * (earthDiameter/2.0+ rocketElevation + rocketHeight)* scale);
  71.   line(width/2.0 + planePos.x * (earthDiameter/2.0 + planeElevation) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0+ planeElevation)* scale, width/2.0 + planePos.x * (earthDiameter/2.0 + planeElevation + planeHeight) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0+ planeElevation + planeHeight)* scale);
  72.  
  73.   println(dist(width/2.0 + destinPos.x * (earthDiameter/2.0 + destinHeight) * scale, earthDiameter/2.0*scale+height/2.0 + destinPos.y * (earthDiameter/2.0+ destinHeight)* scale, width/2.0 + planePos.x * (earthDiameter/2.0 + planeHeight) * scale, earthDiameter/2.0*scale+height/2.0 + planePos.y * (earthDiameter/2.0+ planeHeight)* scale)/scale);
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement