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); }
public static IGeometry TransformByBaseline(IGeometry g, IGeometry destBaseline) { var env = g.EnvelopeInternal; var src0 = new Coordinate(env.MinX, env.MinY); var src1 = new Coordinate(env.MaxX, env.MinY); var destPts = destBaseline.Coordinates; var dest0 = destPts[0]; var dest1 = destPts[1]; var trans = AffineTransformationFactory.CreateFromBaseLines(src0, src1, dest0, dest1); return(trans.Transform(g)); }
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)); }
private static IGeometry FontGlyph(IGeometry g, String text, Font font) { var env = FunctionsUtil.GetEnvelopeOrDefault(g); var geomFact = FunctionsUtil.GetFactoryOrDefault(g); var textGeom = FontGlyphReader.Read(text, font, geomFact); var envText = textGeom.EnvelopeInternal; if (g != null) { // transform to baseline var baseText0 = new Coordinate(envText.MinX, envText.MinY); var baseText1 = new Coordinate(envText.MaxX, envText.MinY); var baseGeom0 = new Coordinate(env.MinX, env.MinY); var baseGeom1 = new Coordinate(env.MaxX, env.MinY); AffineTransformation trans = AffineTransformationFactory.CreateFromBaseLines(baseText0, baseText1, baseGeom0, baseGeom1); return(trans.Transform(textGeom)); } return(textGeom); }
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)); }