//angulo entre dois vetores public double anguloVetor(Vetor2D vetor) { double ang; ang = (produtoEscalar(vetor) / (moduloVetor() * vetor.moduloVetor())); return(Math.Acos(ang) * 180 / Math.PI); }
//projeção vetor A em B public Vetor2D projecaoVetor(Vetor2D vetor) { double aux; Vetor2D vetorProjecao = new Vetor2D(); aux = (produtoEscalar(vetor) / produtoEscalar(this)); vetorProjecao.setX(getX() * aux); vetorProjecao.setY(getY() * aux); return(vetorProjecao); }
static void Main(string[] args) { Vetor2D vet1 = new Vetor2D(10.0, 5.0); Vetor2D vet2 = new Vetor2D(4.0, -2.0); Console.WriteLine("Produto escalar entre os 2 vetores: " + vet1.produtoEscalar(vet2)); Console.WriteLine("Modulo do vetor 1: " + vet1.moduloVetor()); Console.WriteLine("Modulo do vetor 2: " + vet2.moduloVetor()); Console.WriteLine("Angulo entre os vetores: " + vet1.anguloVetor(vet2) + " graus"); Vetor2D vetprojecao = new Vetor2D(); vetprojecao = vet1.projecaoVetor(vet2); Console.WriteLine("Projecao do vetor 1 no vetor 2: (" + vetprojecao.getX() + ", " + vetprojecao.getY() + ")"); vetprojecao = vet2.projecaoVetor(vet1); Console.WriteLine("Projecao do vetor 2 no vetor 1: (" + vetprojecao.getX() + ", " + vetprojecao.getY() + ")"); Console.ReadLine(); }
//produto escalar entre os 2 vetores public double produtoEscalar(Vetor2D vetor) { return(X * vetor.getX() + Y * vetor.getY()); }