请问各位,在MFC上实现一直线围绕一点(任一点,可自己设置)旋转该如何处理...
想了几天了,没头绪啊....

解决方案 »

  1.   

    围绕旋转的这个点就是圆心,直线的长度就是半径
    围绕它旋转,就是不断地MoveTo圆心,然后LineTo一个角度的点
    你想划45度的线,就根据圆心点的坐标和半径计算出45度的x,y坐标
    然后连线这两个不就可以了
      

  2.   

    不是有专门的旋转公式么?把线段两点做旋转变换即可.
    // 按一定角度旋转一些点
    void RotatePoints(const CPoint& stSrcPoint, const double dbAngle, 
    vector<CPoint>& wpts)
    {
    if (EQ(0.0, dbAngle))
    return;
    double sinAng = sin(dbAngle);
    double cosAng = cos(dbAngle);
    for(size_t i = 0L; i < wpts.size(); i++)
    {
    double x = wpts[i].X - stSrcPoint.X;
    double y = wpts[i].Y - stSrcPoint.Y;
    wpts[i].X = x * cosAng - y * sinAng + stSrcPoint.X;
    wpts[i].Y = y * cosAng + x * sinAng + stSrcPoint.Y;
    }
    }
      

  3.   

    想问个问题,网上都有的,可我看了还是不明白,
    就是那个全局变量的问题
    我想定要一个变量,利用它在各个窗体间来传递数值,这样可否?
    可以的话,如何做?
    我看到一些论坛上说的,在cpp文件里定义,在头文件里exten声明,哪位能否说具体点,最好给个例子了,写出在那个位置定义,哪里声明....
      

  4.   

    在cpp文件里定义,在头文件里extern声明  --- 正确
      

  5.   

    工程里面任何一个cpp文件都行?
      

  6.   

    我定义好一个全局变量
          CString str;
             后,为什么在其中一个CPP文件的一个函数里对str赋值后,
             在另外一个Cpp文件的一个函数里得不到str的值?
             为什么传值不过来?
            
             是不是不可以这样的??
      

  7.   

    在stdafx.h中+   extern   int  x;
      

  8.   

     MSDN上有详尽解析,搜extern就能找到
      

  9.   


    CString str;全局变量应该只定义一次.如果在一个cpp中定义了此句,其他cpp中都不能再如此,否则就不全局了