HANDSOMEROOT
Bài 6 : Các đối tượng hình học phức tạp trong VRML
- Nhận đường liên kết
- X
- Ứng dụng khác
1. Hiển thị văn bản (Text)
Nút này được thiết kế nhằm cho phép hiển thị một đoạn văn bản 2D trong thế giới ảo đang xây dựng. Nút này tương đối đơn giản nhưng nếu chúng ta thao tác với thuộc tính fontStyle (là nút FontStyle trong VRML) của nó thì lại khá phức tạp.Ví dụ:
Shape { geometry Text{ string ["ITqnu" "ntm"] fontStyle FontStyle{ size 1 family "ARIAL" style "BOLD" spacing 1 justify "MIDDLE" horizontal TRUE leftToRight TRUE topToBottom TRUE } length [1 1] maxExtent 5.0 } }
Các tham số:
- string [“Nội dung văn bản”]: hiển thị các xâu trong cặp dấu “[]”.
- length [X1 X2]: độ dài của các xâu trong “string”.
- maxExtent Y: giới hạn kéo dãn của các dòng.
Các tham số của nút FontStyle (nếu chúng ta muốn đơn giản nút Text thì có thể đặt thuộc tính fontStyle này bằng NULL):
- family: tên font sử dụng.
- style BOLD / ITALIC / BOLDITALIC / PLAIN: kiểu chữ.
- size M: chiều cao, kích thước của chữ.
- spacing N: khoảng cách giữa các dòng.
- justify BEGIN / MIDDLE / END: canh lề trái / giữa / phải cho các dòng.
- horizontal TRUE / FALSE: trình bày ngang / dọc màn hình.
- leftToRight TRUE / FALSE: trình bày từ trái sang phải (TRUE) hoặc từ phải sang trái (FALSE).
- topToBottom TRUE / FALSE: trình bày từ trên xuống dưới (TRUE) hoặc từ dưới lên trên (FALSE).
2. Xây dựng các đường thẳng trong hệ tọa độ ba chiều
Nút IndexedLineSet là nút vẽ một tập hợp các đường thẳng trong hệ tọa độ không gian ba chiều của thế giới VRML với tập hợp các màu tương ứng cho các đường thẳng đó.
Cú pháp:
IndexedLineSet{ coord Coordinate{} coordIndex color Color{} colorIndex[] colorPerVerter TRUE }
Nút này có các thuộc tính (một số thuộc tính của nút này cũng là nút – nằm trong nhóm nút Geometric Properties Nodes):
- Coordinate: là nút xác định một tập hợp các điểm ảnh trong không gian (đây là các điểm đỉnh của các đường thẳng).
- Color: nút này nhằm xác định màu sắc tại các điểm ảnh trong nút Coordinate. Số thành phần trong nút này có thể không nhất thiết phải bằng với số thành phần trong nút Coordinate.
- coordIndex: trường này bao gồm một dãy chỉ số thứ tự cho các điểm ảnh tạo nên đường thẳng. Ví dụ coordIndex [0 1 2 0] có nghĩa là đường thẳng được tạo bởi điểm thứ nhất nối với điểm thứ hai, điểm thứ hai nối với điểm thứ ba, điểm thứ ba nối với điểm thứ nhất, các điểm ảnh được xác định trong nút Coordinate. Một ví dụ khác coordIndex [0 1 -1 2 0], ở đây kí hiệu “-1” cho biết hình ảnh được tạo trong VRML gồm hai đường thẳng: một đường thẳng tạo bởi điểm thứ nhất nối với điểm thứ hai và một đường thẳng khác tạo bởi điểm thứ ba nối với điểm thứ nhất.
- colorIndex: được sử dụng để chỉ định màu sắc cho các điểm ảnh (khi colorPerVertex có giá trị là true) hay cho các đường thẳng (khi colorPerVertex có giá trị là false) trong coordIndex. Trường này lấy màu sắc được quy định từ nút Color. Ví dụ colorIndex [0 1 0 1]trong ví dụ đầu tiên (coordIndex [0 1 2 0] và colorPerVertex TRUE) ở trên có nghĩa là xác định tại màu sắc thứ nhất cho điểm thứ nhất và điểm thứ ba, màu sắc thứ hai cho điểm thứ hai và thứ tư, còn trong ví dụ thứ hai (coordIndex [0 1 -1 2 0] và colorPerVertex FALSE) thì có nghĩa là đường thẳng nối hai điểm thứ nhất và thứ hai sẽ có màu thứ nhất, đường thẳng nối hai điểm thứ tư và thứ năm sẽ có màu sắc thứ hai.
- ColorPerVertex: có giá trị boolean. Khi colorPerVertex nhận giá trị TRUE thì màu của đường thẳng sẽ là màu trung bình của hai màu tại hai điểm tạo nên đường thẳng. Và khi trường này nhận giá trị là FALSE thì các đường thẳng đều có màu đơn lẻ hoặc màu mặc định (trắng).
Ví dụ:
Shape{ appearance Appearance{} geometry IndexedLineSet{ coord Coordinate{ point [3.0 0.0 0.0, 0.0 4.0 0.0, 0.0 0.0 5.0] } color Color{ color [1.0 0.0 0.0, 0.0 0.0 1.0] } colorIndex [0 1 0 1] coordIndex [0 1 2 0] colorPerVertex TRUE } }
3. Xây dựng khung bề mặt trong không gian
Nút IndexedFaceSet sẽ tạo nên bề mặt bằng cách kết hợp các điểm với nhau.
Cú pháp:
IndexedFaceSet{ coord Coordinate{} coordIndex[] color Color{} colorIndex[] colorPerVertex TRUE convex TRUE solid TRUE }
Các tham số:
- Coordinate, coordIndex, Color, colorIndex, colorPerVertex: có đặc điểm tương tự như trong nút - IndexedLineSet đã nói ở trên. Chú ý là bề mặt luôn luôn được xác định bởi các đường thẳng khép kín vì thế không cần chỉ ra điểm đầu tiên lại một lần nữa trong trường coordIndex.
Ví dụ:
coordIndex [0 1 2 3]
Nếu có bốn điểm xác định, khi liên kết các điểm này sẽ tạo ra hình tứ giác bằng cách sử dụng thuộc tính coordIndex[] (coordIndex[0 1 2 3]) có nghĩa là điểm thứ nhất nối với điểm thứ hai, điểm thứ hai nối với điểm thứ ba, điểm thứ ba nối với điểm thứ tư và điểm thứ tư nối với điểm thứ nhất.
- Convex: định nghĩa bề mặt là lồi hay lõm, trường này có giá trị kiểu boolean. Bộ trình duyệt VRML chỉ vẽ bề mặt lồi, trong trường hợp vẽ bề mặt lõm, bộ trình duyệt chia bề mặt đó thành các bề mặt lồi bé hơn để vẽ.
- solid: sử dụng để cho phép các mặt phẳng tạo ra có thể nhìn từ hai phía mặt phẳng hoặc không. Ví dụ solid FALSE tức là cho phép nhìn mặt phẳng ở hai phía, solid TRUE thì chỉ cho phép nhìn mặt phẳng ở một phía.
Ví dụ:
Shape { appearance Appearance{} geometry IndexedFaceSet { coord Coordinate { point [0 0 0,1 1 0,0 1 0,1 1 0,1 0 0,1 0 1] } coordIndex [0 1 2 -1 3 4 5] color Color { color [1 1 1,1 0 0] } colorIndex [1 0] colorPerVertex FALSE convex FALSE solid FALSE } }
4. Xây dựng khung lưới và bản đồ trong không gian
Nút ElevationGrip cho phép xây dựng khung lưới được tạo bởi các điểm có độ cao xác định trong không gian. Thẻ này rất hữu ích cho việc xây dựng các mạng lưới hoặc địa hình chẳng hạn chúng ta có thể sử dụng nút này để vẽ một bản đồ địa hình trong không gian ảo.
Hình ảnh xây dựng được đặt trong không gian của mặt phẳng OXYZ. Điểm bắt đầu là gốc tọa độ, các điểm còn lại tạo nên lưới nằm theo hướng dương của các trục OX và OZ.
Cú pháp:
ElevationGrid { xDimension X xSpacing Y zDimension Z zSpacing W height [] color Color [] colorPerVertex TRUE convex TRUE solid TRUE }
Các tham số:
- Color, colorPerVertex, convex, solid: có tính chất tương tự như đã nói ở phần trên, solid ở đây nếu bằng TRUE thì sẽ không cho phép nhìn từ dưới lên đối với mạng lưới tạo ra.
- xDimension: chứa số điểm trong mạng lưới nằm trên trục X.
- zDimension: chứa số điểm bên trong lưới nằm trên trục Z.
- xSpacing: là khoảng cách của hai điểm liên tiếp nhau theo hướng của trục X.
- zSpacing: khoảng cách của hai điểm liên tiếp nhau theo hướng của trục Z.
- height: chứa một danh sách các giá trị độ cao của mỗi điểm trong lưới.
Các điểm này được tính theo thứ tự từ trái sang phải từ trên xuống dưới.
Ví dụ:
Shape { appearance Appearance { material Material {} geometry ElevationGrid { xDimension 9 zDimension 9 xSpacing 1.0 xSpacing 1.0 solid TRUE height [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 3.0, 3.0, 1.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 3.5, 3.0, 2.0, 1.0, 0.0, 0.0, 0.0, 1.0, 3.0, 3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,] } }
Kết quả của đoạn code trên:
Hình 2.1 Ví dụ về xây dựng khung lưới và bản đồ
Bài đăng phổ biến từ blog này
[Share] CSDL Quản lý Shop Online
Cấu trúc của cơ sở dữ liệu Danh sách các bảng 1. Bảng About (Lưu các bài viết giới thiệu cửa hàng) 2. Bảng Contact (Lưu thông tin liên hệ của cửa hàng) 3. Bảng Feedback (Lưu trữ thông tin phản hồi của người dùng) 4. Bảng Footer (Lưu trữ những thiết kế footer của trang web) 5. Bảng MenuType (Lưu trữ các loại menu trong trang web. Ví dụ : TopMenu, LeftMenu…) 6. Bảng Menu (Lưu trữ các menu) 7. Bảng NewCategory (Lưu trữ các nhóm chuyên mục về tin tức. Ví dụ : Tin khuyến mãi, tin công nghệ,…) 8. Bảng New (Lưu trữ các tin tức, bài đăng trên website) 9. Bảng Tag (Lưu trữ các thẻ) 10. Bảng NewTag (Lưu trữ các thẻ trong bài viết) 11. Bảng ProductCategory (Lưu trữ các nhóm sản phẩm) 12. Bảng Product (Lưu trữ thông tin sản phẩm) 13. Bảng Slide (Lưu trữ các hình ảnh Slide)
Hướng dẫn cài đặt VRML Pad và Cortona 3D Viewer
1. Hướng dẫn cài đặt VrmlPad 3.0 Chào các bạn. Hôm nay mình sẽ hướng dẫn các bạn cài đặt VrmlPad 3.0 Đầu tiên các bạn truy cập vào link sau để download phần mềm http://www.parallelgraphics.com/products/vrmlpad/download/ Ở phần VrmlPad 3.0 > Evalustion version chọn Download Sau khi quá trình tải về hoàn tất Các bạn tiến hành cài đặt phần mềm Chọn Next Nhấn Browser để chọn đường dẫn cài đặt phần mềm, chọn Next Chọn Install Chờ quá trình cài đặt phần mềm thành công. Nhấn Finish OK. Mình đã cài đặt xong. Giao diện phần mềm khi chạy lần đầu tiên Các bạn đã có thể soạn thảo Nhưng để chạy được file .wrl này chúng ta sẽ cài thêm 1 phần mềm bổ trợ Cortona 3D 2. Hướng dẫn cài đặt Cortona 3D Viewer Các bạn vào link sau để download http://www.cortona3d.com/ Chọn Menu " PRODUCTS " > " VIEWERS " > " CORTONA 3D VIEWER " Tiếp theo chọn DOWNLOAD CORTONA 3D VIEWER Chọn download tùy vào
RANKING in SQL (ROW_NUMBER, RANK, DENSE_RANK,NTILE)
Hàm Ranking là gì? Các hàm Ranking cho phép bạn có thể đánh số liên tục (xếp loại) cho các tập hợp kết quả. Các hàm này có thể được sử dụng để cung cấp số thứ tự trong hệ thống đánh số tuần tự khác nhau. Có thể hiểu đơn giản như sau: bạn có từng con số nằm trên từng dòng liên tục, tại dòng thứ nhất xếp loại số 1, dòng thứ 2 xếp loại số là 2… Bạn có thể sử dụng hàm ranking theo các nhóm số tuần tự, mỗi một nhóm sẽ được đánh số theo lược đồ 1,2,3 và nhóm tiếp theo lại bắt đầu bằng 1,2,3… Chúng ta bắt đầu xem xét cách hàm trong sql hổ trợ từ 2005 Dữ liệu thử : CREATE TABLE Person( FirstName VARCHAR(10), Age INT, Gender CHAR(1) ) INSERT INTO Person VALUES ('Ted', 23, 'M') INSERT INTO Person VALUES ('John', 40, 'M') INSERT INTO Person VALUES ('George', 6, 'M') INSERT INTO Person VALUES ('Mary', 11, 'F') INSERT INTO Person VALUES ('Sam', 17, 'M') INSERT INTO Pe
Nhận xét
Đăng nhận xét