VC: 三维视图绘制与消隐技术(4)
PointTable[MAXPTS].x=PointTable[MAXPTS-1].x;
PointTable[MAXPTS].y=PointTable[MAXPTS-1].y+20;
PointTable[MAXPTS+1].x=PointTable[0].x;
PointTable[MAXPTS+1].y=PointTable[0].y+20;
if(j==(MAXPTS-1))
{
SelectObject(hDC,hWhitePen);
SelectObject(hDC,hWhiteBrush);
Polygon(hDC,PointTable,MAXPTS); // 消 隐
}
else
{
SelectObject(hDC,hBlackPen);
SelectObject(hDC,hBlackBrush);
Polygon(hDC,PointTable,MAXPTS); // 消 隐
}
for(i=0;i
{
mx[i]=PointTable[i].x; //将前排点数据存于mx[i] my[i],
my[i]=PointTable[i].y; // 留待绘y方向网线
}
for(i=0;i<(MAXPTS-1);i++)
{
SelectObject(hDC,hGreenPen);
MoveTo(hDC,PointTable[i].x,PointTable[i].y);
LineTo(hDC,PointTable[i+1].x,PointTable[i+1].y);// 绘 x方向网线
}
}
SelectObject (hDC, hOldBrush);
EndPaint (hWnd, &PtStr);
return 0;
case WM_DESTROY:
ostQuitMessage (0);
return 0;
default:
break;
}
return DefWindowProc (hWnd, message, wParam, lParam);
}
5. 结论
绘图数据及缩放、视角等参数皆存于data.h文件中,或在该文件中说明,所以当绘图参数等内容变化时,只要修改或重新制作data.h文件即可。由此可见该程序具有使用灵活,可容绘图数据量大等优点,可用于各种空间分布数据三维视图的绘制,尤其适合于大数据量绘图。

