double getDistanceToLine(Vec3 normale, Vec3 punkt, double verschiebung){ return abs((normale/normale.Length())*punkt-verschiebung); } Vec3 spiegelungUmNomrale(Vec3 V,Vec3 A){ Vec3 result = V-2*((A*V)/(A*A))*A; return result; } Vec3 W1W2ORTHO((W1-W2).p[2],0,-(W1-W2).p[0]); if(getDistanceToLine(W1W2ORTHO,Vec3(posX_,0,posZ_),W1W2ORTHO/W1W2ORTHO.Length()*W1)<=0){ //mouseSpeed=spiegelungUrsprungsgerade(getAngle2D((W1-W2).p[0],(W1-W2).p[2],1,0),mouseSpeed); mouseSpeed=spiegelungUmNomrale(mouseSpeed,W1W2ORTHO); }