平面上两条直线的夹角
很简单的问题,因为遇到好几次了,之前写过的代码很难找到,因此写在这儿以做记录。
1.math.h函数库
- atan(double x):求x的反正切,其返回值位于[-pi/2,+pi/2]之间。
- atan2(double y,double x):求y/x的反正切,其返回值位于[-pi,+pi]之间。
通常来说,直线的斜率已知,且不为90度时,可采用atan,否则会报错;一般采用atan2更好。
2.c++实现
以下计算输入两个向量,计算两个向量之间的夹角,不考虑旋转方向,无正负,0-pi之间。
其中method为1表示弧度,为0表示角度。
/** 计算两个向量的夹角,* @tparam T 点的类型* @param pt1 点1* @param pt2 点2* @param method:0为角度,1为弧度* @return 点1向量旋转到点2向量的角度,不考虑顺逆方向的夹角最小值;0~pi之间*/
#define PI 3.141592653
template <typename T>
double_t getAngleDiff(T pt1,T pt2,int method =0){double_t theta1 = atan2(pt1.y,pt1.x);//返回(-pi,pi)之间的反正切弧度值double_t theta2 = atan2(pt2.y,pt2.x);double_t result = abs(theta2-theta1)>PI?2*PI-abs(theta2-theta1):abs(theta2-theta1);if(method==1){return result;}return result*180/PI;
}
平面上两条直线的夹角相关推荐
- 判断平面上两条直线是否相交
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 判断平面 ...
- 平面解析几何----过抛物线上一点作互相垂直的两条直线交抛物线与点AB,AB恒过定点P的坐标
过抛物线上一点作互相垂直的两条直线交抛物线与点AB,AB恒过定点P的坐标 (x0+2P/(-λ),-y0)
- 有关如何判断平面上两直线是否平行的问题
这几天在写一个项目,其中涉及到两条直线的平行的判断,我在这几天里考虑了几种方法,都不够理想,最后想到了下面的方法. 这里,我可以分别得到两条直线上的两个点,也就是中学时候学的两点式的直线. 假设 直线 ...
- 判断两条直线是否相交c语言,学习OpenCV3:判断两条直线相交,并计算交点和夹角...
一.问题 已知两条直线 和 ,现希望判断 与 间是否相交.若相交,计算出两条直线的交点和夹角. 二.分析 1.直线方程 的直线方程: 的直线方程: 提示: 和 不能同时为0.若 和 同时为0,起点和终 ...
- java根据两条直线的四个坐标点证明这两条线平行(计算直线斜率)或者三个点在一条直线上
第一步:原理: 1.若两条直线斜率存在,则:斜率相等,则这两直线平行; 2.若两条直线斜率都不存在,则这两条直线也平行.所以说,如果两条直线平行,则它们的斜率相等[是错误的] 反过来:若两直线斜率相等 ...
- 两条直线求交点c语言,C§ 3.3.1两条直线的交点坐标(5页)-原创力文档
§ 3.1两条直线的交点坐标 学习目标 1.掌握判断两直线相交的方法:会求两直线交点坐标: 2.体会判断两直线相交中的数形结合思想. 学习过程 一.课前准备: (预习教材P112~ P114,找出疑 ...
- 求空间两条直线之间的距离
1. 前言 最近老板让写一段空间点匹配的代码, 其中涉及到求空间两直线之间的距离,写起来满费劲的, 这里做一个记录. 2. 处理思路 空间两直线之间的位置关系主要可以分为: 重合, 平行, 相交, 异 ...
- 使用C++面向对象思想计算两条直线交点
使用C++面向对象思想计算两条直线交点 以下是使用C++面向对象思想计算两条直线交点的示例代码: #include <iostream>using namespace std;class ...
- Matlab计算两条直线的交点坐标
%% 已知两条直线的斜率和截距,求交点坐标 function [x,y]=linecross(k1,b1,k2,b2)x=[];y=[];if k1==k2&b1==b2disp('chong ...
- java两条直线交点_求两条直线的交点坐标
看UdaCity机器学习大纲,发现入门班中有一条:编写算法计算一组直线或平面的交点. 遂从最简单的直角坐标系两条直线的交点开始, 直线1的方程解析式: 2x-y=0; 直线2的方程解析式: 4x-5y ...
最新文章
- Java基础加强总结(三)——代理(Proxy)
- 多线程基础篇(3)——初试锁
- vary渲染图没了_云渲染哪个好用?云渲染平台对比
- Boost------ windows 库的编译安装
- python谷歌网页爬虫_python爬虫入门01:教你在 Chrome 浏览器轻松抓包
- 网易云信携手房天下打造高质量音视频会议
- Android APK 打包过程 MD
- java的多态怎么理解_JAVA多态的理解
- VB计算文本文件的行数
- d3 + geojson in node
- Android 身份证号码校验
- MATLAB滑动窗口(移动方差)
- 七牛云成功通过 CMMI3 认证
- RecyclerView 报Scrapped or attached views may not be recycled. as Scrap:false isAttached:true异常
- DEV编写C语言方法简介
- 小巧简便且美观的桌面便签记事备忘工具
- 【C语言】PAT乙级:1007 素数对猜想
- 一个股市老操盘手的突然感悟
- netty整合shiro,报There is no session with id [xxxxxx]问题定位及解决
- miui v5 android版本,速度明显提升 小米2S刷安卓4.4版MIUI V5