快速业务通道

三维视图绘制与消隐技术

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-05-23
OGPEN lpGreen={PS_SOLID,1,1,RGB(0,255,0)};

static LOGPEN lpWhite={PS_SOLID,1,1,RGB(255,255,255)};

HBRUSH hBlackBrush;

HBRUSH hWhiteBrush;

HPEN hGreenPen;

HPEN hWhitePen;

HDC hDC;

PAINTSTRUCT PtStr;

LoadString (hInst, IDS_CAPTION, szCaption, 35);

return 0;

case WM_PAINT:

hDC = BeginPaint (hWnd, &PtStr);

SetMapMode(hDC,MM_TEXT);

hBlackPen=CreatePenIndirect(&lpBlack);

hGreenPen=CreatePenIndirect(&lpGreen);

hWhitePen=CreatePenIndirect(&lpWhite);

hBlackBrush=GetStockObject(BLACK_BRUSH);

hWhiteBrush=GetStockObject(WHITE_BRUSH);

hOldBrush = SelectObject (hDC,GetStockObject

(NULL_BRUSH));

{

yy[j]=MOVE+j*SCALE1; //MOVE为绘图起始点Y坐标,在data.h中定义

for(i=0;i

{
(未完。。。)

PointTable[i].x=i*SCALE2+j*SCALE4; // 形成多边形顶点

数组

PointTable[i].y=yy[j]-(PointTable

[i].x-PointTable[0].x)*ANGLE-(mv[j*MAXPTS+i]

*SCALE3); //SCALE2和SCALE4分别为X和Y方向的缩放系数

if(j>0) //SCALE3为绘图数据(Z方向)的缩放系数

{ //ANGLE为视角,均在data.h中定义

SelectObject(hDC,hGreenPen);

MoveTo(hDC,mx[i],my[i]);

LineTo(hDC,PointTable[i].x,PointTable[i].y); // 绘 y 方 向 网 线

}

}

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文件即可。由此可见该程序具有使用灵活,可容绘图数据量大等优点,可用于各种空间分布数据三维视图的绘制,尤其适合于大数据量绘图。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号