根据某点直角坐标(x,y)计算该点与原点连线跟y轴夹角
2017-06-12 21:12
507 查看
本博客介绍一个简单的函数fAngleFromNorth_ClockWise,计算直角坐标系下坐标(x,y)到原点连线与Y轴正方向的夹角angle。angle的定义是从Y轴向红线旋转,顺时针为正。
在MainWindow里调用这个函数OnCalculateAngle(),计算X,Y对应的夹角:
如图所示就是使用举例。(4,-4)对应的弧度是2.356,换算为角度是135度。
#include "angle.h" #include <math.h> #define PI 3.14159265359 float fAngleFromNorth_ClockWise(float fOriginX_Vec, float fOriginY_Vec, float fEndX_Vec, float fEndY_Vec) { float fEndX = fEndX_Vec - fOriginX_Vec; float fEndY = fEndY_Vec - fOriginY_Vec; float fLen = sqrt(fEndX * fEndX + fEndY * fEndY); float fAngle = acos(fEndY / fLen); if(fEndX < 0) { fAngle = 2 * PI - fAngle; } return fAngle; }
在MainWindow里调用这个函数OnCalculateAngle(),计算X,Y对应的夹角:
#include "mainwindow.h" #include "ui_mainwindow.h" #include "angle.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(OnCalculateAngle())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::OnCalculateAngle(void) { int iX = ui->spinBox_x->value(); int iY = ui->spinBox_y->value(); float fAngle = fAngleFromNorth_ClockWise(0, 0, iX, iY); QString qstrAngle= QString().setNum(fAngle); ui->lineEdit->setText(qstrAngle); }
如图所示就是使用举例。(4,-4)对应的弧度是2.356,换算为角度是135度。
相关文章推荐
- ios根据gps坐标来计算两点间的距离
- 根据两个百度地图坐标计算两点的距离
- 根据两点经纬坐标计算两点间的距离[JAVA]
- 根据两点经纬度坐标计算距离的算法
- 根据两个坐标点计算旋转角度
- 根据经纬度坐标计算两点间几何距离
- 根据两点间经纬度坐标(double值)计算两点间距离,LBS操作相关工具类
- 根据经纬度计算距离的公式、百度坐标转换成GPS坐标(PHP版)
- 根据地理坐标计算瓦片行列号
- 【百度地图API】如何根据摩卡托坐标进行POI查询,和计算两点距离
- java根据经纬度坐标计算两点的距离算法
- 根据两点经纬坐标计算两点间的距离[JAVA]
- 根据点的坐标计算不规则图形面积的公式
- 根据三角形三边一内角,计算出显示在视图上的坐标点
- ARCore中根据屏幕坐标计算射线的算法
- java根据经纬度坐标计算两点的距离算法
- 根据圆心坐标以及手指坐标计算圆上点的位置
- PHP根据两点间的坐标计算距离
- 根据经纬度坐标计算两点间几何距离 - 椰子树下 - CSDN博客
- asp.Net + google map根据坐标点计算行动里程数