码迷,mamicode.com
首页 > Windows程序 > 详细

一个坐标点围绕任意中心点旋转--C#实现

时间:2016-08-17 10:16:36      阅读:610      评论:0      收藏:0      [点我收藏+]

标签:

   技术分享假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转RotaryAngle角度后的新的坐标设为(x‘, y‘),有公式:

    x‘= (x - rx0)*cos(RotaryAngle) + (y - ry0)*sin(RotaryAngle) + rx0 ;
    y‘=-(x - rx0)*sin(RotaryAngle) + (y - ry0)*cos(RotaryAngle) + ry0 ;

/// <summary>  
        /// 对一个坐标点按照一个中心进行旋转  
        /// </summary>  
        /// <param name="center">中心点</param>  
        /// <param name="p1">要旋转的点</param>  
        /// <param name="angle">旋转角度,笛卡尔直角坐标</param>  
        /// <returns></returns>  
        private  Point PointRotate(Point center, Point p1, double angle)  
        {  
            Point tmp = new Point();  
            double angleHude = angle * Math.PI / 180;/*角度变成弧度*/  
            double x1 = (p1.X - center.X) * Math.Cos(angleHude) + (p1.Y - center.Y ) * Math.Sin(angleHude) + center .X;  
            double y1 = -(p1.X - center.X) * Math.Sin(angleHude) + (p1.Y - center.Y) * Math.Cos(angleHude) + center.Y;  
            tmp.X = (int)x1;  
            tmp.Y = (int)y1;  
            return tmp;  
        }  

  

一个坐标点围绕任意中心点旋转--C#实现

标签:

原文地址:http://www.cnblogs.com/MachineVision/p/5778677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!