Exemple #1
0
 public double Dist(PVector p)
 {
     return (this - p).Magnitude;
 }
Exemple #2
0
 public double AngleBetween(PVector p)
 {
     return Math.Acos(this.Dot(p)/p.Magnitude/this.Magnitude);
 }
Exemple #3
0
 public double Dot(PVector p)
 {
     return X * p.X + Y * p.Y + Z * p.Z;
 }
Exemple #4
0
 public PVector Cross(PVector p)
 {
     return new PVector(Z*p.Y - Y*p.Z, Z*p.Z - X*p.Z, X*p.Y - Y*p.X);
 }
Exemple #5
0
 public PVector Add(PVector p)
 {
     return new PVector(X + p.X, Y + p.Y, Z + p.Z);
 }
Exemple #6
0
 public PVector Subtract(PVector p)
 {
     return new PVector(X - p.X, Y - p.Y, Z - p.Z);
 }
Exemple #7
0
 public double AngleBetween(PVector p)
 {
     return(Math.Acos(this.Dot(p) / p.Magnitude / this.Magnitude));
 }
        protected double Noise(double x, double y, double z)
        {
            // http://webstaff.itn.liu.se/~stegu/TNM022-2005/perlinnoiselinks/perlin-noise-math-faq.html

            var pv = new PVector(x, y, z);

            // Find the four points around (x,y,z)
            double xf = Math.Floor(x);
            double yf = Math.Floor(y);
            double zf = Math.Floor(z);
            var points = new[] 
            { 
                new PVector(xf, yf, zf),     new PVector(xf, yf, zf+1),    new PVector(xf, yf+1, zf),
                new PVector(xf, yf+1, zf+1), new PVector(xf+1, yf, zf),    new PVector(xf+1, yf, zf+1),
                new PVector(xf+1, yf+1, zf), new PVector(xf+1, yf+1, zf+1)
            };

            var a = new double[8];
            for(int i = 0; i < 8; i++)
            {
                var grad = new PVector(Random(1.0), Random(1.0));
                a[i] = grad * (pv - points[i]);
            }

            throw new NotImplementedException();
        }
Exemple #9
0
 public double Dist(PVector p)
 {
     return((this - p).Magnitude);
 }
Exemple #10
0
 public PVector Cross(PVector p)
 {
     return(new PVector(Z * p.Y - Y * p.Z, Z * p.Z - X * p.Z, X * p.Y - Y * p.X));
 }
Exemple #11
0
 public double Dot(PVector p)
 {
     return(X * p.X + Y * p.Y + Z * p.Z);
 }
Exemple #12
0
 public PVector Subtract(PVector p)
 {
     return(new PVector(X - p.X, Y - p.Y, Z - p.Z));
 }
Exemple #13
0
 public PVector Add(PVector p)
 {
     return(new PVector(X + p.X, Y + p.Y, Z + p.Z));
 }