有一段画地图的VC代码,不知如何移植到Delphi上,请高手帮忙翻译一下,分不够可在加//画地图轮廓线
void CRtradarView::DrawNewMap_Data(CDC *dc, int cen_x,int cen_y, int dis, int radius, char *name, COLORREF clr)
{
long TotalNum=0L,NodeNum=0L;
//      char sTemp[32]; char filename[128];
sprintf(filename,"%s\\%s",Map_Dir, name);
FILE *fp=fopen(filename,"rb");
if(fp==NULL)
{
//              sprintf(sTemp,"打开地图数据文件 %s 错!",filename);
//              AfxMessageBox(sTemp);
return;
}
fread(&TotalNum, 1, sizeof(long), fp); CPen pen(PS_SOLID,1,clr);
CPen *pen_Old=dc->SelectObject(&pen);
CPoint ptSrc,ptDraw;
DPoint ptScaled;
BOOL bFindFirstDot=0; for(long i=0; i<TotalNum; i++)
{
fread(&NodeNum, 1, sizeof(long), fp);
bFindFirstDot=0;
for(long j=0; j<NodeNum; j++)
{
fread(&ptSrc, 1, sizeof(CPoint), fp);
ptScaled.x=(float)((ptSrc.x-500) / 64.-RadarPos.x);             
ptScaled.y=(float)((ptSrc.y-500) / 64.-RadarPos.y);             
long range=(long)sqrt( ptScaled.x*ptScaled.x+ptScaled.y*ptScaled.y);
if(range > dis)  continue;      //判断是否超出距离档范围 ptDraw.x=(long)(ptScaled.x*radius/dis+cen_x);
ptDraw.y=(long)(ptScaled.y*radius/dis+cen_y);

if(j==0)
{
dc->MoveTo(ptDraw.x, ptDraw.y);
bFindFirstDot=1;
}
else{
if(bFindFirstDot)       dc->LineTo(ptDraw.x, ptDraw.y);
else    {
dc->MoveTo(ptDraw.x, ptDraw.y);
bFindFirstDot=1;
}
}
}
}
dc->SelectObject(pen_Old);
fclose(fp);
}