这里所说的平分是指各椭圆弧所截取的弦长相等。要求得到平分后的各椭圆点的座标。

解决方案 »

  1.   


    将点绕圆心旋转某个角度,确定好这个角度就可以评分了
    px,py:转换前坐标,返回时,为新点的坐标 
    cx,cy:圆心坐标
    degree:角度
    procedure Revolvepoin(var px,py:integer;const cx,cy:integer;degree:integer);
    var
      r1:double;
      dx,dy:integer;
      atr:double;
    begin
      dx:=px-cx;
      dy:=py-cy;
      atr:=ArcTan2(dy,dx);
      r1:=sqrt(dx*dx+dy*dy);
      px:=cx+round(r1*cos(degree*PI/180+atr));
      py:=cy+round(r1*sin(degree*PI/180+atr));
    end;
    此函数的一个缺点是,会有误差,因为返回为整数
      

  2.   

    搜下了``CAD貌似挺多的```
    高等数学```
      

  3.   

     唉,數學都忘完了。MARK下。
      

  4.   

    这个算法还蛮复杂的。简单地说设椭圆的两半径分别为a,b。所截弦长为m,取两点(asina,bcosa),(-asina,bcosa)
    两点之间的距离为2*asina=m,则第一轮一两个点可得到(m/2,sqrt(1-m*m/4)),(-m/2,sqrt(1-m*m/4))要得到其他的点需要参考上述算法循环即可(其中要用到两点之间距离的计算公式)