怎么用MFC画齿轮,我是没有一点思路。
如题,本来是这样的一张照片
别人已经画了一半了,如下图,一个大圆,半径是320
现在叫我用红色画笔画51个齿,如下图
我现在是一点思路一没有,那个齿是什么形状的?不叫我用直线画,
要用法数学的方法先计算出各点来,然后再用 setpoint 去描出来,不能用直线来绘制
memdc.SetPoint(x,y)
注意哈,一点一点地描,你手动将点计算出来,然后用上面的画上去
一共51个齿,你用红颜色画51个齿出来就行了
齿可以画30长即可
就给了我这点提示,我现在完全没有思路,谁给我点提示啊,我把画圆的代码贴出来,就在那里添加
//--- 显示专用int CRunWHView::Draw(){ CPen pen(PS_SOLID,0,RGB(0xff,0,0)); //RED CPen* oldpen; oldpen = (CPen*) memdc.SelectObject(&pen ); CBrush br1; br1.DeleteObject(); //create drawing fill brush br1.CreateSolidBrush(RGB(0,0,255)); //Green CBrush* oldbr; oldbr=(CBrush*) memdc.SelectObject(&br1 ); CBrush brw; brw.DeleteObject(); //create drawing fill brush brw.CreateSolidBrush(RGB(255,255,255)); //Green DrawWH51(); ::StretchDIBits(memdc.m_hDC, 0,0, RUN_WH_IMG_W,RUN_WH_IMG_W, 0,0, RUN_WH_IMG_W,RUN_WH_IMG_W, DrawImageBuf, (PBITMAPINFO)&BmpInfo, DIB_RGB_COLORS, SRCCOPY); int x,y,w,h,r,d,i,j,k; //--- 绘制大圆 x=RUN_WH_IMG_W/2; y=RUN_WH_IMG_W/2; w=RUN_WH_IMG_W/2; x=0+10; y=0+10; w=RUN_WH_IMG_W-10; memdc.SelectObject(&pen ); memdc.SelectObject(&brw ); //memdc.SelectStockObject(NULL_BRUSH); //no fill rectangle //memdc.Ellipse(x,y,w,w); memdc.Ellipse(x,y,w,w); //memdc.SelectObject(oldpen); //--- 绘制小圆 CTRealPoint p1,p2,p3,p0; x=RUN_WH_IMG_W/2; y=RUN_WH_IMG_W/2; memdc.SelectObject(&br1 ); //-- 中心小圆 r=40; memdc.Ellipse(x-r,y-r,x+r,y+r); //-- 外环小圆 r=35; x=RUN_WH_IMG_W/2; y=RUN_WH_IMG_W/2; p0.Set(x,y); p1.Set(x,y-200); p0.Rotate2A(&p1,45/2); x=p1.X; y=p1.Y; memdc.Ellipse(x-r,y-r,x+r,y+r); for (i=0;i<7;i++) { p0.Rotate2A(&p1,45); x=p1.X; y=p1.Y; memdc.Ellipse(x-r,y-r,x+r,y+r); } memdc.SelectObject(oldpen ); memdc.SelectObject(oldbr ); pdc->BitBlt(0,0,RUN_WH_IMG_W,RUN_WH_IMG_W,&memdc,0,0,SRCCOPY); return(1);}