随笔 - 121  文章 - 0  评论 - 11  阅读 - 74万

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

平面中,一个点(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;
}
 

posted on   feng..liu  阅读(9561)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示