RMVL
1.5.0-dev
Robotic Manipulation and Vision Library
|
专题 | |
数据读写(I/O) | |
数据结构 | |
包含自定义的容器适配器以及其余数据结构 | |
卡尔曼滤波模块 | |
使用 cv::Matx 改写的轻量级卡尔曼滤波和扩展卡尔曼滤波模块 | |
数值计算模块 | |
包含函数插值、曲线拟合、非线性方程(组)数值解、常微分方程数值解等数值计算算法 | |
最优化算法库 | |
包含一维函数最小值搜索、无约束多维函数最小值搜索等最优化算法 | |
图像预处理模块 | |
提供了二值化等图像预处理功能 | |
串口通信模块 | |
基于 GNU C <termios.h> 的串行接口通信 | |
定时、计时模块 | |
命名空间 | |
namespace | rm::numeric_literals |
类 | |
class | rm::EwTopsis< Tp > |
熵权 TOPSIS 算法 更多... | |
class | rm::Exception |
该类封装了有关程序中发生的错误的所有或几乎所有必要信息。异常通常是通过 RMVL_Error 和 RMVL_Error_ 宏隐式构造和抛出的 更多... | |
struct | rm::hash_aggregate< Tp, Enable > |
专为聚合类添加的 hash 生成可调用对象 更多... | |
struct | rm::hash_traits< Tp, Enable > |
哈希生成函数类型 traits 更多... | |
struct | rm::hash_traits< Tp, std::enable_if_t<!std::is_aggregate_v< Tp > > > |
非聚合类哈希生成函数类型 traits 更多... | |
struct | rm::hash_traits< Tp, std::enable_if_t< std::is_aggregate_v< Tp > > > |
聚合类哈希生成函数类型 traits 更多... | |
宏定义 | |
#define | __RMVL_CAT__(x, y) |
#define | __RMVL_CAT_(x, y) |
#define | __RMVL_CAT(x, y) |
#define | __RMVL_EXPAND(x) |
#define | RMVL_Func "<unknown>" |
#define | HIGHLIGHT_(...) |
#define | WARNING_(...) |
#define | PASS_(...) |
#define | ERROR_(...) |
#define | INFO_(...) |
#define | DEBUG_WARNING_(...) |
#define | DEBUG_ERROR_(...) |
#define | DEBUG_HIGHLIGHT_(...) |
#define | DEBUG_INFO_(...) |
#define | DEBUG_PASS_(...) |
#define | RMVL_ERRHANDLE(...) |
#define | RMVL_Error(code, msg) |
调用错误处理程序 | |
#define | RMVL_Error_(code, fmt, ...) |
调用错误处理程序 | |
#define | RMVL_Assert(expr) |
在运行时检查条件,如果失败则抛出异常 | |
#define | RMVL_DbgAssert(expr) |
在 Debug 条件下或启用静态分析工具的情况下,在运行时检查条件,如果失败则抛出异常 | |
类型定义 | |
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 } |
计算所在平面 更多... | |
enum | rm::EulerAxis : int { rm::X = 0 , rm::Y = 1 , rm::Z = 2 } |
欧拉角转轴枚举 更多... | |
enum | RMVLErrorCode : int { RMVL_StsOk = 0 , RMVL_StsBackTrace = -1 , RMVL_StsError = -2 , RMVL_StsNoMem = -3 , RMVL_StsBadArg = -4 , RMVL_StsBadSize = -5 , RMVL_StsNullPtr = -6 , RMVL_StsNotaNumber = -7 , RMVL_StsDivByZero = -8 , RMVL_StsOutOfRange = -9 , RMVL_StsAssert = -10 , RMVL_StsInvFmt = -11 , RMVL_BadDynamicType = -12 } |
RMVL 错误码 更多... | |
函数 | |
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 表示的向量除法(数乘) | |
cv::Point2f | rm::calculateRelativeAngle (const cv::Matx33f &cameraMatrix, cv::Point2f center) |
计算相机中心与目标中心之间的相对角度 | |
cv::Point2f | rm::calculateRelativeCenter (const cv::Matx33f &cameraMatrix, cv::Point2f angle) |
计算目标中心在像素坐标系下的坐标 | |
cv::Vec2f | rm::cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Vec3f ¢er3d) |
计算 3D 目标点在像素坐标系下的坐标 | |
cv::Point2f | rm::cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Point3f ¢er3d) |
计算 3D 目标点在像素坐标系下的坐标 | |
template<typename Tp > | |
cv::Matx< Tp, 3, 3 > | rm::euler2Mat (Tp val, EulerAxis axis) |
欧拉角转换为旋转矩阵 | |
std::string | rm::format (const char *fmt,...) |
返回使用类 printf 表达式格式化的文本字符串。 | |
void | rm::breakOnError () |
触发非法内存操作 | |
void | rm::throwError (const Exception &exc) |
抛出异常 | |
void | rm::error (int _code, std::string_view _err, const char *_func, const char *_file, int _line) |
发出错误信号并引发异常 | |
const char * | rm::getBuildInformation () |
返回完整的配置输出 | |
template<typename Tp > | |
consteval std::size_t | rm::reflect::size (auto &&...args) |
获取指定类型的成员个数 | |
template<typename Tp , typename Callable > | |
void | rm::reflect::for_each (Tp &&val, Callable &&f) |
遍历聚合类的每一个数据成员 | |
template<typename Tp > | |
bool | rm::reflect::equal (const Tp &lhs, const Tp &rhs) |
判断两个聚合类数据是否相同 | |
变量 | |
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\) | |
#define __RMVL_CAT | ( | x, | |
y ) |
#include <rmvl/core/rmvldef.hpp>
#define __RMVL_CAT_ | ( | x, | |
y ) |
#include <rmvl/core/rmvldef.hpp>
#define __RMVL_CAT__ | ( | x, | |
y ) |
#include <rmvl/core/rmvldef.hpp>
#define __RMVL_EXPAND | ( | x | ) |
#include <rmvl/core/rmvldef.hpp>
#define DEBUG_ERROR_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define DEBUG_HIGHLIGHT_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define DEBUG_INFO_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define DEBUG_PASS_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define DEBUG_WARNING_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define ERROR_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define HIGHLIGHT_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define INFO_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define PASS_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define RMVL_Assert | ( | expr | ) |
#include <rmvl/core/util.hpp>
在运行时检查条件,如果失败则抛出异常
#define RMVL_DbgAssert | ( | expr | ) |
#define RMVL_ERRHANDLE | ( | ... | ) |
#include <rmvl/core/util.hpp>
#define RMVL_Error | ( | code, | |
msg ) |
#include <rmvl/core/util.hpp>
调用错误处理程序
stderr
。在 Debug 配置中,它会引发内存访问冲突,以便调试器可以分析执行堆栈和所有参数。在 Release 配置中,抛出异常。[in] | code | 一种 RMVLErrorCode 错误码 |
[in] | msg | 错误信息 |
#define RMVL_Error_ | ( | code, | |
fmt, | |||
... ) |
#include <rmvl/core/util.hpp>
调用错误处理程序
[in] | code | 一种 RMVLErrorCode 错误码 |
[in] | fmt | 格式化字符串 |
[in] | ... | 括号中带有类似 printf 格式的错误信息 |
#define RMVL_Func "<unknown>" |
#include <rmvl/core/rmvldef.hpp>
#define WARNING_ | ( | ... | ) |
#include <rmvl/core/util.hpp>
using cv::Matx11d = Matx<double, 1, 1> |
#include <rmvl/core/math.hpp>
using cv::Matx11f = Matx<float, 1, 1> |
#include <rmvl/core/math.hpp>
using cv::Matx15d = Matx<double, 1, 5> |
#include <rmvl/core/math.hpp>
using cv::Matx15f = Matx<float, 1, 5> |
#include <rmvl/core/math.hpp>
using cv::Matx51d = Matx<double, 5, 1> |
#include <rmvl/core/math.hpp>
using cv::Matx51f = Matx<float, 5, 1> |
#include <rmvl/core/math.hpp>
using cv::Matx55d = Matx<double, 5, 5> |
#include <rmvl/core/math.hpp>
using cv::Matx55f = Matx<float, 5, 5> |
#include <rmvl/core/math.hpp>
enum rm::AngleMode : bool |
|
strong |
enum rm::EulerAxis : int |
enum RMVLErrorCode : int |
#include <rmvl/core/util.hpp>
RMVL 错误码
|
inline |
ForwardIterator::value_type rm::calculateModeNum | ( | ForwardIterator | first, |
ForwardIterator | last ) |
#include <rmvl/core/math.hpp>
在指定范围内寻找众数,时间复杂度 O(N)
ForwardIterator | 前向迭代器 |
[in] | first | 起始迭代器 |
[in] | last | 终止迭代器 |
cv::Point2f rm::calculateRelativeAngle | ( | const cv::Matx33f & | cameraMatrix, |
cv::Point2f | center ) |
#include <rmvl/core/transform.hpp>
计算相机中心与目标中心之间的相对角度
\[\begin{bmatrix} \tan{yaw}\\\tan{pitch}\\1\end{bmatrix}=\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1 \end{bmatrix}^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix}\]
[in] | cameraMatrix | 相机内参矩阵 |
[in] | center | 像素坐标系下的目标中心 |
cv::Point2f rm::calculateRelativeCenter | ( | const cv::Matx33f & | cameraMatrix, |
cv::Point2f | angle ) |
#include <rmvl/core/transform.hpp>
计算目标中心在像素坐标系下的坐标
\[u=f_x\frac XZ+u_0=f_x\tan{yaw}+u_0\]
\[v=f_y \frac YZ+v_0=f_y\tan{pitch}+v_0\]
写成矩阵相乘的方式:\[\begin{bmatrix}u\\v\\1 \end{bmatrix}=\frac1Z\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1\end{bmatrix} \begin{bmatrix}X\\Y\\Z\end{bmatrix}=\begin{bmatrix}f_x&0&u_0\\0&f_y&v_0\\0&0&1 \end{bmatrix}\begin{bmatrix}\tan{yaw}\\\tan{pitch}\\1\end{bmatrix}\]
[in] | cameraMatrix | 相机内参矩阵 |
[in] | angle | 目标中心与相机中心的相对角度 |
|
inline |
#include <rmvl/core/transform.hpp>
计算 3D 目标点在像素坐标系下的坐标
[in] | cameraMatrix | 相机内参矩阵 |
[in] | distCoeffs | 相机畸变参数 |
[in] | center3d | 目标点在相机坐标系下的坐标 |
cv::Vec2f rm::cameraConvertToPixel | ( | const cv::Matx33f & | cameraMatrix, |
const cv::Matx51f & | distCoeffs, | ||
const cv::Vec3f & | center3d ) |
#include <rmvl/core/transform.hpp>
计算 3D 目标点在像素坐标系下的坐标
[in] | cameraMatrix | 相机内参矩阵 |
[in] | distCoeffs | 相机畸变参数 |
[in] | center3d | 目标点在相机坐标系下的坐标 |
|
constexpr |
|
constexpr |
#include <rmvl/core/math.hpp>
平面向量外积
Tp | Point_数据类型 |
[in] | a | 向量 A |
[in] | b | 向量 B |
|
constexpr |
#include <rmvl/core/math.hpp>
平面向量外积
Tp | 向量数据类型 |
[in] | a | 向量 A |
[in] | b | 向量 B |
|
constexpr |
|
constexpr |
|
inline |
#include <rmvl/core/util.hpp>
判断两个聚合类数据是否相同
12
Tp | 聚合类类型 |
[in] | lhs | 左操作数 |
[in] | rhs | 右操作数 |
void rm::error | ( | int | _code, |
std::string_view | _err, | ||
const char * | _func, | ||
const char * | _file, | ||
int | _line ) |
#include <rmvl/core/util.hpp>
发出错误信号并引发异常
[in] | _code | 错误码 |
[in] | _err | 错误描述 |
[in] | _func | 函数名,仅在编译器支持获取时可用 |
[in] | _file | 发生错误的源文件名 |
[in] | _line | 源文件中发生错误的行号 |
|
inline |
#include <rmvl/core/transform.hpp>
欧拉角转换为旋转矩阵
Tp | 数据类型 |
[in] | val | 角度数值(弧度制) |
[in] | axis | 转轴 |
|
inline |
#include <rmvl/core/util.hpp>
遍历聚合类的每一个数据成员
12
Tp | 聚合类类型 |
Callable | 可调用对象类型 |
[in] | val | 聚合类对象 |
[in] | f | 可调用对象 |
std::string rm::format | ( | const char * | fmt, |
... ) |
#include <rmvl/core/util.hpp>
返回使用类 printf
表达式格式化的文本字符串。
sprintf
,但形成并返回一个 STL 字符串。它可用于在 Exception 构造函数中形成错误消息。[in] | fmt | 与 printf 兼容的格式化说明符。 |
类型 | 限定符 |
---|---|
const char* | s |
char | c |
float or double | f ,g |
int , long , long long | d , ld , `lld |
unsigned , unsigned long , unsigned long long | u , lu , llu |
uint64_t \(\to\) uintmax_t , int64_t \(\to\) intmax_t | ju , jd |
size_t | zu |
const char * rm::getBuildInformation | ( | ) |
#include <rmvl/core/util.hpp>
返回完整的配置输出
配置、构建信息字符串 |
|
constexpr |
#include <rmvl/core/math.hpp>
求两个角之间的夹角
Tp | 角度的数据类型 |
[in] | angle_1 | 第 1 个角度 |
[in] | angle_2 | 第 2 个角度 |
|
constexpr |
#include <rmvl/core/math.hpp>
获取距离
Tp1 | 空间点 1 的数据类型 |
Tp2 | 空间点 2 的数据类型 |
[in] | pt_1 | 起始点 |
[in] | pt_2 | 终止点 |
[in] | calplane | 要计算的距离所在的平面 |
|
constexpr |
#include <rmvl/core/math.hpp>
获取距离
Tp1 | 平面点 1 的数据类型 |
Tp2 | 平面点 2 的数据类型 |
[in] | pt_1 | 起始点 |
[in] | pt_2 | 终止点 |
|
constexpr |
#include <rmvl/core/math.hpp>
获取距离
Tp1 | 平面向量 1 的数据类型 |
Tp2 | 平面向量 2 的数据类型 |
[in] | vec_1 | 起始向量 |
[in] | vec_2 | 终止向量 |
|
constexpr |
#include <rmvl/core/math.hpp>
获取距离
Tp1 | 空间向量 1 的数据类型 |
Tp2 | 空间向量 2 的数据类型 |
[in] | vec_1 | 起始向量 |
[in] | vec_2 | 终止向量 |
[in] | calplane | 要计算的距离所在的平面 |
|
constexpr |
#include <rmvl/core/math.hpp>
点到直线距离,其中 \(P=(x_0,y_0)\) 到直线 \(l:Ax+By+C=0\) 距离公式为
\[D(P,l)=\frac{Ax_0+By_0+C}{\sqrt{A^2+B^2}}\]
Tp1 | 直线方程数据类型 |
Tp2 | 平面点的数据类型 |
[in] | line | 用 cv::Vec4_ 表示的直线方程 \((v_x, v_y, x_0, y_0)\) |
[in] | pt | 平面点 |
[in] | direc | 是否区分距离的方向 |
direc = false
来设置计算结果不区分正负(统一返回 \(|D(P,l)|\))line
需要传入元素为 \((v_x, v_y, x_0, y_0)\) 的用 cv::Vec4_
表示的向量,指代下列直线方程(与 cv::fitLine
传入的 cv::Vec4_
参数一致) \[l:y-y_0=\frac{v_y}{v_x}(x-x_0)\]
|
constexpr |
#include <rmvl/core/math.hpp>
获取与水平方向的夹角,以平面直角坐标系 \(x\) 轴为分界线, 逆时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
Tp1 | 平面点 1 的数据类型 |
Tp2 | 平面点 2 的数据类型 |
[in] | start | 像素坐标系下的起点 |
[in] | end | 像素坐标系下的终点 |
[in] | mode | 返回角度模式,默认弧度制 |
|
constexpr |
#include <rmvl/core/math.hpp>
获取与垂直方向的夹角,以平面直角坐标系 \(y\) 轴为分界线, 顺时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
Tp1 | 平面点 1 的数据类型 |
Tp2 | 平面点 2 的数据类型 |
[in] | start | 起点 |
[in] | end | 终点 |
[in] | mode | 返回角度模式,默认弧度制 |
|
constexpr |
|
constexpr |
|
constexpr |
#include <rmvl/core/math.hpp>
|
constexpr |
#include <rmvl/core/math.hpp>
|
constexpr |
#include <rmvl/core/math.hpp>
|
constexpr |
#include <rmvl/core/math.hpp>
|
constexpr |
#include <rmvl/core/math.hpp>
|
constexpr |
#include <rmvl/core/math.hpp>
|
inline |
#include <rmvl/core/math.hpp>
使用 std::vector
表示的向量乘法(数乘)
T | 数据类型 |
[in] | vec | 向量 |
[in] | val | 数乘因子 |
|
inline |
#include <rmvl/core/math.hpp>
使用 std::vector
表示的向量乘法(数乘)
T | 数据类型 |
[in] | val | 数乘因子 |
[in] | vec | 向量 |
|
inline |
#include <rmvl/core/math.hpp>
使用 std::vector
表示的向量乘法(数乘)
T | 数据类型 |
[in] | vec | 向量 |
[in] | val | 数乘因子 |
|
constexpr |
#include <rmvl/core/math.hpp>
|
inline |
|
constexpr |
#include <rmvl/core/math.hpp>
|
inline |
|
constexpr |
#include <rmvl/core/math.hpp>
|
inline |
|
inline |
|
constexpr |
#include <rmvl/core/math.hpp>
|
inline |
|
inline |
#include <rmvl/core/math.hpp>
使用 std::vector
表示的向量除法(数乘)
T | 数据类型 |
[in] | vec | 向量 |
[in] | val | 除数 |
|
inline |
#include <rmvl/core/math.hpp>
使用 std::vector
表示的向量除法(数乘)
T | 数据类型 |
[in] | val | 除数 |
[in] | vec | 向量 |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
#include <rmvl/core/math.hpp>
符号函数
Tp | 变量类型 |
[in] | x | 自变量 |
\[\text{sgn}(x)=\left\{\begin{matrix} 1&&x>0\\0&&x=0\\-1&&x<0 \end{matrix}\right.\]
|
constexpr |
#include <rmvl/core/math.hpp>
计算 sigmoid(x) 在某一点的函数值
\[y=f_{sig}(x)=\frac{K_p}{1+e^{-kx+\mu}}\]
Tp | 变量类型 |
[in] | x | 自变量 \(x\) |
[in] | k | 缩放系数 \(k\) |
[in] | Kp | 开环增益系数 \(K_p\) |
[in] | mu | 偏移系数 \(\mu\) |
|
consteval |
|
inline |
#include <rmvl/core/util.hpp>
抛出异常
|
constexpr |
#include <rmvl/core/math.hpp>
自然对数底数: \(e\)
|
constexpr |
#include <rmvl/core/math.hpp>
圆周率: \(\pi\)
|
constexpr |
#include <rmvl/core/math.hpp>
PI / 2: \(\frac\pi2\)
|
constexpr |
#include <rmvl/core/math.hpp>
PI / 4: \(\frac\pi4\)
|
constexpr |
#include <rmvl/core/math.hpp>
根号 2: \(\sqrt2\)