cadc++.docx
《cadc++.docx》由会员分享,可在线阅读,更多相关《cadc++.docx(16页珍藏版)》请在冰豆网上搜索。
cadc++
第一题:
程序:
pDC->SetMapMode(7);
//pDC->SetWindowOrg(0,0);
pDC->SetViewportOrg(300,250);
pDC->SetWindowExt(50,100);
pDC->SetViewportExt(100,-100);
POINTpp[14]={0,0,0,120,-240,0,240,0,0,120,-160,0,
-160,40,-80,0,-80,80,0,0,80,80,80,0,160,40,160,0};
pDC->MoveTo(pp[0]);
for(inti=1;i<=4;i++){pDC->LineTo(pp[i]);}
pDC->MoveTo(pp[5]);
for(i=6;i<=13;i++){pDC->LineTo(pp[i]);}
第二题
pDC->SetViewportOrg(300,100);
inti;
for(i=0;i<15;i++)
{
CPenpen(PS_SOLID,1,RGB((255-i*10),i+10,i+80));
pDC->SelectObject(pen);
pDC->SelectStockObject(NULL_BRUSH);
pDC->Ellipse(CRect(300-10*i,100,300+10*i,100+20*i));
第三题
doublex[11]={0},y[11]={0};
inti,j;
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
for(i=1;i<=9;i+=2){
x[i]=100*cos(1.5708+(i-1)*2*3.141592654/10);
y[i]=-100*sin(1.5708+(i-1)*2*3.141592654/10);}
for(j=2;j<=10;j+=2){
x[j]=38.2*cos(1.5708+(j-1)*2*3.141592654/10);
y[j]=-38.2*sin(1.5708+(j-1)*2*3.141592654/10);}
x[11]=x[1],y[11]=y[1];
for(i=1;i<=11;i++)
pDC->LineTo((int)x[i],(int)y[i]);
for(i=1;i<=5;i++)
{j=i+5;
pDC->MoveTo((int)x[i],(int)y[i]);
pDC->LineTo((int)x[j],(int)y[j]);}
第四题
intx0,y0,i;
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
POINTpp[6]={-5,0,-5,-100,5,-100,5,0,85,0,-85,0};
pDC->MoveTo(pp[0]);
for(i=0;i<6;i++)
pDC->LineTo(pp[i]);
CRectr1(-85,-10,-65,10);
CRectr2(65,-10,85,10);
CRectr3(-15,-80,5,-60);
CRectr4(-5,-80,15,-60);
POINTp[8]={-75,-10,-15,-70,-5,-80,5,-80,15,-70,75,-10,-15,-10,15,-10};
pDC->MoveTo(p[0]);
pDC->Arc(r1,p[0],pp[5]);
pDC->MoveTo(pp[4]);
pDC->Arc(r2,pp[4],p[5]);
pDC->MoveTo(p[2]);
pDC->Arc(r3,p[2],p[1]);
pDC->MoveTo(p[4]);
pDC->Arc(r4,p[4],p[3]);
pDC->MoveTo(p[0]);
pDC->LineTo(p[6]);
pDC->LineTo(p[1]);
pDC->MoveTo(p[4]);
pDC->LineTo(p[7]);
pDC->LineTo(p[5]);
CRectrc;
GetClientRect(&rc);
intx0,y0;
x0=(int)rc.right/2;
y0=(int)rc.bottom/2;
pDC->SetViewportOrg(x0,y0);
inti;
POINTp[6]={-82.91561976,-125,-280,-125,-280,100,280,100,280,-125,82.91561976,-125};
pDC->MoveTo(p[0]);
for(i=0;i<6;i++)
pDC->LineTo(p[i]);
CRectr1(-150,-150,150,150);
pDC->MoveTo(p[5]);
pDC->Arc(r1,p[5],p[0]);
POINTpp[4]={-60,80,-60,100,60,100,60,80};
pDC->MoveTo(pp[0]);
for(i=0;i<4;i++)
pDC->LineTo(pp[i]);
CRectr2(-100,-100,100,100);
pDC->MoveTo(pp[3]);
pDC->Arc(r2,pp[3],pp[0]);
第六题
在程序预处理理部分添加函数头和宏定义:
#include"math.h"
#definexp(phi)a*cos(phi)
#defineyp(phi)b*sin(phi)
在voidCMy166View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
inta,b;
a=140;b=50;
pDC->Arc(-70,70,70,-70,70,0,-70,0);
inti;
doubledt,xf,yf,phi,x,y,theta;
dt=.01745;
x=xp(0);y=yp(0);
pDC->MoveTo(x,y);
for(i=1;i<=360;i++){
phi=i*dt;
xf=a*cos(phi);yf=b*sin(phi);
if(yf<0&&sqrt(xf*xf+yf*yf)<70)
pDC->SelectStockObject(NULL_PEN);
else
pDC->SelectStockObject(BLACK_PEN);
x=xp(phi);
y=yp(phi);
pDC->LineTo(x,y);
}
第七题
在程序预处理理部分添加函数头#include"math.h"
在voidCMy166View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
CRectrc;
GetClientRect(&rc);
intx0,y0,i;
x0=(int)rc.right/2;
y0=(int)rc.bottom/2;
pDC->SetViewportOrg(x0,y0);
doublex1,y1;
x1=100*pow(3,.5)/2;y1=100;
intx2,y2;
x2=(int)x1;y2=(int)y1;
pDC->Ellipse(-100,-100,100,100);
pDC->Ellipse(-x2,-y2,x2,y2);
pDC->Ellipse(-50,-100,50,100);
POINTp[12]={0,100,-50,x2,-x2,50,-100,0,-x2,-50,-50,-x2,0,-100,50,x2,x2,50,100,0,x2,-50,50,-x2};
for(i=0;i<6;i++)
{pDC->MoveTo(p[i]);
pDC->LineTo(p[i+6]);}
第八题
在程序的预处理部分添加函数头和宏定义:
#include"math.h"
#defineR(theta)cos(1.5*theta)*s
在voidCMy168View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
intx0,y0,x,y,s=120;
doubler,theta;
CRectrc;
GetClientRect(&rc);
x0=rc.right/2;y0=rc.bottom/2;
pDC->SetMapMode(MM_TEXT);
pDC->SetViewportOrg((int)x0,(int)y0);
for(theta=0;theta<20*3.14;theta+=0.2)
{r=R(theta);
x=(int)(r*cos(theta));
y=(int)(r*sin(theta));
pDC->MoveTo(0,0);
pDC->LineTo(x,y);
}
第九题
在程序的预处理部分添加函数头和宏定义:
#include"math.h"
#definexp(x,y)cos(phi)*x+sin(phi)*y
#defineyp(x,y)cos(phi)*y-sin(phi)*x
在voidCMy169View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
inti;
doubledt=0.01745,x,y,a,b,phi,x1,y1,a1,b1;
phi=45*dt;
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->Ellipse(-150,-150,150,150);
pDC->Ellipse(-140,-140,140,140);
for(i=0;i<=6;i++)
{x1=pow((140*140-20*20*i*i),0.5);y1=-20*i;
a1=-x1;b1=y1;
x=xp(x1,y1);y=yp(x1,y1);
a=xp(a1,b1);b=yp(a1,b1);
pDC->MoveTo(x,y);
pDC->LineTo(a,b);
}
for(i=0;i<=6;i++)
{x1=pow((140*140-20*20*i*i),0.5);y1=20*i;
a1=-x1;b1=y1;
x=xp(x1,y1);y=yp(x1,y1);
a=xp(a1,b1);b=yp(a1,b1);
pDC->MoveTo(x,y);
pDC->LineTo(a,b);
}
第十题
在程预处理部分添加函数头和宏定义:
#include"math.h"
#definefnx(x)(int)(x0+(x)*s1)
#definefny(x,y)(int)(y0-(y+0.4*x)*s1)
在voidCMy1610View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
inti;
doubles1=1.5,x,x0,y0;
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
pDC->MoveTo(fnx(0),fny(0,0));
pDC->LineTo(fnx(200),fny(200,0));
pDC->MoveTo(fnx(0),fny(0,65));
pDC->LineTo(fnx(200),fny(200,65));
for(i=1;i<=6;i++)
{x=40*(i-1);
pDC->MoveTo(fnx(x),fny(x,65));
pDC->LineTo(fnx(x),fny(x,-25));}
for(i=1;i<=5;i++)
{x=20+40*(i-1);
pDC->MoveTo(fnx(x),fny(x,65));
pDC->LineTo(fnx(x),fny(x,0));}
第十一题
在程序的预处理部分添加函数头和宏定义:
#include"math.h"
#definefnx(x)(int)(x0+(x)*s)
#definefny(y)(int)(y0-(y)*s)
#definexp(phi)cos(phi)*a*c-sin(phi)*b*s+xc
#defineyp(phi)cos(phi)*a*s+sin(phi)*b*c+yc
在voidCMy1611View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
intj;
doublea=3.141592654/8,s1=1.0,x,y,x0,y0,a,b,c,s,xc,yc,phi,theta,i;
CRectrc;
GetClientRect(&rc);
pDC->SetViewportOrg(rc.right/2,rc.bottom/2);
a=100;b=40;xc=0;yc=0;
for(i=0;i<=180;i+=22.5)
{theta=i*a;
c=cos(theta);s=sin(theta);
x=xp(0);y=yp(0);
pDC->MoveTo(fnx(x),fny(y));
for(j=1;j<=360;j++)
{phi=j*a;
x=xp(phi);y=yp(phi);
pDC->LineTo(fnx(x),fny(y));}}
第十二题
在预处理部分添加宏定义:
#definefnx(x)(int)(x0+(x)*s*s1)
#definefny(x)(int)(y0-(x)*s1)
添加变量:
inti,x0,y0,s;
doubles1;
并添加函数:
draw();
在自定义函数部分添加程序代码如下:
inti;
CClientDCdc(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),x0+300,fny(260),x0-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));
}
在voidCMy1612View:
:
OnDraw(CDC*pDC)中添加如下程序代码:
CRectrc;
GetClientRect(&rc);
x0=rc.right/2;
y0=rc.bottom/2+100;
intx,y;
x=x0-50;y=y0-180;
CStringw="欢迎参观指导";
TEXTMETRICtm;
pDC->TextOut(x,y,w);
s=1;s1=.5;
draw();
s=-s;
draw();
CRectrc;
GetClientRect(&rc);
x0=rc.right/2;
y0=rc.bottom/2+100;
intx,y;
x=x0-50;y=y0-180;
CStringw="欢迎参观指导";
TEXTMETRICtm;
pDC->TextOut(x,y,w);
s=1;s1=.5;
draw();
s=-s;
draw();