Advertisement
dz0

KD2--Žvaigždės--kosmosas

dz0
Apr 24th, 2014
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.72 KB | None | 0 0
  1. // http://processing.org/reference/
  2.  
  3. int  X[], Y[], Dydis[];  // masyvai: greičiai, koordinatės, ir pataikymų skaitliukas
  4. int N=10;   // masyvų dydis
  5. int n=5;  // pradinis matomų "žvaigždžių" kiekis
  6.  
  7.  
  8. int pitagoras(int a, int b){ return int(sqrt(a*a+b*b)); }
  9.  
  10.  
  11. void setup() {
  12.   size(300, 400);
  13.  
  14.   X = new int[N];
  15.   Y = new int[N];
  16.   Dydis = new int[N];
  17.  
  18.   for(int i=0; i<N; i++){
  19.     X[i] = (int) random(width);
  20.     Y[i] = (int) random(height);
  21.     Dydis[i] = (int) random(10, 40);
  22.   }
  23.  
  24. }
  25.  
  26. void draw(){
  27.   background(50);
  28.   fill(70); ellipse(mouseX, mouseY, 100, 100); //  "teleskopas"
  29.  
  30.   // zvaigzdziu_keliai();  // atkomentuot F daliai
  31.  
  32.   for(int i=0; i<n; i++){  // piešiam žvaigždes
  33.       if( pitagoras(X[i]-mouseX,  Y[i]-mouseY) < 50 ){
  34.              fill(0, 200, 0);
  35.       }else  fill(0, 0, 200);
  36.    
  37.       ellipse(X[i], Y[i], Dydis[i], Dydis[i]);
  38.      
  39.       fill(200, 200, 0);     text(i+": "+Dydis[i], X[i], Y[i]); // extra info
  40.   }
  41.  
  42.   int didziausios_nr=0; // galite įsivesti ir didziausias_dydis kintamąjį
  43.   // E) Padaryti, kad didžiausią žvaigždę pieštų baltai -- 2tšk
  44.  
  45.   // galaktika(didziausios_nr); // atkomentuot G H dalims
  46.  
  47. }
  48.  
  49. void mousePressed(){
  50.     // kad paspaudus su pele,
  51.     // A1) toj vietoj atsirastų nauja žvaigždė -- 0.5 tšk    
  52.     // A2) kad ribotų max žvaigždžių kiekį pagal masyvų dydį -- 0.5 tšk
  53.  
  54. }
  55.  
  56. void keyPressed() {
  57.   println("key", key, "code", keyCode);
  58.  
  59.  
  60.   // B1) kad paspaudus 'a', į teleskopo vaizdą patenkančios žvaigždės, padidėtų 2kart // 1 tšk
  61.   // B2) o paspaudus 'z', į teleskopo vaizdą patenkančios žvaigždės, sumažėtų x2 // 0.5 tšk
  62.   if(key=='a'){  
  63.   }
  64.  
  65.   // C) kad, paspaudus tarpą, visos žalios žvaigždės "sprogtų" --  pataptų juodos ir nebežaliuotų// 1tšk
  66.  
  67.   // D-Ckams nereikia) kad paspaudus 'q', įvyktų visų matomų žvaigždžių rotacija:
  68.   // d1)   kiekviena  peršoktų į sekančios (pagal numerį) vietą -- 1 tšk
  69.   // d2)   o paskutinė matoma -- į 0 vietą // 0.5 tšk
  70. }
  71.  
  72. void zvaigzdziu_keliai(){
  73.  // F) nupiešti "kelius" (linijas) tarp žvaigždžių,
  74.  //    tarp kurių kraštų atstumai mažesni už 100 // 1tšk  
  75.  
  76. }
  77.  
  78. void galaktika(int znr){
  79.   // G) pagal žvaigždės numerį surasti, visas su ja žvaigždžių "keliais" susietąsias
  80.   //    ir jas nuspalvinti geltonai // 1tšk
  81.  
  82.   // H) Surasti galaktikoks centrą ir jame nupiešti UFO :) // 1tšk
  83.   // Visų galaktikos žvaigždžių X ir Y vidurkis.  Reiks globalių kintamųjų, ir juos nunulint prieš startuojant rekursiją.
  84.  
  85. }
  86.  
  87. // Kaip manai, kiek taškų surinksi?  -- pataikius 1tšk tikslumu -- +10%
  88. // bet 10-tuko gavimui negalioja -- jam reik viską padaryt :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement