//letra D) private double Modulo(Vetor2D v) { double modulo; modulo = System.Math.Sqrt((v.x * v.x) + (v.y * v.y)); return(modulo); }
//MÉTODOS //letra C) private double ProdEscalar(Vetor2D vA, Vetor2D vB) { double produto; produto = (vA.x * vB.x) + (vA.y * vB.y); return(produto); }
//MÉTODO PARA TESTE public void Exibicao(Vetor2D vA, Vetor2D vB) { Console.WriteLine("O produto escalar entre vA e vB é: " + ProdEscalar(vA, vB) + "."); Console.WriteLine("O módulo de vA é: " + Modulo(vA) + "."); Console.WriteLine("O módulo de vB é: " + Modulo(vB) + "."); Console.WriteLine("O ângulo entre vA e vB é: " + Angulo(vA, vB) + " graus."); Console.WriteLine("A projeção de vA em vB é: " + Projecao(vA, vB).x + " em x; " + Projecao(vA, vB).y + " em y."); }
//letra F) private Vetor2D Projecao(Vetor2D vA, Vetor2D vB) { Vetor2D projecao = new Vetor2D(); projecao.x = (ProdEscalar(vA, vB) / (Modulo(vA) * Modulo(vA))) * vA.x; projecao.y = (ProdEscalar(vA, vB) / (Modulo(vA) * Modulo(vA))) * vA.y; return(projecao); }
//letra E) private double Angulo(Vetor2D vA, Vetor2D vB) { double angulo; angulo = System.Math.Acos(ProdEscalar(vA, vB) / (Modulo(vA) * Modulo(vB))); //usando funcao de arccosseno da .Math angulo = (angulo * 180) / System.Math.PI; //convertendo pra graus return(angulo); }
static void Main(string[] args) { //v1 Vetor2D v1 = new Vetor2D(); Console.WriteLine("Insira a componente X do vetor 1: "); v1.X = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Insira a componente Y do vetor 1: "); v1.Y = Convert.ToDouble(Console.ReadLine()); //v2 Vetor2D v2 = new Vetor2D(); Console.WriteLine("Insira a componente X do vetor 2: "); v2.X = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Insira a componente Y do vetor 2: "); v2.Y = Convert.ToDouble(Console.ReadLine()); //exibindo v1.Exibicao(v1, v2); Console.ReadKey(); }