import opale.m2d.*;
import opale.m2d.object2d.*;
import opale.m2d.component2d.*;
import opale.mathtools.*;
import java.awt.*;
import java.awt.event.*;

	
public class ex1 extends JFrame2D
	{
	GConic ellipse,parabole; 
	GyFx sin,x3; //deux fonctions y=f(x)
	GData2D xy ; //une fonction paramétrique
	
	public ex1() 
		{
		
		// le repère
		OIJ repere = new OIJ();
		
		getAxis().drawScale(false);
		
		// une ellipse
		ellipse = new GConic(repere);
		ellipse.getInfo().setColor(Color.red);
		ellipse.setParams(0.9,1,0.78);
		
		//une parabole
		parabole = new GConic(repere);
		parabole.getInfo().setColor(Color.blue);
		parabole.setParams(1,1,-Math.PI/4);

		// une sinusoide
		sin = new GyFx(repere);
		sin.set(new IyFx() { public double val(double x) {return Math.sin(x);}},"sin(x)",-10,10,100);
		sin.getInfo().setColor(Color.green);


		// y=x^3-x
		x3 = new GyFx(repere);
		x3.set(new IyFx() { public double val(double x) {return x*x*x-x;}},"x*x*x-x",-5,5,100);
		x3.getInfo().setColor(Color.yellow);
		
		// fonction paramètrée
		xy = new GData2D(repere);
		xy.set(new opale.mathtools.IxyFt() 
				{ 
				public double x(double t) { return 7*Math.sin(t);}; 
				public double y(double t) { return 7*Math.cos(3*t);} 
				} ,0,7,100);
		
		
		getPack2D().add(repere,"repere");
		getPack2D().add(ellipse,"ellipse");
		getPack2D().add(parabole,"parabole");
		getPack2D().add(sin,"sinus");
		getPack2D().add(x3,"cube");
		getPack2D().add(xy,"xy");
				

		}
		

	
	
	public static void main(String[] arg) 		{
		ex1 t = new ex1();
		t.show();
		}
	}
	
	

