1   package fi.jyu.mit.graphics;
2   
3   /**
4    * Luokka sin-funktion käsittelemiseksi.
5    * a*sin(b*x) oletuksen sin(x)
6    */
7   public class SinFun implements FunctionRR {
8     /**
9      * Luodaan stattinen sini-funktio kaikkien käyttöön.
10     */  
11    public static final FunctionRR sin = new SinFun();
12  
13    
14    private double a = 1;
15    private double b = 1;
16    
17    /**
18     * Alustetaan oletusarvoilla
19     */
20    public SinFun() {
21        // ei tarvii tehdä mitään
22    }
23    
24    /**
25     * Asettaa funktion a*sin(b*x) parametrit a ja b
26     * @param a funktion a-parametri
27     * @param b funktion b-parametri
28     */
29    public SinFun(double a, double b) {
30        this.a = a;
31        this.b = b;
32    }
33    
34    /**
35     * Sinifunktion arvo pisteessä x 
36     * @param x mistä sin lasketaan
37     * @return sinin arvo pisteessä x
38     */
39    @Override
40    public double f(double x) {  // NOPMD, nyt f on hyvä nimi
41      return a*Math.sin(b*x);
42    }
43  }