Dispenser/DispenserCommon/Utils/LineEquationUtil.cs

46 lines
1.2 KiB
C#

namespace DispenserCommon.Utils;
public class LineEquationUtil
{
public static double CalculateX(LineEquation lineEquation, double y)
{
return lineEquation.CalculateXCoordinate(y);
}
public static double CalculateY(LineEquation lineEquation, double x)
{
return lineEquation.CalculateYCoordinate(x);
}
public static LineEquation CreateLineEquation(double x1, double y1, double x2, double y2)
{
return new LineEquation(x1, y1, x2, y2);
}
public class LineEquation
{
public LineEquation(double x1, double y1, double x2, double y2)
{
CalculateSlopeAndIntercept(x1, y1, x2, y2);
}
public double Slope { get; private set; }
public double Intercept { get; private set; }
private void CalculateSlopeAndIntercept(double x1, double y1, double x2, double y2)
{
Slope = (y2 - y1) / (x2 - x1);
Intercept = y1 - Slope * x1;
}
public double CalculateXCoordinate(double y)
{
return (y - Intercept) / Slope;
}
public double CalculateYCoordinate(double x)
{
return Slope * x + Intercept;
}
}
}