1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập lớn môn thực tại ảo: đề tài mô phỏng nút giao thông cầu vượt mai dịch

16 555 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 1,44 MB
File đính kèm VR.rar (13 MB)

Nội dung

cầu vượt mai dịch_báo cáo bài tập lớn, Nút giao Mai Dịch kết nối đường Xuân Thủy với đường Hồ Tùng Mậu, Phạm Hùng và Phạm Văn Đồng, cửa ngõ phía Tây của thành phố. Tại nút giao này, sẽ có 3 tầng xe chạy. Đây là nút giao thông khá phức tạp  Tầng trên cùng sẽ là dự án đường sắt đô thị Nhổn ga Hà Nội. Tại đây nút giao 3 tầng đang được gấp rút thi công, khoan cọc nhồi và chuẩn bị đến giai đoạn đổ trụ bê tông.  Tầng thứ hai là cầu vượt Mai Dịch (khánh thành năm 2003), phục vụ các loại phương tiện, xe cơ giới lưu thông.

Trang 1

CHƯƠNG I KHẢO SÁT

1 Khảo sát

Nút giao Mai Dịch kết nối đường Xuân Thủy với đường Hồ Tùng Mậu, Phạm Hùng và Phạm Văn Đồng, cửa ngõ phía Tây của thành phố Tại nút giao này, sẽ

có 3 tầng xe chạy Đây là nút giao thông khá phức tạp

 Tầng trên cùng sẽ là dự án đường sắt đô thị Nhổn - ga Hà Nội Tại đây nút giao 3 tầng đang được gấp rút thi công, khoan cọc nhồi và chuẩn

bị đến giai đoạn đổ trụ bê tông

 Tầng thứ hai là cầu vượt Mai Dịch (khánh thành năm 2003), phục vụ các loại phương tiện, xe cơ giới lưu thông

 Tầng dưới cùng là đường bộ Hiện do các công trường thi công, lô cốt, rào chắn khiến nút giao này vào giờ cao điểm thường xuyên ùn tắc kéo dài theo hướng về Xuân Thủy - Cầu Giấy và Mai Dịch - Phạm Văn Đồng

- Toàn cảnh nút giao thông Mai Dịch

Trang 2

Hình 1: Toàn cảnh nút giao thông

- Hướng Phạm Văn Đồng – Hồ Tùng Mậu

Hình 2: Hướng Phạm Văn Đồng – Hồ Tùng Mậu

Trang 3

- Hướng Hồ Tùng Mậu –Cầu Giấy - Phạm Hùng

- Hình 3: Hướng Hồ Tùng Mậu –Cầu Giấy - Phạm

Hùng

Trang 4

CHƯƠNG II CÁC THÀNH PHẦN NGÔN NGỮ

VRML SỬ DỤNG TRONG ĐỀ TÀI

1 Các đối tượng hình học cơ bản

 Box: để tạo các khối hộp

Ví dụ: Shape {

geometry Box{ size 2.0 2.0 2.0 } }

Tham số:

Ø size X Y Z: kích thước hình hộp (chiều rộng,

chiều cao, chiều sâu).

 Sphere: để tạo các hình cầu

Ví dụ: Shape {

geometry Sphere { radius 1.0

} }

Tham số:

Ø Radius X: bán kính mặt cầu.

 Cylinder: để tạo các hình trụ

Ví dụ: Shape {

geometry Cylinder{

height 2.0 radius 1.0 bottom TRUE top TRUE side TRUE

} }

Tham số:

Ø height X: chiều cao

Ø radius Y: bán kính mặt đáy.

Trang 5

Ø bottom TRUE / FALSE: hiện / ẩn mặt đáy dưới.

Ø top TRUE / FALSE: hiện / ẩn mặt đáy trên.

Ø side TRUE / FALSE: hiện / ẩn các mặt bên.

2 Các phép biến đổi

 Trasfom

Nút Transform quản lý các phép biến đổi

trong VRML như: dịch chuyển, co dãn, quay.

Nút Transform gồm có các trường con:

translation (dịch chuyển), rotation (quay), scale (co giãn), children Trong đó trường children được dùng để chứa các đối tượng

(vật thể, hình ảnh, ).

 Traslation: để dịch chuyển một vật đến vị tri nào

đó trong không gian

Cú pháp:

Transform {

translation X Y Z

children []

} Tham số:

Ø translation X Y Z: dịch chuyển gốc tọa độ đến

điểm X Y Z.

 Rotation: để quay vật theo hướng nào đó trong không gian

Cú pháp:

Transform { rotation X Y Z G children []

} Tham số:

Ø rotation X Y Z G: quay trục tọa độ theo trục X,

Y, Z một góc G.

Ø G được tính theo radians

Trang 6

 Scale: Phép co dãn dùng để thu, phóng to vật trong không gian

Cú pháp:

Transform {

scale x y z

children []

}

Tham số:

Ø scale X Y Z: co giãn đối tượng theo trục X, Y, Z

với tỉ lệ x, y, z.

 Children: Các đối tượng được vẽ trong trường này sẽ chịu ảnh hưởng của các phép biến đổi

trong nút Transform.

Ví dụ:

Transform {

translation 2.0 1.0 0.0

scale 2.0 1.0 3.0

rotation 0.0 0.0 1.0 0.79

children [

Shape {

….

}

geometry … {

… }

}

]

}

Shape {

appearance Appearance {

material Material { }

}

geometry Box { size 1.0 1.0 1.0}

}

Trang 7

 Như trong ví dụ này thì hệ tọa độ của hình trụ

sẽ dịch chuyển đến điểm (2, 1, 0) so với hệ tọa độ gốc, sau đó kích thước của hình trụ sẽ tăng 2 lần theo chiều trục X, tăng 3 lần theo chiều trục Z, và quay 0.79 radians theo trục Z Còn hình hộp thì nằm tại tọa độ gốc.

3 Viewpoint : có chức năng xác định vị trí của người dùng trong thế giới và các thông số của góc nhìn

fieldOfview: xác định một góc trong “radians”.

Giá trị của trường này là một số thực nằm trong khoảng từ 0 đến 3,142 và có giá trị mặc định là 0,785398 Góc này sẽ tương đương với ống kính máy quay (camera) nếu có giá trị nhỏ và sẽ tương đương với ống kính góc rộng nếu có giá trị lớn (chẳng hạn có giá trị 3,14), tuy nhiên lúc đó góc nhìn sẽ bị méo

position: xác định vị trí của người dùng trong

thế giới ảo Có giá trị là một điểm trong không gian

orientation: Xác định biên độ quay của góc

quan sát, trường này có giá trị là kiểu SFRotation (xem trong phần kiểu dữ liệu đã trình bày ở trên)

description: cung cấp một đoạn mô tả cho góc

quan sát

jump: cho phép sự chuyển giữa các góc nhìn

trong thế giới, nếu có giá trị TRUE thì cho phép người di chuyển theo góc nhìn, còn nếu có giá trị là FALSE thì chỉ đơn thuần là sự chuyển đổi góc nhìn

mà không hề ảnh hưởng đến vị trí của người dùng

4 Phong cảnh

 Backgroud

Background { skyColor [ ] skyAngle [ ] groundColor [ ] groundAngle [ ] backUrl [ ]

Trang 8

bottomUrl [ ] leftUrl [ ] rightUrl [ ] frontUrl [ ] topUrl [ ] }

Các thuộc tính:

skyColor và skyAngle: xác định các màu sắc trên

bầu trời, nếu muốn bầu trời có màu sắc đơn lẻ thì chúng ta chỉ cần thiết lập các giá trị cho trường

skyColor và bỏ trường skyAngle (hình a), còn nếu

muốn bầu trời có hiệu ứng màu gradient (hình b) thì

ta cần phải thiết lập các giá trị cho hai trường nói trên Ví dụ ta sẽ thiết lập như sau:

- Trong hình a:

skyColor [1 1 0, 9 9 5, 7 7 9, 0 0.4 1, 0 0.7 1, 1 1 1]

- Trong hình b:

skyAngle [ 0.075, 0.1, 0.2, 1.309, 1.5708 ] skyColor [ 1 1 0, 9 9 5, 7 7 9, 0 0.4 1, 0 0.7 1, 1 1 1 ]

5 Màu sắc và hình ảnh

 Material

Nút Material có chức năng tạo màu cho các đối

tượng trong VRML Màu sắc trong VRML được thể hiện qua 3 tham số là R G B (Red-Green-Blue) với giá trị nằm trong khoảng từ 0.0 đến 1.0 Nút

Material có các thuộc tính sau:

diffuseColor: xác định màu sắc của đối tượng.

emissiveColor: xác định màu của ánh sáng

phát ra từ đối tượng

transparency: xác định độ trong suốt của đối

tượng (0: hiển thị rõ, 1: trong suốt)

ambientIntensity: xác định lượng phản chiếu

ánh sáng của đối tượng

Trang 9

specularColor: xác định màu sắc của các điểm

sáng bóng trên bề mặt của đối tượng

shininess: điều chỉnh cường độ sáng cho những

điểm sáng bóng

Ví dụ:

Shape {

appearance Appearance {

material Material {

diffuseColor 1.0 0.5 0.0

emissiveColor 0.0 0.0 0.0

transparency 0.5

specularColor 0.5 0.5 0.5

shininess 0.3

ambientIntensity 0.4

}

}

geometry Box { size 1.0 1.0 1.0}

}

 Image Texture: dán ảnh lên đối tượng

Ví dụ:

Shape { appearance Appearance { material Material {}

texture ImageTexture { url “hinha.jpg”

repeatS TRUE repeatT TRUE }

} geometry Box { size 3 4 5}

}

6 Nhóm các đối tượng

 Transfom: tạo ra một nhóm các đối tượng và đặt chúng tại hệ trục tọa độ mới Nút này đã được trình bày ở trên

Trang 10

 Inline : tạo ra một nhóm các đối tượng đặc biệt được lấy ra từ một tập tin VRML khác (được chỉ ra

sau url) Tất cả các đối tượng trong tập tin này sẽ

được hiển thị Nút này thường được sử dụng để gọi trực tiếp một đối tượng bên ngoài vào thế giới hiện tại.

Ví dụ:

Inline {

url [“cuaso.wrl”]

bboxCenter 0 0 0 bboxSize -1 -1 -1 }

Các thuộc tính:

Ø url: chứa tập đường dẫn của các tập tin VRML

ngoài thế giới hiện tại

7 Extrusion: vẽ các hình phức tạp

Ví dụ:

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0 }

}

geometry Extrusion{

crossSection [

] spine [

… ]

Trang 11

scale [

… ]

beginCap TRUE

creaseAngle 1

endCap TRUE

ccw TRUE

convex TRUE }

}

Các thuộc tính:

 crossSection: mặt cắt

 spine: trục của hình muốn dựng

8 Sự kiện và cảm biến

a) Sự kiện

 ROUTE(Tuyến nối): là một kênh giao tiếp nôi giữa các thành phần lại với nhau, giữa sự kiện được tạo

ra bởi nút này nối với thành phần nhận sự kiện của nút kia.

Cú pháp:

ROUTE Node.eventOut TO Node.eventIn

Ví dụ :

Tên nút gửi sự kiện là : Sender( tên nút được tạo

ra bởi từ khóa DEF) và sự kiện xuất ra là : rotation_changed có nghĩa là trường rotation của nút này thay đổi thì sẽ tạo ra sự kiện này

Tên nút nhận sự kiện là: Recipients( tên nút được tạo ra bởi từ khóa DEF) và sự kiện nhận vào là:

Trang 12

set_rotation có nghĩa là khi nhận sự kiện thì trường rotation của nút này sẽ thay đổi

Khi đó để nối hai nút này ta gọi lện như sau:

ROUTE Sender.rotation_changed TO Recipients set_rotation

b) Cảm biến(sensor)

 Timesensor : là cảm biến cho phép điều khiển thời gian bắt đầu và kết thúc Nút này giống như một chiếc đồng hồ tạo ra sự kiện, khi được kích hoạt thì tạo ra chuỗi sự kiện liên tục theo thời gian, chiếc đồng hồ đó có thể chạy mãi hoặc sẽ dừng tại một thời điểm xác định nào đó

Ví dụ:

TimeSensor {

cycleInterval 1.0 enabled TRUE loop FALSE startTime 0 stopTime 0 }

Các thuộc tính:

cycleInterval: xác định số giây tạo ra các sự

kiện, ví dụ có giá trị là 1.0 thì sẽ tạo ra các sự kiện liên tiếp trong một giây.

enabled: xác định trạng thái hoạt động của cảm

biến

loop: xác định có lặp hay không.

startTime: thời gian bắt đầu chạy.

stopTime: thời gian kết thúc chạy.

Các sự kiện đầu vào:

set_startTime: thiết lập lại thời gian bắt đầu

chạy.

set_stopTime: thiết lập lại thời gian kết thúc

chạy.

set_enabled: thiết lập lại trạng thái hoạt động.

Trang 13

9 Ánh sáng

 Point light: Nút này xác định một nguồn sáng tại một vị trí xác định, các tia sáng của nguồn sáng này

đi theo mọi hướng, không hướng về một phương cụ thể nào, nguồn sáng này giống như ánh sáng của bóng đèn điện trong thế giới thực của chúng ta Và cũng giống như ánh sáng của bóng đèn điện, nguồn sáng này bị giới hạn về khoảng cách chiếu sáng.

Ví dụ:

PointLight {

on TRUE intensity 1 ambientIntensity 0 color 1 1 1

location 0 0 0 attenuation 1 0 0 radius 100

}

Các thuộc tính:

Các thuộc tính on, intensity, ambientIntensity,

color tương tự như các thuộc tính của nút DirectionLight.

location: vị trí của nguồn sáng, có giá trị là một

điểm trong không gian.

attenuation: có giá trị là một vectơ 3D xác định

việc tăng giảm cường độ cũng như khoảng cách chiếu sáng của nguồn sáng Giá trị của trường này phải khác (0, 0, 0).

radius: chỉ ra phạm vi chiếu sáng của nguồn sáng,

giá trị này phải lớn hơn 0

10 Các nút nôi suy

 ColorInterpolator

 OrientationInterpolator

 PositionInterpolator

Mỗi nút đều có cú pháp như sau:

…Interpolator {

Trang 14

key […]

keyValue […]

}

Trong đó key là tập các giá trị đầu vào còn

keyValue là tập các giá trị đầu ra Trong các nút Interpolators đều có một sự kiện đầu vào là set_fraction và sự kiện đầu ra là value_changed, hai sự

kiện này được nối với nhau tức là khi các nút này khi nhận được một sự kiện thì nó cũng tạo ra một sự kiện Sự kiện

set_fraction xác định một giá trị key và sự kiện đầu ra xác định một keyValue tương ứng với giá trị key.

Ví dụ:

OrientationInterpolator { key [ 0.0, 0.50, 1.0 ]

keyValue [

0.0 1.0 0.0 0.0,

0.0 1.0 0.0 3.14,

0.0 1.0 0.0 6.28

]

} Trong ví dụ này nếu nút này nhận một giá trị là 0.0 thì nó sẽ gửi trả ra giá trị (0.0 1.0 0.0 0.0) và nếu nhận giá trị từ khoảng 0.0 đến 0.5 thì nó sẽ tính toán và gửi ra giá trị nằm trong khoảng 0.0 đến 3.14 (chính xác là ở đây nếu nó nhận được giá trị là 0,3 thì nó sẽ trả ra giá trị là 1,88), và tương tự với các giá trị khác.

11 Script

Cú pháp:

Script

{ url []

directOutput FALSE

Trang 15

mustEvaluate FALSE

eventIn Datatype EventName

eventOut Datatype EventName

field Datatype FieldName InitialValue }

Trang 16

CHƯƠNG IIISẢN PHẨM ĐẠT ĐƯỢC

1 Nhìn tổng thể

2 Ô tô

3 Đèn giao thông

4 Đền chiếu sáng

5 Cầu

6. Rào chắn đường sắt trên cao

Ngày đăng: 16/01/2017, 15:01

TỪ KHÓA LIÊN QUAN

w