Ⅰ 怎么用电脑绘制大风车呢
转眼春天快要来了,和煦的春风也要来了,漂亮的风筝、风车又出现在街头巷尾,我们就用电脑来画个大风车,来表达我们的喜悦之情吧!
一、打开“画图”软件,选中工具箱中“多边形”工具,在绘图区画出一个梯形,作为风车的`一个风叶。
二、为使风车更有立体感,选中“曲线”工具,以梯形的一个顶点为端点,在两条平行边右斜画一条曲线,并用“油漆桶”分别填充上自己喜欢的颜色。
三、用“选定工具”选中画出的这个风叶,按住“Ctrl”键,复制其它三个风叶。
四、分别选中这三个风叶,点击菜单“图像”----“翻转”,在弹出的的对话框中,分别选择“按一定角度翻转下的90度,180度,270度。
五、去掉“图像”菜单中“不透明处理”选项前的对勾,把这四个风叶拼在一起。然后选中“椭圆”工具,并设它的前景色为黑色,背景色为红色,在风叶的中心画一个圆,这样风车的扇页就做好了。
六、选中“矩形”工具,在扇叶旁边画出风车手柄,并上颜色。
七、最后用“选定”工具把扇叶放在手柄上。
看!一个漂亮的风车就在你的手中诞生了!赶快拿着它去转转吧!
Ⅱ c++编程:.在窗口中画一个旋转的风车,要求每个叶片的色不同。 用C++语言编写!
使每个叶片的颜色变为下一个叶片的颜色或者上一个叶片颜色 这样就可以转了
Ⅲ vc中实现所画风车的旋转,我用vc++6.0 cpp画了一个风车 怎么才能让它能旋转起来
//源程序,示例代码:
//Instance_3_1_.cpp:.
//
/*************************************************************************
在窗口中画一个旋转的风车,风车中有三个叶片,颜色分别为红黄和蓝,
叶片外侧有一个外接圆。
*************************************************************************/
#include<windows.h>
#include<math.h>
//回调函数声明
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam);
//初始化窗口类声明
BOOLInitWindowsClass(HINSTANCEhInstance,char*lpszClassName);
//初始化窗口声明
BOOLInitWindows(HINSTANCEhInstance,intnCmdShow,char*lpszClassName,char*lpTitle);
WNDCLASSwndclass;//定义一个窗口类
HWNDhwnd;//定义一个窗口句柄
constdoublePi=3.1415926;
intnMaxNumber=20;//叶片循环一周中绘图的次数
intnNum=0;//记录当前的顺序
intWINAPIWinMain(HINSTANCEhInstance,
HINSTANCEhPrevInstance,
LPSTRlpCmdLine,
intnCmdShow)
{
MSGMsg;//定义消息
charlpszClassName[]="风车";//窗口的类名
charlpTitle[]="基本绘图-旋转的风车";//窗口标题名
//初始化窗口类
if(!InitWindowsClass(hInstance,lpszClassName))
{
returnFALSE;
}
//初始化窗口
if(!InitWindows(hInstance,nCmdShow,lpszClassName,lpTitle))
{
returnFALSE;
}
//消息循环
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
returnMsg.wParam;//程序终止时将信息返回系统
}
//初始化窗口类定义
BOOLInitWindowsClass(HINSTANCEhInstance,char*lpszClassName)
{
//1、窗口类定义
wndclass.style=0;//窗口类型为默认类型
wndclass.lpfnWndProc=WndProc;//窗口处理函数为WNDPROC
wndclass.cbClsExtra=0;//窗口类无扩展
wndclass.cbWndExtra=0;//窗口实例无扩展
wndclass.hInstance=hInstance;//当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口采用白色背景
wndclass.lpszMenuName=NULL;//窗口中无菜单
wndclass.lpszClassName=lpszClassName;//类名为lpClassName
//2、注册窗口类
if(!RegisterClass(&wndclass))
{//如果注册失败则发出警告声音
MessageBeep(0);
returnFALSE;
}
returnTRUE;
}
//初始化窗口声明
BOOLInitWindows(HINSTANCEhInstance,intnCmdShow,char*lpszClassName,char*lpTitle)
{
//3、创建窗口
hwnd=CreateWindow(
lpszClassName,
lpTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
600,
450,
NULL,
NULL,
hInstance,
NULL
);
//4、显示窗口
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
returnTRUE;
}
//回调函数定义
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
HDChDC;//定义设备环境句柄
HPENhPen;//定义画笔句柄
HBRUSHhBrush;//定义画刷句柄
PAINTSTRUCTPtStr;//定义包含绘制信息的结构体变量
POINTpCenterPoint;//定义一个圆尽心点的坐标
intnRadious=50;//定义圆的半径
doublefAngle;//叶片的直边与水平轴的夹角
switch(message)
{
caseWM_PAINT:
{//处理绘图消息
hDC=BeginPaint(hwnd,&PtStr);//得到设备句柄
SetMapMode(hDC,MM_ANISOTROPIC);//设置映像模式
SetWindowExtEx(hDC,400,300,NULL);//设置窗口区域(逻辑单位)
SetViewportExtEx(hDC,600,450,NULL);//设置视口区域(物理单位)
SetViewportOrgEx(hDC,300,200,NULL);//设置视口原点坐标为(300,200)
//绘制外圆
hPen=(HPEN)GetStockObject(BLACK_PEN);
SelectObject(hDC,hPen);
Ellipse(hDC,-100,-100,100,100);
//绘制风车的叶片
//1、画红色叶片
hBrush=CreateSolidBrush(RGB(255,0,0));
SelectObject(hDC,hBrush);
fAngle=2*Pi/nMaxNumber*nNum;
pCenterPoint.x=(int)(nRadious*cos(fAngle));
pCenterPoint.y=(int)(nRadious*sin(fAngle));
Pie(
hDC,
pCenterPoint.x-nRadious,pCenterPoint.y-nRadious,
pCenterPoint.x+nRadious,pCenterPoint.y+nRadious,
(int)(pCenterPoint.x+nRadious*cos(fAngle)),
(int)(pCenterPoint.y+nRadious*sin(fAngle)),
(int)(pCenterPoint.x+nRadious*cos(fAngle+Pi)),
(int)(pCenterPoint.y+nRadious*sin(fAngle+Pi))
);
//2、画天蓝色叶片
hBrush=CreateSolidBrush(RGB(255,255,0));
SelectObject(hDC,hBrush);
pCenterPoint.x=(int)(nRadious*cos(fAngle+2*Pi/3));
pCenterPoint.y=(int)(nRadious*sin(fAngle+2*Pi/3));
Pie(
hDC,
pCenterPoint.x-nRadious,pCenterPoint.y-nRadious,
pCenterPoint.x+nRadious,pCenterPoint.y+nRadious,
(int)(pCenterPoint.x+nRadious*cos(fAngle+2*Pi/3)),
(int)(pCenterPoint.y+nRadious*sin(fAngle+2*Pi/3)),
(int)(pCenterPoint.x+nRadious*cos(fAngle+Pi+2*Pi/3)),
(int)(pCenterPoint.y+nRadious*sin(fAngle+Pi+2*Pi/3))
);
//2、画黄色叶片
hBrush=CreateSolidBrush(RGB(0,255,255));
SelectObject(hDC,hBrush);
pCenterPoint.x=(int)(nRadious*cos(fAngle+4*Pi/3));
pCenterPoint.y=(int)(nRadious*sin(fAngle+4*Pi/3));
Pie(
hDC,
pCenterPoint.x-nRadious,pCenterPoint.y-nRadious,
pCenterPoint.x+nRadious,pCenterPoint.y+nRadious,
(int)(pCenterPoint.x+nRadious*cos(fAngle+4*Pi/3)),
(int)(pCenterPoint.y+nRadious*sin(fAngle+4*Pi/3)),
(int)(pCenterPoint.x+nRadious*cos(fAngle+Pi+4*Pi/3)),
(int)(pCenterPoint.y+nRadious*sin(fAngle+Pi+4*Pi/3))
);
nNum++;//当前充数增加1
Sleep(50);//等待0.1秒
InvalidateRect(hwnd,NULL,1);//重绘窗口区域
DeleteObject(hPen);
DeleteObject(hBrush);
EndPaint(hwnd,&PtStr);
break;
}
caseWM_DESTROY:
{
//调用PostQuitMessage发出WM_QUIT消息
PostQuitMessage(0);
}
default:
{
returnDefWindowProc(hwnd,message,wParam,lParam);
}
}
return0;
}