Como eu posso encontrar o ângulo entre dois vetores a partir do cosseno? teria como acessar a tabela do cosseno no programa?
Estou fazendo um trabalho que meu professor passou e ele pediu o seguinte:
Fazer um programa que crie uma classe que represente um vetor matemático.
A classe deve ter métodos para:
- Ler e definir os atributos dos vetores (durante a aula utilizamos get"Algo" como nome desses métodos)
- Retornar as seguintes informações sobre os vetores: ângulo em graus, ângulo em radianos, componente vertical, componente horizontal, comprimento
- Realizar a soma de vetores (operador +)
- Realizar a subtração de vetores (operador -)
- Realizar a multiplicação POR escalar (operador *)
- Realizar o produto escalar (operador *)
Está ficando assim:
#include <iostream>
#include <math.h>
using namespace std;
class vetores{
public:
setValor(float x);
float getValor();
setCompH(float ch);
float getCompH();
setCompV(float cv);
float getCompV();
vetores operator+(vetores q);
vetores operator-(vetores r);
vetores operator*(float f);
vetores operator=(float t);
vetores operator/(float u);
private:
float valor;
float comph;
float compv;
};
vetores::setValor(float x){
valor = x;
}
vetores::setCompH(float ch){
comph = ch;
}
vetores::setCompV(float cv){
compv = cv;
}
float vetores::getValor(){
return valor;
}
float vetores::getCompH(){
return comph;
}
float vetores::getCompV(){
return compv;
}
vetores vetores::operator+(vetores q){
vetores res1;
res1.setValor(valor + q.getValor());
return res1;
}
vetores vetores::operator-(vetores r){
vetores res2;
res2.setValor(valor - r.getValor());
return res2;
}
vetores vetores::operator*(float f) {
vetores res3, s;
s.setValor(2);
res3.setValor(valor * s.getValor());
return res3;
}
vetores vetores::operator=(float t){
vetores res4;
res4.setValor(valor = t);
return res4;
}
vetores vetores::operator/(float u){
vetores res5;
res5.setValor(valor / u);
return res5;
}
int main(){
vetores ch1, ch2, cv1, cv2, somax, somay, soma, subx, suby, mult1x, mult2x, mult1y, mult2y, prodesc;
float x1, y1, x2, y2, c1, c2, ang, res, c1c2;
cout << "Insira o valor da componente horizontal do vetor 1: ";
cin >> x1;
ch1.setCompH(x1);
cout << "Insira o valor da componente vertical do vetor 1: ";
cin >> y1;
cv1.setCompV(y1);
cout << "Insira o valor da componente horizontal do vetor 2: ";
cin >> x2;
ch2.setCompH(x2);
cout << "Insira o valor da componente vertical do vetor 2: ";
cin >> y2;
cv2.setCompV(y2);
c1 = sqrt(ch1.getCompH()*ch1.getCompH() + cv1.getCompV()*cv1.getCompV());
c2 = sqrt(ch2.getCompH()*ch2.getCompH() + cv2.getCompV()*cv2.getCompV());
somax = ch1.getCompH() + ch2.getCompH();
somay = cv1.getCompV() + cv2.getCompV();
subx = ch1.getCompH() - ch2.getCompH();
suby = cv1.getCompV() - cv2.getCompV();
mult1x = ch1.getCompH()*2;
mult2x = ch2.getCompH()*2;
mult1y = cv1.getCompV()*2;
mult2y = cv2.getCompV()*2;
prodesc = (ch1.getCompH() * ch2.getCompH()) + (cv1.getCompV() * cv2.getCompV());
c1c2 = c1*c2;
res = cos (prodesc.getValor() / c1c2);
return 0;
}