HOWTO · C++
Funções trigonométricas em C++
Este artigo demonstra como utilizar funções trigonométricas de STL em C++
Nesta página
Este artigo irá explicar como usar funções trigonométricas de STL em C++.
Use a função std::sin para calcular o seno em C++
As funções trigonométricas em C++ são fornecidas sob o cabeçalho <cmath>. Geralmente, funções matemáticas comuns foram herdadas da linguagem C, mas a maioria delas são sobrecarregadas em C++ para serem interoperáveis com diferentes tipos de argumento.
Neste caso, representamos a função std::sin para calcular o seno para o argumento fornecido. O argumento deve ser um valor em radianos e, se a função for bem-sucedida, o valor de retorno ficará na faixa de [-1 ; +1]. Observe que std::sin retorna argumentos não modificados se seu valor for +-0.
O código de exemplo a seguir calcula valores de seno para ângulos comuns.
#include <cmath>
#include <iostream>
using std::cout;
using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "sin(pi) = " << std::sin(pi) << '\n'
<< "sin(pi/6) = " << std::sin(pi / 6) << '\n'
<< "sin(pi/4) = " << std::sin(pi / 4) << '\n'
<< "sin(pi/3) = " << std::sin(pi / 3) << '\n'
<< "sin(pi/2) = " << std::sin(pi / 2) << '\n'
<< "sin(+0) = " << std::sin(0.0) << '\n'
<< "sin(-0) = " << std::sin(-0.0) << '\n';
return EXIT_SUCCESS;
}
sin(pi) = 1.22465e-16
sin(pi/6) = 0.5
sin(pi/4) = 0.707107
sin(pi/3) = 0.866025
sin(pi/2) = 1
sin(+0) = 0
sin(-0) = -0
Use a função std::cos para calcular o cosseno em C++
std::cos é outra função trigonométrica central, e tem características semelhantes às da std::sin exceto aquela dos valores retornados para os mesmos argumentos. Observe que todas as funções trigonométricas podem aceitar o valor de ângulo como um número inteiro de ponto flutuante, mas o resultado correspondente é sempre retornado como um de ponto flutuante.
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "cos(pi) = " << std::cos(pi) << '\n'
<< "cos(pi/6) = " << std::cos(pi/6) << '\n'
<< "cos(pi/4) = " << std::cos(pi/4) << '\n'
<< "cos(pi/3) = " << std::cos(pi/3) << '\n'
<< "cos(pi/2) = " << std::cos(pi/2) << '\n'
<< "cos(+0) = " << std::cos(0.0) << '\n'
<< "cos(-0) = " << std::cos(-0.0) << '\n';
return EXIT_SUCCESS;
}
cos(pi) = -1
cos(pi/6) = 0.866025
cos(pi/4) = 0.707107
cos(pi/3) = 0.5
cos(pi/2) = 6.12323e-17
cos(+0) = 1
cos(-0) = 1
Use a função std::tan para calcular a tangente para um determinado valor de radianos
Por outro lado, temos a função std::tan para calcular os valores tangentes para determinados argumentos. Como essas funções retornam valores de ponto flutuante, há uma chance de que algumas exceções de erro matemático possam ser levantadas, que são descritas em detalhes aqui. Além disso, temos versões de arco para cada função trigonométrica e elas têm o prefixo a adicionado aos nomes das funções originais.
#include <iostream>
#include <cmath>
using std::cout; using std::endl;
const double pi = std::acos(-1);
int main() {
cout << "tan(pi) = " << std::tan(pi) << '\n'
<< "tan(pi/6) = " << std::tan(pi/6) << '\n'
<< "tan(pi/4) = " << std::tan(pi/4) << '\n'
<< "tan(pi/3) = " << std::tan(pi/3) << '\n'
<< "tan(pi/2) = " << std::tan(pi/2) << '\n'
<< "tan(+0) = " << std::tan(0.0) << '\n'
<< "tan(-0) = " << std::tan(-0.0) << '\n';
return EXIT_SUCCESS;
}
tan(pi) = -1.22465e-16
tan(pi/6) = 0.57735
tan(pi/4) = 1
tan(pi/3) = 1.73205
tan(pi/2) = 1.63312e+16
tan(+0) = 0
tan(-0) = -0