procedure TForm1.Button1Click(Sender: TObject);
var
w,h:integer;
i,j:integer;
www,hhh,k,l:integer;
begin
w:=trunc(ww * 1.4);
h:=trunc(hh*1.4);w:=image1.width div w;
h:=image1.Height div h;www:=trunc(ww * 1.4);
hhh:=trunc(hh * 1.4);
Image1.Canvas.pen.Color:=clred;for i:=0 to w do
begink:= i*www;Image1.Canvas.Polygon([Point(k, l+(hhh div 2)), Point(k+(www div 2), l), Point(k+www, l+(hhh div 2)), Point(k+(www div 2), l+hhh)]);for j:=0 to h do
begin
    l:= j*hhh;
    Image1.Canvas.Polygon([Point(k, l+(hhh div 2)), Point(k+(www div 2), l), Point(k+www, l+(hhh div 2)), Point(k+(www div 2), l+hhh)]);
end;end;
我用以上代码画的菱形格子
现在在地图编辑器中需要编辑这些格子需要选中上色或者去色
我用如下代码x1:=x div trunc(ww * 1.4);
   y1:=y div trunc(hh * 1.4);
   showmessage('x:'+inttostr(x)+'  y:'+inttostr(y)+'   x1:'+inttostr(x1)+'  y1:'+inttostr(y1));
   xx:=trunc(x1 * ww * 1.4);
   yy:=trunc(y1 * hh * 1.4);
   www:=trunc(ww * 1.4);
   hhh:=trunc(hh * 1.4);
   pt.X:=xx;
   pt.y:=yy+trunc(hhh div 2);
   pts[0]:=pt;   pt.X:=xx+trunc(www div 2);
   pt.y:=yy;
   pts[1]:=pt;   pt.X:=xx+www;
   pt.y:=yy+trunc(hhh div 2);
   pts[2]:=pt;   pt.X:=xx+trunc(www div 2);
   pt.y:=yy+hhh;
   pts[3]:=pt;但是我发现我算出来的点在画到画布上后会间隔一列请问后面的这个选中坐标该如何计算请各位帮个忙
给点思路我是用的xy位置进行处理来计算4个点的位置来绘制菱形的如果这个办法不行请各位高手给点其他方法的建议