Ejemplo n.º 1
0
        public override void MoveToCore(Point newPosition)
        {
            ILinearFigure figure = LinearFigure;

            Parameter   = figure.GetNearestParameterFromPoint(newPosition);
            newPosition = figure.GetPointFromParameter(Parameter);
            base.MoveToCore(newPosition);
        }
Ejemplo n.º 2
0
        public static IEnumerable <Point> EnumeratePointsOnLinearFigure(this ILinearFigure figure)
        {
            var domain = figure.GetParameterDomain();

            for (double lambda = domain.Item1; lambda < domain.Item2; lambda += 0.01)
            {
                yield return(figure.GetPointFromParameter(lambda));
            }
        }
Ejemplo n.º 3
0
 public static ILinearFigure GetFigureIfPointWithinTolerance(this ILinearFigure figure, Point point)
 {
     if (IsPointWithinTolerance(figure, point))
     {
         return(figure);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 4
0
        public static Point SnapPointToFigure(this ILinearFigure figure, Point point)
        {
            var parameter = figure.GetNearestParameterFromPoint(point);

            return(figure.GetPointFromParameter(parameter));
        }
Ejemplo n.º 5
0
        public static bool IsPointWithinTolerance(this ILinearFigure figure, Point point)
        {
            Point pointOnFigure = figure.SnapPointToFigure(point);

            return(Math.Abs(pointOnFigure.Distance(point)) < figure.Drawing.CoordinateSystem.CursorTolerance);
        }