import java.applet.Applet; import java.awt.event.*; import java.awt.*; /*This class does the basic arithmetic of complex numbers */ public class XtraComplex { double x,y; public static double norm(Complex z) { return Math.sqrt(z.x*z.x+z.y*z.y); } public static Complex unit(Complex z) { double d=norm(z); return new Complex(z.x/d,z.y/d); } public static Complex plus(Complex z1,Complex z2) { return new Complex(z1.x+z2.x, z1.y+z2.y); } public static Complex average(Complex z1,Complex z2) { return new Complex(.5*z1.x+.5*z2.x, .5*z1.y+.5*z2.y); } public static Complex minus(Complex z1,Complex z2) { return new Complex(z1.x-z2.x, z1.y-z2.y); } public static Complex times(Complex z1,Complex z2) { return new Complex(z1.x*z2.x-z1.y*z2.y, z1.x*z2.y+z1.y*z2.x); } public static Complex inverse(Complex z) { double d=z.x*z.x+z.y*z.y; return new Complex(z.x/d,-z.y/d); } public static Complex divide(Complex z1,Complex z2) { return times(z1,inverse(z2)); } public static Complex conjugate(Complex z) { return new Complex(z.x,-z.y); } public static double dist(Complex a,Complex b) { Complex z=minus(a,b); return(norm(z)); } public static double distL1(Complex a,Complex b) { Complex z=minus(a,b); double t1=Math.abs(z.x); double t2=Math.abs(z.y); if(t11.01) return(100); double a1=area(z1,z2,w); a1=Math.abs(a1); double a2=dist(z1,z2); return(a1/a2); } public static double area(Complex z1,Complex z2,Complex z3) { double a; Complex[] z=new Complex[5]; z[1]=minus(z2,z1); z[2]=minus(z3,z1); z[3]=conjugate(z[2]); z[4]=times(z[1],z[3]); a=-z[4].y; return(a); } }