Search Results for

    Show / Hide Table of Contents

    Class PolySimplification2

    2D Polyline/Polygon simplification.

    This is a more complex approach than Polygon.Simplify(), which uses sequential vtx clustering and then runs douglas-peucker algorithm. That method can end up modifying long straight segments, which is not ideal in many contexts (eg manufacturing).

    Strategy here is : 1) find runs of vertices that are very close to straight lines (default 0.01mm deviation tol) 2) find all straight segments longer than threshold distance (default 2mm) 3) discard vertices that deviate less than tolerance (default = 0.2mm) from sequential-points-segment, unless they are required to preserve straight segments

    [TODO] currently doing greedy search in 1,3. Could do more optimal search. [TODO] currently measuring deviation of p1...pN-1 from line [p0,pN] for points [p0,p1,...pN]. could alternately fit best segment to p1...pN (p0 is already fixed). [TODO] 2d variant of variational shape segmentation?

    Inheritance
    Object
    PolySimplification2
    Inherited Members
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: g3
    Assembly: cs.temp.dll.dll
    Syntax
    public class PolySimplification2

    Constructors

    PolySimplification2(Polygon2d)

    Declaration
    public PolySimplification2(Polygon2d polygon)
    Parameters
    Type Name Description
    Polygon2d polygon

    PolySimplification2(PolyLine2d)

    Declaration
    public PolySimplification2(PolyLine2d polycurve)
    Parameters
    Type Name Description
    PolyLine2d polycurve

    Fields

    PreserveStraightSegLen

    After collapsing straight lines, any segment longer than this distance is explicitly preserved

    Declaration
    public double PreserveStraightSegLen
    Field Value
    Type Description
    Double

    Result

    Declaration
    public List<Vector2d> Result
    Field Value
    Type Description
    List<Vector2d>

    SimplifyDeviationThreshold

    we skip vertices that deviate less than this distance from the currently-accumulated line segment

    Declaration
    public double SimplifyDeviationThreshold
    Field Value
    Type Description
    Double

    StraightLineDeviationThreshold

    A series of points that deviates less than this distance from a line segment are considered 'on' that line

    Declaration
    public double StraightLineDeviationThreshold
    Field Value
    Type Description
    Double

    Methods

    Simplify()

    Declaration
    public void Simplify()

    Simplify(GeneralPolygon2d, Double)

    simplify outer and holes of a polygon solid with same thresholds

    Declaration
    public static void Simplify(GeneralPolygon2d solid, double deviationThresh)
    Parameters
    Type Name Description
    GeneralPolygon2d solid
    Double deviationThresh
    In This Article
    Back to top ViRGIS VR GIS