//	EPROG Aufgabe #3171 (Vektoren)
//	Name:				Sinan SARAL
//	Matrikel Nummer:	0125368
//	Beschreibung:		führt sämtliche VektorOperationen durch; wird verwendet von Vektoren.java
//	Dokumentation siehe:Vektoren.txt
//	Datei:				VektorOperationen.java

public class VektorOperationen
{
  public static float[] addiereVektoren(float[] vektor1, float[] vektor2)
  {
    for (byte zaehler = 0; zaehler < vektor1.length; zaehler++)
      vektor1[zaehler] += vektor2[zaehler];
    return vektor1;
  }

  public static float[] subtrahiereVektoren(float[] vektor1, float[] vektor2)
  {
    for (byte zaehler = 0; zaehler < vektor1.length; zaehler++)
      vektor1[zaehler] -= vektor2[zaehler];
    return vektor1;
  }

  public static float[] multipliziereSkalarVektor(float skalar, float[] vektor)
  {
    for (byte zaehler = 0; zaehler < vektor.length; zaehler++)
      vektor[zaehler] *= skalar;
    return vektor;
  }

  public static float[] multipliziereVektoren(float[] vektor1, float[] vektor2)
  {
    float[] ergebnisVektor = new float[4];
    float[] parameterVektor1 = new float[2];
    float[] parameterVektor2 = new float[2];

    for (byte zaehler = 0; zaehler < 3; zaehler++)
    {
      parameterVektor1[0] = vektor1[(zaehler + 1) % 3];
      parameterVektor1[1] = vektor1[(zaehler + 2) % 3];
      parameterVektor2[0] = vektor2[(zaehler + 1) % 3];
      parameterVektor2[1] = vektor2[(zaehler + 2) % 3];
      ergebnisVektor[zaehler] = determinante(parameterVektor1, parameterVektor2);
    }
    return ergebnisVektor;
  }//zweite Koo. von ergebnisVektor muß man nicht mit -1 multiplizieren:siehe Dokumentation

  public static float determinante(float[] vektor1, float[] vektor2)
  {
    return vektor1[0] * vektor2[1] - vektor1[1] * vektor2[0];
  }

}