您的位置:首页 > 移动开发 > Objective-C

delphi, Mapobjects(mo)开发一些技巧,图形对象类型转换

2007-12-06 21:37 603 查看
function CircleToPline(MEllipse: IMoEllipse): IMoLine;
var
i : Integer;
pt : IMoPoint;
pts : IMoPoints;
a, b : Double; //分别长半轴与短半轴
x, y : Double; //圆心
Mline : IMoLine;
begin
pt := CoPoint.Create;
pts := CoPoints.Create;
a := MEllipse.Width / 2;
b := MEllipse.Height / 2;
x := MEllipse.Center.X;
Y := MEllipse.Center.y;
for i := 0 to Resolution do
begin
pt.X := x + a * Cos(2 * Pi * i / Resolution);
pt.y := Y + b * Sin(2 * Pi * i / Resolution);
pts.Add(pt);
end;

Mline := CoLine.Create;
Mline.Parts.Add(pts);
result := Mline;
end;
//by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2001.03.03编写

//矩形转化为区域
{******************************************* yl Write *******************************************}

function RectToRegion(MRectangle: IMoRectangle): IMoPolygon;
var
Obj : IMoPolygon;
i : Integer;
pts : array[0..3] of IMoPoint;
Ptss : IMoPoints;
begin
Obj := CoPolygon.Create;
for i := 0 to 3 do
begin
pts[i] := CoPoint.Create;
end;

with MRectangle do
begin
pts[0].X := Left;
pts[0].Y := top;
pts[1].X := Left;
pts[1].Y := Bottom;
pts[2].X := Right;
pts[2].Y := Bottom;
pts[3].X := Right;
pts[3].Y := top;
end;

Ptss := CoPoints.Create;
for i := 0 to 3 do
ptss.Add(pts[i]);
ptss.Add(pts[0]);
obj.Parts.Add(ptss);
result := obj;
end;

//矩形转化为线
{******************************************* yl Write *******************************************}

function RectToPline(MRectangle: IMoRectangle): IMoLine;
var
Mline : IMoLine;
i : Integer;
pts : array[0..3] of IMoPoint;
Ptss : IMoPoints;
begin
Mline := CoLine.Create;
for i := 0 to 3 do
begin
pts[i] := CoPoint.Create;
end;

with MRectangle do
begin
pts[0].X := Left;
pts[0].Y := top;
pts[1].X := Left;
pts[1].Y := Bottom;
pts[2].X := Right;
pts[2].Y := Bottom;
pts[3].X := Right;
pts[3].Y := top;
end;

Ptss := CoPoints.Create;
for i := 0 to 3 do
ptss.Add(pts[i]);
ptss.Add(pts[0]);
Mline.Parts.Add(ptss);
result := Mline;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: