zoukankan      html  css  js  c++  java
  • 在平面中,一个点绕任意点旋转θ度后的点的坐标

    平面中,一个点(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 <<' '<< yy << endl;
    }
    return 0;
    }
     

  • 相关阅读:
    web前段学习2017.6.15
    web前段学习2017.6.13
    web前端2017.6.10
    web前段2017.6.8
    web前段学习2016.6.6
    宏任务与微任务
    浏览器兼容性问题
    TCP 和 UDP 的区别
    React如何渲染大数据量的列表?
    移动端兼容性问题
  • 原文地址:https://www.cnblogs.com/fengliu-/p/10944151.html
Copyright © 2011-2022 走看看