public Fasor sumaDeFasores(Fasor unFasor, Fasor otroFasor) { if (unFasor.frecuencia == otroFasor.frecuencia && unFasor.tipo == otroFasor.tipo) { Complex unComplejo = convertirAComplejo(unFasor); Complex otroComplejo = convertirAComplejo(otroFasor); unComplejo.polarToBinomial(); otroComplejo.polarToBinomial(); Complex suma = unComplejo.addComplex(otroComplejo); /*double amp = Math.Sqrt(Math.Pow(unFasor.getAmplitud(), 2) + Math.Pow(otroFasor.getAmplitud(), 2)); * double arg = Math.Atan(otroComplejo.getB() / unComplejo.getB());*/ suma.binomialToPolar(); return(new Fasor(unFasor.getTipo(), suma.getModulo(), unFasor.getFrecuencia(), suma.getArgumento())); } else { if (unFasor.frecuencia == otroFasor.frecuencia && unFasor.tipo != otroFasor.tipo) { if (unFasor.getTipo() == "sen") { unFasor.setTipo("cos"); unFasor.setAngulo(unFasor.getAngulo() - (Math.PI / 2)); } else { otroFasor.setTipo("cos"); otroFasor.setAngulo(otroFasor.getAngulo() - (Math.PI / 2)); } Complex unComplejo = convertirAComplejo(unFasor); Complex otroComplejo = convertirAComplejo(otroFasor); unComplejo.polarToBinomial(); otroComplejo.polarToBinomial(); Complex suma = unComplejo.addComplex(otroComplejo); /*double amp = Math.Sqrt(Math.Pow(unFasor.getAmplitud(), 2) + Math.Pow(otroFasor.getAmplitud(), 2)); * double arg = Math.Atan(otroComplejo.getB() / unComplejo.getB());*/ suma.binomialToPolar(); return(new Fasor(unFasor.getTipo(), suma.getModulo(), unFasor.getFrecuencia(), suma.getArgumento())); } else { return(new Fasor("no", -1, -1, -1)); //Error } } }
private void button1_Click(object sender, EventArgs e) { if (txtAngulo1.TextLength != 0 && txtAngulo2.TextLength != 0 && txtFrecuencia1.TextLength != 0 && txtFrecuencia2.TextLength != 0 && txtAmp1.TextLength != 0 && txtAmp2.TextLength != 0) { Fasor fasor1 = new Fasor(comboBox1.SelectedItem.ToString(), Convert.ToDouble(txtAmp1.Text), Convert.ToDouble(txtFrecuencia1.Text), Convert.ToDouble(txtAngulo1.Text)); Fasor fasor2 = new Fasor(comboBox2.SelectedItem.ToString(), Convert.ToDouble(txtAmp2.Text), Convert.ToDouble(txtFrecuencia2.Text), Convert.ToDouble(txtAngulo2.Text)); Fasor resultado = fasor1.sumaDeFasores(fasor1, fasor2); if (resultado.getTipo() != "no") { lblRes.Text = resultado.getAmplitud().ToString() + resultado.getTipo() + "( " + resultado.getFrecuencia().ToString() + "t + " + resultado.getAngulo().ToString() + " )"; } else { MessageBox.Show("Operacion no valida"); } } }