Exemple #1
0
        public static void GenerateRandomAffineTransformation(PluginProperties pluginProperties)
        {
            Random rnd             = new Random();
            var    randomDistance  = rnd.Next(MinimumDistance, MaximumDistance);
            var    randomBearing   = rnd.Next(MinimumBearing, MaximumBearing);
            var    startCoordinate = new Coordinate();          // lat & lon = 0
            var    endCoordinate   = GetEndCoordinate(startCoordinate, randomDistance, randomBearing);

            pluginProperties.AffineTransformation = AffineTransformationFactory.CreateFromControlVectors(startCoordinate, endCoordinate);
        }
        void Run(double p0x, double p0y,
                 double pp0x, double pp0y
                 )
        {
            var p0 = new Coordinate(p0x, p0y);

            var pp0 = new Coordinate(pp0x, pp0y);

            var trans = AffineTransformationFactory.CreateFromControlVectors(
                p0, pp0);

            var dest = new Coordinate();

            AssertEqualPoint(pp0, trans.Transform(p0, dest));
        }
        public static IGeometry TransformByVectors(IGeometry g, IGeometry control)
        {
            var nControl = control.NumGeometries;
            var src      = new Coordinate[nControl];
            var dest     = new Coordinate[nControl];

            for (int i = 0; i < nControl; i++)
            {
                var contComp = control.GetGeometryN(i);
                var pts      = contComp.Coordinates;
                src[i]  = pts[0];
                dest[i] = pts[1];
            }
            var trans = AffineTransformationFactory.CreateFromControlVectors(src, dest);

            Console.WriteLine(trans);
            return(trans.Transform(g));
        }
        void Run(double p0x, double p0y,
                 double p1x, double p1y,
                 double pp0x, double pp0y,
                 double pp1x, double pp1y
                 )
        {
            Coordinate p0 = new Coordinate(p0x, p0y);
            Coordinate p1 = new Coordinate(p1x, p1y);

            Coordinate pp0 = new Coordinate(pp0x, pp0y);
            Coordinate pp1 = new Coordinate(pp1x, pp1y);

            AffineTransformation trans = AffineTransformationFactory.CreateFromControlVectors(
                p0, p1,
                pp0, pp1);

            Coordinate dest = new Coordinate();

            AssertEqualPoint(pp0, trans.Transform(p0, dest));
            AssertEqualPoint(pp1, trans.Transform(p1, dest));
        }