private void initializeCircleCollisionPoints(int radius, int edgeprecision, 
			int layers)
	{
		// Calculates the number of collisionpoints
		int size = edgeprecision;
		// From layer 2 onwards, center is added
		if (layers >= 2)
			size ++;
		// Larger amount of layers means more collisionpoints
		for (int i = 3; i <= layers; i++)
		{
			int more = (int) ((i - 2.0) / (layers - 1.0) * edgeprecision);
			size += more;
		}
		
		this.relativecollisionpoints = new Point[size];
		int index = 0;
		
		for (int i = 1; i <= layers; i++)
		{
			// Calculates the necessary information
			int pointsonlayer = (int) ((i - 1.0)/(layers - 1.0) * edgeprecision);
			// The first layer has an extra 1 point (instead of 0)
			if (i == 1)
				pointsonlayer = 1;
			int layerradius = (int) (radius * ((i - 1.0) / (layers - 1.0)));
			
			// Creates the points
			for (int a = 0; a < 360; a += 360 / pointsonlayer)
			{
				this.relativecollisionpoints[index] = new Point(
						getOriginX() + (int) HelpMath.lendirX(layerradius, a), 
						getOriginY() + (int) HelpMath.lendirY(layerradius, a));
			}
		}
	}