椭圆公式
椭圆半径公式如下
椭圆坐标公式
角度转弧度公式
弧度转角度公式
为半径
为横轴(长轴)
为竖轴(短轴)
为任意角度/弧度,
为椭圆上
对应的横坐标
为椭圆上
对应的纵坐标
弧度
角度
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;
}