请问:如何把一个椭圆按照弧长等分,利于把一个椭圆等分为8等分,每一等分的弧长都相同!

解决方案 »

  1.   

    /// <summary>
            /// 获取椭圆上一段弧的等分点集合
            /// </summary>
            /// <param name="r">绘制椭圆的矩形</param>
            /// <param name="startAngle">起始角度</param>
            /// <param name="sweetAngle">弧所经过的角度</param>
            /// <param name="count">等分的个数</param>
            /// <returns>等分点的集合</returns>
            private Point[] GetArcPoint(Rectangle r, float startAngle, float sweetAngle, int count)
            {
                //
                // TODO: 如何实现
                //
            }
      

  2.   

    椭圆方程:
    x = a * cos(t)     t = [0 - PI]
    y = b * sin(t)ds = sqrt(dx^2 + dy^2)   = sqrt[(a*sin(t))^2 + (b*cos(t))^2] * dt这个积分好像没有显式解,用数值解计算吧
      

  3.   

    (1)首先求得椭圆的外接矩形,外接矩形的四边必有四个正中点,每两个相对点连接起来,即得四条直线,此时椭圆已被平分成四个完全相等的弧了。
    (2)计算每段弧的长度,即椭圆的周长(公式是....?)除以4。以每段弧的起点为基准计算                   2bπ      _________
        椭圆周长公式=———— √2a2-b2  
                a参考链接:
    http://www.mathchina.com/cgi-bin/topic.cgi?forum=5&topic=588
    http://www.chinaai.org/Article_Show.asp?ArticleID=409
      

  4.   

    多次见到讨论椭圆周长的帖子,现将公式抄录如下。有时可以在图上量,有时算起来也很方便。 若是写程序则要用精确的公式: 按标准椭圆方程:长半轴a,短半轴b。
    设 λ=(a-b)/(a+b),
    椭圆周长L: L=π(a+b)(1 + λ^2/4 + λ^4/64 + λ^6/256 + 25λ^8/16384 + ......)简化:
    L≈π[1.5(a+b)- sqrt(ab)]或L≈π(a+b)(64 - 3λ^4)/(64 - 16λ^2)说明:
    λ^2表示λ的平方,类推。
    取到级数的前两项足够了。
      

  5.   

    http://amio.unreal.com.cn/board/attachment.php?attachmentid=359
      

  6.   

    to johnsuna,要八等分椭圆啊~~~另外那个公式明显错误么,只要看看当椭圆退化时,比方 a = 0或者b = 0时,想想就不对么
      

  7.   

    好像人家早就证明了椭圆周长是没有初等表达式的,所以怎么都不用考虑了 :)我是指这个公式
                    2bπ      _________
        椭圆周长公式=———— √2a2-b2  
                a至于那个级数解不大清楚
      

  8.   

    应该这个:http://amio.unreal.com.cn/board/attachment.php?attachmentid=359