c++ 一个点绕任点旋转θ度后的坐标
注意,代码中的三角函数都是弧度,不是大家说的角度,需要转弧度进行运算。
插曲:c++ opencv旋转图片:
opencv 旋转_jacke121的专栏-CSDN博客_opencv旋转方向
一个点(x,y)绕任意点(dx,dy)顺时针旋转a度后的坐标
#include <math.h>
#define PI acos(-1)
float angle=80;
float angle_radian=angle*PI/180;
xx= (x - dx)*cos(-angle_radian) - (y - dy)*sin(-angle_radian) + dx ;
yy= (x - dx)*sin(-angle_radian) + (y - dy)*cos(-angle_radian) +dy ;
平面中,一个点(x,y)绕任意点(dx,dy)逆时针旋转a度后的坐标
#include <math.h>
#define PI acos(-1)
float angle=80;
float angle_radian=angle*PI/180;
xx= (x - dx)*cos(-angle_radian) - (y - dy)*sin(-angle_radian) + dx ;
yy= (x - dx)*sin(-angle_radian) + (y - dy)*cos(-angle_radian) +dy ;
代码测试
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdio.h>
#define PI 3.141592654
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int x = 1, y = 2;//旋转的点
int dx = 1, dy = 1;//被绕着旋转的点
for (int i = 0; i <= 8; i++)
{
//int angle = 45 * i;//逆时针
int angle = -45 * i;//顺时针
double xx = (x - dx)*cos(angle * PI / 180) - (y-dy)*sin(angle * PI / 180) + dx;
double yy = (y-dy)*cos(angle * PI / 180) + (x-dx)*sin(angle * PI / 180) + dy;
cout << xx <<'\t'<< yy << endl;
}
return 0;
}
以上内容转自:
平面中,一个点绕任意点旋转θ度后的坐标(C实现)_kevin_org-CSDN博客_c 点旋转
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/jacke121/article/details/123244177
内容来源于网络,如有侵权,请联系作者删除!