    public void umstuelpen(double[] xy, double x, double y, double x_aufpunkt, double y_aufpunkt, double HW)
    {
         if(x==x_aufpunkt && y==y_aufpunkt)
         {
             //x = x_aufpunkt + 0.00001*(zufall.nextDouble()-0.5);
             //y = y_aufpunkt + 0.00001*(zufall.nextDouble()-0.5);
             
             //Einfach auf den Rand setzen bei phirot:
             
             xy[0] = VSCHALL*Math.cos(OMEGA*tt); 
             xy[1] = VSCHALL*Math.sin(OMEGA*tt); 
             return;
         }    
         double dx = x-x_aufpunkt;
         double dy = y-y_aufpunkt;
         
         double dist = Math.sqrt(dx*dx+dy*dy);
         
         double ex = dx/dist;   //Einheitsvektor Richtung Zielpunkt
         double ey = dy/dist;
         double xhw = ex*HW;    //Punkt auf HW-Sphäre
         double yhw = ey*HW;  
         double rx = dx-xhw;    //von HW-Punkt zu relativer Position
         double ry = dy-yhw;
         
         if(dist<HW)
         {
              double LLL=400.0;
              dx = xhw - rx*LLL/HW;
              dy = yhw - ry*LLL/HW;
              double ddd = Math.sqrt( (dx+x_aufpunkt)*(dx+x_aufpunkt) + (dy+y_aufpunkt)*(dy+y_aufpunkt) );
              while(ddd>400.0)
              {
                   LLL-=1.0;
                   dx = xhw - rx*LLL/HW;
                   dy = yhw - ry*LLL/HW;
                   ddd = Math.sqrt( (dx+x_aufpunkt)*(dx+x_aufpunkt) + (dy+y_aufpunkt)*(dy+y_aufpunkt) );
              }
              xy[0] = x_aufpunkt+dx;
              xy[1] = y_aufpunkt+dy;
              return;
         }
         else if(dist==HW)
         {
              xy[0] = x;
              xy[1] = y;
              return;
         }
         else // if(dist>HW)
         {
//              double LLL=400.0;
              double LLL=VSCHALL/(double)N_PULSE;
              dx = xhw - rx*HW/LLL;
              dy = yhw - ry*HW/LLL;
              double ddd = (HW/LLL)*Math.sqrt( rx*rx + ry*ry );
              //while(ddd>HW) //!!!!
              if(ddd>HW) //einfach auf Mitte setzen
              {
                   //LLL+=1.0;
                   //dx = xhw - rx*LLL/HW;
                   //dy = yhw - ry*LLL/HW;
                   //ddd = (HW/LLL)*Math.sqrt( rx*rx + ry*ry );
                   xy[0] = x_aufpunkt;
                   xy[1] = y_aufpunkt;
              }
              else
              {
                  xy[0] = x_aufpunkt+dx;
                  xy[1] = y_aufpunkt+dy;
              }    
              return;
         }
    }
