1   package sample;
2   
3   import fi.jyu.mit.graphics.*;
4   import static java.lang.Math.*;
5   
6   
7   /**
8    * Esimerkki 3D-pinnan piirtämisestä.
9    * Piirtää monta rinnakkaista sin-käyrää ja pyörittää kuvaa.
10   * @author vesal
11   */
12  public class FunctionR2Sample {
13  
14      /**
15       * Luokka sin*cos-funktion käsittelemiseksi.
16       * Luokka sin-funktion käsittelemiseksi.
17       */
18      public static class SinCos implements FunctionR2R {
19        /**
20         * Luodaan staattinen sincos-funktio kaikkien käyttöön.
21         */  
22        public static final FunctionR2R sincos = new SinCos(); // NOPMD nimi saa kelvata
23  
24        /**
25         * sin*cos-funktion arvo pisteessä x 
26         * @param x mista arvo lasketaan
27         * @param y mista arvo lasketaan
28         * @return sin(x)*cos(y) 
29         */
30        @Override
31        public double f(double x, double y) {  // NOPMD, nyt f on hyva nimi
32          return sin(x)*cos(y);
33        }
34      }
35  
36      
37      /**
38       * @param args
39       */
40      public static void main(String[] args) {
41          EasyWindow window = new EasyWindow();
42          window.scale(-9,-9,9,9);
43          window.addAxis(15, 15, 15);
44          window.add(new FunctionMapR2R(SinCos.sincos,-2*PI,-2*PI,2*PI,2*PI));
45          window.rotate(Axis.X, 50);
46          window.rotate(Axis.Y, 20);
47          window.showWindow();
48  //      new Rotator(window,Axis.Z,5,50);
49          window.setTouchPad(true);
50          window.setControlButtons(true);
51              
52      }
53  
54  }
55