Учись программированию на C++ Builder бесплатно!
Содержание[Скрыть]

При работе с тригонометрическими функциями в C++Builder необходимо подключать соответствующий заголовочный файл (библиотеку) – math.h и Math.hpp. Во всех тригонометрических функциях угол задаётся в радианах.

#include <math.h>
#include <Math.hpp>

DegToRad – преобразование из угла в радиану

Тригонометрическая функция DegToRad принимает значение угла типа double и переводит его в радиану.

double Rad = DegToRad((double)90);
// => 1,5707963267949

CycleToRad – преобразование из цикла в радиану

Тригонометрическая функция CycleToRad принимает значение цикла типа double и переводит его в радиану.

double Rad = CycleToRad(0.25); //четверть периода
// => 1,5707963267949

Вычисление синус и косинус угла

Чтобы вычислить синус или косинус угла, сначала необходимо перевести число в радианы.

double Sin = sin(DegToRad((double)45));
// => 0,707106781186548

double Cos = cos(DegToRad((double)45));
// => 0,707106781186548

Обратные тригонометрические функции

Все обратные тригонометрические функции рассчитывают значения:

  • acos и acosl в диапазоне [0, p];
  • asin, asinl, atan, atan2, atan2l и atanl в диапазоне [~π/2, π/2].

Как и другие тригонометрические функции значения возвращаются в радианах. Чтобы получить значение угла в градусах или в доле периода необходимо применить функции преобразования RadToDeg и RadToCycle.

double angle = atan(90); //В радианах => 1,55968567289729
double angle = RadToDeg(atan(90)); //В градусах => 89,3634064240365
double angle = RadToCycle(atan(90)); //В долях периода => 0,248231684511213

Если заданный аргумент в функциях acos, acosl, asin и asinl не входит в диапазон значений [-1, +1], то генерируется ошибка, которая оповещает о выходе значения за пределы области определения (EDOM).

Если заданный аргумент в гиперболических функциях tosh, coshl, sinh и sinhl будет слишком большой, то генерируется ошибка, которая оповещает о выходе значения за диапазон допустимых значений (ERANGE).

Таблица тригонометрических функций

Функция Синтаксис Описание Заголовочный файл
acos double acos(double x) Вычисляет арккосинус угла math.h
acosl long double acosl(long double x) Вычисляет арккосинус угла math.h
ArcCos Extended ArcCos(Extended X) Вычисляет арккосинус угла Math.hpp
ArcCosh Extended ArcCosh(Extended X) Вычисляет гиперболический арккосинус угла Math.hpp
ArcSin Extended ArcSin(Extended X) Вычисляет арксинус угла Math.hpp
ArcSinh Extended ArcSinh(Extended X) Вычисляет гиперболический арксинус угла Math.h
ArcTan2 Extended ArcTan2(Extended Y, Extended X) Вычисляет арктангенс (Y/X) угла Math.hpp
ArcTanh Extended ArcTanh(Extended X) Вычисляет гиперболический арктангенс угла Math.hpp
asin double asin(double x) Вычисляет арксинус угла math.h
asinl long double asinl(long double x) Вычисляет арксинус угла math.h
atan double atan(double x) Вычисляет арктангенс угла math.h
atan2 double atan2(double y, double x) Вычисляет арктангенс (у/x) угла math.h
atan2l long double atan2l(long double y, long double x) Вычисляет арктангенс (у/x) угла math.h
cos double cos(double x) Вычисляет косинус угла math.h
cosh double cosh(double x) Вычисляет гиперболический косинус угла math.h
Cosh Extended Cosh(Extended X) Вычисляет гиперболический косинус угла Math.hpp
coshl long double coshl(long double x) Вычисляет гиперболический косинус угла math.h
cosl long double cosl(long double x) Вычисляет косинус угла math.h
Cotan Extended Cotan(Extended X) Вычисляет котангенс угла Math.hpp
CycleToRad Extended CycleToRad(Extended Cycles) Вычисляет угол в радианах по значению в диапазоне Cycles: 2π*Cycles Math.hpp
DegToRad Extended DegToRad(Extended Degrees) Вычисляет угол в радианах по значению в диапазоне Degrees: Degrees*π/180 Math.hpp
hypot double hypot(double x, double y) Вычисляет гипотенузу треугольника с катетами x и у math.h
Hypot Extended Hypot(Extended X, Extended Y) Вычисляет гипотенузу по катетам X и Y Math.hpp
hypotl long double hypotl(long double x, long double y) Вычисляет гипотенузу треугольника с катетами x и у math.h
RadToCycle Extended RadToCycle(Extended Radians) Вычисляет угол в периодах по значению в диапазоне Radians: Radians/(2π) Math.hpp
RadToDeg Extended RadToDcg(Extended Radians) Вычисляет угол в градусах по значению в диапазоне Radians: Radians*180/π Math.hpp
sin double sin(double x) Вычисляет синус угла math.h
SinCos void SinCos(Extended Theta, Extended &Sin, Extended &Cos) Вычисляет синус Sin и косинус Cos угла Theta Math.hpp
Sinh Extended Sinh(Extended X) Вычисляет гиперболический синус угла Math.hpp
sinh double sinh(double x) Вычисляет гиперболический синус угла math.h
sinhl long double sinhl(long double x) Вычисляет гиперболический синус угла math.h
sinl long double sinl(long double x) Вычисляет синус угла math.h
Tan Extended Tan(Extended X) Вычисляет тангенс угла Math.hpp
tan double tan(double x) Вычисляет тангенс угла math.h
Tanh Extended Tanh(Extended X) Вычисляет гиперболический тангенс угла Math.hpp
tanh double tanh(double x) Вычисляет гиперболический тангенс угла math.h
tanhl long double tanhl(long double x) Вычисляет гиперболический тангенс угла math.h
tanl long double tanl(long double x) Вычисляет тангенс угла math.h
Поделиться