传说中的路痴 发表于 2017-6-2 13:28:17

画正弦线

代码:
        case WM_PAINT:
                hdc = BeginPaint(hWnd, &ps);
                // TODO: 在此添加任意绘图代码...
                //画正玄线
#definePI 3.1415926
#define        SEGMENT 500
                int cxClient,cyClient;
                RECT rect;

                ::GetClientRect(hWnd, &rect);
                cxClient = rect.right - rect.left;
                cyClient = rect.bottom - rect.top;

                POINT        pt;
                for (int i=0;i<SEGMENT;i++)
                {
                        pt.x = i * cxClient/SEGMENT;//cxClient的长度被分成SEGMENT份
                        pt.y =(int)((cyClient/2)*(1 - sin(2 * PI * i/SEGMENT))); //因为sin(2pi)取反,因为数学坐标Y轴向上,而系统中坐标Y轴向下,+cyClient/2是将坐标原点移到左上角
                }
                ::Polyline(hdc, pt, SEGMENT); //绘图函数

                EndPaint(hWnd, &amp;ps);
                break;
页: [1]
查看完整版本: 画正弦线