CAD原理实验报告.docx

上传人:b****8 文档编号:9127425 上传时间:2023-02-03 格式:DOCX 页数:34 大小:85.13KB
下载 相关 举报
CAD原理实验报告.docx_第1页
第1页 / 共34页
CAD原理实验报告.docx_第2页
第2页 / 共34页
CAD原理实验报告.docx_第3页
第3页 / 共34页
CAD原理实验报告.docx_第4页
第4页 / 共34页
CAD原理实验报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

CAD原理实验报告.docx

《CAD原理实验报告.docx》由会员分享,可在线阅读,更多相关《CAD原理实验报告.docx(34页珍藏版)》请在冰豆网上搜索。

CAD原理实验报告.docx

CAD原理实验报告

 

服装CAD原理与应用

实验报告

 

实验报告

(一)三点画圆弧----------------------(02-07)

实验报告

(二)两点画圆弧----------------------(08-12)

实验报告(三)Bezier曲线的绘制----------------(13-17)

实验报告(四)Hermite曲线的绘制---------------(18-22)

实验报告(五)B样条曲线的绘制-----------------(23-27)

 

实验报告

(一)

一、实验题目

使用VB软件实现三点画圆弧

二、实验目的

1.了解服装CAD中的常用曲线,灵活运用理论知识加以运用,实现操作;

2.掌握三点画圆弧的基本原理和绘制方法;

3.运用VisualBasic6.0软件编写程序实现通过三点的控制成功绘制圆弧。

三、实验目的

1.实验原理

已知三个点A(x1,y1),B(x2,y2)C(x3,y3)的坐标

①根据中垂线相交于圆心可以求出圆心(x,y)的坐标以及半径r

②根据圆心以及已知三点的坐标,判断出所画圆弧的起始角,终止角和中间角的正切角度值,进而求出这三个角的角度。

③比较起始角,终止角和中间角这三点的角度大小,判断出所画圆弧的方向。

2.源代码

VERSION5.00

BeginVB.FormForm1

Caption="三点画圆弧"

ClientHeight=5835

ClientLeft=120

ClientTop=450

ClientWidth=8280

LinkTopic="Form1"

ScaleHeight=5835

ScaleWidth=8280

StartUpPosition=3'窗口缺省

BeginVB.CommandButtonCommand3

Caption="退出"

Height=615

Left=6000

TabIndex=3

Top=4800

Width=1455

End

BeginVB.CommandButtonCommand2

Caption="取消"

Height=615

Left=3360

TabIndex=2

Top=4800

Width=1455

End

BeginVB.CommandButtonCommand1

Caption="画弧"

Height=615

Left=720

TabIndex=1

Top=4800

Width=1455

End

BeginVB.PictureBoxPicture1

Height=4335

Left=360

ScaleHeight=4275

ScaleWidth=7515

TabIndex=0

Top=240

Width=7575

End

End

AttributeVB_Name="Form1"

AttributeVB_GlobalNameSpace=False

AttributeVB_Creatable=False

AttributeVB_PredeclaredId=True

AttributeVB_Exposed=False

Privatept()Asmypoint

PrivateSubForm_Load()

ReDimpt

(1)

EndSub

PrivateSubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)

DimsAsInteger

pt(UBound(pt)).x=x

pt(UBound(pt)).y=y

Picture1.Circle(x,y),15

s=Val(UBound(pt))

SelectCases

Case1

Picture1.Print"A"

Case2

Picture1.Print"B"

Case3

Picture1.Print"C"

EndSelect

IfUBound(pt)>1Then

Picture1.Line(pt(UBound(pt)-1).x,pt(UBound(pt)-1).y)-(pt(UBound(pt)).x,pt(UBound(pt)).y)

EndIf

ReDimPreservept(UBound(pt)+1)

EndSub

PrivateSubCommand1_Click()

DimA1,A2,B1,B2,C1,C2AsSingle

DimX0,Y0,r,PIAsDouble

Dimt1,t2,t3AsDouble

DimtAsDouble

A1=pt

(1).x^2+pt

(1).y^2-pt(3).x^2-pt(3).y^2

A2=pt

(2).x^2+pt

(2).y^2-pt(3).x^2-pt(3).y^2

B1=2*pt(3).x-2*pt

(1).x

B2=2*pt(3).x-2*pt

(2).x

C1=2*pt

(1).y-2*pt(3).y

C2=2*pt

(2).y-2*pt(3).y

X0=(A1*C2-A2*C1)/(B2*C1-B1*C2)

Y0=(A1*B2-A2*B1)/(B2*C1-B1*C2)

r=Sqr((pt

(1).x-X0)*(pt

(1).x-X0)+(pt

(1).y-Y0)*(pt

(1).y-Y0))

PI=4*Atn

(1)

t1=Atn((pt

(1).y-Y0)/(pt

(1).x-X0))

Ifpt

(1).x-X0>0Andpt

(1).y-Y0>0Then

t1=t1

Else

Ifpt

(1).x-X0<0Andpt

(1).y-Y0>0Then

t1=t1+PI

Else

Ifpt

(1).x-X0<0Andpt

(1).y-Y0<0Then

t1=t1+PI

Else

t1=t1+2*PI

EndIf

EndIf

EndIf

t2=Atn((pt

(2).y-Y0)/(pt

(2).x-X0))

Ifpt

(2).x-X0>0Andpt

(2).y-Y0>0Then

t2=t2

Else

Ifpt

(2).x-X0<0Andpt

(2).y-Y0>0Then

t2=t2+PI

Else

Ifpt

(2).x-X0<0Andpt

(2).y-Y0<0Then

t2=t2+PI

Else

t2=t2+2*PI

EndIf

EndIf

EndIf

Ift1

Fort=t1Tot2Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

ElseIft2

t2=t2+2*PI

Fort=t1Tot2Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

ElseIft3

t2=t2+2*PI

Fort=t1Tot2Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

ElseIft1

t1=t1+2*PI

Fort=t2Tot1Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

ElseIft3

t1=t1+2*PI

Fort=t2Tot1Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

ElseIft2

Fort=t2Tot1Step0.001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

EndIf

EndSub

PrivateSubCommand2_Click()

Picture1.Cls

ReDimpt

(1)

EndSub

PrivateSubCommand3_Click()

End

EndSub

 

四实验结果

 

实验报告

(二)

一、实验题目

使用VB软件实现两点画圆弧

二、实验目的

1.了解服装CAD中的常用曲线,灵活运用理论知识加以运用,实现操作;

2.掌握使用两端点,以及其中一端点切线画圆弧的基本原理和绘制方法;

3.运用VisualBasic6.0软件编写程序实现通过两端点,以及其中一端点切线成功绘制圆弧。

三、实验内容

1、实验原理

已知一圆弧两端点A,B和A端点切线的方向数L

①根据向量的知识,由已知一圆弧两端点A,B和A端点切线的方向数L求出圆心的坐标和半径大小;

②计算在圆心为原点的新坐标系下初始角和终止角的正切值,进而求出对应的角度;

③判断L和半径向量的乘积,若大于0,则为逆时针方向画圆弧,小于0,则为顺时针方向画圆弧;

④根据圆的参数方程表达式,利用VB绘制圆弧。

2、源代码

VERSION5.00

BeginVB.FormForm1

AutoRedraw=-1'True

Caption="两点加切线画圆弧"

ClientHeight=6810

ClientLeft=120

ClientTop=450

ClientWidth=8340

LinkTopic="Form1"

ScaleHeight=6810

ScaleWidth=8340

StartUpPosition=3'窗口缺省

BeginVB.CommandButtonCommand3

Caption="退出"

Height=615

Left=6240

TabIndex=3

Top=6000

Width=1575

End

BeginVB.CommandButtonCommand2

Caption="取消"

Height=615

Left=3360

TabIndex=2

Top=6000

Width=1575

End

BeginVB.CommandButtonCommand1

Caption="画弧"

Height=615

Left=480

TabIndex=1

Top=6000

Width=1575

End

BeginVB.PictureBoxPicture1

AutoRedraw=-1'True

Height=5175

Left=360

ScaleHeight=5115

ScaleWidth=7515

TabIndex=0

Top=480

Width=7575

End

End

AttributeVB_Name="Form1"

AttributeVB_GlobalNameSpace=False

AttributeVB_Creatable=False

AttributeVB_PredeclaredId=True

AttributeVB_Exposed=False

Privatept()Asmypoint

PrivateSubForm_Load()

ReDimpt

(1)

EndSub

PrivateSubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)

DimsAsInteger

pt(UBound(pt)).x=x

pt(UBound(pt)).y=y

Picture1.Circle(x,y),1

s=Val(UBound(pt))

SelectCases

Case1

Picture1.Print"A"

Case2

Picture1.Print"B"

Case3

Picture1.Print"L"'曲线在A点处的切线矢量

Picture1.Line(pt

(1).x,pt

(1).y)-(pt(3).x,pt(3).y)

EndSelect

ReDimPreservept(UBound(pt)+1)

EndSub

PrivateSubCommand1_Click()

DimX0,Y0,rAsDouble

Dima1,a2,b1,b2,c1,c2AsDouble

Dimt,t1,t2,i,j,k,m,nAsDouble

DimpiAsSingle

pi=4*Atn

(1)

a1=2*pt

(1).x-2*pt

(2).x

a2=pt(3).x-pt

(1).x

b1=2*pt

(1).y-2*pt

(2).y

b2=pt(3).y-pt

(1).y

c1=pt

(1).x^2-pt

(2).x^2+pt

(1).y^2-pt

(2).y^2

c2=(pt

(1).x-pt(3).x)*pt

(1).x+(pt

(1).y-pt(3).y)*pt

(1).y

X0=(b2*c1-b1*c2)/(a1*b2-a2*b1)

Y0=(a1*c2-a2*c1)/(a1*b2-a2*b1)

r=Sqr((pt

(1).x-X0)^2+(pt

(1).y-Y0)^2)

k=(pt(3).y-pt

(1).y)*(pt

(1).x-X0)-(pt(3).x-pt

(1).x)*(pt

(1).y-Y0)

m=pt

(1).x-X0

n=pt

(1).y-Y0

t1=Atn(Abs(n/m))

Ifm>0Andn>0Then

t1=t1

ElseIfm<0Andn>0Then

t1=pi-t1

ElseIfm<0Andn<0Then

t1=pi+t1

ElseIfm>0Andn<0Then

t1=2*pi-t1

EndIf

i=pt

(2).x-X0

j=pt

(2).y-Y0

t2=Atn(Abs(j/i))

Ifi>0Andj>0Then

t2=t2

ElseIfi<0Andj>0Then

t2=pi-t2

ElseIfi<0Andj<0Then

t2=pi+t2

ElseIfi>0Andj<0Then

t2=2*pi-t2

EndIf

Ifk>0Then

Ift1

Fort=t1Tot2Step0.0001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

Else:

t2=t2+2*pi

Fort=t1Tot2Step0.0001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

EndIf

Else

Ift1>t2Then

Fort=t2Tot1Step0.0001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

Else:

t1=t1+2*pi

Fort=t2Tot1Step0.0001

x=X0+r*Cos(t)

y=Y0+r*Sin(t)

Picture1.PSet(x,y)

Nextt

EndIf

EndIf

EndSub

PrivateSubCommand2_Click()

Picture1.Cls

ReDimpt

(1)

EndSub

PrivateSubCommand3_Click()

End

EndSub

四、

实验结果

实验报告(三)

一、实验题目

运用VB软件绘制Bezier曲线

二、实验目的

1、了解服装CAD中的常用曲线,通过实际操作加以深入认识;

2、了解Bezier曲线的特点,根据Bezier曲线的基本原理,推断出绘制方法并进行操作;

3、运用VisualBasic6.0软件编写程序实现曲线的成功绘制。

三、实验内容

1、实验原理

设空间有n+1个点P0,P1,P2,……,Pn,则称下列函数所决定的参数曲线为Bezier曲线:

在给定几个点时,可在t

[0,1]区间取一系列值,相应的计算一系列的x(t),y(t),z(t)的值,由此可确定空间曲线上各点的位置,连接后即得该空间曲线。

 

2、源代码

VERSION5.00

BeginVB.FormBezier

Caption="Bezier曲线"

ClientHeight=7575

ClientLeft=60

ClientTop=450

ClientWidth=9255

LinkTopic="Form1"

ScaleHeight=7575

ScaleWidth=9255

StartUpPosition=3'窗口缺省

BeginVB.CommandButtonCommand2

Caption="取消"

Height=495

Left=3840

TabIndex=3

Top=6600

Width=1455

End

BeginVB.CommandButtonCommand3

Caption="退出"

Height=495

Left=6720

TabIndex=2

Top=6600

Width=1455

End

BeginVB.CommandButtonCommand1

Caption="画弧"

Height=495

Left=1080

TabIndex=1

Top=6600

Width=1455

End

BeginVB.PictureBoxPicture1

Height=5655

Left=600

ScaleHeight=5595

ScaleWidth=7995

TabIndex=0

Top=480

Width=8055

End

End

AttributeVB_Name="Bezier"

AttributeVB_GlobalNameSpace=False

AttributeVB_Creatable=False

AttributeVB_PredeclaredId=True

AttributeVB_Exposed=False

Privatept()Asmypoint

PrivateSubForm_Load()

ReDimpt

(1)

EndSub

PrivateSubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)

DimsAsInteger

pt(UBound(pt)).x=x

pt(UBound(pt)).y=y

Picture1.Circle(x,y),15

s=Val(UBound(pt))

SelectCases

Case1

Picture1.Print"P0"

Case2

Picture1.Print"P1"

Case3

Picture1.Print"P2"

Case4

Picture1.Print"P3"

Case5

Picture1.Print"P4"

Case6

Picture1.Print"P5"

Case7

Picture1.Print"P6"

Case8

Picture1.Print"P7"

Case9

Picture1.Print"P8"

Case10

Picture1.Print"P9"

Case11

Picture1.Print"P10"

EndSelect

IfUBound(pt)>1Then

Picture1.Line(pt(UBound(pt)-1).x,pt(UBound(pt)

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1