C++编程制图
班级:土木12 姓名:彭康夫 学号:20120381
1-1
CRect rc;
GetClientRect(rc);
pDC->SetMapMode(7);
pDC->SetWindowExt(100,100); pDC->SetViewportExt(200,-200);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
int pa[5][2]={0,0,0,120,-240,0,240,0,0,120};
POINT pb[9]={-160,0,-160,40,-80,0,-80,80,0,0,80,80,80,0,160,40,160,0}; CPen pen(0,2,RGB(0,0,0)); pDC->SelectObject(pen);
pDC->MoveTo(pa[0][0],pa[0][1]); for(int i=1;i<=4;i++) pDC->LineTo(pa[i][0],pa[i][1]); pDC->Polyline(pb,9);
2-2
CPen *pPen;
CRect rc;GetClientRect(&rc); pDC->SetMapMode(7);
pDC->SetViewportOrg(rc.right/2-200,rc.bottom/2); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(300,-300);
pDC->MoveTo(300,100); for(int i=90;i>=-50;i=i-10){
pPen=new CPen(0,0,RGB(255-1.5*i,i*1.5,(90-i)*2)); pDC->SelectObject(pPen);
pDC->AngleArc(300,i,100-i,-90,360);}
2-3
CPen pen1(0,1,RGB(0,0,0)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7);
pDC->SetViewportOrg(rc.right/2-200,rc.bottom/2); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(300,-300);
pDC->SelectObject(pen1); double pi=3.1415926; POINT
p1[10]={0,100,-38.2*sin(0.2*pi),38.2*cos(0.2*pi),-100*sin(0.4*pi),100*cos(0.4*pi),-38.2*cos(0.1*pi),-38.2*sin(0.1*pi),-100*cos(0.3*pi),-100*sin(0.3*pi),0,-38.2,100*cos(0.3*pi),-100*sin(0.3*pi),38.2*cos(0.1*pi),-38.2*sin(0.1*pi),100*sin(0.4*pi),100*cos(0.4*pi),38.2*sin(0.2*pi),38.2*cos(0.2*pi)};
pDC->Polygon(p1,10); pDC->MoveTo(0,0); for(int i=0;i<10;i++) {pDC->MoveTo(0,0); pDC->LineTo(p1[char(i)]);}
2-4
CPen pen1(0,1,RGB(0,0,0));
CRect rc;GetClientRect(&rc); pDC->SetMapMode(7);
pDC->SetViewportOrg(rc.right/2-200,rc.bottom/2); pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(400,400); pDC->SetViewportExt(1000,-1000); pDC->SelectObject(pen1);
POINT p1[4]={0,0,-10,0,-10,100,0,100}; pDC->Polygon(p1,4); pDC->MoveTo(80,0); pDC->LineTo(-90,0); pDC->MoveTo(-80,10); pDC->LineTo(-20,10); pDC->LineTo(-20,60); pDC->MoveTo(10,60); pDC->LineTo(10,10); pDC->LineTo(70,10); pDC->MoveTo(-80,10);
pDC->Arc(-90,10,-70,-10,-80,10,-90,0); pDC->MoveTo(0,70); pDC->AngleArc(0,60,10,-90,90); pDC->MoveTo(70,10); pDC->AngleArc(70,0,10,-90,90); pDC->MoveTo(-10,70); pDC->AngleArc(-10,60,10,-90,-90);
2-5
CPen pen1(0,1,RGB(0,0,0));
CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetViewportOrg(rc.right/2-400,rc.bottom/2+100); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(600,-600); pDC->SelectObject(pen1);
POINT p1[6]={197.0843802,225,0,225,0,0,560,0,560,225,362.9156198,225}; pDC->MoveTo(p1[0]); pDC->Polyline(p1,6); pDC->Arc(130,250,430,-50,362.9156198,225,197.0843802,225); pDC->MoveTo(340,20);
pDC->ArcTo(180,200,380,0,340,20,220,20); pDC->LineTo(220,0); pDC->MoveTo(340,0); pDC->LineTo(340,20);
2-6
CPen pen1(0,1,RGB(0,0,0));
CPen pen2(0,1,RGB(255,255,255)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7);
pDC->SetViewportOrg(rc.right/2-400,rc.bottom/2+100); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(600,-600); pDC->SelectObject(pen1);
pDC->Ellipse(0,0,280,100); pDC->Chord(70,120,210,-20,210,50,70,50); pDC->SelectObject(pen2); pDC->MoveTo(210,50); pDC->LineTo(70,50);
2-7
CPen pen1(0,1,RGB(0,0,0));
CPen pen2(0,1,RGB(255,255,255)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetViewportOrg(rc.right/2-200,rc.bottom/2+200); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(300,-300); pDC->SelectObject(pen1); pDC->Ellipse(0,600,600,0); pDC->Ellipse(40.19,600,559.81,0); pDC->Ellipse(150,600,450,0); POINT
p[10]={523.61,500,76.39,500,582.84,400,17.16,400,600,300,0,300,582.84,200,17.16,200,523.61,100,76.39,100}; for(int i=0;i<10;i=i+2){ pDC->MoveTo(p[char(i)]); pDC->LineTo(p[char(i+1)]);}
pDC->MoveTo(300,600); pDC->LineTo(300,0);
2-8
CPen pen1(0,1,RGB(0,0,0)); CPen pen2(0,1,RGB(255,255,255)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(400,400); pDC->SetViewportExt(400,-400); pDC->SelectObject(pen1); double R,E,pi; pi=3.1415926;
for(E=0;E<=20*pi;E=E+0.1) {R=120*cos(1.5*E); pDC->MoveTo(0,0);
pDC->LineTo(int(R*cos(E)),int(R*sin(E)));}
2-9
CPen pen1(0,1,RGB(0,0,0)); CBrush brush(0,RGB(0,0,0)); pDC->SelectObject(brush); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetWindowOrg(0,0); pDC->SetViewportOrg(rc.right/2,rc.bottom/2); pDC->SetWindowExt(100,100); pDC->SetViewportExt(400,-400); pDC->SelectObject(pen1);
double x1[7],y1[7],a=sin(0.785398),b=cos(0.785398); for(int i=0;i<7;i++)
{x1[i]=sqrt(70*70-100*i*i); y1[i]=10*i;} for(i=0;i<7;i++) {pDC->MoveTo(x1[i]*b-y1[i]*a,x1[i]*a+y1[i]*b);pDC->LineTo(-x1[i]*b-y1[i]*a,-x1[i]*a+y1[i]*b); pDC->MoveTo(x1[i]*b+y1[i]*a,x1[i]*a-y1[i]*b);pDC->LineTo(-x1[i]*b+y1[i]*a,-x1[i]*a-y1[i]*b); }
pDC->SelectStockObject(NULL_BRUSH); pDC->Ellipse(-70,70,70,-70); pDC->Ellipse(-72,72,72,-72);
2-10
CPen pen1(0,0,RGB(0,0,0)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetViewportOrg(rc.right/2-200,rc.bottom/2); pDC->SetWindowOrg(0,0); pDC->SetWindowExt(100,100); pDC->SetViewportExt(300,-300); pDC->SelectObject(pen1); int x[11],y[22],y1[22]; for(int i=0;i<11;i++) {x[i]=10*i; if(i%2==0) y[i]=-85; else
y[i]=-65;}
for(i=0;i<11;i++) {y1[i]=y[i]+x[i]*0.4;} for(i=0;i<11;i++){ pDC->MoveTo(x[i],0.4*x[i]); pDC->LineTo(x[i],y1[i]); }
pDC->MoveTo(x[0],0);
pDC->LineTo(x[10],0.4*x[10]); pDC->MoveTo(x[0],y1[0]+20); pDC->LineTo(x[10],y1[10]+20);
.
2-11
CPen pen1(0,0,RGB(0,0,0)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetWindowOrg(0,0);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2); pDC->SetWindowExt(100,100); pDC->SetViewportExt(200,-200);
pDC->SelectObject(pen1); double x1,y1,x2,y2,z,pi=3.141592654; for(int j=0;j<8;j++) for(double i=0;i<=2*pi;i=i+0.0001) { x1=100*cos(i); y1=40*sin(i); x2=x1*cos(j*pi/8)-y1*sin(j*pi/8); y2=y1*cos(j*pi/8)+x1*sin(j*pi/8); if(i==0)
pDC->MoveTo(x2,y2); else pDC->LineTo(x2,y2); }
2-12
CPen pen1(0,0,RGB(0,0,0)); CRect rc;GetClientRect(&rc); pDC->SetMapMode(7); pDC->SetWindowOrg(0,0); pDC->SetViewportOrg(rc.right/2,rc.bottom/2+200); pDC->SetWindowExt(100,100); pDC->SetViewportExt(100,-100); pDC->SelectObject(pen1); CString s=\"欢迎参观指导\"; int
x[32]={155,205,155,200,165,200,165,0,215,200,215,0,225,205,225,200,235,142,235,3,255,142,255,3,275,142,275,3,295,142,295,3}; int
y[24]={0,0,310,0,215,3,310,3,215,142,310,142,215,145,310,145,155,200,225,200,155,205,225,205}; for(int i=0;i<32;i=i+4) {pDC->MoveTo(x[i],x[i+1]); pDC->LineTo(x[i+2],x[i+3]);}
for(i=0;i<24;i=i+4) {pDC->MoveTo(y[i],y[i+1]); pDC->LineTo(y[i+2],y[i+3]); } pDC->MoveTo(165,205); pDC->AngleArc(190,205,25,-180,180); for(i=0;i<32;i=i+4) {pDC->MoveTo(-x[i],x[i+1]); pDC->LineTo(-x[i+2],x[i+3]);} for(i=0;i<24;i=i+4) {pDC->MoveTo(-y[i],y[i+1]); pDC->LineTo(-y[i+2],y[i+3]); } pDC->MoveTo(-165,205); pDC->AngleArc(-190,205,25,-180,180); CFont zt; zt.CreateFont(50,0,0,0,1000,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,\"my_font\"); pDC->SelectObject(zt); pDC->SetTextColor(RGB(255,0,0)); int x1=-130,y1=300; pDC->TextOut(x1,y1,s);
因篇幅问题不能全部显示,请点此查看更多更全内容