椭圆已知中心坐标、长轴、短轴、计算角度、倾斜角度,求计算坐标。
导图软件
如图,已知点P0坐标。P0-P1为椭圆长轴a,P0-P2为短轴b,椭圆倾斜角度45度。求点P2坐标。
此类问题常用于导图的分解椭圆,需要将椭圆等分360*N小份,然后直线画出各个小份,此时就需要求出等分直线的起始点和终止点坐标。
一下就不直接写出推导过程,我们直接上图,并给出结论。
C#方法:
#region 计算坐标
/// <summary>
/// 计算坐标
/// </summary>
/// <param name="CentrePointTemp"></param>
/// <param name="MajorAxisTemp"></param>
/// <param name="MinorAxisTemp"></param>
/// <param name="CalcuateAngle">角度,不是弧度</param>
/// <param name="倾斜角度Temp">角度,不是弧度</param>
/// <returns></returns>
public Point GetArcPoint(Point CentrePointTemp, double MajorAxisTemp, double MinorAxisTemp, double CalcuateAngle, double 倾斜角度Temp)
{
Point Result = new Point();
//获取曲率 r = ab/Sqrt((a.Sinθ)^2+(b.Cosθ)^2
double RadioTemp = MajorAxisTemp * MinorAxisTemp
/ Math.Sqrt(
Math.Pow(Math.Sin(CalcuateAngle * Math.PI / 180) * MajorAxisTemp, 2)
+ Math.Pow(Math.Cos(CalcuateAngle * Math.PI / 180) * MinorAxisTemp, 2)
);
double XTemp = RadioTemp * Math.Cos((倾斜角度Temp + CalcuateAngle) * Math.PI / 180);
double YTemp = RadioTemp * Math.Sin((倾斜角度Temp + CalcuateAngle) * Math.PI / 180);
Result.X = CentrePointTemp.X + XTemp;
Result.Y = CentrePointTemp.Y + YTemp;
return Result;
}
#endregion

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)