ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Core.Geometry Namespace / IGeometryEngine Interface / Scale Method / Scale(Geometry,MapPoint,Double,Double) Method
The geometry to scale.
The origin around which the geometry will be scaled.
The scale factor along the X-axis.
The scale factor along the Y-axis.
Example

    Scale(Geometry,MapPoint,Double,Double) Method
    Scales the geometry about the specified origin.
    Syntax

    Parameters

    geometry
    The geometry to scale.
    origin
    The origin around which the geometry will be scaled.
    sx
    The scale factor along the X-axis.
    sy
    The scale factor along the Y-axis.

    Return Value

    The scaled geometry.
    Exceptions
    ExceptionDescription
    Either geometry or origin or both are null or empty.
    The method is not implemented for GeometryBag.
    Incompatible spatial references between the input geometries.
    Remarks

    GeometryEngine Scale

    Example
    Scale a geometry
    List<MapPoint> pts = new List<MapPoint>();
    pts.Add(MapPointBuilderEx.CreateMapPoint(1.0, 1.0, 3.0));
    pts.Add(MapPointBuilderEx.CreateMapPoint(1.0, 3.0, 3.0));
    pts.Add(MapPointBuilderEx.CreateMapPoint(3, 3, 3.0));
    pts.Add(MapPointBuilderEx.CreateMapPoint(3.0, 1.0, 3.0));
    
    MapPoint midPt = MapPointBuilderEx.CreateMapPoint(1.5, 1.5);
    
    // polyline
    Polyline polyline = PolylineBuilderEx.CreatePolyline(pts);
    // polyline.Length = 6
    // polyline.Length3D = 0
    Geometry g = GeometryEngine.Instance.Scale(polyline, midPt, 0.5, 0.5);
    Polyline resultPolyline = g as Polyline;
    // resultPolyline.length  = 3
    // resultPolyline.Points[0] = 1.25, 1.25, 3
    // resultPolyline.Points[1] = 1.25, 2.25, 3
    // resultPolyline.Points[2] = 2.25, 2.25, 3
    // resultPolyline.Points[3] = 2.25, 1.25, 3
    
    // 3D point - scale in 3d
    MapPoint midPtZ = MapPointBuilderEx.CreateMapPoint(1.5, 1.5, 1);
    g = GeometryEngine.Instance.Scale(polyline, midPtZ, 0.5, 0.5, 0.25);
    resultPolyline = g as Polyline;
    // resultPolyline.Points[0] = 1.25, 1.25, 1.5
    // resultPolyline.Points[1] = 1.25, 2.25, 1.5
    // resultPolyline.Points[2] = 2.25, 2.25, 1.5
    // resultPolyline.Points[3] = 2.25, 1.25, 1.5
    
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    ArcGIS Pro version: 2.0 or higher.
    See Also