现在假如有一张图像,设它的左上角坐标为(0,0),右下脚坐标为(450,600)。
现在需要把它任意平均切割(比如可切割成4份或者9份或者16份等)。
比如说将上面的图像切成9等份。它的坐标表示为
第一幅图像开始坐标(0,0)第一幅图像结束坐标 (150,200);
第二幅图像开始坐标(150,0第二幅图像结束坐标(300,200);
第三幅图像开始坐标(300,0)第三幅图像结束坐标(450,200);第四幅图像开始坐标(0,200)第四幅图像结束坐标(150,400);
第五幅图像开始坐标(150,200)第五幅图像结束坐标(300,400);
第六幅图像开始坐标(300,200)第六幅图像结束坐标(450,400);第七幅图像开始坐标(0,400)第七幅图像结束坐标(150,600);
第八幅图像开始坐标(150,400)第八幅图像结束坐标(300,600);
第九幅图像开始坐标(300,400)第九幅图像结束坐标(450,600);
这样就得到了切割后9幅图像的左上角坐标和右下脚坐标。
现在的问题是如何得到平分后的坐标值。
现在需要把它任意平均切割(比如可切割成4份或者9份或者16份等)。
比如说将上面的图像切成9等份。它的坐标表示为
第一幅图像开始坐标(0,0)第一幅图像结束坐标 (150,200);
第二幅图像开始坐标(150,0第二幅图像结束坐标(300,200);
第三幅图像开始坐标(300,0)第三幅图像结束坐标(450,200);第四幅图像开始坐标(0,200)第四幅图像结束坐标(150,400);
第五幅图像开始坐标(150,200)第五幅图像结束坐标(300,400);
第六幅图像开始坐标(300,200)第六幅图像结束坐标(450,400);第七幅图像开始坐标(0,400)第七幅图像结束坐标(150,600);
第八幅图像开始坐标(150,400)第八幅图像结束坐标(300,600);
第九幅图像开始坐标(300,400)第九幅图像结束坐标(450,600);
这样就得到了切割后9幅图像的左上角坐标和右下脚坐标。
现在的问题是如何得到平分后的坐标值。
解决方案 »
- 求教关于ActiveX的两个问题
- 如何使用Delphi6 开发dll for asp 时返回数据用于赋值给asp的变量
- 我想从客户端传递字符串到服务器端,请问怎样做呢??????
- 【急:Delphi打开出错“无法定位程序输入点@Sysutils@CheckWin32Version$qqrii于动态链接库rtl60.bpl】
- 两个小问题
- delphi 自带的interbase 能用odbc连接吗?急死人啦
- 怎样在DBGrid中动态绑定列?
- ERP和传统的MS系统的区别?
- 救救急吧,各位老大!如何利用Delphi实现在WINNT4.0的计划任务中添加任务,先给20分,答对再多给!
- 有关数据中BLOB数据的存取?
- 100分恳请KSDev ThemeEngine 3.6
- 关于用Delphi进行C/S的开发
var a:array[0..30,0..30] of TPoint;
LeftTop,RightBottom:array[1..900]of TPoint;
PicWidth,PicHeight,i,j,k,n:integer;
begin
n:=3; PicWidth:=600;PicHeight:=450;
a[0,0]:=Point(0,0);
a[n,n]:=Point(PicWidth,PicHeight); for i:=0 to n do
for j:=0 to n do
begin
a[i,j].X:=j*(PicHeight div n);
a[i,j].Y:=i*(PicWidth div n);
end; k:=0;
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
k:=k+1;
LeftTop[k]:=a[i,j];//第k幅图的左上角坐标
RightBottom[k]:=a[i+1,j+1]; //第k幅图的右下角坐标
end; for k:=1 to n*n do
Memo1.Lines.Add(IntToStr(k)+' ('+IntToStr(LeftTop[k].X)+','+IntToStr(LeftTop[k].Y)+') '+' ('+IntToStr(RightBottom[k].X)+','+IntToStr(RightBottom[k].Y)+') ');
end;