ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:115KB ,
资源ID:3496752      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3496752.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(茶壶文档.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

茶壶文档.doc

1、CAD工程名称:CAD工程作者:杨志(信计 0701)主要功能:1、在顶视图(XY 平面)画 4 个圆,在每一个圆上取 36 个控制点,在每个圆取一个相应点,利用样条插值获取 31 个点(含之前的 4 个点) ,画出三维图像。2、利用 STL 的栈,实现撤消和返回的功能。工程简介:顶视图画圆:1.pDoc-RNum 记录圆的个数,当圆的个数小于等于 4 时 OnLButtonDown 获取圆心位置存放在 Point3 roundpoint4中。2.OnLButtonUp 获取点 point,求出半径 float radius4;每隔 10 度获取一个控制点,存放在 CArray PtDate

2、中。3.获取壶嘴。画完 4 个圆之后,OnLButtonDblClk 选中第四个圆的一个控制点,OnLButtonDown 获取壶嘴的位置。左视图:每画完一个圆,左视图 DrawLeft()画出此圆的 36 个控制点,OnLButtonDown 选中一个圆的 36 个控制点,OnMouseMove 移动鼠标,OnLButtonUp 获取移动后的位置,PtDate把原来的点改成新的点坐标,在前视图,顶视图和三维视图根据新的点重新画图。前视图:(同左视图)撤消操作:Mesh 中声明 Round 类,如下:class Roundpublic: CArray ptarrray;Point3 round

3、point4; /圓心float radius4; /半径int roundNum; /圆的个数int roundNo; /圆的编号BOOL ISOVER;Round()for (int i=0;i roundStack,用于存放每次操作的点。在画圆过程 OnLButtonUp把 PtDate 的点 COPY()到栈中,在画壶嘴时把点 COPY()到栈中。单击撤消按钮时执行下面函数:void CMy3DMAXDoc:OnBack() / TODO: Add your command handler code hereif (mesh.roundStack.size()=1)AfxMessage

4、Box(“已空!“);return;else if (!mesh.roundStack.empty()/将要弹出的 round 保存到 redoStack 中Round roundPop=mesh.roundStack.top();mesh.redoStack.push(roundPop);/mesh.roundStack.pop();if(mesh.roundStack.empty()AfxMessageBox(“已空!“);return;Round round=mesh.roundStack.top();mesh.ClearbsData();ISOVER=round.ISOVER;RNum

5、=round.roundNum;RNo=round.roundNo;for(int a=0;a4;a+)mesh.roundpointa=round.roundpointa;mesh.radiusa=round.radiusa;mesh.PtDate.RemoveAll();mesh.PtDate.Copy(round.ptarrray);UpdateAllViews(NULL);单击返回按钮时进行下面函数void CMy3DMAXDoc:OnRedo() / TODO: Add your command handler code hereif(mesh.redoStack.empty()re

6、turn;else if (!mesh.redoStack.empty()/将要弹出的 round 保存到 roundStack 中/ Round roundPop=mesh.redoStack.top();/ mesh.roundStack.push(roundPop);/ mesh.redoStack.pop();/ if(mesh.redoStack.empty()/ / AfxMessageBox(“已空!“);/ return;/ Round round=mesh.redoStack.top();mesh.roundStack.push(round);mesh.redoStack.p

7、op();mesh.ClearbsData();ISOVER=round.ISOVER;RNum=round.roundNum;RNo=round.roundNo;for(int a=0;a4;a+)mesh.roundpointa=round.roundpointa;mesh.radiusa=round.radiusa;mesh.PtDate.RemoveAll();mesh.PtDate.Copy(round.ptarrray);UpdateAllViews(NULL);Mesh 类 :void DrawTop(CDC* pDC,float scale); /画顶视图void DrawLe

8、ft(CDC* pDC,float scale); /画左视图 void DrawFront(CDC* pDC,float scale); /画前视图void BSpline(Point3 a,Point3 b,Point3 c,Point3 d,float sx30,float sy30,float sz30);/根据四个点获取样条插值函数点void DarwMesh() /画网格void DrawEdges() /画面样条插值函数void Mesh:BSpline(Point3 a,Point3 b,Point3 c,Point3 d,float sx31,float sy31,float

9、 sz31)float X4,Y4,Z4,s4;X0=a.x;X1=b.x;X2=c.x;X3=d.x;Y0=a.y;Y1=b.y;Y2=c.y;Y3=d.y;Z0=a.z;Z1=b.z;Z2=c.z;Z3=d.z;s1=(Y2-Y0)/2.0;s2=(Y3-Y1)/2.0;s0=(3*(Y1-Y0)-s1)/2.0;s3=(3*(Y3-Y2)-s2)/2.0;for(int k=0;k3;k+)float a,b,c,d,s1,s2;d=Yk;s1=sk;s2=sk+1;c=s1;a=s2+s1-2*(Yk+1-Yk);b=3*(Yk+1-Yk)-2*s1-s2;for(int i=0;i1

10、1;i+)float t=i/10.0;syk*10+i=a*t*t*t+b*t*t+c*t+d;s1=(X2-X0)/2.0;s2=(X3-X1)/2.0;s0=(3*(X1-X0)-s1)/2.0;s3=(3*(X3-X2)-s2)/2.0;for(k=0;k3;k+)float a,b,c,d,s1,s2;d=Xk;s1=sk;s2=sk+1;c=s1;a=s2+s1-2*(Xk+1-Xk);b=3*(Xk+1-Xk)-2*s1-s2;for(int i=0;i11;i+)float t=i/10.0;sxk*10+i=a*t*t*t+b*t*t+c*t+d;s1=(Z2-Z0)/2.0

11、;s2=(Z3-Z1)/2.0;s0=(3*(Z1-Z0)-s1)/2.0;s3=(3*(Z3-Z2)-s2)/2.0;for(k=0;k3;k+)float a,b,c,d,s1,s2;d=Zk;s1=sk;s2=sk+1;c=s1;a=s2+s1-2*(Zk+1-Zk);b=3*(Zk+1-Zk)-2*s1-s2;for(int i=0;i11;i+)float t=i/10.0;szk*10+i=a*t*t*t+b*t*t+c*t+d;整个窗口 W=1064; H=706其中 4 个 View W=400 H=300对话框 W=250, H=607(可知分界线的宽度为 7,菜单栏+工具栏+状态栏高度为 99)

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。