Thursday, September 29, 2011

Triangle

public class point{
public double x;
public double y;
public point(double x,double y){
this.x=x;
this.y=y;
}
public void setx(double nx){x=nx;}
public void sety(double ny){y=ny;}
public double getx(){return x;}
public double gety(){return y;}
public String toString(){
return"("+x+","+y+")";
}
}

........................................................................................

public class line{
point p1,p2;
 public line(point p1, point p2){
 this.p1=p1;
 this.p2=p2;
 }
public line(double x1,double y1,double x2, double y2){
this.p1=new point(x1,y1);
this.p2=new point(x2,y2);
}
public double getlength(){
double dx=p1.x-p2.x;
double dy=p1.y-p2.y;
return Math.round(Math.sqrt(dx*dx+dy*dy)*100)/100.0;
}
public point getp1(){return p1;}
public point getp2(){return p2;}
public void setp1(point np){p1=np;}
public void setp2(point np){p2=np;}
public void setp1(double x,double y){
p1=new point(x,y);
}
public void setp2(double x,double y){
p2=new point(x,y);
}
public String toString(){
return "line "+p1+"__"+p2+"of length "+getlength();
}
}
............................................................................................

public class triangle{
private point p1,p2,p3;
private double area,perimeter;
public triangle(double x1,double y1,double x2,double y2,double x3,double y3){
p1=new point(x1,y1);
p2=new point(x2,y2);
p3=new point(x3,y3);
computearea();
computeperimeter();
}
public triangle(point p1,point p2,point p3){
this.p1=p1;
this.p2=p2;
this.p3=p3;
computearea();
computeperimeter();
}
public point getp1(){return p1;}
public point getp2(){return p2;}
public point getp3(){return p3;}
public void computearea(){
double a=new line(p1,p2).getlength();
double b=new line(p1,p3).getlength();
double c=new line(p3,p2).getlength();
double s=(a+b+c)/2.0;
area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
public void computeperimeter(){
double a=new line(p1,p2).getlength();
double b=new line(p1,p3).getlength();
double c=new line(p3,p2).getlength();
perimeter=a+b+c;
}
public double getarea(){return Math.round(area*100)/100.0;}
public double getperimeter(){return perimeter;}
public boolean isrectangledtriangle(){
double a=new line(p1,p2).getlength();
double b=new line(p1,p3).getlength();
double c=new line(p3,p2).getlength();
double tmp;
if(b>a){tmp=a;a=b;b=tmp;}
if(c>a){tmp=a;a=c;c=tmp;}
return(a*a==b*b+c*c);
}
public String toString(){
String retString="";
String arectangled="not a rectangled";
if(isrectangledtriangle()) arectangled=" a rectangled";
retString="triangle "+p1+"::"+p2+"::"+p3+"::"+"is"+arectangled+"triangle\n";
retString=retString+"and it is of aea::"+getarea()+", and primeter::"+getperimeter();
return retString;
}
}
....................................................................................................
import javax.swing.JOptionPane;
public class triangledemo{

public static void main(String[] argc){
triangle t1=new triangle(0,0,4,4,2,3);
line l1=new line(new point(0,0),new point(4,4));
line l2=new line(new point(0,0),new point(2,3));
line l3=new line(4,4,2,3);
point A=new point(3,4);
point B=new point(6,4);
point C=new point(3,8);
triangle t2=new triangle(A,B,C);
JOptionPane.showMessageDialog(null,l1+"\n"+l2+"\n"+l3+"\n"+t1+"\n"+t2,"triangles and line",1);
}
}

No comments:

Post a Comment