椭圆已知中心坐标、长轴、短轴、计算角度、倾斜角度,求计算坐标。

文章提供了一个C#方法来计算椭圆上特定角度的点坐标,考虑了椭圆的长轴、短轴、倾斜角度以及需要的角度值。该方法基于数学公式,通过曲率计算得到坐标,并可用于图形绘制中椭圆的等分线起点和终点的确定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图,已知点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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值