在平面中,一个点绕任意点旋转θ度后的点的坐标

平面中,一个点(x,y)绕任意点(dx,dy)顺时针旋转a度后的坐标

xx= (x - dx)*cos(-a) - (y - dy)*sin(-a) + dx ;

yy= (x - dx)*sin(-a) + (y - dy)*cos(-a) +dy ;

平面中,一个点(x,y)绕任意点(dx,dy)逆时针旋转a度后的坐标

xx= (x - dx)*cos(a) - (y - dy)*sin(a) + dx ;

yy= (x - dx)*sin(a) + (y - dy)*cos(a) +dy ;

 

C++实现:

 

#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;
}
 

原文链接: https://www.cnblogs.com/fengliu-/p/10944151.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    在平面中,一个点绕任意点旋转θ度后的点的坐标

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/295833

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午5:16
下一篇 2023年2月15日 下午5:17

相关推荐