【C#】 根据椭圆边框和任意角度计算椭圆二维坐标

我怕爱的太早我们不能终老 提交于 2019-11-30 21:13:19

转自:https://blog.csdn.net/chenlu5201314/article/details/99678398

椭圆公式 

 

椭圆半径公式如下

椭圆坐标公式

角度转弧度公式

弧度转角度公式

  •  为半径
  •  为横轴(长轴)
  •  为竖轴(短轴)
  •  为任意角度/弧度,
  •  为椭圆上 

     对应的横坐标
  •  为椭圆上 

     对应的纵坐标
  •  弧度
  •  角度

C#代码

        /// <summary>          /// 椭圆求点公式          /// </summary>          /// <param name="lpRect">椭圆边框</param>          /// <param name="angle">角度</param>          /// <returns></returns>          public Point GetArcPoint(Rectangle lpRect, float angle)          {              Point pt = new Point();              double a = lpRect.Width / 2.0f;              double b = lpRect.Height / 2.0f;              if (a == 0 || b == 0) return new Point(lpRect.X, lpRect.Y);                 //弧度              double radian = angle * Math.PI / 180.0f;                 //获取弧度正弦值              double yc = Math.Sin(radian);              //获取弧度余弦值              double xc = Math.Cos(radian);              //获取曲率  r = ab/\Sqrt((a.Sinθ)^2+(b.Cosθ)^2              double radio = (a * b) / Math.Sqrt(Math.Pow(yc * a, 2.0) + Math.Pow(xc * b, 2.0));                 //计算坐标              double ax = radio * xc;              double ay = radio * yc;              pt.X = (int)(lpRect.X + a + ax);              pt.Y = (int)(lpRect.Y + b + ay);              return pt;          }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!