// operações public double Escalar(Vetor2D a, Vetor2D b) { double escalar; escalar = ((a.x * b.x) + (a.y * b.y)); return(escalar); }
public double Modulo(Vetor2D a) { double modulo; modulo = Math.Sqrt((a.x * a.x) + (a.y * a.y)); return(modulo); }
public double Angulo(Vetor2D a, Vetor2D b) { double angulo; angulo = ((Escalar(a, b)) / (Modulo(a) * Modulo(b))); double result = Math.Acos(angulo); return(result); //return angulo; }
public Vetor2D Projecao(Vetor2D a, Vetor2D b) { double projecao; projecao = ((Escalar(a, b)) / (Modulo(a) * Modulo(a))); double x1 = projecao * a.x; double x2 = projecao * a.y; Vetor2D vetorproj = new Vetor2D(x1, x2); return(vetorproj); }
static void Main(string[] args) { Vetor2D a = new Vetor2D(); Vetor2D b = new Vetor2D(); Vetor2D c = new Vetor2D(); Console.WriteLine("Digite a componente x do vetor B:"); b.setX(Convert.ToDouble(Console.ReadLine())); Console.WriteLine("Digite a componente y do vetor B:"); b.setY(Convert.ToDouble(Console.ReadLine())); Console.WriteLine("\nProduto escalar dos vetores: " + a.Escalar(a, b)); Console.WriteLine("Módulo do vetor a: " + a.Modulo(a)); Console.WriteLine("Módulo do vetor b: " + b.Modulo(b)); Console.WriteLine("Ângulo entre os dois vetores: " + a.Angulo(a, b)); c = a.Projecao(a, b); Console.WriteLine("O vetor projeção de a e b é: (" + c.getX() + ", " + c.getY() + ")"); Console.ReadLine(); }