Khi hai vật tác dụng tương hỗ thì động lượng có thể truyền từ vật nọ sang vật kia, nghĩa là chúng có thể trao đổi động lượng với nhau. Ta sẽ xét xem sự trao đổi ấy diễn ra theo quy luật như thế nào với thí nghiệm đơn giản sau:
Treo hai hòn bi bằng thép có khối lượng bằng nhau vào 2 sợi dây, sao cho khi hai dây song song và thẳng đứng thì hai hòn bi tiếp xúc với nhau. Ta kéo cho hòn bên phải lệch đi một góc a và thả nó ra. Nó chuyển động tới đập vào hòn bi bên trái đang đứng yên và dừng lại, còn hòn bi bên trái chuyển động tiếp về phía bên trái cho đến khi lệch một góc a thì chuyển động lại, đập vào hòn bi bên phải rồi đứng yên. Hòn bi bên phải lại chuyển động và quá trình cứ tiếp diễn như vậy.
Giả sử khối lượng của mỗi hòn bi là m, vận tốc của hòn bi bên phải ngay trước lúc va chạm là v. Vì lúc ấy hòn bi bên trái đứng yên nên động lượng của cả hai hòn bi ngay trước lúc va chạm là mv và hướng về bên trái. Ngay sau lúc va chạm, vận tốc của hòn bi cũng phải là v do hai góc lệch bằng nhau, đồng thời hòn bi bên phải đứng yên, vậy động lượng của hai hòn bi lúc đó cũng bằng mv và hướng về bên trái, nghĩa là bằng động lượng của chúng trước lúc va chạm.
Vậy thí nghiệm đã chứng minh rằng: tác dụng tương hỗ của hai vật không làm thay đổi động lượng tổng cộng của chúng.
26 trang |
Chia sẻ: aquilety | Lượt xem: 2648 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu xây dựng không gian mô phỏng dao động con lắc đơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN
Trước hết nhóm chúng em xin gửi lời cảm ơn sâu sắc đến thầy Hùng, cô Hiền Anh, thầy cô đã giúp đỡ em rất nhiều về định hướng nghiên cứu, hướng dẫn cho chúng em trong suốt thời gian học tập môn này.
Cuốn báo cáo này được nhóm chúng em hoàn thành theo đúng thời gian quy định của nhà trường cũng như của khoa không chỉ là sự nỗ lực của chúng em mà còn sự giúp đỡ, chỉ bảo của thầy,cô hướng dẫn và các bạn sinh viên trong lớp giúp đỡ.
Chúng em xin chân thành cảm ơn thầy cô đã giảng dạy chúng em, đặc biệt là các thầy cô giáo trong khoa CNTT.
Xin cảm ơn các bạn sinh viên trong lớp đã giúp đỡ tôi rất nhiều mặt: như phương tiện, sách vở, ý kiến
Mặc dù nhóm đã rất cố gắng hoàn thành nghiên cứu này song cũng không tránh khỏi những sai sót, mong thầy cô và các bạn đóng góp những ý kiến quí báu để nghiên cứu được thành công hơn.
Nhóm sinh viên thực hiện:
Nguyễn Trần Vân
Lê Huyền Trang
Vũ Quý Trung
Trương Văn Khải
Mai Văn Thanh
Mục lục
LỜI MỞ ĐẦU
Đồ họa máy tính luôn là một trong những lĩnh vực được quan tâm nhất trong ngành công nghệ thông tin nói chung và khoa học máy tính nói riêng. Chúng ta có thể bắt gặp nhiều ứng dụng của đồ họa máy tính trên nhiều lĩnh vực của đời sống: như khoa học – y tế - quân sự - xây dựng kiến trức, giải trí v.v
Trong những ứng dụng ấy việc mô phỏng lại thế giới thực bằng cách xây dựng thế giới thực bằng cách xây dựng mô hình “ảo” trên máy tính luôn là một vấn đề lớn mà đồ họa máy tính hướng tới giải quyết. Từ đó mà công nghệ “thực tại ảo” ra đời, với khả năng mô phỏng một cách sống động hầu hết những mô hình trong thế giới thực, từ đơn giản cụ thể cho tới phức tạp trừu tượng. Ngôn ngữ mô hình hóa thực tại ảo VRML đã được xây dựng từ nhu cầu phát triển của công nghệ “thực tại ảo” – mà dựa trên đó, con người có thẻ giải quyết bài toán mô phòng lại thế giới thực trên máy tính.
Nội dung của báo cáo được chia thành 4 chương cụ thể như sau:
Chương I: Tổng quan về Thực tại ảo
Chương II: Tổng quan ngôn ngữ mô hình hóa thực tại ảo VRML
Chương III: Tìm hiểu chi tiết ngôn ngữ mô hình hóa thực tại ảo VRML
Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian.
Chương I: Tổng quan về Thực tại ảo
Thực tại ảo hay còn gọi là thực tại ảo (tiếng Anh là virtual reality, viết tắt là VR) là thuật ngữ miêu tả một môi trường mô phỏng bằng máy tính. Đa phần các môi trường thực tại ảo chủ yếu là hình ảnh hiển thị trên màn hình máy tính hay thông qua kính nhìn ba chiều, tuy nhiên một vài mô phỏng cũng có thêm các loại giác quan khác khác như âm thanh hay xúc giác.
Công nghệ thực tế ảo là một thuật ngữ mới xuất hiện khoảng đầu thập kỷ 90, nhưng thực sự phát triển mạnh trong vòng vài năm trở lại đây. Theo dự đoán của Gartner (tổ chức nghiên cứu thị trường toàn cầu), VR đứng đầu danh sách 10 công nghệ chiến lược năm 2009. Tại Mỹ và châu Âu thực tế ảo (VR) đã và đang trở thành một công nghệ mũi nhọn nhờ khả năng ứng dụng rộng rãi trong mọi lĩnh vực (nghiên cứu và công nghiệp, giáo dục và đào tạo, du lịch, dịch vụ bất động sản, thương mại và giải trí,..) và tiềm năng kinh tế, cũng như tính lưỡng dụng (trong dân dụng và quân sự) của nó. Trong loạt các bài viết sau, tôi sẽ trình bày có hệ thống về VR: khái niệm, ứng dụng, phần mềm, phần cứng, mạng liên kết,... nhằm giúp các bạn trẻ Việt Nam có cái nhìn tổng quát về công nghệ VR trên thế giới, khả năng ứng dụng phần mềm để thiết kế thế giới ảo và xây dựng hệ thống VR tại Việt Nam.
VR là một hệ thống mô phỏng trong đó đồ họa máy tính được sử dụng để tạo ra một thế giới "như thật". Hơn nữa, thế giới "nhân tạo" này không tĩnh tại, mà lại phản ứng, thay đổi theo ý muốn (tín hiệu vào) của người sử dụng (nhờ hành động, lời nói,..). Điều này xác định một đặc tính chính của VR, đó là tương tác thời gian thực (real-time interactivity). Thời gian thực ở đây có nghĩa là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngay lập tức thế giới ảo
Thực tại ảo có ứng dụng trong hết lĩnh vực của cuộc sống, nếu không có thực tại ảo, nhiều vấn đề khó khăn sẽ rất khó giải quyết được, hoặc có thể nhưng với hiệu quả thấp và chi phí tốn kém hơn rất nhiều
Chương II: Tổng quan ngôn ngữ mô hình hóa thực tại ảo VRML
VRML (Virtual Reality Modeling Language) là ngôn ngữ mô hình hóa thực tế ảo, một định dạng tập tin được sử dụng trong việc mô tả các thế giới và các đối tượngđồ họa tương tác ba chiều. VRML được thiết kế dùng trong môi trường Internet,Intranet và các hệ thống máy khách cục bộ (local client). VRML còn được dự trù trở thành một chuẩn trao đổi đa năng cho đồ họa ba chiều tích hợp và truyền thông đa phương tiện. VRML có thể được sử dụng trong rất nhiều lĩnh vực ứng dụng chẳng hạnnhư trực quan hóa các khái niệm khoa học và kỹ thuật, trình diễn đa phương tiện, giảitrí và giáo dục, hỗ trợ web và chia sẻ các thế giới ảo.
Về căn bản VRML chỉ đơn giản là một định dạng trao đổi 3D. Nó định nghĩa được các vấn đề thường được sử dụng trong các ứng dụng 3D, chẳng hạn như các biếnđổi phân cấp (hierarchical tranformations), nguồn ánh sáng (líght sources), điểm nhìn(view points), hình học (geometry), sương mù (fog), thuộc tính của chất liệu (material properties) và các bản đồ kết cấu (texture mapping). Ngôn ngữ VRML là ngôn ngữ sử dụng mô hình phân cấp trong việc thể hiệncác tương tác với các đối tượng của mô hình, VRML được sử dụng để phát triển nhữnghình ảnh 3D và quang cảnh trên Web. Các file VRML có kích thức nhỏ, thường không
quá 1Mb.
Ngôn ngữ mô hình hóa thực tại ảo VRML là một chuẩn không chính thức đểmô tả thực tế ảo mà không phụ thuộc vào hệ điều hành thông qua Internet. Chỉ với mộtfile text bạn có thể mô tả, tương tác, điều khiển một thế giới ảo mà không bị hạn chếnhiều.
VRML cho phép truyền đi trong mạng những hình ảnh 3D. Với kích thước khả nhỏ so với băng thông, phần lớn giới hạ n trong khoảng 100 - 200Kb nên các file
VRML được truyền đi một cách khá dễ dàng. Nếu HTML là định dạng văn bản thìVRML là định dạng đối tượng 3D. Hiện nay VRML có lợi thế là sự đơn giản, hỗ trợ dịch vụ web 3D
CHƯƠNG III : TÌM HIỂU CHI TIẾT NGÔN NGỮ MÔ HÌNH THỰC TẠI ẢO VRML
Làm việc với file VRML.
Chúng ta có thể tạo một file VRML đơn giản bằng cách dùng một trình soạn thảo văn bản như Notepad hay WordPad, rồi sau đó lưu file vớ i phần mở rộng rl. Bên cạnh đó , giúp cho viêc soạn thảo code VRML hiệu quả hơn.
Việc dịch và chạy một file *.wrl lại yêu cầu một bộ Player trợ giúp cho hiển thị các hiệu ứng trong VRML . Trong nhiều bộ Player hỗ trợ VRML hiệnnay, em chọn sử dụng bộ Cortona 3D viewer đượ cung cấp miễn phí.
Cấu trúc file VRML *.wrl
1 file VRML (*.wrl) có 3 thành phần cơ bản :
Tiêu đề: Dùng để nhận dạng tập tin VRML và cách mã hóa
Phần chú thích: Bắt đầu bằng dấu # và được chương trình bỏ qua khi dịch và chạy
Các node: hay còn gọi là các thẻ, là thành phần chính của file VRML bao gồm các phần tổng quát sau:
Loại node :
Tên node phải viết hoa
Các cặp dấu trong mở ngoặc {} bắt buộc phải có
Các trường: có thể có nhiều trường trong một node
Các trường gồm nhiều giá trị thì phải nằm trong các cặp []
Các đối tượng hình học cơ bản
Thế giới ảo xây dựng từ các file VRML được tạo nên từ các đối tượng hình học cơ bản bao gồm : hình hộp, hình cầu, hình trụ, hình nón và văn bản. Các đối tượng này được tạo ra trong node Shape với hai trường appearance và geometry.
Box – Hình hộp chữ nhật
Hình hộp chữ nhật tạo ra từ node
Box có tâm tại tọa độ ( 0,0,0) và có kích thước được quy định qua trường “sizex y z” với x,y,z lần lượt là kích thước hình hộp theo các trục Ox, Oy, Oz trong hệ trục tọa độ Đê các.
Sphere – Hình cầu
Hình cầu được tạo ra từ node Sphere có tâm tại tọa độ (0,0,0) và có bán kính được quy định qua trường “radius”. Giá trị trường radius phải lớn hơn 0.0
Cylinder – Hình trụ
Hình trụ được tạo ra từ node Cylinder có tâm tại tọa độ(0,0,0) , có bán kính quy định qua trường radius và có chiều cao quy định qua trường height
Ba trường còn lại trong node quy định sự tồn tại( nếu mang giá trị TRUE) hoặckhông tồn tại ( khi mang giá trị FALSE ):
tương ứng là mặt đáy trên – top, mặt đáydưới – bottom ,và mặt bên – side.
Các mặt không tồn tại sẽ không được xét tới nếu toàn khối trụ tham gia vào các sự kiện (ví dụ như phát hiện ra va chạm hoặc kích hoạt cảm biến).
Cone – Hình nón
Hình nón được tạo ra từ node Cone có tâm tại (0,0,0) , có bán kính mặt đáy quy định qua trường bottom Radius và có chiều cao quy định qua trường height.
Text
Chuỗi văn bản được tạo từ node Text sẽ được quy định trong trường string,chuỗi này được mã hóa theo chuẩn mã hóa utf-8.
Các phép biến đổi trong VRML
Mặc định mọi đối tượng được xây dựng trong VRML đều được đặt ở tọa độ gốc. Biến đổi là tạo ra một hệ thống trục hệ tọa độ mới mà hệ trục này có vị trí tương đối so với hệ tọa độ mặc định. Các các phép biến đổi như: di chuyển, quay, tỷ lệ
Các phép biến đổi trong VRML được thực hiện trên các đối tượng thông qua node Transform{}
Một số loại node được sử dụng trong VRML
Shape
Geometry
Node Geometry sẽ bao gồm các node Box, Cone, Cylinder, Sphere, Text tƣơng ứng với các đối tượng đượ c tạo ra trong node Shape đlà : hình h ộ p, hình nón, hình tr ụ , hình c ầu, và văn bản.Ngoài ra nodeGeometrycòn chứa nodeIndexedLineSetvàIndexedFaceSet để t ạo nên tƣơng ng là đƣờ ng th ẳ ng và m ặ t phẳng trong không gian.
Appearance
Material
Texture
ImageTexture
MovieTexture
IndexedFaceset
BackGround
Viewpoint
PointLight
CylinderSensor
SphereSensor
TouchSensor
TimeSensor
Anchor
Group
Switch
Transform
Inline
BillBoard
Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian.
Mô tả thí nghiệm
Mô tả thí nghiệm: Treo ba hòn bi bằng thép có khối lượng bằng nhau vào 3 sợi dây, sao cho khi 3 dây song song và thẳng đứng thì 3 hòn bi tiếp xúc với nhau. Ta kéo cho hòn bên phải lệch đi một góc a và thả nó ra. Nó chuyển động tới đập vào hòn bi ở giữa đang đứng yên và dừng lại,lực này tác động lên cả 2 hòn bi đứng giữa và hòn bi bên trái, kết quả là hòn bi giữa đứng yên. còn hòn bi bên trái chuyển động tiếp về phía bên trái cho đến khi lệch một góc a thì chuyển động ngược lại, đập vào hòn bi giữa, rồi rồi đứng yên. Hòn bi bên phải lại chuyển động và quá trình cứ tiếp diễn như vậy.
Cơ sở lý thuyết
Khi hai vật tác dụng tương hỗ thì động lượng có thể truyền từ vật nọ sang vật kia, nghĩa là chúng có thể trao đổi động lượng với nhau. Ta sẽ xét xem sự trao đổi ấy diễn ra theo quy luật như thế nào với thí nghiệm đơn giản sau:
Treo hai hòn bi bằng thép có khối lượng bằng nhau vào 2 sợi dây, sao cho khi hai dây song song và thẳng đứng thì hai hòn bi tiếp xúc với nhau. Ta kéo cho hòn bên phải lệch đi một góc a và thả nó ra. Nó chuyển động tới đập vào hòn bi bên trái đang đứng yên và dừng lại, còn hòn bi bên trái chuyển động tiếp về phía bên trái cho đến khi lệch một góc a thì chuyển động lại, đập vào hòn bi bên phải rồi đứng yên. Hòn bi bên phải lại chuyển động và quá trình cứ tiếp diễn như vậy.
Giả sử khối lượng của mỗi hòn bi là m, vận tốc của hòn bi bên phải ngay trước lúc va chạm là v. Vì lúc ấy hòn bi bên trái đứng yên nên động lượng của cả hai hòn bi ngay trước lúc va chạm là mv và hướng về bên trái. Ngay sau lúc va chạm, vận tốc của hòn bi cũng phải là v do hai góc lệch bằng nhau, đồng thời hòn bi bên phải đứng yên, vậy động lượng của hai hòn bi lúc đó cũng bằng mv và hướng về bên trái, nghĩa là bằng động lượng của chúng trước lúc va chạm.
Vậy thí nghiệm đã chứng minh rằng: tác dụng tương hỗ của hai vật không làm thay đổi động lượng tổng cộng của chúng.
Yêu cầu bài toán
Xây dựng một mô hình mô tả chuyển động của con lắc đơn trong không gian 3D mà khi đó người sử dụng có thể :
Di chuyển xoay quanh mô hình
Xem được hình ảnh
Thấy được sự chuyển động, va chạm giữa các con lắc
Thiết kế.
Một giá đỡ
Một thanh đứng
Một thanh ngang
Thiết kế 3 con lắc: Gồm 3 quả cầu treo vào 3 sợi dây
Mô tả sự dao động của con lắc
Dựng hình
Giá đỡ
DEF Giado Transform {
translation 0 70 0
children [
DEF Giado-TIMER TimeSensor { loop TRUE cycleInterval 3.333 },
DEF Cylinder12 Transform {
translation -10 67.23 0.1
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.102 0.6941 0.3451
}
}
geometry DEF Cylinder12-FACES IndexedFaceSet {
ccw TRUE
solid TRUE
coord DEF Cylinder12-COORD Coordinate { point [
1 0 0, 0.5 0 -0.866, -0.5 0 -0.866, -1 0 0, -0.5 0 0.866,
0.5 0 0.866, 1 2 0, 0.5 2 -0.866, -0.5 2 -0.866,
-1 2 0, -0.5 2 0.866, 0.5 2 0.866, 0 2 0, 3 2 0,
1.5 2 -2.598, -1.5 2 -2.598, -3 2 0, -1.5 2 2.598,
1.5 2 2.598, 3 4 0, 1.5 4 -2.598, -1.5 4 -2.598,
-3 4 0, -1.5 4 2.598, 1.5 4 2.598, 0 4 0]
}
coordIndex [
0, 7, 6, -1, 0, 1, 7, -1, 1, 8, 7, -1, 1, 2, 8, -1,
2, 9, 8, -1, 2, 3, 9, -1, 3, 10, 9, -1, 3, 4, 10, -1,
4, 11, 10, -1, 4, 5, 11, -1, 5, 6, 11, -1, 5, 0, 6, -1,
12, 14, 13, -1, 12, 15, 14, -1, 12, 16, 15, -1,
12, 17, 16, -1, 12, 18, 17, -1, 12, 13, 18, -1,
13, 20, 19, -1, 13, 14, 20, -1, 14, 21, 20, -1,
14, 15, 21, -1, 15, 22, 21, -1, 15, 16, 22, -1,
16, 23, 22, -1, 16, 17, 23, -1, 17, 24, 23, -1,
17, 18, 24, -1, 18, 19, 24, -1, 18, 13, 19, -1,
25, 19, 20, -1, 25, 20, 21, -1, 25, 21, 22, -1,
25, 22, 23, -1, 25, 23, 24, -1, 25, 24, 19, -1]
}
}
]
},
Thanh ngang
DEF Cylinder02 Transform {
translation 50 65 0
rotation -0.5774 0.5774 -0.5774 -2.094
children [
Transform {
translation 0 75 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.6392 0.549 0.1922
ambientIntensity 0.1534
specularColor 0.72 0.72 0.72
shininess 0.2875
transparency 0
}
}
geometry Cylinder { radius 1.5 height 150 }
}
] }
]
},
Thanh đứng
DEF Cylinder01 Transform {
translation -70 -70 0
children [
Transform {
translation 0 75 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.6392 0.549 0.1922
ambientIntensity 0.1534
specularColor 0.72 0.72 0.72
shininess 0.2875
transparency 0
}
}
geometry Cylinder { radius 2 height 150 }
}
] }
]
},
Con lắc
#Con lắc thứ nhất
DEF Conlac Transform {
translation -10 75 0
center 0 55 0
children [
DEF Cylinder01_0 Transform {
translation 0 55 0
children [
Transform {
translation 0 -45 0
children [
Shape {
appearance Appearance {
material Material {
#Mầu dây
diffuseColor 1 0 0
ambientIntensity 0.1033
specularColor 0.045 0.045 0.045
shininess 0.2875
transparency 0
}
}
geometry Cylinder { radius 0.5 height 90 }
}
] }
]
},
DEF Sphere01 Transform {
translation 0 -45 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0 1 1
ambientIntensity 0.1115
specularColor 0.045 0.045 0.045
shininess 0.2875
transparency 0
}
}
geometry Sphere { radius 10 }
}
]
}
]
}
#Con lắc thứ 2 đứng yên
DEF Conlac2 Transform {
translation 10 75 0
center 0 55 0
children [
USE Cylinder01_0
USE Sphere01
]
}
#Con lắc thứ 3
DEF Conlac3 Transform {
translation 30 75 0
center 0 55 0
children [
USE Cylinder01_0
USE Sphere01
]
}
Mô tả dao động
#Tốc độ con lắc :
DEF Clock TimeSensor {
cycleInterval 1.6
startTime 1.0
stopTime 0.0
loop TRUE
}
# Vị trí và góc dao động theo thời gian
DEF Daodong Script {
eventIn SFFloat set_fraction
eventOut SFRotation gocconlac1
eventOut SFRotation gocconlac3
url "vrmlscript:
function set_fraction(frac, tm) {
goc = Math.sin((2*frac-1) * Math.PI) * Math.PI/7;
gocconlac1[0] = 0.0;
gocconlac1[1] = 0.0;
gocconlac1[2] = 1.0;
if (goc < 0) gocconlac1[3] = goc; else gocconlac1[3] = 0;
if (goc > 0) gocconlac3[3] = goc; else gocconlac3[3] = 0;
}"
}
ROUTE Clock.fraction_changed TO Daodong.set_fraction
ROUTE Daodong.gocconlac1 TO Conlac.set_rotation
ROUTE Daodong.gocconlac3 TO Conlac3.set_rotation
Các file đính kèm theo tài liệu này:
- nghien_cuu_xay_dung_khong_gian_mo_phong_dao_dong_con_lac_don_7754.docx