计算几何 – 使用de Casteljau算法实现的三次贝塞尔曲线插值函数
1 使用de Casteljau算法实现的三次贝塞尔曲线插值函数 de Casteljau算法的基本思想是通过递归地计算一系列中间点来逼近贝塞尔曲线上的点。对于n次贝塞尔曲线,算法需要进行n次递归计算。每次递归计算都会生成一组新的中间点,直到最后得到曲线上的一个点。de Casteljau算法的优点…
- 计算几何
- 2024-08-15
计算几何 – 两个向量之间的Cosine距离,衡量两个向量之间的相似度
1 两个向量之间的Cosine距离(余弦距离) 计算几何中可以使用Cosine距离(夹角余弦)来衡量两个向量之间的距离,在机器学习中也可以使用Cosine距离衡量样本之间的差异。 假设有两个向量x和y,则两个向量之间的cosine距离计算公式如下: D(x,y) = \frac{x \cdot y}…
- 计算几何
- 2024-02-04
计算几何 – 二维几何变换,二维平移、旋转、缩放、仿射变换
本文将简单介绍二维几何变换,包括二维平移变换、二维旋转变换、二维缩放变换、二维仿射变换的变换过程和矩阵计算。 1 基本变换 二维几何基本变换包括平移、旋转、缩放。 1.1 平移 平移指的是将物体沿着某直线路径从一个坐标位置移动到另一个坐标位置,不产生形变的刚体变换。 假设原始坐标位置为(x,y),平…
- 计算几何
- 2023-08-08
计算几何 – 判断三维空间的三个点是否共线
1 三维空间中的共线问题 1.1 如何判断三维空间中的三个点是否共线 在三维空间中,如果三个点共线,就说明这三个点在同一条直线上,就是说这三个点无法组成一个三维平面,即其三个点组成的平面法向量为零向量:(0,0,0)。 1.2 使用C++判断三维空间中三个点是否共线 通过上述的分析,我们可以使用C+…
- 计算几何
- 2023-08-03
计算几何 – 求解三维平面法向量
1 三维平面的法向的概念 三维平面的法线,又称为三维平面的法向量,指的是垂直于该平面的三维向量。 三维平面的法向量不具有唯一性,在相反方向的法线也是平面的法线。 根据曲面边界,将指向曲面内部的法线称为inward-pointing normal,指向曲面外部的法线称为outer-pointing n…
- 计算几何
- 2023-07-31
计算几何 – 三维向量的点乘、叉乘的概念、几何意义以及如何使用C++计算
1 三维向量点乘 1.1 三维向量点乘的概念 两个三维向量的点乘又称为点积、数量积或者标量积(Scalar Product)。 假设三维空间中有两个三维向量:\vec{a}=(x_1,y_1,z_1),\vec{b}=(x_2,y_2,z_2),\vec{a}和\vec{b}之间的夹角为\theta…
- 计算几何
- 2023-07-28
计算几何 – 求解两个三维向量之间的三维旋转矩阵
1 求解两个三维向量之间的3D旋转矩阵 1.1 方法1 先求解两个三维向量之间的夹角作为旋转角度,然后通过求解两个三维向量之间的叉乘向量作为旋转轴,最后通过旋转角度和旋转轴获取两个向量之间的旋转矩阵。 #include <iostream> #include <Eigen/Dens…
- 计算几何
- 2022-07-12
计算几何 – 二维笛卡尔坐标系中,计算二维点绕任意中心点旋转任意角度的结果
在二维笛卡尔平面上绕任意点旋转某一点在图像处理、二维游戏中广泛应用。本文将详细描述如何在二维笛卡尔平面上绕任意点旋转某一点的方法。 1 简单的方法(不推荐) 举一个例子,假设点A(4,3)绕原点O逆时针旋转30度,如果对三角函数和极坐标有所了解,那么我们可能会按照以下步骤进行点的旋转。 第一步 首先…
- 计算几何
- 2022-03-18
计算几何 – C++计算两个二维向量的夹角
1 计算两个二维向量的夹角 #include <iostream> #include <cmath> struct PoseInfo { float x; float y; }; typedef PoseInfo Point2D; typedef PoseInfo Vecto…
- C++
- 2021-08-12