public static Fasor resultOfOperationWithFasores(Fasor firstFasor, Fasor secondFasor, String operation) { if (!string.Equals(firstFasor.GetFuntionSinusoidal, secondFasor.GetFuntionSinusoidal)) { CorrectionOfSinusoidalFunctions(firstFasor, secondFasor); } ComplexBinomic firstBinomic = ConvertToBinomic(firstFasor); ComplexBinomic secondBinomic = ConvertToBinomic(secondFasor); ComplexBinomic result = ResolveOperation(firstBinomic, secondBinomic, operation); return(ConvertToFasor(result, firstFasor.GetFuntionSinusoidal, firstFasor.GetFrequency)); }
public static void CorrectionOfSinusoidalFunctions(Fasor firstFasor, Fasor secondFasor) // siempre devolvemos el resultado en cos { if (firstFasor.GetFuntionSinusoidal == "sin") { firstFasor.FuntionSinusoidal = secondFasor.GetFuntionSinusoidal; firstFasor.FaseAngle = firstFasor.FaseAngle - (Math.PI / 2); } else { CorrectionOfSinusoidalFunctions(secondFasor, firstFasor); } }
public static ComplexBinomic ConvertToBinomic(Fasor fasor) { return(new ComplexBinomic(fasor.GetAmplitude * Math.Cos(fasor.GetFaseAngle), fasor.GetAmplitude * Math.Sin(fasor.GetFaseAngle))); }