




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C+土木工程制图土木工程Visual C+制图作业及讲义2-1编写在屏幕上绘制桁架示意图的程序,图上不注尺寸,图大致安放在屏幕中央。void CMy12eView:OnDraw(CDC* pDC)CMy12eDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowExt(600,600);pDC-SetViewportExt(600,-600);pDC-SetViewportOrg(rc.right/2,rc.bottom*2/3);pDC-SelectObject(p01);int pp142=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(pp00,pp01);for(int i=1;iLineTo(ppi0,ppi1); pDC-MoveTo(pp50,pp51); for(i=6;iLineTo(ppi0,ppi1); 2-215个不同颜色和半径的圆彼此相切于公共点(300,100),最小的圆半径为10,其余各圆的半径按级差10递增。试分析圆心的变化规律,并写出绘制该图的程序。void CQwView:OnDraw(CDC* pDC)CQwDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen *pPen;CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowExt(200,200);pDC-SetViewportExt(200,-200);pDC-SetViewportOrg(rc.right/2,rc.bottom/3);pDC-SelectStockObject(HOLLOW_BRUSH);int pp153=0,0,0,0,0,255,0,0,128,0,255,0,0,128,0,0,255,255,0,128,128,255,0,0,128,0,0,255,0,255,128,0,128,255,255,0,128,128,0,128,128,128,192,192,192;int p15=90,80,70,60,50,40,30,20,10,0,-10,-20,-30,-40,-50;int i,r=0;for(i=0;iMoveTo(0,pi);pPen=new CPen(PS_SOLID,3,RGB(ppi0,ppi1,ppi2);pDC-SelectObject(pPen);pDC-Ellipse(-r,pi-r,r,pi+r);delete pPen;2-3编写在屏幕上绘制左图所示五角星的程序,10个顶点的坐标按等分大,小圆周通过计算得到。设大圆半径r1=100,小圆半径r2=38.2,各顶点的编号及角度关系示于右图。#include math.hvoid CMy2wsView:OnDraw(CDC* pDC)CMy2wsDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,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(200,200); pDC-SetViewportExt(400,-400);pDC-SelectObject(p01);pDC-MoveTo(0,100);double pp112=0,100,-38.2*sin(0.2*3.1415926),38.2*cos(0.2*3.1415926),-100*sin(0.4*3.1415926),100*cos(0.4*3.1415926),-38.2*sin(0.6*3.1415926),38.2*cos(0.6*3.1415926),-100*sin(0.8*3.1415926),100*cos(0.8*3.1415926),-38.2*sin(1*3.1415926),38.2*cos(1*3.1415926),-100*sin(1.2*3.1415926),100*cos(1.2*3.1415926),-38.2*sin(1.4*3.1415926),38.2*cos(1.4*3.1415926),-100*sin(1.6*3.1415926),100*cos(1.6*3.1415926),-38.2*sin(1.8*3.1415926),38.2*cos(1.8*3.1415926),-100*sin(2*3.1415926),100*cos(2*3.1415926);pDC-MoveTo(int)pp00,(int)pp01);for(int i=0;iLineTo(int)ppi0,(int)ppi1);for(int j=0;jMoveTo(0,0);pDC-LineTo(int)ppj0,(int)ppj1);2-4.编写在屏幕上绘制钢结构构件断面图的程序,不注尺寸,角钢两肢端部画成1/4圆弧,两肢相交处的小圆角不画。void CMy0View:OnDraw(CDC* pDC)CMy0Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowExt(200,200);pDC-SetViewportExt(400,-400);pDC-SetWindowOrg(0,0);pDC-SetViewportOrg(rc.right/2,3*rc.bottom/4);pDC-SelectObject(p01);POINT pa4=90,0,10,0,0,0,-80,0;POINT pb4=0,0,0,100,10,100,10,0;POINT pc3=-70,10,-10,10,-10,70;POINT pd3=80,10,20,10,20,70;pDC-Polyline(pa,4);pDC-Polyline(pb,4);pDC-Polyline(pc,3);pDC-Polyline(pd,3);pDC-Arc(-80,10,-60,-10,-70,10,-80,0);pDC-Arc(90,-10,70,10,90,0,80,10);pDC-Arc(-10,80,10,60,0,80,-10,70);pDC-Arc(20,60,0,80,20,70,10,80);2-5编写在屏幕中央绘制下图所示月亮门的程序,图上不注尺寸。#include math.hvoid CMy12eView:OnDraw(CDC* pDC)CMy12eDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here CRect r ; GetClientRect(r);CPen *p01,*p02;/p01.CreatePen(0,8,RGB(255,255,0);/p02.CreatePen(PS_DASH,4,RGB(0,0,255);/p03.CreatePen(3,0,RGB(255,0,0);pDC-SetMapMode(7);pDC-SetWindowExt(200,100);pDC-SetViewportExt(200,-100);pDC-SetWindowOrg(0,0); pDC-SetViewportOrg(r.right/2,r.bottom*1/2);int pp102=0,125, -280,125, -280,-100, 280,-100, 280,125, 0,125, -60,0, -60,-100, 60,0,60,-100;pp00=-sqrt(150*150-125*125);pp50=-pp00;pp61=-sqrt(100*100-60*60);pp81=pp61;p01=new CPen(0,5,RGB(0,0,0);p02=pDC-SelectObject(p01);pDC-MoveTo(pp00,pp01);for(int i=1;iLineTo(ppi0,ppi1);pDC-MoveTo(pp60,pp61); pDC-LineTo(pp70,pp71);pDC-MoveTo(pp80,pp81); pDC-LineTo(pp90,pp91);pDC-Arc(-150,-150,150,150,pp50,pp51,pp00,pp01);pDC-Arc(-100,-100,100,100,pp80,pp81,pp60,pp61); pDC-SelectObject(p02);delete p01;p01=new CPen(1,0,RGB(0,0,0);p02=pDC-SelectObject(p01);pDC-MoveTo(-120,0); pDC-LineTo(120,0); pDC-MoveTo(0,-120); pDC-LineTo(0,170);pDC-SelectObject(p02);delete p01; 2-6.下图由同心的半圆和椭圆弧组成,设圆的半径为70,椭圆的长半径为140,短半径为50,试编写绘制该图的程序。#include math.h#define x(i) a*cos(i)#define y(i) b*sin(i)void CDfcView:elli(int x0, int y0, double a, double b, double r)CClientDC dc(this);CRect rc ; GetClientRect(rc);dc.SetMapMode(7);dc.SetWindowExt(200,200);dc.SetViewportExt(400,-400);dc.SetWindowOrg(0,0);dc.SetViewportOrg(rc.right/2,rc.bottom/2);dc.Arc(-70,-70,70,70,70,0,-70,0);for (double i=0;i0&sqrt(xf*xf+yf*yf)SetMapMode(7);pDC-SetWindowExt(200,200);pDC-SetViewportExt(400,-400);pDC-SetWindowOrg(0,0);pDC-SetViewportOrg(rc.right/2,rc.bottom/2);pDC-Arc(-70,-70,70,70,70,0,-70,0);elli(0,0,140,50,70);2-7.下面左图所示是球面及其上均匀分布的经线和纬线的正面投影,借助于右图所示投影关系可以算出正面投影上椭圆的长,短半径,试编写绘制左图的绘图程序。void CCxsView:OnDraw(CDC* pDC)CCxsDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc ; GetClientRect(rc);pDC-SetMapMode(7);pDC-SetWindowExt(200,200);pDC-SetViewportExt(400,-400);pDC-SetWindowOrg(0,0);pDC-SetViewportOrg(rc.right/2,rc.bottom/2);pDC-SelectObject(p01);pDC-Ellipse(-90,-90,90,90);pDC-MoveTo(0,90);pDC-LineTo(0,-90);pDC-MoveTo(-67.08,60);pDC-LineTo(67.08,60);pDC-MoveTo(-84.85,30);pDC-LineTo(84.85,30);pDC-MoveTo(-90,0);pDC-LineTo(90,0);pDC-MoveTo(-84.85,-30);pDC-LineTo(84.85,-30);pDC-MoveTo(-67.08,-60);pDC-LineTo(67.08,-60);pDC-Arc(-77.94,-90,77.94,90,0,-90,0,-90);pDC-Arc(-45,-90,45,90,0,90,0,90);2-8.将极坐标方程R=COS1.5 (=020)曲线上各点与极心相连,得一辐射状曲线。设放大系数为120.试编写在屏幕中央绘制该图的程序。#include math.h#define x(t) 120*cos(1.5*t)*cos(t)#define y(t) 120*cos(1.5*t)*sin(t)void CGfbView:OnDraw(CDC* pDC)CGfbDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCBrush b01(3,RGB(0,0,255),b02(5,RGB(255,0,0);CPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowOrg(0,0); pDC-SetViewportOrg(rc.right*1/2,rc.bottom*1/2);pDC-SetWindowExt(100,100); pDC-SetViewportExt(100,-100); pDC-SelectObject(p01);for(double t=0;tMoveTo(x(t),y(t);elsepDC-LineTo(x(t),y(t); 2-9.将画圆百叶窗正面图的程序作适当的改造,对其中算出的各水平弦端点的坐标绕圆心逆时针旋转45的变换,它将成为绘制圆形断面上剖面线的程序。试写出改造后的程序。void CRView:OnDraw(CDC* pDC)CRDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);int r=70,R=75;double x,y,x1,y1,x2,y2; 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(p01);pDC-Ellipse(-R,-R,R,R); pDC-Ellipse(-r,-r,r,r); for(y=-r;yMoveTo(-x,y); /pDC-LineTo(x,y); x1=x*cos(45*3.141592654/180)-y*sin(45*3.141592654/180); y1=x*sin(45*3.141592654/180)+y*cos(45*3.141592654/180); x2=-x*cos(45*3.141592654/180)-y*sin(45*3.141592654/180); y2=-x*sin(45*3.141592654/180)+y*cos(45*3.141592654/180); pDC-MoveTo(x1,y1);pDC-LineTo(x2,y2); 2-10.用错切变换的方法可将下面左图变换成右图,设错切系数为0.4,试编写根据左图画成右图的程序。void CEDCView:OnDraw(CDC* pDC)CEDCDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowOrg(0,0); pDC-SetViewportOrg(rc.right*1/2,rc.bottom*2/3);pDC-SetWindowExt(100,100); pDC-SetViewportExt(200,-200); pDC-SelectObject(p01);pDC-MoveTo(-100,-40);pDC-LineTo(100,40);pDC-MoveTo(-100,25);pDC-LineTo(100,105);for(int i=-100;iMoveTo(i,0.4*i-20);pDC-LineTo(i,65+0.4*i);for(int t=-80;tMoveTo(t,0.4*t);pDC-LineTo(t,65+0.4*t);2-11.椭圆绕中心逆时针旋转,每次转动/8,转动8次画出下图所示图形。设椭圆的长半径为100,短半径为40,试编写绘制该图的程序。#include math.h#define x(t) 100*cos(t)*cos(i)-40*sin(t)*sin(i)#define y(t) 100*cos(t)*sin(i)+40*sin(t)*cos(i)void CDView:OnDraw(CDC* pDC)CDDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowOrg(0,0); pDC-SetViewportOrg(rc.right*1/2,rc.bottom*1/2);pDC-SetWindowExt(100,100); pDC-SetViewportExt(200,-200);pDC-SelectObject(p01);for(double i=0;i=3,1415926;i+=0.3927)for(double t=0;tMoveTo(int)x(t),(int)y(t);else pDC-LineTo(int)x(t),(int)y(t);2-12.编程绘制大门,并在门的上方书写文本“欢迎参观指导”。void CQwView:OnDraw(CDC* pDC)CQwDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data heredouble i; CPen p01(0,2,RGB(0,0,0);CRect rc;GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowOrg(0,0);pDC-SetViewportOrg(rc.right/2,rc.bottom/1.2);pDC-SetWindowExt(500,500);pDC-SetViewportExt(500,-500);pDC-SelectObject(p01);int pp212=0,0, 315,0, 165,0, 165,200, 215,200, 215,0, 215,3, 215,142, 215,145,165,210, 215,210, 235,3, 155, 200, 155,210 , 225,210,315,3, 315,142, 315,145, 235,142, 225,200 , 190,210; pDC-MoveTo(pp00,pp01);pDC-LineTo(pp10,pp11);pDC-MoveTo(pp20,pp21);pDC-LineTo(pp30,pp31);pDC-MoveTo(pp30,pp31);pDC-LineTo(pp40,pp41);pDC-MoveTo(pp40,pp41);pDC-LineTo(pp50,pp51);pDC-MoveTo(pp30,pp31);pDC-LineTo(pp120,pp121);pDC-MoveTo(pp120,pp121);pDC-LineTo(pp130,pp131);pDC-MoveTo(pp130,pp131);pDC-LineTo(pp140,pp141);pDC-MoveTo(pp140,pp141);pDC-LineTo(pp190,pp191);pDC-MoveTo(pp190,pp191);pDC-LineTo(pp40,pp41);pDC-MoveTo(pp60,pp61);pDC-LineTo(pp150,pp151);pDC-MoveTo(pp70,pp71);pDC-LineTo(pp160,pp161);pDC-MoveTo(pp80,pp81);pDC-LineTo(pp170,pp171);for(i=0;iMoveTo(pp110+20*i,pp111);pDC-LineTo(pp180+20*i,pp181);pDC-Arc(165,185, 215,235, pp100,pp101, pp90,pp91);pDC-MoveTo(-pp00,pp01);pDC-LineTo(-pp10,pp11);pDC-MoveTo(-pp20,pp21);pDC-LineTo(-pp30,pp31);pDC-MoveTo(-pp30,pp31);pDC-LineTo(-pp40,pp41);pDC-MoveTo(-pp40,pp41);pDC-LineTo(-pp50,pp51);pDC-MoveTo(-pp30,pp31);pDC-LineTo(-pp120,pp121);pDC-MoveTo(-pp120,pp121);pDC-LineTo(-pp130,pp131);pDC-MoveTo(-pp130,pp131);pDC-LineTo(-pp140,pp141);pDC-MoveTo(-pp140,pp141);pDC-LineTo(-pp190,pp191);pDC-MoveTo(-pp190,pp191);pDC-LineTo(-pp40,pp41);pDC-MoveTo(-pp60,pp61);pDC-LineTo(-pp150,pp151);pDC-MoveTo(-pp70,pp71);pDC-LineTo(-pp160,pp161);pDC-MoveTo(-pp80,pp81);pDC-LineTo(-pp170,pp171);for(i=0;iMoveTo(-pp110-20*i,pp111);pDC-LineTo(-pp180-20*i,pp181);pDC-Arc(-215,185, -165,235, -pp90,pp91, -pp100,pp101);pDC-SetTextColor(RGB(255,0,0);pDC-SetTextCharacterExtra(4);pDC-SelectStockObject(OEM_FIXED_FONT);pDC-TextOut(-50,250,欢迎参观指导);创建画笔#include math.hvoid CHhhh01View:OnDraw(CDC* pDC)CHhhh01Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here CRect r ; GetClientRect(r);CPen p01(0,8,RGB(0,0,0),p02(1,0,RGB(255,0,0);/p01.CreatePen(0,8,RGB(255,255,0);/p02.CreatePen(PS_DASH,4,RGB(0,0,255);/p03.CreatePen(3,0,RGB(255,0,0);pDC-SetMapMode(7);pDC-SetWindowExt(200,100);pDC-SetViewportExt(100,-50);pDC-SetWindowOrg(0,0); pDC-SetViewportOrg(r.right/2,r.bottom/2);int pp102=0,125, -280,125, -280,-100, 280,-100, 280,125, 0,125, -60,0, -60,-100, 60,0,60,-100;pp00=-sqrt(150*150-125*125);pp50=-pp00;pp61=-sqrt(100*100-60*60);pp81=pp61; pDC-SelectObject(p01);pDC-MoveTo(pp00,pp01);for(int i=1;iLineTo(ppi0,ppi1);pDC-MoveTo(pp60,pp61); pDC-LineTo(pp70,pp71);pDC-MoveTo(pp80,pp81); pDC-LineTo(pp90,pp91);pDC-Arc(-150,-150,150,150,pp50,pp51,pp00,pp01);pDC-Arc(-100,-100,100,100,pp80,pp81,pp60,pp61); pDC-SelectObject(p02); pDC-MoveTo(-110,0); pDC-LineTo(110,0); pDC-MoveTo(0,-110); pDC-LineTo(0,160);polylinepolygonvoid CHh1101View:OnDraw(CDC* pDC) CHh1101Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCBrush b01(3,RGB(0,0,255);CPen *p01,*p02;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); POINT pp6=20,45, -30,45, -30,15, -45,15, -45,0, 5,0;POINT pb8=5,0, 45,0, 45,15, 30,15, 30,45, 20,45, 20,10, 5,10; p01=new CPen(0,2,RGB(0,0,0);p02=pDC-SelectObject(p01);pDC-Polyline(pp,6); pDC-SelectObject(b01);pDC-Polygon(pb,8);pDC-MoveTo(pb7); pDC-LineTo(0,10);pDC-Arc(-12,27-12,12,27+12,0,27+12,0,27-12);pDC-SelectObject(p02);delete p01; p01=new CPen(3,0,RGB(255,0,0);p02=pDC-SelectObject(p01);pDC-MoveTo(0,48); pDC-LineTo(0,-3);pDC-MoveTo(-15,27); pDC-LineTo(3,27); pDC-SelectObject(p02);delete p01;曲线的绘制#include math.h#define x(t) 100*(1-pow(cos(60*t),3)*cos(t)#define y(t) 100*(1-pow(cos(60*t),3)*sin(t)void CHhh04View:OnDraw(CDC* pDC)CHhh04Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here/CBrush b01(3,RGB(0,0,255),b02(5,RGB(255,0,0);CPen p01(0,2,RGB(0,0,0);CRect rc; GetClientRect(&rc);pDC-SetMapMode(7);pDC-SetWindowOrg(0,0); pDC-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临沂职业学院公开招聘教师和教辅人员(24名)模拟试卷及一套完整答案详解
- 2025江苏南京六合科技创业投资发展有限公司招聘拟聘用人员模拟试卷及答案详解(易错题)
- 2025黑龙江哈尔滨市木兰县公安局招聘警务辅助人员54人考前自测高频考点模拟试题及参考答案详解1套
- 2025湖南省药品检验检测研究院公开招聘编外工作人员8人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025贵州瓮安县平定营镇人民政府招聘公益性岗位人员模拟试卷附答案详解(考试直接用)
- 2025年中国智慧中医行业发展报告
- 2025年中国灰色砖石水泥行业市场分析及投资价值评估前景预测报告
- 2025贵州装备制造职业学院第十三届贵州人才博览会引才7人考前自测高频考点模拟试题及答案详解(新)
- 2025嘉兴市众业供电服务有限公司招聘74人模拟试卷及答案详解1套
- 2025辽宁能源控股集团所属能源投资集团拟聘人员模拟试卷及答案详解一套
- 医院中医科常见病症诊疗规范
- 2025广东广州市白云区民政局招聘窗口服务岗政府雇员1人笔试备考试题及答案解析
- 《电子商务概论》(第6版) 教案 第11、12章 农村电商;跨境电商
- 2025年电气工程及其自动化专业考试试卷及答案
- 大象牙膏教学课件
- 【《老年高血压患者护理措施研究》6600字(论文)】
- 颅脑创伤急性期凝血功能障碍诊治专家共识(2024版)解读
- 2025至2030年中国健康保险市场运行态势及行业发展前景预测报告
- 沙棘采摘协议书
- 2026版创新设计高考总复习数学(人教B版)-学生答案一~五章
- 资产评估学教程(第八版)习题及答案
评论
0/150
提交评论