Source Code : Circle shape

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Circle shape

       


//package net.slashie.utils;

import java.util.ArrayList;
import java.util.List;

public class Circle {
  private Position center;
  private int radius;
  public Circle (Position p, int radius){
    this.center = p;
    this.radius = radius;
  }
  
  public List<Position> getPoints (){
    List<Position> ret = new ArrayList<Position>();
    int d = 3 - (2 * radius);
    Position runner = new Position(0, radius);
    Position zero = new Position(0,0);
    while (true) {
      if (Position.flatDistance(zero, runner) <= radius)
        addPoints(center, runner.x,runner.y, ret);
      if (d < 0)
        d = d + (4*runner.x)+6;
      else {
        d = d + 4 * (runner.x-runner.y) +10;
        runner.y --;
      }
      runner.x++;
      if (runner.y == 0)
        break;
    }
    return ret;
  }


  private void addPoints(Position center, int x, int y, List<Position> collection){
    collection.add(new Position(center.x + x, center.y + y));
    collection.add(new Position(center.x + x, center.y - y));
    collection.add(new Position(center.x - x, center.y + y));
    collection.add(new Position(center.x - x, center.y - y));
    collection.add(new Position(center.x + y, center.y + x));
    collection.add(new Position(center.x + y, center.y - x));
    collection.add(new Position(center.x - y, center.y + x));
    collection.add(new Position(center.x - y, center.y - x));
  }

}
 class Position implements java.io.Serializable {
  public int x,y,z;

  public int x(){
    return x;
  }
  
  public int y(){
    return y;
  }
  
  public int z(){
    return z;
  }
  
  
  public Position(int px, int py){
    x = px;
    y = py;
  }

  public Position(int px, int py, int pz){
    this(px, py);
    z = pz;
  }

  public Position(Position p){
    x = p.x;
    y = p.y;
    z = p.z;
  }

  public static Position add (Position a, Position b){
    return new Position (a.x + b.x, a.y + b.y, a.z + b.z);
  }

  public static Position subs (Position a, Position b){
    return new Position (a.x - b.x, a.y - b.y, a.z - b.z);
  }

  public static Position mul(Position a, int c){
    return new Position (a.x * c, a.y * c, a.z * c);
  }

  public static Position mul(Position a, Position b){
    return new Position (a.x * b.x, a.y * b.y, a.z * b.z);
  }

  public void mul(Position pos){
    x *= pos.x;
    y *= pos.y;
    z *= pos.z;
  }

  public boolean equals(Object o){
    if (o == null)
      return false;
    try {
      if (((Position)o).x == x && ((Position)o).y == y && ((Position)o).z == z){
        return true;
      }
    } catch (ClassCastException cce){
      throw new RuntimeException("Error comparing points "+this+" "+o, cce);
    }
    return false;
  }
  
  public int hashCode() {
    return toString().hashCode();
  }


  public String toString(){
    return "("+x+","+y+","+z+")";
  }

  public static int flatDistance(Position a, Position b){
    return (int) Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow (a.y - b.y, 2));
  }

  public static int flatDistance(int x1, int y1, int x2, int y2){
    return (int) Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow (y1 - y2, 2));
  }
  
  public static int distance(Position a, Position b){
    return (int) Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow (a.y - b.y, 2));
  }
  
/*  public static int distance(Position a, Position b){
    return (int) Math.s(Math.pow(a.x - b.x, 2) + Math.pow (a.y - b.y, 2));
  }*/

  public void add(Position p){
    x += p.x;
    y += p.y;
    z += p.z;

  }


}

   
    
    
    
    
    
    
  

Thank with us