예제 #1
0
 public void TestNormalizedRotateLikeZVector()
 {
     Point3 norm, p;
     Random rand = new Random();
     for(int i = 0x00; i < TestParameters.PointTest; i++) {
         double x = 2.0*rand.NextDouble()-1.0d;
         double y = 2.0d*rand.NextDouble()-1.0d;
         double z = 2.0d*rand.NextDouble()-1.0d;
         p = new Point3(x, y, z);
         p.Normalize();
         norm = new Point3(0.0d, 0.0d, 1.0d);
         norm.NormalizedRotateLikeZVector(p.X, p.Y, p.Z);
         Assert.IsTrue(Math.Abs(norm.X-p.X) <= Math.Sqrt(Maths.GlobalEpsilon));
         Assert.IsTrue(Math.Abs(norm.Y-p.Y) <= Math.Sqrt(Maths.GlobalEpsilon));
         Assert.IsTrue(Math.Abs(norm.Z-p.Z) <= Math.Sqrt(Maths.GlobalEpsilon));
     }
 }