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个点的位置来绘制菱形的如果这个办法不行请各位高手给点其他方法的建议
解决方案 »
- SendMessage能否给其它窗体发送释放消息?
- 实现一个类似DBCtrlGrid控件的功能,需要动态生成子控件,但是脱离数据库的
- 关于网上邻居,急!!!
- help!IE6不能装!!!!
- 升级了散分,祝兄弟们圣诞快乐,万事如意,来年都能挣很多的银子....
- 如何将字符串转化为类名使用,调用窗口
- 如何捕捉 Sql Server 连接不通的错误?
- 如何编写一个全屏幕的程序,就像程序员大本营?
- TDataSet.OnPostError 事件。
- TreeView高手请进!!
- 通过ADOConnetion连接数据库,其中一张表查询结果始终不对。。。
- 求助:C/S程序使用ADO远程连接,几分钟不操作客户端程序会断开跟远程数据库的连接
函数CreatePlygonRgn和SetWindowRgn可以将控件剪切成你想要的形状