在image中用鼠标画的不规则图像的面子!!

解决方案 »

  1.   

    不规则图形可以由好多边的多边形来模拟const MaxPointNum = 65535;
    type
       PXY = ^TXY;
       TXY = record             // 点的数据结构
          x, y: single;
       end;
       XYArray = array[0..MaxPointNum] of TXY;
       PXYArray = ^XYArray;     //  线/面的数据结构// 积分方法求多边形/面状图形的面积
    // 多边形坐标在 xys 中,点数在 nn 中
    function AreaOfPolygon(xys: PXYArray; nn: integer):single;
    var ii:integer;
        ss: single;
    begin
       ss := 0;
       for ii := 0 to nn-2 do
           ss := ss + (xys^[ii].y+xys^[ii+1].y) * (xys^[ii].x-xys^[ii+1].x) / 2;
       result := abs(ss);
    end;