content: package edu.stanford.rsl.tutorial.phantoms;
  
  
  
  public class Ellipsoid extends Phantom{
  	
  	public Ellipsoid(int x, int y) {
  		this(x, y, 3);
  	}
  	
  	public Ellipsoid(int x, int y, int phase) {
  		super(x,y,"Ellipsoid2D");
  		
  		int val1 = 1;
  		double r1 = 0.4*x;
  		int xCenter1 = x/2;
  		int yCenter1 = 5*y/10;
  		
  		int xCenter2 = (int) (0.25*x);
  		int yCenter2 = (int) (0.5*y);
  		int xCenter3 = (int) (0.75*x);
  		int yCenter3 = (int) (0.5*y);
  		double r2 = 0.05*x;
  		int val2 = 5;
  		
  		for(int i = 0; i < x; i++){
  			for(int j = 0; j < y; j++) {
  //			if( (2/3*r1*r1)*Math.pow(i - xCenter1, 2)  + (r1*r1)*Math.pow(j - yCenter1, 2) <= (r1*r1)*(2/3*r1*r1) )
  				if (phase > 0) if( (Math.pow(i - xCenter1, 2)/(r1*r1))  + (Math.pow(j - yCenter1, 2)/(r1*r1*0.33)) <= 1 ) {
  					super.setAtIndex(i, j, val1);
  				}
  				if (phase > 2) if( Math.pow(i - xCenter2, 2)  + Math.pow(j - yCenter2, 2) <= (r2*r2) ) {
  					super.setAtIndex(i, j, val2);
  				}
  				if (phase > 1) if( Math.pow(i - xCenter3, 2)  + Math.pow(j - yCenter3, 2) <= (r2*r2) ) {
  					super.setAtIndex(i, j, val2);
  				}
  		}
  	}
  
  }}
  /*
   * Copyright (C) 2010-2014 Salaheldin Saleh, me@s-saleh.com
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
   */