Index: code/branches/radarDreiD/src/libraries/util/Math.cc
===================================================================
--- code/branches/radarDreiD/src/libraries/util/Math.cc	(revision 9786)
+++ code/branches/radarDreiD/src/libraries/util/Math.cc	(revision 9787)
@@ -213,13 +213,13 @@
     	//							y_axsis:	myorthonormal	(points up)
     	//							z_axsis:	myside			(points right)
-    	orxonox::Vector3 myside = mydirection.crossProduct(myorthonormal);
-    	orxout() << "mydirection " << mydirection << endl;
-    	orxout() << "mydirection.lenght " << mydirection.length() << endl;
-    	orxout() << "myorthonormal " << myorthonormal << endl;
-    	orxout() << "myorthonormal.lenght " << myorthonormal.length() << endl;
-    	orxout() << "myside " << myside << endl;
-    	orxout() << "myside.lenght " << myside.length() << endl;
-
-    	distance = 5 * distance / detectionlimit; // shrink vector on map
+
+    	orxonox::Vector3 myside = mydirection.crossProduct(myorthonormal); // get vector from Ship to object
+
+    	distance = 4*distance / detectionlimit; // shrink vector on map
+    	if(distance.length() > 1.0f) // if object would wander outside of the map
+    	    	{
+    	    	distance = distance / distance.length();
+    	   		}
+
 
     	// inverse of the transform matrix
@@ -245,9 +245,10 @@
 
     	// coordinate transformation
-    	distance.x = xinvtransform.x * distance.x + yinvtransform.x * distance.y + zinvtransform.x * distance.z;
-    	distance.y = xinvtransform.y * distance.x + yinvtransform.y * distance.y + zinvtransform.y * distance.z;
-    	distance.z = xinvtransform.z * distance.x + yinvtransform.z * distance.y + zinvtransform.z * distance.z;
-
-    	// cap vector for map
+    	orxonox::Vector3 distanceShip;
+    	distanceShip.x = xinvtransform.x * distance.x + yinvtransform.x * distance.y + zinvtransform.x * distance.z;
+    	distanceShip.y = xinvtransform.y * distance.x + yinvtransform.y * distance.y + zinvtransform.y * distance.z;
+    	distanceShip.z = xinvtransform.z * distance.x + yinvtransform.z * distance.y + zinvtransform.z * distance.z;
+
+    	// cap vector for map if its to long
     	//distance.x = clamp<float>(distance.x, -detectionlimit/5, detectionlimit/5);
     	//distance.y = clamp<float>(distance.y, -detectionlimit/5, detectionlimit/5);
@@ -257,9 +258,9 @@
 
     	// project vector for the rotated 3DMap on screen
-    	float xcoordinate = distance.z;
-    	float ycoordinate = distance.y;
-
-    	//float xcoordinate = distance.z; // z; cause z direction is to the side
-    	//float ycoordinate = distance.x*sin(mapangle)+distance.y*cos(mapangle);// -; cause on screen y coordinate points down
+    	//float xcoordinate = distance.z;
+    	//float ycoordinate = distance.y;
+
+    	float xcoordinate = distanceShip.z; // z; cause z direction is to the side
+    	float ycoordinate = distanceShip.x*sin(mapangle)+distanceShip.y*cos(mapangle);// -; cause on screen y coordinate points down
     	return orxonox::Vector2(xcoordinate , ycoordinate);
     }
Index: code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc	(revision 9786)
+++ code/branches/radarDreiD/src/modules/overlays/hud/HUDRadar.cc	(revision 9787)
@@ -171,4 +171,11 @@
             //Vector2 coord = get2DViewcoordinates(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition());
             Vector2 coord = get3DProjection(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), 0.6435011, detectionLimit_);
+            if(coord.y < 0)
+            	{
+            	orxonox::ColourValue color = it->second->getColour();
+            	color.a = 0.5f;
+            	it->second->setColour(color);
+            	}
+
             coord *= math::pi / 3.5f; // small adjustment to make it fit the texture
             it->second->setPosition((1.0f + coord.x - size) * 0.5f, (1.0f - coord.y - size) * 0.5f);
