| RMVL 1.5.2 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
类 | 命名空间 | 类型定义 | 枚举 | 函数 | 变量
math.hpp 文件参考

基础数学库 更多...

`#include <cmath>`
`#include <numeric>`
`#include <unordered_map>`
`#include <vector>`
`#include <numbers>`
`#include <opencv2/core/matx.hpp>`
`#include "util.hpp"`
math.hpp 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

## 类
class | rm::EwTopsis< Tp >
| 熵权 TOPSIS 算法 更多...

## 命名空间
namespace | rm
namespace | rm::numeric_literals
namespace | cv

## 类型定义
using | cv::Matx11f = Matx<float, 1, 1>
using | cv::Matx11d = Matx<double, 1, 1>
using | cv::Matx51f = Matx<float, 5, 1>
using | cv::Matx15f = Matx<float, 1, 5>
using | cv::Matx51d = Matx<double, 5, 1>
using | cv::Matx15d = Matx<double, 1, 5>
using | cv::Matx55f = Matx<float, 5, 5>
using | cv::Matx55d = Matx<double, 5, 5>

## 枚举
enum | rm::AngleMode : bool { rm::RAD = true , rm::DEG = false }
| 角度制式 更多...
enum class | rm::CalPlane : uint8_t { rm::CalPlane::xyz = 0 , rm::CalPlane::xOy = 1 , rm::CalPlane::xOz = 2 , rm::CalPlane::yOz = 3 }
| 计算所在平面 更多...

## 函数
constexpr double | rm::numeric_literals::operator""_PI (long double num)
constexpr double | rm::numeric_literals::operator""_PI (long long unsigned num)
constexpr double | rm::numeric_literals::operator""_to_rad (long double num)
constexpr double | rm::numeric_literals::operator""_to_rad (long long unsigned num)
constexpr double | rm::numeric_literals::operator""_to_deg (long double num)
constexpr double | rm::numeric_literals::operator""_to_deg (long long unsigned num)
template<typename Tp>
constexpr Tp | rm::operator+ (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
template<typename Tp>
constexpr cv::Matx< Tp, 1, 1 > | rm::operator+ (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
template<typename Tp>
constexpr Tp | rm::operator- (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
template<typename Tp>
constexpr cv::Matx< Tp, 1, 1 > | rm::operator- (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
template<typename Tp>
constexpr Tp | rm::deg2rad (Tp deg)
| 角度转换为弧度
template<typename Tp>
constexpr Tp | rm::rad2deg (Tp rad)
| 弧度转换为角度
template<typename Tp>
constexpr cv::Matx< Tp, 3, 1 > | rm::point2matx (cv::Point3_< Tp > point)
| Point 类型转换为 Matx 类型
template<typename Tp>
constexpr cv::Point3_< Tp > | rm::matx2point (cv::Matx< Tp, 3, 1 > matx)
| Matx 类型转换为 Point 类型
template<typename Tp>
constexpr cv::Vec< Tp, 3 > | rm::matx2vec (cv::Matx< Tp, 3, 1 > matx)
| Matx 类型转换为 Vec 类型
template<typename Tp1, typename Tp2>
constexpr auto | rm::getDistance (const cv::Point_< Tp1 > &pt_1, const cv::Point_< Tp2 > &pt_2)
| 获取距离
template<typename Tp1, typename Tp2>
constexpr auto | rm::getDistance (const cv::Vec< Tp1, 2 > &vec_1, const cv::Vec< Tp2, 2 > &vec_2)
| 获取距离
template<typename Tp1, typename Tp2>
constexpr auto | rm::getDistance (const cv::Point3_< Tp1 > &pt_1, const cv::Point3_< Tp2 > &pt_2, CalPlane calplane=CalPlane::xyz)
| 获取距离
template<typename Tp1, typename Tp2>
constexpr auto | rm::getDistance (const cv::Vec< Tp1, 3 > &vec_1, const cv::Vec< Tp2, 3 > &vec_2, CalPlane calplane=CalPlane::xyz)
| 获取距离
template<typename Tp1, typename Tp2>
constexpr auto | rm::getDistance (const cv::Vec< Tp1, 4 > &line, const cv::Point_< Tp2 > &pt, bool direc=true)
| 点到直线距离，其中 \(P=(x_0,y_0)\) 到直线 \(l:Ax+By+C=0\) 距离公式为
template<typename Tp1, typename Tp2>
constexpr auto | rm::getHAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
| 获取与水平方向的夹角，以平面直角坐标系 \(x\) 轴为分界线， 逆时针 为正方向，范围: \((-180°,180°]\) ，默认返回弧度制
template<typename Tp1, typename Tp2>
constexpr auto | rm::getVAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
| 获取与垂直方向的夹角，以平面直角坐标系 \(y\) 轴为分界线， 顺时针 为正方向，范围: \((-180°,180°]\) ，默认返回弧度制
template<typename Tp>
constexpr Tp | rm::getDeltaAngle (Tp angle_1, Tp angle_2)
| 求两个角之间的夹角
template<typename Tp>
constexpr Tp | rm::sec (Tp x)
| 正割 \(\sec(x)\)
template<typename Tp>
constexpr Tp | rm::csc (Tp x)
| 余割 \(\csc(x)\)
template<typename Tp>
constexpr Tp | rm::cot (Tp x)
| 余切 \(\cot(x)\)
template<typename Tp>
constexpr Tp | rm::sgn (Tp x)
| 符号函数
template<typename Tp>
constexpr Tp | rm::sigmoid (Tp x, Tp k=1, Tp Kp=1, Tp mu=0)
| 计算 sigmoid(x) 在某一点的函数值
template<typename Tp>
constexpr Tp | rm::cross2D (const cv::Vec< Tp, 2 > &a, const cv::Vec< Tp, 2 > &b)
| 平面向量外积
template<typename Tp>
constexpr Tp | rm::cross2D (const cv::Point_< Tp > &a, const cv::Point_< Tp > &b)
| 平面向量外积
template<typename ForwardIterator>
ForwardIterator::value_type | rm::calculateModeNum (ForwardIterator first, ForwardIterator last)
| 在指定范围内寻找众数，时间复杂度 O(N)
template<typename T>
std::vector< T > | rm::operator+ (const std::vector< T > &vec1, const std::vector< T > &vec2)
| 使用 `std::vector` 表示的向量加法
template<typename T>
std::vector< T > | rm::operator- (const std::vector< T > &vec1, const std::vector< T > &vec2)
| 使用 `std::vector` 表示的向量减法
template<typename T>
std::vector< T > & | rm::operator+= (std::vector< T > &vec1, const std::vector< T > &vec2)
| 使用 `std::vector` 表示的向量自加
template<typename T>
std::vector< T > & | rm::operator-= (std::vector< T > &vec1, const std::vector< T > &vec2)
| 使用 `std::vector` 表示的向量自减
template<typename T>
std::vector< T > | rm::operator- (const std::vector< T > &vec)
| 使用 `std::vector` 表示的向量取反
template<typename T>
std::vector< T > | rm::operator* (const std::vector< T > &vec, T val)
| 使用 `std::vector` 表示的向量乘法（数乘）
template<typename T>
std::vector< T > | rm::operator* (T val, const std::vector< T > &vec)
| 使用 `std::vector` 表示的向量乘法（数乘）
template<typename T>
std::vector< T > & | rm::operator*= (std::vector< T > &vec, T val)
| 使用 `std::vector` 表示的向量乘法（数乘）
template<typename T>
std::vector< T > | rm::operator/ (const std::vector< T > &vec, T val)
| 使用 `std::vector` 表示的向量除法（数乘）
template<typename T>
std::vector< T > & | rm::operator/= (std::vector< T > &vec, T val)
| 使用 `std::vector` 表示的向量除法（数乘）

## 变量
constexpr double | rm::PI = ::std::numbers::pi
| 圆周率: \(\pi\)
constexpr double | rm::e = ::std::numbers::e
| 自然对数底数: \(e\)
constexpr double | rm::SQRT_2 = ::std::numbers::sqrt2
| 根号 2: \(\sqrt2\)
constexpr double | rm::PI_2 = PI / 2.
| PI / 2: \(\frac\pi2\)
constexpr double | rm::PI_4 = PI / 4.
| PI / 4: \(\frac\pi4\)

## 详细描述

基础数学库

作者
  RoboMaster Vision Community

版本
  1.0

日期
  2023-01-12

版权所有
  Copyright 2023 (c), RoboMaster Vision Community