资源描述
2-1
CRect c;
GetClientRect(c);
pDC->SetMapMode(7);
pDC->SetWindowExt(100,100);
pDC->SetViewportExt(100,-100);
pDC->SetWindowOrg(0,0);
pDC->SetViewportOrg(c.right /2,c.bottom/2);
POINT p1[4]={-240,0, 0,120, 240,0, -240,0};
POINT p2[9]={-160,0, -160,40, -80,0, -80,80, 0,0, 80,80, 80,0, 160,40, 160,0};
pDC->MoveTo(-240,0);
pDC->Polyline(p1,4);
pDC->MoveTo(-160,0);
pDC->Polyline(p2,9);
pDC->MoveTo(0,0);
pDC->LineTo(0,120);
2-2
Cpen*pPen,*pOldPen;
int i;
int c[16]={
RGB(0,0,0), RGB(0,0,128)
RGB(0,128,0), RGB(128,0,128)
RGB(128,0,0), RGB(128,128,128)
RGB(128,128,0), RGB(0,128,128)
RGB(255,0,0), RGB(0,0,255)
RGB(0,255,0), RGB(255,255,0)
RGB(255,0,255), RGB(0,255,255)
RGB(255,255,255), RGB(255,255,128)
for(i=15;i>=1;i--)
{
pPen=new CPen(PS_SOLID,2,c[i]);
pOldPen=pDC->SelectObject(pPen);
CRect r=300-10*i,100,300+10*i,100+2*10*i);
pDC->Ellipse(r);
pDC-> SelectObject(pOldPen);
delete pPen;
}
}
2-3
#include”math.h”
CRect rc;
GetClientRect(&rc);
pDC->SetMapMode(MM_ISOTROPIC);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
int r1=100;
double r2=38.2,pi=3.141592654/180;
POINT p[11]={0,100,-r2*sin(36*pi),r2*cos(36*pi),-r1*sin(72*pi),r1*cos(72*pi),
-r2*sin(36*3*pi),r2*cos(36*3*pi),-r1*sin(36*4*pi),r1*cos(36*4*pi),
0,-r2,r1*sin(36*pi),-r1*cos(36*pi),r2*sin(36*3*pi),r2*cos(36*3*pi),
r1*sin(72*pi),r1*cos(72*pi),r2*sin(36*pi),r2*cos(36*pi),0,100
};
BYTE pt[11]=
{PT_MOVETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO,PT_LINETO
};
pDC->PolyDraw(p,pt,11);
2-4
CRect rc;
GetClientRect(&rc);
pDC->SetMapMode(MM_LOMETRIC);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->MoveTo(85,0);
pDC->LineTo(-85,0);
pDC->MoveTo(-75,10);
pDC->AngleArc(-75,0,10,-90,-90);
pDC->MoveTo(-75,10);
pDC->LineTo(-15,10);
pDC->LineTo(-15,70);
pDC->AngleArc(-5,70,10,-90,-90);
pDC->Rectangle(-5,0,5,100);
pDC->MoveTo(85,0);
pDC->AngleArc(75,0,10,-90,90);
pDC->MoveTo(75,10);
pDC->LineTo(15,10);
pDC->LineTo(15,70);
pDC->AngleArc(5,70,10,-90,90);
2-5
#include "math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetMapMode(7);
pDC->SetWindowOrg(0,0);
pDC->SetViewpointOrg(rc.right/2,rc.bottom*3/4);
pDC->SetWindowExt(100,100);
pDC->SetViewpointExt(100,-100);
CPen pen(PS_SOLID,3,RGB(0,0,0));
pDC->SelectObject(&pen);
POINT p1[5]={-60,20,-60,0,-280,0,-280,225,-sqrt(150*150-125*125),225};
POINT p2[5]={-60,20,-60,0,280,0,280,225,sqrt(150*150-125*125),225};
pDC->Polyline(p1,5);
pDC->Polyline(p2,5);
pDC->Arc(-100,200,100,0,60,20,-60,20);
pDC->Arc(-150,250,150,-50,-sqrt(150*150-125*125),225, -sqrt(150*150-125*125),225);
2-6
#include "math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->MoveTo(70,0);
pDC->AngleArc(0,0,70,0,180);
int i;
double p=3.1415926/180,x,y;
pDC->MoveTo(140,0);
for(i=0;i<360;i++)
{x=140*cos(p*i);
y=50*sin(p*i);
if(x*x+y*y<70*70&&y<0)
pDC->SelectStockObject(NULL_PEN);
else
pDC->SelectStockObject(BLACK_PEN);
pDC->LineTo(x,y);}
2-7
#include"math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
int j;
double p=3.141592654/180,x,y;
double a,b;
a=sqrt(150*150-50*j*50*j);
b=50*j;
pDC->MoveTo(-150,0);
pDC->LineTo(150,0);
pDC->SelectStockObject(NULL_BRUSH);
for(j=0;j<4;j++)
{x=150*sin(30*j*p);
pDC->Ellipse(x,150,-x,-150);
}
pDC->MoveTo(0,-150);
pDC->LineTo(0,150);
pDC->MoveTo(sqrt(150*150-50*50),-50);
pDC->LineTo(-sqrt(150*150-50*50),-50);
pDC->MoveTo(sqrt(150*150-50*2*50*2),100);
pDC->LineTo(-sqrt(150*150-50*2*50*2),100);
pDC->MoveTo(sqrt(150*150-50*50),50);
pDC->LineTo(-sqrt(150*150-50*50),50);
pDC->MoveTo(sqrt(150*150-50*2*50*2),-100);
pDC->LineTo(-sqrt(150*150-50*2*50*2),-100);
2-8
#include"math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
int i;
double x,y,r,p=3.141592654/180;
for(i=0;i<3600;i++)
{ r=120*cos(1.5*i*p);
x=cos(i*p)*r;
y=sin(i*p)*r;
pDC->LineTo(x,y);
pDC->MoveTo(0,0);
pDC->LineTo(x,y);
}
2-9
#include"math.h"
CRect rc;
GetClientRect(rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->Ellipse(-75,-75,75,75);
pDC->Ellipse(-70,-70,70,70);
int i;
double x[14],y[14],x1[14],y1[14],x2[14],y2[14];
pDC->MoveTo(70,0);
for(i=0;i<=6;i++)
{x1[i]=(sqrt(49*10*10-i*i*10*10));
y1[i]=10*i;
x1[13-i]=-x1[i];
y1[13-i]=10*i;
}
for(i=0;i<=13;i++)
{ x[i]=x1[i]*cos(3.14/4)-y1[i]*sin(3.14/4);
y[i]=y1[i]*cos(3.14/4)+x1[i]*sin(3.14/4);
x2[i]=x1[i]*cos(3.14/4)+y1[i]*sin(3.14/4);
y2[i]=-y1[i]*cos(3.14/4)+x1[i]*sin(3.14/4);
}
for(i=0;i<=6;i++)
{pDC->MoveTo(x[i],-y[i]);
pDC->LineTo(x[13-i],-y[13-i]);
pDC->MoveTo(x2[i],-y2[i]);
pDC->LineTo(x2[13-i],-y2[13-i]);
}
2-10
#include "math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->SetMapMode(MM_LOMETRIC);
int i;
int x[11],y[11];
for(i=0;i<11;i++){
x[i]=20*i;
y[i]=10+10*pow(-1.0,double(i+1))+0.4*20*i;
//x[i]=20*i;
//y[i]=10+10*pow(-1.0,double(i+1));}
pDC->MoveTo(x[0],y[0]+20);
pDC->LineTo(x[10],y[10]+20);
pDC->MoveTo(x[0],y[0]+85);
pDC->LineTo(x[10],y[10]+85);
for(i=0;i<11;i++)
{pDC->MoveTo(x[i],y[i]);
pDC->LineTo(x[i],85+0.4*20*i);
}
2-11
#include"math.h"
CRect rc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
int i,j;
double x,y,p=3.141592654/180;
pDC->MoveTo(100*cos(22.5*p),100*sin(22.5*p));
for(j=1;j<9;j++)
{for(i=0;i<360;i++)
{x=100*cos(i*p)*cos(j*22.5*p)-40*sin(i*p)*sin(j*22.5*p);
y=100*cos(i*p)*sin(j*22.5*p)+40*sin(i*p)*cos(j*22.5*p);
pDC->LineTo(x,y);
}
pDC->MoveTo(100*cos((j+1)*22.5*p),100*sin((j+1)*22.5*p));
}
2-12
#define fnx(x) (int)(xo+(x)*s*sl)
#define fny(y) (int)(yo-(y)*sl)
CRect rc;
GetClientRect(rc);
CString sa="欢迎参观指导";
TEXTMETRIC tm;
xo=rc.right/2;
yo=rc.bottom/2+100;
s=1;
sl=0.5;
draw();
s=-s;
draw();
int a=xo-50,b=yo-150;
pDC->SelectStockObject(ANSI_FIXED_FONT);
pDC->TextOut(a,b,sa);
void CGgView::draw()
{int i;
CClientDC dc(this);
dc.MoveTo(fnx(0),fny(50));
dc.LineTo(fnx(300),fny(50));
dc.Rectangle(fnx(165),fny(50),fnx(215),fny(250));
dc.Rectangle(fnx(155),fny(250),fnx(225),fny(260));
dc.Arc(fnx(190-25),fny(260-25),fnx(190+25),fny(260+25),xo+300,fny(260),
xo-300,fny(260));
dc.MoveTo(fnx(215),fny(55));
dc.LineTo(fnx(300),fny(55));
dc.MoveTo(fnx(215),fny(190));
dc.LineTo(fnx(300),fny(190));
dc.MoveTo(fnx(215),fny(195));
dc.LineTo(fnx(300),fny(195));
for(i=1;i<=4;i++)
{dc.MoveTo(fnx(215+20*i),fny(55));
dc.LineTo(fnx(215+20*i),fny(190));
}}
展开阅读全文