Tải bản đầy đủ (.pdf) (3 trang)

Chương 4-1 Tạo chuyển động và tương tác trong VRML

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (218.42 KB, 3 trang )

Chương 4: Tạo chuyển động và tương tác trong VRML
4.1. Khái niệm sự kiện và tuyến nối
4.1. Sự kiện
“Event routing” cho phép một sự kiện phát sinh được truyền đến các “đích”- những nút trong
hệ thống, từ đó gây ra những thay đổi cho riêng nút đó và hệ thống.
Xử lý sự kiện
 eventIn: Nhận sự kiện
 eventOut: Gửi thông điệp
 ROUTE: Thiết lập đường dẫn sự kiện giữa các nút
 Script: Xử lý hành vi
4.2. Tuyến nối
ROUTE <name> . <field/eventName> TO <name> . <field/eventName>
Thường đặt ở cuối tệp tin hoặc cuối khai báo DEF
4.2. Các sensor
4.2.1. Time sensor
Cú pháp
TimeSensor {
# (0, ∞)

cycleInterval 1
enabled
loop

TRUE
FALSE

startTime

0

# (- ∞, ∞)



stopTime

0

# (- ∞, ∞)

eventOut

SFTime cycleTime

eventOut

SFFloat fraction_changed

eventOut

SFBool isActive

eventOut

SFTime time

}
Nút này tạo sự kiện theo thời gian. Dùng cho mục đích:
Mơ phỏng điều khiển và hình ảnh động
Điều khiển các hoạt động định kỳ


Khởi tạo sự kiện xảy ra duy nhất như đồng hồ báo thứ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: Kích hoạt hay vơ hiệu hóa nút TimeSensor.
 loop: Cho phép lặp hay không.
 startTime: Thời gian bắt đầu chạy.
 stopTime: Thời gian kết thúc chạy
 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.
Sự kiện
fraction_changed
 Chỉ có khi sử dụng cycleInterval.
 Gửi phần hoàn thành của chu kỳ hiện tại.
time
 Gửi thời gian cho một đánh dấu mô phỏng(simulation tick).
 Bắt đầu tại đánh dấu mô phỏng đầu tiên lớn hơn hay bằng startTime
 Kết thúc tại stopTime hoặc tại startTime + N x cycleInterval với mỗi giá trị số
nguyên N hoặc lặp vô hạn tùy thuộc vào giá trị của trường khác.
 isActive: Gửi giá trị TRUE khi nút TimeSensor bắt đầu chạy và FALSE khi dừng
lại.
cylcleTime: Gửi sự kiện thời gian ở startTime và vào lúc bắt đầu mỗi chu kỳ mới (hữu
ích cho việc đồng bộ hóa các đối tượng dựa trên thời gian)
Các sự kiện ra tạo ra liên tục.
Khi nút TimeSensor được kích hoạt nó tạo ra sự kiện isActive = TRUE và bắt đầu tạo
ra sự kiện time, fraction_change và cycleTime được chuyển đến các nút khác để điều
khiển ảnh động hoặc mô phỏng hành vi.





×