public void vetorProjecao(Vetor2d u) // vetor projeção de a em um b { Vetor2d q = new Vetor2d(); q.x = ((produtoEscalar(u) / ((Math.Pow(u.x, 2) + Math.Pow(u.y, 2)) * u.x))); q.y = ((produtoEscalar(u) / ((Math.Pow(u.x, 2) + Math.Pow(u.y, 2)) * u.y))); Console.WriteLine("Vetor Projeção: (" + q.x + "." + q.y + ")"); }
static void Main(string[] args) { //inicializa o default Vetor2d v1 = new Vetor2d(); Vetor2d v2 = new Vetor2d(); //funções v1.setX(5.0); v1.setY(1.0); v2.setX(8.0); //setters v2.setY(2.0); Console.WriteLine("Get X vetor 1: " + v1.getX()); Console.WriteLine("Get Y vetor 1: " + v1.getY()); Console.WriteLine("Get X vetor 2: " + v2.getX()); //getters Console.WriteLine("Get Y vetor 2: " + v2.getY()); Console.WriteLine("\nProd. escalar V1 e V2: " + v1.produtoEscalar(v2)); //prod escalar de v1 com v2 Console.WriteLine("\nModulo V1: " + v1.modulo()); //modulo v1 Console.WriteLine("Modulo V2: " + v2.modulo()); //modulo v2 Console.WriteLine("\nAngulo entre V1 e V2: " + v1.angulo(v2)); //angulo entre V1 e V2 v1.vetorProjecao(v2); //vetor projeção Console.Read(); }
public double angulo(Vetor2d z) //angulo entre vetores { return(Math.Acos((z.x * x + z.y * y) / (modulo() * Math.Sqrt((Math.Pow(z.x, 2) + Math.Pow(z.y, 2)))))); }
public double produtoEscalar(Vetor2d k) //produto escalar entre dois vetores { return(x * k.x + y * k.y); }