随笔分类 -  计算图形(空间几何算法)

该文被密码保护。
posted @ 2020-04-26 10:25 玥茹苟 阅读(359) 评论(0) 推荐(0)
摘要:/* * 判断2个圆的位置 * 圆内:圆心距小于等于两个半径差的绝对值 * 圆外:圆心距离大于两个半径之和 * 相交:圆心距大于两个半径差的绝对值小于等于2半径之和 (注意相切情况) */ public class Dome1 { public static void main(String[] a 阅读全文
posted @ 2020-03-26 09:32 玥茹苟 阅读(871) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-03-24 21:19 玥茹苟 阅读(2975) 评论(0) 推荐(0)
摘要://////////////////////////////////////////////////////////////////////////////////////////////////////// //aa, bb为一条线段两端点 cc, dd为另一条线段的两端点 相交返回true, 不 阅读全文
posted @ 2020-03-09 11:07 玥茹苟 阅读(484) 评论(0) 推荐(0)
摘要://////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //判断三角形是否为锐角 int isAcuteTrian 阅读全文
posted @ 2019-12-02 14:18 玥茹苟 阅读(805) 评论(0) 推荐(0)
摘要:代码: struct PlaneEquation { double A; double B; double C; double D; }; 阅读全文
posted @ 2019-11-22 14:45 玥茹苟 阅读(5165) 评论(0) 推荐(0)
摘要:直线方程一般式: (A,B不全为零即A^2+B^2≠0)该直线的斜率为 (当B=0时没有斜率) 两直线平行时:普遍适用: ,方便记忆运用: (A2B2C2 != 0) 两直线垂直时: 两直线重合时: () 两直线相交时: () 两点(x1,y1)、(x2,y2)直线方程写成: 即(y2-y1)x+( 阅读全文
posted @ 2019-11-01 10:48 玥茹苟 阅读(1275) 评论(0) 推荐(0)
摘要:叉乘 https://www.cnblogs.com/zzdyyy/p/7643267.html 叉乘(向量的外积)是物理里面常常用到的概念, 它是由两个向量得到一个新的向量的运算。一般我们都是从几何意义下手: 向量a和b叉乘, 得到一个垂直于a和b的向量a×b, 它的方向由右手螺旋法则确定, 它的 阅读全文
posted @ 2019-10-29 16:34 玥茹苟 阅读(2680) 评论(0) 推荐(0)
摘要:最小二乘问题其形式都为Ax − b = 0,如果问题形式发生改变,变为Ax = 0,那么这样的最小二乘问题应该如何求解呢? Ax = 0形式的问题经常出现在重建问题(reconstruction)中。我们期望找到方程Ax = 0中 x 不等于零的解。由于该方程的特殊形式我们会发现对于 x 不等于零的 阅读全文
posted @ 2019-10-22 18:20 玥茹苟 阅读(1377) 评论(0) 推荐(0)
摘要:1、点到平面直线的距离: 代码: double pt3dToLine(double* pt0, double* pt1, double* pt2) { // 使用空间直线的两点式,pt0为直线外一点. double t = ((pt2[0] - pt1[0]) * (pt0[0] - pt1[0]) 阅读全文
posted @ 2019-09-11 15:23 玥茹苟 阅读(4877) 评论(0) 推荐(0)
摘要:计算公式:: 阅读全文
posted @ 2019-09-11 14:38 玥茹苟 阅读(969) 评论(0) 推荐(0)
摘要:sphere-kdtree算法思路说明 具体思路如下: 第一、球半径分割,即利用不同的球半径,将三维空间点(向量)分割成多块。所以首先要求确定的就是分割多少块,怎么设置半径最合理。 第二、三维空间点平衡二叉树的实现,也就是kdtree的思想,平衡二叉树的建立,但要尽可能避免树的两个分支数量差异较大, 阅读全文
posted @ 2019-09-06 17:21 玥茹苟 阅读(594) 评论(0) 推荐(0)
摘要:空间三维向量的叉乘: 向量的点乘: 因此结合(0)和(1)可以的得到: θ = atan2(sin(θ),cos(θ)) = atan2((A×B)∗n,A∗B) = atan2((A×B).norm(),A∗B) { -180<θ<180 } #include <iostream> #includ 阅读全文
posted @ 2019-08-26 11:26 玥茹苟 阅读(21915) 评论(0) 推荐(2)
摘要:一、旋转向量 1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z) Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z)) 1.1 旋转向量转旋转矩阵 Eigen::Matrix3d rotation_matrix;rotati 阅读全文
posted @ 2019-07-19 18:14 玥茹苟 阅读(27449) 评论(0) 推荐(2)
摘要:实现思路如下: Step1:大文件的内存映射,多线程数据读取,加快读取速度。 Step2:点云数据预处理(抽希、去噪点)。 Step3:Step2处理后数据使用kdtree进行离散点排序。 Step4:遍历点云数据,对于点i,利用kdtree半径检索,得到每个点的邻近点集,计算点集的重心;判断该i点 阅读全文
posted @ 2019-04-08 14:27 玥茹苟 阅读(483) 评论(0) 推荐(0)
摘要:基于opencv 霍夫变化后 直线融合: 总结:利用“线段自优化”的思想。 阅读全文
posted @ 2019-03-21 14:01 玥茹苟 阅读(892) 评论(0) 推荐(0)
摘要:总结:实现单线2dlidar 的匹配算法。 阅读全文
posted @ 2019-03-10 13:47 玥茹苟 阅读(3445) 评论(1) 推荐(0)
摘要:对于线段A,B,如果 线段A与直线B相交 ,线段B与直线A相交 ,那么就可以认为线段A 和线段B相交。 关键问题是:如何判断直线AB是否与线段CD相交呢? 设直线AB的方程为:f(x,y) = 0,直线方程可以通过两点式求得。 当C和D点不在直线的同侧时,直线AB必然与线段CD相交,也就是说直线AB 阅读全文
posted @ 2019-03-05 15:26 玥茹苟 阅读(508) 评论(0) 推荐(0)
摘要:公式如下: 若直线A1x十+B1y+十C1=0与直线A2x十+2y+十C2=0平行,则: A1/A2=B1/B2≠C1/C2 ①若B1=B2=0,此时两直线斜率不存在,满足:A1/A1=B1/B2≠C1/;C2; ②若B1≠0、B2≠0,此时也满足A1/A2=B1/B2≠C1/C2 则两直线平行,有 阅读全文
posted @ 2019-03-04 14:02 玥茹苟 阅读(9237) 评论(0) 推荐(0)
摘要:(一)求多边形的面积(用叉积计算) 代码如下: (二)求多边形的重心 代码如下: (三)andrew算法求凸包 (四)比较函数提高精度: 代码如下: (五)向量/以及常见运算重载 (六)旋转卡壳求凸包的直径,平面最远的点对 代码如下: (七)旋转卡壳求凸包的宽度,即找一组距离最近的平行线似的凸包的点 阅读全文
posted @ 2019-03-04 13:55 玥茹苟 阅读(740) 评论(0) 推荐(0)