package november_05th;
public class Point {
private double x;
private double y;
public Point(){}
public Point(double x,double y){
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public void display(){
System.out.println("The point is at:("+this.x+","+this.y+")");
}
}
package november_05th;
public class Rectangle {
private Point point;
private double width;
private double height;
public Rectangle(){}
public Rectangle(Point p,double width,double height){
this.point = p;
this.width = width;
this.height = height;
}
public Rectangle(double x,double y,double width,double height){
this.point.setX(x);
this.point.setY(y);
this.width = width;
this.height = height;
}
public Rectangle(Rectangle r){
}
public void setPoint(double x,double y){
this.point.setX(x);
this.point.setY(y);
}
public double getArea(){
return this.width*this.height;
}
public void display(){
System.out.println("The rectangle's width and height is :"+this.width+","+this.height);
}
public Point getPoint() {
return point;
}
public void setPoint(Point point) {
this.point = point;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
}
package november_05th;
public class Circle {
private Point p;
private double radius;
public Circle(){}
public Circle(Point p,double r){
this.p = p;
this.radius = r;
}
public Circle(double x,double y,double r){
this.p.setX(x);
this.p.setY(y);
this.radius = r;
}
public Circle(Circle c){
}
public void setPoint(double x,double y){
this.p.setX(x);
this.p.setY(y);
}
public boolean isInside(Point p){
double distance = (((p.getX()-this.getP().getX())*(p.getX()-this.getP().getX()))+((p.getY()-this.getP().getY())*(p.getY()-this.getP().getY())));
if(distance<this.radius){
return true;
}
else{
return false;
}
}//判断点是否在圆内部
public Circle outerRect(Rectangle r){
double radius_x = r.getPoint().getX()+r.getWidth()/2;
double radius_y = r.getPoint().getY()+r.getHeight()/2;
double radius = Math.sqrt(((r.getPoint().getX()-radius_x)*(r.getPoint().getX()-radius_x))+(r.getPoint().getY()-radius_y)*(r.getPoint().getY()-radius_y));
return new Circle(radius_x,radius_y,radius);
}//返回一个矩形的外接圆
public Circle join(Circle c1, Circle c2) {
double distance = Math.sqrt(((c1.getP().getX()-c2.getP().getX())*(c1.getP().getX()-c2.getP().getX()))+((c1.getP().getY()-c2.getP().getY())*(c1.getP().getY()-c2.getP().getY())));
double r_ = Math.abs(c1.getRadius()-c2.getRadius());
if(distance>r_){
double radius = (distance+c1.getRadius()+c2.getRadius())/2;
double x = (c1.getP().getX() + c2.getP().getX())/2;
double y = (c1.getP().getY() + c2.getP().getY())/2;
return new Circle(x,y,radius);
}
else{
return new Circle();
}
}//返回两个参数圆的最小外接圆
public double distance(Circle c1, Circle c2) {
return Math.sqrt(((c1.getP().getX()-c2.getP().getX())*(c1.getP().getX()-c2.getP().getX()))+((c1.getP().getY()-c2.getP().getY())*(c1.getP().getY()-c2.getP().getY())));
}//返回两个参数圆圆心之间的距离
public String toString(){
return "(圆心x坐标值,圆心y坐标值,圆半径) :"+"("+this.getP().getX()+","+this.getP().getY()+","+this.getRadius()+")";
}
//返回本圆的基本信息,格式为(圆心x坐标值,圆心y坐标值,圆半径)。如:(0, 0, 2)
public void test(){
System.out.println("succeed xiaojijia");
}
public Point getP() {
return p;
}
public void setP(Point p) {
this.p = p;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}