这是我在java中编写的一些代码,它是一个圆形对象类。我写的方法我还需要两个方法,而第一个方法就是 包含(circle c)的方法,如果指定的圆c在圆内,则返回true。第二个是重叠(圆圈c)的方法,如果指定的圆圈c与该圆圈重叠,则返回真。我需要的是如何使用参数作为另一个圆对象
来制作这两个方法这是我的代码
public class Circle
{
// instance variables - replace the example below with your own
private double radius;
private double centerX;
private double centerY;
/**
* Constructor for objects of class Circle
*/
public Circle()
{
this.radius = 1;
this.centerX = 0;
this.centerY = 0;
}
/**
* Constructor for objects of class Circle
*/
public Circle(double radius, double centerx, double centery)
{
this.radius = radius;
this.centerX = centerX;
this.centerY = centerY;
}
/**
* Constructor for objects of class Circle
*/
public Circle(double pRadius)
{
radius = pRadius;
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void setRadius(double pRadius)
{
radius = pRadius;
}
/**
* getRadius method will return the radius of the cricle
* @param none
* @return radius of type double
*/
public double getRadius()
{
return radius ;
}
/**
* getcenterX method will return the x coordinates of the circle
* @param none
* @return centerx of type double
*/
public double getCenterX()
{
return centerX ;
}
/**
* getcenterY method will return the y coordinates of the circle
* @param none
* @return centery of type double
*/
public double getCenterY()
{
return centerY ;
}
/**
*
*/
public double calcPerimeter()
{
return 2*Math.PI*getRadius();
}
/**
*
*/
public double calcArea()
{
return Math.PI*Math.pow(getRadius(),2);
}
/**
*
*/
public double distance(double x1, double y1, double x2, double y2)
{
return ( Math.sqrt(Math.pow(x1-x2,2)+ Math.pow(y1-y2,2))) ;
}
/**
*
*/
public boolean contains(double x, double y)
{
double dist = distance(x, y, centerX, centerY); // calculate the distance between the point(x,y) and center of the circle
boolean flag = false;
if ( dist < radius)
{
flag = true;
}
else if ( dist > radius)
{
flag = false ;
}
else
{
System.out.println("The point is on the circle.");
}
return flag;
}
}
/**
*
*/
public String toString()
{
String outString = "The radius of the circle is: " + getRadius() + "\nThe perimeter of the circle object is; " + calcPerimeter()+ "\nThe area of the circle is: " + calcArea() ;
return outString;
}
}
答案 0 :(得分:1)
import java.awt.geom.Point2D;
/**
*
* @author MT0
*/
public class Circle {
private Point2D.Double center;
private double radius;
public Circle(
final double x,
final double y,
final double r
){
assert( r >= 0 );
center = new Point2D.Double( x, y );
radius = r;
}
public Point2D.Double getCenter(){
return center;
}
public double getRadius(){
return radius;
}
public Double distance( final Point2D.Double point ){
if ( point == null )
return null;
return getCenter().distance( point );
}
public boolean contains( final Point2D.Double point ){
if ( point == null )
return false;
return distance( point ) <= getRadius();
}
public boolean overlaps( final Circle c ){
return distance( c.getCenter() ) <= getRadius() + c.getRadius();
}
public boolean contains( final Circle c ){
if ( c == null )
return false;
return distance( c.getCenter() ) <= Math.abs( getRadius() - c.getRadius() );
}
}