A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aisini 金牌黑马   /  2014-7-29 19:45  /  880 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一点A绕着B点旋转X度后的新坐标。
  1. /// <summary>
  2.        /// 获取A点绕B点旋转P度后的新坐标
  3.        /// </summary>
  4.        /// <param name="Angle">角度</param>
  5.        /// <param name="CirPoint">圆心坐标</param>
  6.        /// <param name="MovePoint">移动点的坐标</param>
  7.        /// <param name="FlagInt">顺时针:1(默认)  逆时针:-1</param>
  8.        /// <returns></returns>
  9.        public static Point GetNewPoint(double Angle, Point CirPoint, Point MovePoint, int FlagInt = 1)
  10.        {
  11.            //将角度转换成弧度
  12.            double Rage2 = Convert.ToDouble(Angle) / 180 * Math.PI;
  13.            //计算新坐标X
  14.            int newx = (int)((MovePoint.X - CirPoint.X) * Math.Cos(Rage2 * FlagInt) - (MovePoint.Y - CirPoint.Y) * Math.Sin(Rage2 * FlagInt));
  15.            //计算新坐标Y
  16.            int newy = (int)((MovePoint.Y - CirPoint.Y) * Math.Cos(Rage2 * FlagInt) + (MovePoint.X - CirPoint.X) * Math.Sin(Rage2 * FlagInt));
  17.            //计算新坐标
  18.            Point newpoint = new Point(CirPoint.X + newx, CirPoint.Y + newy);
  19.            //返回新坐标
  20.            return newpoint;
  21.        }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马