public LineShape(IDomain segment, Point2D start, Point2D end, string name) { ParametersDomain = segment; Start = start; End = end; Name = name; LineEquation = x => (End.Y - Start.Y) * (x - start.X) / (End.X - Start.X) + Start.Y; Generator = new SimpleFunctionKeeper(LineEquation); }
public VerticalSegment(double Y1, double Y2, double X, string name) { Name = name; var countOfCalls = 0; Generator = new SimpleFunctionKeeper(d => { if (countOfCalls++ == 0) { return(Y1); } return(Y2); }); ParametersDomain = new SimpleDomainKeeper(Enumerable.Repeat(X, 2)); }