【C】Win32 风车实现
来源:互联网 发布:社交网络之类的电影 编辑:程序博客网 时间:2024/04/29 07:36
// feicheche.cpp : Defines the entry point for the application.//#include "stdafx.h"#include <math.h>#define PI 3.1415926//定义变量int n = 0,k = 101;int i,num = 0,maxNum = 360;POINT p[201],yp1[201],yp2[201],yp3[201];double f,radious;long WINAPI WndProc( HWND hWnd, UINT iMsg, UINT wParam, LONG lParam);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ HWND hWnd; MSG Msg;WNDCLASS wndclass; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); wndclass.hInstance=hInstance; wndclass.lpfnWndProc=WndProc; wndclass.lpszClassName="fengche"; wndclass.lpszMenuName=NULL; wndclass.style=0;if(!RegisterClass(&wndclass)){MessageBeep(0);return FALSE;}hWnd = CreateWindow("fengche", "风车", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); ShowWindow(hWnd,SW_SHOWNORMAL); UpdateWindow(hWnd);for(n=0;n<=100;n++){p[n].x=(long)(n*PI/100*40);p[n].y=(long)(30*sin(n*PI/100)); }for(n=101;n<=200;n++){p[n].x=(long)(k*PI/101*40);p[n].y=(long)(30*(-sin(k*PI/101)));k--;}while(GetMessage(&Msg,0,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); }return Msg.wParam;}long WINAPI WndProc( HWND hWnd, UINT iMsg, UINT wParam, LONG lParam ){HDC hDC; HBRUSH hBrush; HPEN hPen; PAINTSTRUCT PtStr;switch(iMsg){case WM_PAINT:{hDC=BeginPaint(hWnd,&PtStr);SetWindowOrgEx(hDC,-400,-250,NULL);//弧线弧度f = 2*PI*num/maxNum;//绘制叶片1for(i=0;i<=200;i++){yp1[0].x = 0;yp1[0].y = 0;radious = sqrt(p[i].x *p[i].x +p[i].y *p[i].y);double x=(double)p[i].y/(double)p[i].x;yp1[i].x=(long)(radious*cos(f+atan(x)));yp1[i].y=(long)(radious*sin(f+atan(x)));}hBrush = CreateSolidBrush(RGB(255,0,0));SelectObject(hDC,hBrush);hPen = CreatePen(PS_SOLID,2,RGB(0,0,0));SelectObject(hDC,hPen);Polygon(hDC,yp1,201);DeleteObject(hPen);DeleteObject(hBrush);//绘制叶片2for(i=0;i<=200;i++){yp2[0].x = 0;yp2[0].y = 0;radious = sqrt(p[i].x *p[i].x +p[i].y *p[i].y);double x=(double)p[i].y/(double)p[i].x;yp2[i].x=(long)(radious*cos(f+2*PI/3+atan(x)));yp2[i].y=(long)(radious*sin(f+2*PI/3+atan(x)));}hBrush = CreateSolidBrush(RGB(0,255,0));SelectObject(hDC,hBrush);hPen = CreatePen(PS_SOLID,2,RGB(0,0,0));SelectObject(hDC,hPen);Polygon(hDC,yp2,201);DeleteObject(hPen);DeleteObject(hBrush);//绘制叶片3for(i=0;i<=200;i++){yp3[0].x = 0;yp3[0].y = 0;radious = sqrt(p[i].x *p[i].x +p[i].y *p[i].y);double x=(double)p[i].y/(double)p[i].x;yp3[i].x=(long)(radious*cos(f+4*PI/3+atan(x)));yp3[i].y=(long)(radious*sin(f+4*PI/3+atan(x)));}hBrush = CreateSolidBrush(RGB(0,0,255));SelectObject(hDC,hBrush);hPen = CreatePen(PS_SOLID,2,RGB(0,0,0));SelectObject(hDC,hPen);Polygon(hDC,yp3,201);DeleteObject(hPen);DeleteObject(hBrush);num++;Sleep(100);if(num<1000) InvalidateRect(hWnd,NULL,1);EndPaint(hWnd,&PtStr);return 0;}case WM_DESTROY:{PostQuitMessage(0);return 0;}default:return (DefWindowProc(hWnd,iMsg,wParam,lParam));}return FALSE;}
0 0
- 【C】Win32 风车实现
- Win32 三色旋转风车
- CSS3实现风车
- javascript实现风车效果
- 旋转的风车VC++实例代码(Win32应用程序)
- 如何用css3实现风车效果
- 可以用css3实现风车效果
- Android 模拟吹气实现吹风车效果
- Java实现风车旋转的效果
- HTML5+CSS3实现的小风车-转动的童年
- 基于SDL实现图片的移动和风车的转动
- Android使用SurfaceView实现墨迹天气的风车效果
- Android使用SurfaceView实现墨迹天气的风车效果
- Android使用SurfaceView实现墨迹天气的风车效果
- Android自定义view--SurfaceView实现墨迹天气的风车效果
- CSS3实现一个小风车【纯DOM+CSS3】
- 求win32下的多线程控制台程序(c实现)
- 二维线段裁剪程序的C/SDK WIN32实现
- 十四周项目二 带姓名的成绩单
- windows xp 配置Apache+php+mySQL
- 深入理解Java虚拟机到底是什么
- 开发定位以及获取当前详细地址
- 自己实现lua table
- 【C】Win32 风车实现
- shared_ptr在二叉树中的应用
- Python笔记-排序算法(3)
- [LeetCode]Pascal's Triangle II
- log4j的学习使用
- 联合体里面的结构体
- project01:阶段性总结
- Prim 算法
- EHCP-Easy Hosting Control Panel 一款开源的站点管理面板