


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、服裝CAD原理與應用實驗報告目錄實驗報告一三點畫圓弧02-07實驗報告二兩點畫圓弧08-12實驗報告三Bezier曲線的繪制13-17實驗報告四Hermite曲線的繪制18-22實驗報告五B樣條曲線的繪制23-27實驗報告一一、實驗題目使用VB軟件實現三點畫圓弧二、實驗目的了解服裝CAD中的常用曲線,靈活運用理論知識加以運用,實現操作;1. 掌握三點畫圓弧的基本原理和繪制方法;3.運用VisualBasic6.0軟件編寫程序實現通過三點的控制成功繪制圓弧。三、實驗目的已知三個點Ax1,y1,Bx2,y2Cx3,y3的坐根據中垂線相交于圓心可以求出圓心x,y的坐標以及半徑r根據圓心以及已知三點的
2、坐標,判斷出所畫圓弧的起始角,終止角和中間角的正切角度值,進而求出這三個角的角度。比較起始角,終止角和中間角這三點的角度大小,判斷出所畫圓弧的方向。2.源代碼BeginVB.FormFormlCaption="三點畫圓弧"ClientHeight=5835ClientLeft=120ClientTop=450ClientWidth=8280LinkTopic="Form1"ScaleHeight=5835ScaleWidth=8280StartUpPosition=3'窗口缺省BeginVB.CommandButtonCommand3Captio
3、n="退出"Height=615Left=6000TabIndex=3Top=4800Width=1455EndBeginVB.CommandButtonCommand2Caption="取消"Height=615Left=3360TabIndex=2Top=4800Width=1455EndBeginVB.CommandButtonCommandlCaption="畫弧"Height=615Left=720Tabindex=1Top=4800Width=1455EndBeginVB.PictureBoxPicture1Height=
4、4335Left=360ScaleHeight=4275ScaleWidth=7515Tabindex=0Top=240Width=7575EndEndAttributeVB_Name="Form1"AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_Predeclaredid=TrueAttributeVB_Exposed=FalsePrivatept()AsmypointPrivateSubForm_Load()ReDimpt(1)EndSubPrivateSubPicture1
5、_MouseDown(ButtonAsinteger,ShiftAsinteger,xAsSingle,yAsSingle)DimsAsintegerpt(UBound(pt).x=xpt(UBound(pt).y=yPicture1.Circle(x,y),15s=Val(UBound(pt)SelectCasesCase1Picture1.Print"A"Case2Picture1.Print"B"Case3Picture1.Print"C"EndSelectIfUBound(pt)>1ThenPicturel.Line(p
6、t(UBound(pt)-1).x,pt(UBound(pt)1).y)-(pt(UBound(pt).x,pt(UBound(pt).y)EndIfReDimPreservept(UBound(pt)+1)EndSubPrivateSubCommand1_Click()DimA1,A2,B1,B2,C1,C2AsSingleDimX0,Y0,r,PIAsDoubleDimt1,t2,t3AsDoubleDimtAsDoubleA1=pt(1).xA2+pt(1).yA2-pt(3).xA2-pt(3).yA2A2=pt(2).xa2+pt(2).ya2-pt(3).xa2-p«3)
7、.ya2B1=2*pt(3).x-2*pt(1).xB2=2*pt(3).x-2*pt(2).xC1=2*pt(1).y-2*pt(3).yC2=2*pt(2).y-2*pt(3).yX0=(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>0Thent1=t1ElseIf
8、pt(1).x-X0<0Andpt(1).y-Y0>0Thent1=t1+PIElseIfpt(1).x-X0<0Andpt(1).y-Y0<0Thent1=t1+PIElset1=t1+2*PIEndIfEndIfEndIft2=Atn(pt(2).y-Y0)/(pt(2).x-X0)Ifpt(2).x-X0>0Andpt(2).y-Y0>0Thent2=t2ElseIfpt(2).x-X0<0Andpt(2).y-Y0>0Thent2=t2+PIElseIfpt(2).x-X0<0Andpt(2).y-Y0<0Thent2=t2+
9、PIElset2=t2+2*PIEndIfEndIfEndIfIft1<t3<t2Thenx=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttElseIft2<t1<t3Thent2=t2+2*PIx=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttElseIft3<t2<t1Thent2=t2+2*PIx=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttElseIft1<t2<t3Thent1=t1+2*PI
10、x=X0+r*Cos(t)y=Y0+r*Sin(t)Picture1.PSet(x,y)NexttElseIft3<t1<t2Thent1=t1+2*PIx=X0+r*Cos(t)y=Y0+r*Sin(t)Picture1.PSet(x,y)NexttElseIft2<t3<t1Thenx=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttEndIfEndSubPrivateSubCommand2_Click()ReDimpt(1)EndSubPrivateSubCommand3_Click()EndEndSub四實驗結果實驗
11、報告一、實驗題目使用VB軟件實現兩點畫圓弧二、實驗目的了解服裝CAD中的常用曲線,靈活運用理論知識加以運用,實現操作;1. 掌握使用兩端點,以及其中一端點切線畫圓弧的基本原理和繪制方法;3.運用VisualBasic6.0軟件編寫程序實現通過兩端點,以及其中一端點切線成功繪制圓弧。三、實驗內容1、實驗原理已知一圓弧兩端點A,B和A端點切線的方向數L 根據向量的知識,由已知一圓弧兩端點A,B和A端點切線的方向數L求出圓心的坐標和半徑大小; 計算在圓心為原點的新坐標系下初始角和終止角的正切值,進而求出對應的角度; 判斷L和半徑向量的乘積,假設大于0,則為逆時針方向畫圓弧,小于0,則為順時針方向畫圓
12、弧; 根據圓的參數方程表達式,利用VB繪制圓弧。2、源代碼BeginVB.FormFormlAutoRedraw=-1'TrueCaption="兩點加切線畫圓弧ClientHeight=6810ClientLeft=120ClientTop=450ClientWidth=8340LinkTopic="Form1"ScaleHeight=6810ScaleWidth=8340StartUpPosition=3'窗口缺省BeginVB.CommandButtonCommand3Caption="退出"Height=615Left=
13、6240TabIndex=3Top=6000Width=1575EndBeginVB.CommandButtonCommand2Caption="取消"Height=615Left=3360TabIndex=2Top=6000Width=1575EndBeginVB.CommandButtonCommand1Caption="畫弧"Height=615Left=480TabIndex=1Top=6000Width=1575EndBeginVB.PictureBoxPicture1AutoRedraw=-1'TrueHeight=5175Left=
14、360ScaleHeight=5115ScaleWidth=7515TabIndex=0Top=480Width=7575EndEndAttributeVB_Name="Forml"AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_PredeclaredId=TrueAttributeVB_Exposed=FalsePrivatept()AsmypointPrivateSubForm_Load()ReDimpt(1)EndSubPrivateSubPicture1_MouseDow
15、n(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)DimsAsIntegerpt(UBound(pt).x=xpt(UBound(pt).y=yPicturel.Circle(x,y),1s=Val(UBound(pt)SelectCasesCase1Picturel.Print"A"Case2Picture1.Print"B"Case3Picture1.Print"L"'曲線在A點處的切線矢量Picture1.Line(pt(1).x,pt(1).y)-(pt3).x,
16、pt(3).y)EndSelectReDimPreservept(UBound(pt)+1)EndSubPrivateSubCommand1_Click()DimX0,Y0,rAsDoubleDima1,a2,b1,b2,c1,c2AsDoubleDimt,t1,t2,i,j,k,m,nAsDoubleDimpiAsSinglepi=4*Atn(1)a1=2*pt(1).x-2*pt(2).xa2=pt(3).x-pt(1).xb1=2*pt(1).y-2*pt(2).yb2=pt.y-pt(1).yc1=pt(1).xA2-pt(2).xA2+pt(1).yA2-pt(2).yA2c2=(p
17、t(1).x-pt.x)*pt(1).x+(pt(1).y-pt(3).y)*pt(1).yX0=(b2*c1-b1*c2)/(a1*b2-a2*b1)Y0=(a1*c2-a2*c1)/(a1*b2-a2*b1)r=Sqr(pt(1).x-X0)A2+(pt(1).y-Y0)A2)k=(pt(3).y-pt(1).y)*(pt(1).x-X0)-(pt3).x-pt(1).x)*(pt(1).y-Y0)m=pt(1).x-X0n=pt(1).y-Y0t1=Atn(Abs(n/m)Ifm>0Andn>0Thent1=t1Elselfm<0Andn>0Thent1=pi-t
18、1Elselfm<0Andn<0Thent1=pi+t1Elselfm>0Andn<0Thent1=2*pi-t1EndIfi=pt(2).x-X0j=pt(2).y-Y0t2=Atn(Abs(j/i)Ifi>0Andj>0Thent2=t2Elselfi<0Andj>0Thent2=pi-t2Elselfi<0Andj<0Thent2=pi+t2Elselfi>0Andj<0Thent2=2*pi-t2Endlflfk>0Thenlft1<t2Thenx=X0+r*Cos(t)y=Y0+r*Sin(t)Pic
19、ture1.PSet(x,y)NexttElse:t2=t2+2*pix=X0+r*Cos(t)y=Y0+r*Sin(t)Picture1.PSet(x,y)NexttEndlfElselft1>t2Thenx=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttElse:t1=t1+2*pix=X0+r*Cos(t)y=Y0+r*Sin(t)Picturel.PSet(x,y)NexttEndIfEndIfEndSubPrivateSubCommand2_Click()ReDimpt(1)EndSubPrivateSubCommand3_Cli
20、ck()EndEndSub四、實驗結果實驗報告實驗題目運用VB軟件繪制Bezier曲線實驗目的1、了解服裝CAD中的常用曲線,通過實際操作加以深入認識;2、了解Bezier曲線的特點,根據Bezier曲線的基本原理,推斷出繪制方法并進行操作;3、運用VisualBasic6.0軟件編寫程序實現曲線的成功繪制。、實驗內容1、實驗原理設空間有n+1個點P0,P1,P2,,Pn,則稱以下函數所決定的參數曲線為Bezier曲線:nQ(t)PBi,n(t)(0t1)i0式(1-1)中,斗n(t)C;(1t)niti(i0,1,,n)在給定幾個點時,可在t0,1區間取一系列值,相應的計算一系列的x(t),
21、y(t),z(t)的值,由此可確定空間曲線上各點的位置,連接后即得該空間曲線。BeginVB.FormBezierCaption="BezierClientHeight=7575ClientLeft=60ClientTop=450ClientWidth=9255LinkTopic="Form1"ScaleHeight=7575ScaleWidth=9255StartUpPosition=3'曲線”2、源代碼Caption="取消"Height=495Left=3840TabIndex=3Top=6600Width=1455EndBegi
22、nVB.CommandButtonCommand3Caption="退出“Height=495Left6720TabIndex=2Top=6600Width=1455EndBeginVB.CommandButtonCommand1Caption="畫弧"Height=495Left1080TabIndex=1Top=6600Width=1455EndBeginVB.PictureBoxPicture1Height=5655Left600窗口缺省BeginVB.CommandButtonCommand2ScaleHeight=5595ScaleWidth=7995T
23、abindex=0Top=480Width=8055EndEndAttributeVB_Name="Bezier"AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_Predeclaredid=TrueAttributeVB_Exposed=FalsePrivatept()AsmypointPrivateSubForm_Load()ReDimpt(1)EndSubPrivateSubPicture1_MouseDown(ButtonAsinteger,ShiftAsinteger,x
24、AsSingle,yAsSingle)DimsAsintegerpt(UBound(pt).x=xpt(UBound(pt).y=yPicturel.Circle(x,y),15s=Val(UBound(pt)SelectCasesCase1Picturel.Print"P0"Case2Picture1.Print"P1"Case3Picture1.Print"P2"Case4Picture1.Print"P3"Case5Picture1.Print"P4"Case6Picture1.Print
25、"P5"Case7Picture1.Print"P6"Case8Picture1.Print"P7"Case9Picture1.Print"P8"Case10Picturel.Print"P9"Case11Picturel.Print"P10"EndSelectIfUBound(pt)>1ThenPicturel.Line(pt(UBound(pt)-1).x,pt(UBound(pt)1).y)-(pt(UBound(pt).x,pt(UBound(pt).y)End
26、IfReDimPreservept(UBound(pt)+1)EndSubPrivateSubCommand1_Click()Dimi%,t#Dimj,nAsIntegerDims,x,yAsSinglen=UBound(pt)-1-1Forj=1To1000x=0y=0Fori=0Tont=j/1000x=x+pt(i+1).x*B(i,n,t)y=y+pt(i+1).y*B(i,n,t)NextiPicture1.PSet(x,y)NextjEndSubPrivateFunctionfact(nAsInteger)DimiAsIntegerDimsAsLongs=1Fori=1Tons=s
27、*iNextifact=sEndFunctionPrivateFunctionB(i%,n%,t#)AsSingleB=(fact(n)*tAi*(1-t)A(n-i)/(fact(i)*fact(n-i)EndFunctionPrivateSubCommand2_Click()ReDimpt(1)'pt(1)為第一個點P0PrivateSubCommand3_Click()EndEndSub四、實驗結果實驗報告四,實驗題目運用VB軟件繪制三次Hermite曲線,實驗目的1、了解服裝CAD中的常用曲線,通過實際操作加以深入認識;2、了解Hermite曲線的特點,根據Hermite曲線的
28、基本原理,推斷出繪制方法并進行操作;3、運用VisualBasic6.0軟件編寫程序實現Hermite曲線的成功繪制。實驗內容1、實驗原理三次Hermite樣條曲線的一般表達式為:Q(t)=At3Bt2CtD0t1(2-1)上式中A、B、C、D四個系數矢量可以根據具體已知條件來確定。已知曲線端點P0(t0),P1(t1)和該曲線在兩個端點的切線矢量,P0(t0),P1'(t1),則可得下面結果:Q(0)=D=P0Q(1)ABCDP1_Q'(0)CP0'-Q(1)=3A+2B+C=P1解上面的方程組得:A=2(P0P)PoPi.,B3(PiPo)2PoPi_CP0DP0將
29、上面結果中的系數A、B、C、D代入式(2-1)中,并整理成下面的表達式:_32_32_32_'32_'Q(t)=(2t3t1)Po(2t3t)Pi(t2tt)F0(tt)R上式即為三次Hermite曲線表達式。當給定Po(x,y,z),R(x,y,z),Po(x,y,z),R(x,y,z)時,可在t0,1區間中取一系列值,相應的計算一系列的x(t),y(t),z(t)的值,由此可確定空間曲線上各點的位置,連接后即得該空間曲線。2、源代碼BeginVB.FormHermiteCaption="三次Hermite曲線"ClientHeight=7575Clien
30、tLeft=60ClientTop=450ClientWidth=9255LinkTopic="Form1"ScaleHeight=7575ScaleWidth=9255StartUpPosition=3'窗口缺省BeginVB.PictureBoxPicture1Height=5655Left=600ScaleHeight=5595ScaleWidth=7995Tabindex=3Top=480Width=8055EndBeginVB.CommandButtonCommand1Caption="畫弧"Height=495Left=1200Tab
31、index=2Top=6600Width=1455EndBeginVB.CommandButtonCommandsCaption="退出"Height=495Left=6600Tabindex=1Top=6600Width=1455EndBeginVB.CommandButtonCommand2Caption="取消"Height=495Left=3960Tabindex=0Top=6600Width=1455EndEndAttributeVB_Name="Hermite"AttributeVB_GlobalNameSpace=Fal
32、seAttributeVB_Creatable=FalseAttributeVB_Predeclaredid=TrueAttributeVB_Exposed=FalsePrivatept()AsmypointPrivateSubForm_Load()ReDimpt(1)EndSubPrivateSubPicture1_MouseDown(ButtonAsinteger,ShiftAsinteger,xAsSingle,yAsSingle)DimsAsintegerpt(UBound(pt).x=xpt(UBound(pt).y=yPicture1.Circle(x,y),1s=Val(UBou
33、nd(pt)SelectCasesCase1Picture1.Print"P0"Case2Picture1.Print"P1"Case3Picturel.Print"P01"'曲線在P0點處的切線矢量Picturel.Line(pt(1).x,pt(1).y)-(pt3).x,pt(3).y)Case4Picture1.Print"P11"'曲線在P1點處的切線矢量Picture1.Line(pt(2).x,pt(2).y)-(pt(4).x,pt(4).y)EndSelectReDimPreser
34、vept(UBound(pt)+1)EndSubPrivateSubCommand1_Click()DimAx,Bx,Cx,Dx,Ay,By,Cy,DyAsSingleDimP01x!,P11y!Dimj%,tAsSingleP01x=2*(pt(3).x-pt(1).x)P01y=2*(pt(3).y-pt(1).y)P11x=2*(pt(2).x-pt(UBound(pt)-1).x)P11y=2*(pt(2).y-pt(UBound(pt)-1).y)Ax=2*(pt(1).x-pt(2).x)+P01x+P11xAy=2*(pt(1).y-pt(2).y)+P01y+P11yBx=3*
35、(pt(2).x-pt(1).x)-2*P01x-P11xBy=3*(pt(2).y-pt(1).y)-2*P01y-P11yCx=P01xCy=P01yDx=pt(1).xDy=pt(1).yForj=1To1000t=j/1000x=Ax*tA3+Bx*tA2+Cx*t+Dxy=Ay*ta3+By*ta2+Cy*t+DyPicture1.PSet(x,y)NextjEndSubPrivateSubCommand2_Click()ReDimpt(1)'pt(1)為第一個點P0EndSubPrivateSubCommand3_Click()EndEndSubPrivateSubForm
36、_Activate()Picture1.Scale(0,500)-(500,0)四、實驗結果實驗報告五實驗題目用VB繪制三次B樣條曲線實驗目的1、了解服裝CAD中的常用曲線。2、掌握B樣條曲線的基本原理和方法,了解B樣條曲線的特點。實驗內容1、實驗原理B樣條曲線的數學模型:設空間有n+k+1個點P0,R,Pk,Pki,Pkn,稱以下函數所決定的參數曲線為第i段B樣條曲線:kQi(t)PjFj,k(t)(0t1,i0,1,2,n)j01kj苴中Fft(1)'廣ftkit1in19-k、為基函數。Fj,k(t)(l)Ck1(tkJ1)(0tI,J0,l,2,kJ企2必。t!i0R,Pi1,
37、;P+k為Qi(t)的控制頂點,折線PP"R+k為Qi(t)的控制多邊形。k=3時,稱為三次B樣條曲線根據上式可得:Fo,3(t)(t3t3t1)6%t)(3t36t24)(3t3t3t1)613F3,3(t)-t36代入前面的式中,第i段三次B樣條曲線表達式為:Qi(t)=Fo,3(t)RFi,3(t)PiF2,3(t)P2F3,3(t)P3根據給定四個點的,可在t0,1區間取一系列值,相應的計算一系列的x(t),y(t),z(t)的值,由此可確定空間曲線上各點的位置,連接后即得該空間曲線。2、源代碼BeginVB.FormForm1Caption="三次B樣條曲線”Cl
38、ientHeight=6240ClientLeft=120ClientTop=450ClientWidth=9030LinkTopic="Form1"ScaleHeight=6240ScaleWidth=9030StartUpPosition=3'窗口缺省BeginVB.CommandButtonCommand3Caption="退出"Height=615Left=6840Tabindex=3Top=5400Width=1575EndBeginVB.CommandButtonCommand2CaptionHeight=615Left=3720Tabindex=2Top=5400Width=1575EndBeginVB.Comman
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 團體演出服務合同協議
- 大氣污染防治專項資金項目2025年申請流程優化與申報技巧報告
- 租花園改造書房合同協議
- 墓碑生產銷售合同協議
- 電子廠專業合同協議
- 衛生院公共衛生工作計劃
- 小鹿茶加盟合同協議
- 工程車合作課件
- ktv陪酒合同協議
- 外貿業務服務合同協議
- 寧夏低空經濟發展現狀與策略實施路徑探索
- 第十八屆“地球小博士”全國地理知識科普競賽題庫(附答案)
- 110kV變電站典型二次回路圖解
- 動物類-中藥鑒定課件
- 滬教2011版五年級美術下冊《裝點我們的生活》評課稿
- 21 青蛙賣泥塘(一等獎創新教案)
- 《礦業權評估指南》
- 專題01《水銀花開的夜晚》 高考語文二輪復習
- 電工日常巡視維修工程記錄
- GB/T 14388-1993木工硬質合金圓鋸片
- 二月份循證護理查房課件
評論
0/150
提交評論