构建三维形体线框模型实现正投影变换和旋转变换.docx

上传人:b****2 文档编号:18619645 上传时间:2023-08-20 格式:DOCX 页数:10 大小:46.55KB
下载 相关 举报
构建三维形体线框模型实现正投影变换和旋转变换.docx_第1页
第1页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第2页
第2页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第3页
第3页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第4页
第4页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第5页
第5页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第6页
第6页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第7页
第7页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第8页
第8页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第9页
第9页 / 共10页
构建三维形体线框模型实现正投影变换和旋转变换.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

构建三维形体线框模型实现正投影变换和旋转变换.docx

《构建三维形体线框模型实现正投影变换和旋转变换.docx》由会员分享,可在线阅读,更多相关《构建三维形体线框模型实现正投影变换和旋转变换.docx(10页珍藏版)》请在冰点文库上搜索。

构建三维形体线框模型实现正投影变换和旋转变换.docx

构建三维形体线框模型实现正投影变换和旋转变换

作业:

构建三维形体线框模型,实现正投影变换和旋转变换

要求打印:

1、设计说明书参照《毕业设计》模板要求;

2、程序清单;

 

目录

摘要 1

1.构建三维线框模型2

2.VB演示3

3.源程序代码5

参考文献8

 

摘要 

近年来随着计算机技术被广泛而迅速的普及,工程设计人员越来越青睐电脑辅助软件来解决实际工程问题。

重要的是如何用计算机来表现实际的事物,应用数学的方法表示图形,是计算机易于接受并处理的数据模式。

在计算机领域,图形编程是一个很重要的内容。

VisualBasic作为一门功能强大的计算机语言,为用户提供了一系列的属性、方法和控件,利用它们,可以轻松的实现一般图形绘制。

关键词:

CAD/CAMVisualBasic语言

 

1.构建三维线框模型

1、定义 

用线条表示轮廓、交线、棱线来反映形状的模型,提供形体表面不连续处的信息。

1.2模型

点6个

xyz

1.000

2.1000

3.0100

4.01010

5.0010

6.10010

线9条

1.12

2.23

3.34

4.46

5.26

6.13

7.45

8.56

9.15

2.VB演示

VB演示程序截图如下

演示效果图如下

3.源程序代码

1.模块代码(通用)

OptionBase1

Dimdian()AsDouble,xian()AsInteger

Dimzbd()AsDouble,zbx()AsInteger

Sub初始化数据(filenameAsString)

OpenfilenameForInputAs#1

Do

Input#1,a$

LoopUntilLeft(a,1)="点"

num=Val(Mid(a,2))

ReDimdian(num,4)

Fori=1Tonum

Input#1,dian(i,1),dian(i,2),dian(i,3)

dian(i,4)=1

Nexti

Do

Input#1,a$

LoopUntilLeft(a,1)="线"

num=Val(Mid(a,2))

ReDimxian(num,2)

Fori=1Tonum

Input#1,xian(i,1),xian(i,2)

Nexti

Close#1

ReDimzbd(4,4)

ReDimzbx(3,2)

zbd(1,1)=0

zbd(1,2)=0

zbd(1,3)=0

zbd(1,4)=1

zbd(2,1)=20

zbd(2,2)=0

zbd(2,3)=0

zbd(2,4)=1

zbd(3,1)=0

zbd(3,2)=20

zbd(2,1)=20

zbd(2,2)=0

zbd(2,3)=0

zbd(2,4)=1

zbd(3,1)=0

zbd(3,2)=20

zbd(3,3)=0

zbd(3,4)=1

zbd(4,1)=0

zbd(4,2)=0

zbd(4,3)=20

zbd(4,4)=1

zbx(1,1)=1

zbx(1,2)=2

zbx(2,1)=1

zbx(2,2)=3

zbx(3,1)=1

zbx(3,2)=4

Timer1_Timer

EndSub

Subdraw(dian()AsDouble,xian()AsInteger,XAsInteger,YAsInteger)

Fori=1ToUBound(xian,1)

Picture1.Line(X+dian(xian(i,1),1),Y-dian(xian(i,1),3))-(X+dian(xian(i,2),1),Y-dian(xian(i,2),3))

Nexti

EndSub

PrivateSubLabel1_Click()

EndSub

PrivateSubTimer1_Timer()

Dimtx1()AsDouble,tx2()AsDouble

Picture1.Cls

dian=txbh(dian,5)

zbd=txbh(zbd,5)

tx1=txbh(dian,1)

tx2=txbh(zbd,1)

drawtx1,xian,0,0

drawtx2,zbx,0,0

tx1=txbh(dian,2)

tx2=txbh(zbd,2)

drawtx1,xian,0,0

drawtx2,zbx,0,0

tx1=txbh(dian,3)

tx2=txbh(zbd,3)

drawtx1,xian,0,0

drawtx2,zbx,0,0

tx1=txbh(dian,4)

tx2=txbh(zbd,4)

drawtx1,xian,80,60

drawtx2,zbx,80,60

EndSub

PrivateSub打开_Click()

CommonDialog1.ShowOpen

IfCommonDialog1.filename<>""Then

初始化数据CommonDialog1.filename

EndIf

EndSub

PrivateSub启动_Click()

Timer1.Enabled=True

EndSub

PrivateSub停止_Click()

Timer1.Enabled=False

EndSub

PrivateSub退出_Click()

End

EndSub

2.窗体代码

Functionjzc(a()AsDouble,b()AsDouble)AsDouble()

Dimc()AsDouble

c=a

Fori=1ToUBound(a,1)

Forj=1ToUBound(a,2)

c(i,j)=0

Fork=1ToUBound(b,1)

c(i,j)=c(i,j)+a(i,k)*b(k,j)

Nextk

Nextj

Nexti

Fori=1ToUBound(c,1)

Forj=1ToUBound(c,2)

c(i,j)=c(i,j)/c(i,UBound(c,2))

Nextj

Nexti

jzc=c

EndFunction

'完成图形变换

'a模型数据b变换类型

'b=1正投影

'b=2侧投影

'b=3水平投影

'b=4正等侧投影

'b=5绕Z轴旋转5度

Functiontxbh(dian()AsDouble,bAsInteger)AsDouble()

Dimbhjz(4,4)AsDouble

SelectCaseb

Case1:

bhlx$="正投影"

Case2:

bhlx$="侧投影"

Case3:

bhlx$="水平投影"

Case4:

bhlx$="正等侧投影"

Case5:

bhlx$="绕Z轴旋转5度"

EndSelect

OpenApp.Path+"\bhjz.txt"ForInputAs#2

Do

Input#2,temp$

LoopUntiltemp=bhlx

Fori=1To4

Forj=1To4

Input#2,bhjz(i,j)

Nextj

Nexti

Close#2

txbh=jzc(dian,bhjz)

EndFunction

参考文献

[1]薛晓萍,韩育.VisualBasic程序设计.北京:

中国科学技术出版社,2006.5

[2]李龙星.线性代数.北京:

机械工业出版社,2006.8

[3]夏齐霄,雷红.设计VB编程基础及应用实例.北京:

国防工业出版社,2010.8

[4]苏金明.用VisualBasic开发交互式CAD系统.北京:

电子工业出版社,2003.5

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2