public static Vector<float[]> getPossiblePoints(Vector<int[]> Lines, float[] position, int[] goal)
	{
		//Rueckgabevektor
		Vector<float[]> Aims = new Vector<float[]>();
		
		//Gerade s in Richtung des Ziels konstruieren
		float[] s = new float[4];
		s[0] = position[0];
		s[1] = position[1];
		s[2] = goal[0] - position[0];
		s[3] = goal[1] - position[1];

		//Prüfen ob sich die "Zielstrecke" mit keiner Anderen Schneidet
		for(int k=0; k<Lines.size(); k++)
		{
			if(Mat.getCrossPointLL(new float[]{goal[0],goal[1],position[0],position[1]}, Lines.elementAt(k))[0] != -1)
			{
				//Schnittpunkt, keine freie Bahn
				break;
			}
			else if(k == Lines.size()-1)
			{
				//Alle Schnittpunkte wurden vergeblich geprueft
				Aims.add(new float[]{goal[0], goal[1]});
				return(Aims);
			}			
		}

		//Alle guten Punkte für den naechsten Wegpunkt speichern, je weiter weg von 0 im Vectorindex desto groeßer der Winkel vom Ziel
		for(float c=0; c<=180; c+=0.5)
		{
			float[] x = null;
			
			//Gerade um 0+c gedreht
			x = getHole(Lines,s,c,0.5f);
			if(x[0] != -1)
			{
				//Loch gefunden
				Aims.add(x);
			}

			//Gerade um 360-c gedreht			
			x = getHole(Lines,s,360-c,0.5f);
			if(x[0] != -1)
			{
				//Loch gefunden
				Aims.add(x);
			}
		}
		return(Aims);
	}