1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 绘制Bezier样条函数-计算机图形学基础

绘制Bezier样条函数-计算机图形学基础

时间:2022-07-24 18:58:02

相关推荐

绘制Bezier样条函数-计算机图形学基础

//绘制Bezier函数CRect rect;CPoint P[7];P[0]=CPoint(100,400); P[1]=CPoint(200,200);P[2]=CPoint(500,100); P[3]=CPoint(550,300);double k=(P[3].y-P[2].y)/(P[3].x-P[2].x);double x=600,y=k*(x-P[3].x)+P[3].y;P[4]=CPoint(x+0.5,y+0.5);P[5]=CPoint(900,400);P[6]=CPoint(800,120);for(int i=0;i<7;i++){if(i==0)pDC->MoveTo(P[i]);elsepDC->LineTo(P[i]);pDC->Ellipse(P[i].x-5,P[i].y-5,P[i].x+5,P[i].y+5);//黑色实心圆绘制控制点}CPen NewPen,*pOldPen;NewPen.CreatePen(PS_SOLID,1,RGB(0,45,67));//创建画笔pOldPen=pDC->SelectObject(&NewPen);pDC->PolyBezier(P,7);pDC->SelectObject(pOldPen);

void CMy55View::OnDraw(CDC* pDC){CMy55Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCRect rect;GetClientRect(&rect);CDC memDC;//声明一个内存设备上下文对象CBitmap NewBitmap,*pOldBitmap;NewBitmap.LoadBitmap(IDB_BITMAP1);memDC.CreateCompatibleDC(pDC);pOldBitmap=memDC.SelectObject(&NewBitmap);BITMAP bmp;//声明位图结构体对象NewBitmap.GetBitmap(&bmp);pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);memDC.SelectObject(pOldBitmap);//将内存设备上下文恢复原状}

文本函数CRect rect;GetClientRect(&rect);pDC->FillSolidRect(rect,RGB(0,0,0));pDC->SetTextColor(RGB(255,255,0));CString data,str="基于MFC研究计算机图形学";CFont NewFont,*pOldFont;LOGFONT lf;memset(&lf,0,sizeof(LOGFONT));lf.lfHeight=30;lf.lfCharSet=GB2312_CHARSET;strcpy((lf.lfFaceName),"幼圆");NewFont.CreateFontIndirect(&lf);pOldFont=pDC->SelectObject(&NewFont);pDC->TextOut(20,20,str);pDC->SelectObject(pOldFont);NewFont.DeleteObject();pDC->SetTextColor(RGB(255,0,0));pDC->SetBkColor(RGB(255,45,266));int a1=5,b1=8;double a2=5.2,b2=8.3;data.Format("%d,%d",a1,b1);pDC->TextOut(100,80,data);pDC->SetTextColor(RGB(0,189,78));pDC->SetBkColor(TRANSPARENT);data.Format("%f,%f",a2,b2);pDC->TextOut(100,120,data);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。