资源简介
1.定义一只红色画笔,绘制一个等边五边形。
2.用不同颜色的线条连接互不相邻的两个点。
3.用不同颜色的画刷填充上述方法形成的每个区域!
代码片段和文件信息
#include
#include
#include
#include
#define Pi 3.1415926535
long WINAPI WndProc(HWND hWnd
UINT iMessage
UINT wParam
LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstanceint nCmdShow);
int WINAPI WinMain(HINSTANCE hInstance
HINSTANCE hPrevInstance
LPSTR lpCmdLine
int nCmdShow)
{
MSG Message;
if(!InitWindowsClass(hInstance))
return FALSE;
if(!InitWindows(hInstancenCmdShow))
return FALSE;
while(GetMessage(&Message000))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
long WINAPI WndProc(HWND hWndUINT iMessageUINT wParamLONG lParam)
{
HDC hDC;
HBRUSH hBrushhDefBrush;
HPEN hPenhDefPen;
PAINTSTRUCT PtStr;
double dfRadious0 = 100.0dfRadious1;
POINT lpOuterPoints[5]lpInnerPoints[5];
POINT lpTriangle[3];
dfRadious1 = dfRadious0*sin(0.1*Pi)/sin(126.0/180*Pi);
for(int i=0;i<5;i++)
{
lpOuterPoints[i].x = (long)(dfRadious0*cos(i*72.0/180*Pi));
lpOuterPoints[i].y = (long)(dfRadious0*sin(i*72.0/180*Pi));
lpInnerPoints[i].x = (long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi));
lpInnerPoints[i].y = (long)(dfRadious1*sin(i*72.0/180*Pi+36.0/180*Pi));
}
switch(iMessage)
{
case WM_PAINT:
hDC = BeginPaint(hWnd&PtStr);
SetMapMode(hDCMM_ANISOTROPIC);
SetWindowOrgEx(hDC-100-100NULL);
hPen = CreatePen(PS_SOLID1RGB(25500));
hDefPen = (HPEN)Selectobject(hDChPen);
Polygon(hDClpOuterPoints5);
Selectobject(hDChDefPen);
Deleteobject(hPen);
for(i=0;i<5;i++)
{
lpTriangle[0] = lpOuterPoints[i%5];
lpTriangle[1] = lpInnerPoints[i%5];
lpTriangle[2] = lpOuterPoints[(i+1)%5];
hBrush = CreateSolidBrush(RGB(i*10i*50i*30));
hDefBrush = (HBRUSH)Selectobject(hDChBrush);
Polygon(hDClpTriangle3);
lpTriangle[2] = lpInnerPoints[(i+4)%5];
Selectobject(hDChDefBrush);
Deleteobject(hBrush);
hBrush = CreateSolidBrush(RGB((5-i)*40(5-i)*50(5-i)*20));
hDefBrush = (HBRUSH)Selectobject(hDChBrush);
Polygon(hDClpTriangle3);
Selectobject(hDChDefBrush);
Deleteobject(hBrush);
}
hBrush = CreateSolidBrush(RGB(255255255));
hDefBrush = (HBRUSH)Selectobject(hDChBrush);
Polygon(hDClpInnerPoints5);
Selectobject(hDChDefBrush);
Deleteobject(hBrush);
MoveToEx(hDClpOuterPoints[0].xlpOuterPoints[0].yNULL);
for(i=1;i<=5;i++)
{
hPen = CreatePen(PS_SOLID1RGB(0i*200));
hDefPen = (HPEN)Selectobject(hDChPen);
LineTo(hDClpOuterPoints[(i+2)%5].xlpOuterPoints[(i+2)%5].y);
Selectobject(hDChDefPen);
Deleteobject(hPen);
}
EndPaint(hWnd&PtStr);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return(DefWindowProc(hWndiMessagewParamlParam));
}
}
BOOL InitWindows(HINSTANCE hInstanceint nCmdShow)
{
HWND hWnd;
hWnd = CreateWindow(“WinFil
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-05-05 16:43 五边形\
目录 0 2013-05-05 16:40 五边形\Debug\
文件 132096 2013-05-05 16:40 五边形\Debug\vc60.idb
文件 77824 2013-05-05 16:34 五边形\Debug\vc60.pdb
文件 204859 2013-05-05 16:40 五边形\Debug\源代码.exe
文件 229748 2013-05-05 16:40 五边形\Debug\源代码.ilk
文件 18602 2013-05-05 16:40 五边形\Debug\源代码.obj
文件 3565692 2013-05-05 16:34 五边形\Debug\源代码.pch
文件 377856 2013-05-05 16:40 五边形\Debug\源代码.pdb
文件 3920 2013-05-05 13:00 五边形\五边形.dsp
文件 520 2013-05-05 11:44 五边形\五边形.dsw
文件 33792 2013-05-05 13:00 五边形\五边形.ncb
文件 48640 2013-05-05 13:00 五边形\五边形.opt
文件 3752 2013-05-05 16:34 五边形\源代码.cpp
文件 3460 2013-05-05 16:42 五边形\源代码.dsp
文件 520 2013-05-05 16:42 五边形\源代码.dsw
文件 41984 2013-05-05 16:43 五边形\源代码.ncb
文件 48640 2013-05-05 16:43 五边形\源代码.opt
文件 742 2013-05-05 16:40 五边形\源代码.plg
- 上一篇:魔法学院的奇幻之旅:用 GoC 编程绘图.基础篇前3课样稿
- 下一篇:影碟出租系统
评论
共有 条评论