1. Engineering
  2. Computer Science
  3. file pointjava package hw3 ...

Question: file pointjava package hw3 ...

Question details

// ====== FILE: Point.java ========= //

package hw3;

/**

* A class to that models a 2D point.

*/

public class Point {

private double x;

private double y;

/**

* Construct the point (<code>x</code>, <code>y</code>).

* @param x the <code>Point</code>'s x coordinate

* @param y the <code>Point</code>'s y coordinate

*/

public Point(double x, double y) {

this.x = x;

this.y = y;

}

/**

* Move the point to (<code>newX</code>, <code>newY</code>).

* @param newX the new x coordinate for this <code>Point</code>.

* @param newY the new y coordinate for this <code>Point</code>.

*/

public void moveTo(double newX, double newY) {

newX = (Math.random()*400)-x;

newY = (Math.random()*400)-y;

}

/**

* Returns the point's x coordinate

* @return the point's x coordinate

*/

public double getX() {

return x;

}

/**

* Returns the point's y coordinate

* @return the point's y coordinate

*/

public double getY() {

return y;

}

/**

* Returns the distance between <code>this Point</code> and the <code>Point p2</code>

* @param p2 the other <code>Point</code>

* @return the distance between <code>this Point</code> and the <code>Point p2</code>

*/

public double distance(Point p2) {

double x1 = p2.getX();

double y1 = p2.getY();

double x2 = this.x;

double y2 = this.y;

double d = Math.sqrt((Math.pow((x2-x1), x) + Math.pow((y2-y1), y)));

return d;

}

}

// ====== FILE: Ball.java ========= //

package hw3;

import java.awt.Color;

import edu.princeton.cs.algs4.StdDraw;

/**
* A class that models a bounding ball
*/
public class Ball {
   // Minimum and maximum x and y values for the screen
   private static double minX;
   private static double minY;
   private static double maxX;
   private static double maxY;

   private Point center;
   private double radius;
   // Every time the ball moves, its x position changes by vX;
   private double vX;
   // Every time the ball moves, its y position changes by vY;
   private double vY;
   private Color color;

  
   /**
   * Sets the minimum and maximum x and y values of the screen on which the balls appear.
   * The bottom left of the screen is at (minX, minY) while the
   * top right is at (maxX, maxY).
   * @param minX the leftmost x value
   * @param minY the bottommost y value
   * @param maxX the rightmost x value
   * @param maxY the topmost y value
   */
   public static void setScreen(double minX, double minY, double maxX, double maxY) {
       Ball.minX = minX;
       Ball.minY = minY;
       Ball.maxX = maxX;
       Ball.maxY = maxY;
   }
  
   /**
   * Constructs a ball.
   * @param centerX the x coordinate of the center of the ball
   * @param centerY the y coordinate of the center of the ball
   * @param r the radius of the ball
   * @param vX the velocity of the ball along the x-axis
   * @param vY the velocity of the ball along the y-axis
   * @param col the color of the ball
   */
   public Ball(double centerX, double centerY, double r, double vX, double vY, Color col) {
       center = new Point(centerX, centerY);
       radius = r;
       this.vX = vX;
       this.vY = vY;
       color = col;
   }
  
   /**
   * Moves the ball (changes its position) by vX along the x-axis
   * and by vY along the y-axis. Additionally, if the ball has
   * reached one of the edges of the screen it changes the velocity
   * to reflect that the ball has bounced off the edge.
   */
   public void move() {
       //TODO - This code is wrong and needs to be fixed

  
   }
  
   /**
   * Determines if this has collided with b2.
   * @param b2 the other Ball
   * @return ture if this has collided with
   * b2.
   */
   public boolean collision(Ball b2) {
       //TODO - This code is wrong and needs to be fixed
       return false;
   }
  
   /**
   * Draws the Ball on the screen.
   */
   public void draw() {
       StdDraw.setPenColor(color);
       StdDraw.filledCircle(center.getX(), center.getY(), radius);
   }
}

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution