一张图,在图上标出五个点,程序自动算出这个五边形的重心.
数学上是先将这个五边形分成三个三角形,得出这三个三角形的重心点,然后将这三个点连成一个三角形,得出这个三角形的重心,即为这个五边形的重心了.这个东西我该从哪开始下手呢?

解决方案 »

  1.   

    type
      TPointf= record
        x: double;
        y: double;
      end;function gline2(p0,p1:TPointf):TPointf;
    var p: TPointf;
    begin
     p.x:=(p0.X+p1.X)/2;
     p.y:=(p0.Y+p1.Y)/2;
     Result:=p;
    end;function gline1d3(p0,p1:TPointf):TPointf;
    var p: TPointf;
    begin
     p.x:=p0.X+(p0.X-p1.X)/3;
     p.y:=p0.Y+(p0.Y+p1.Y)/3;
     Result:=p;
    end;function gp3rd(p0,p1,p2:TPointf):TPointf;
    var pp0,pp1: TPointf;
    begin
      pp0:=gline1d3(p0,p1);
      pp1:=gline1d3(pp0,p2);
      Result:=pp1;
    end;function gp5rd(p0,p1,p2,p3,p4:TPointf):TPointf;
    var pp0,pp1,pp2: TPointf;
    begin
      pp0:=gp3rd(p0,p1,p2);
      pp1:=gp3rd(p0,p2,p3);
      pp2:=gp3rd(p0,p3,p4);
      Result:=gp3rd(pp0,pp1,pp2);
    end;