Cong ty Cong Nghe Tin hoc Nha truong http://www.vnschool.net
BÍ MẬT CỦA PHẦN MỀM HÌNH HỌC ĐỘNG: CƠ SỞ TOÁN VÀ PHÉP DỰNG NGỌC GIANG BIẾN KHÔNG GIAN BA CHIỀU THÀNH KHÔNG GIAN HAI CHIỀU
30/06/2008

Đây là bài viết mà tôi tin chắc rằng tất cả các viện nghiên cứu phần mềm hình học động trên toàn thế giới đều rất quan tâm. Và rằng, tôi biết rõ giá trị thương mại rất lớn của bài viết. Nhưng cũng như trong bài 1 của loạt các bài báo này, tôi xin khẳng định, tôi là người tận hiến cho khoa học. Tôi không sử dụng khoa học cho bất cứ mục đích cá nhân gì. Lẽ dĩ nhiên, khi tôi công bố bài viết này cho các bạn mà không có bất cứ tạp chí nào công bố, thì tôi có quyền khẳng định, tôi là người đầu tiên biết chúng. Đó là cái quyền không ai có thể chối cãi được !


Cũng như mùa xuân thì hoa nở, người làm khoa học lấy đứa con tinh thần dâng tặng cho đời. Dâng hết những gì mình biết. Trao tặng những gì mình có để cho khoa học mãi trường tồn. Được mọi người biết đến tên mình hay không cũng không quan trọng. Cái quan trọng là mình đã giúp ích thật sự cho mọi người. Đó có lẽ là động lực lớn nhất để tôi có thể hy sinh mọi ham muốn vật chất tầm thường và cống hiến cho các bạn một bài viết có lẽ là quan trọng nhất trong loạt bài viết về phần mềm hình học động.

A. CƠ SỞ TOÁN BIẾN KHÔNG GIAN BA CHIỀU THÀNH KHÔNG GIAN HAI CHIỀU.

I. TOẠ ĐỘ THUẦN NHẤT.

Đây là khái niệm quan trọng mà các bạn phải hiểu khi đọc bài viết này. Người ta đã khám phá ra rằng, trong lĩnh vực đồ họa máy tính, hình dạng và kích thước của một đối tượng hai chiều đặc trưng bằng một mô tả số hai chiều quan hệ với một hệ thống toạ độ, thường là hệ toạ độ Descartes vuông góc Oxy. Thành phần cơ bản của bất kỳ mô hình hai chiều là điểm (point). Một đường thẳng được biểu diễn bằng hai điểm cuối của nó. Một mặt cong được biểu diễn bằng tập hợp các điểm của nó. Do đó, tất cả các biểu diễn hai chiều có thể định nghĩa bằng tập hợp các toạ độ x, y hoặc các điểm và được coi là thành phần cơ bản của mọi mô hình.

Ví dụ, để biểu diễn hình tam giác, người ta có thể biều diễn bằng ma trận như sau: , trong đó mỗi cặp x, y là một vector vị trí trong hệ toạ độ đã chọn. Hình thức ma trận rất có ích cho các định nghĩa hình học và các thao tác trong ứng dụng đồ hoạ máy tính. Nó rất thuận lợi nếu tất cả các phép biến đổi hình học có thể biểu diễn dưới dạng ma trận. Tuy nhiên, việc sử dụng hệ trục toạ độ Descartes thường loại bỏ khả năng này. Để khắc phục, người ta sử dụng hệ toạ độ thuần nhất (hệ toạ độ Xạ ảnh) thay cho hệ toạ độ Descartes trong lĩnh vực đồ hoạ máy tính và mô hình hoá hình học.

Việc biểu diễn các điểm trong hệ toạ độ thuần nhất tạo ra phương pháp mô tả thống nhất các phép biến đổi hình học, ngay cả khi thể hiện chúng ở phần cứng đồ hoạ. Để hiểu rõ hệ thống toạ độ thuần nhất, hãy hình dung một điểm P1(x1, y1) của toạ độ hai chiều thông thường nằm trong không gian ba chiều, như hình 1. Các điểm nằm trên đường thẳng nối P1 và gốc toạ độ có thể biểu diễn thông qua tham số h như sau: P(x, y, z) = P(hx1, hx2, h).

Mọi điểm hai chiều có thể biểu diễn bằng một trong các điểm trên đường thẳng trong không gian ba chiều (được gọi là không gian thuần nhất), ngoại trừ điểm nằm tại gốc toạ độ (h = 0). Các toạ độ thông thường tương ứng với điểm tại đó đường thẳng cắt mặt phẳng z = 1. Các điểm trên hệ trục thông thường được biểu diễn bằng các tia khác nhau trong không gian thuần nhất.

Trong hệ toạ độ thuần nhất, một điểm được biểu diễn như P(hx, hy, h). Để làm ví dụ, hãy khảo sát điểm P(2, 4) trong hệ toạ độ thông thường. Nó có các biểu diễn trong toạ độ thuần nhất như sau P(4, 8, 2), P(6, 12, 3), P(2, 4, 1). Khi cho toạ độ thuần nhất của một điểm như P(m, n, h), toạ độ thông thường có thể tính ra bằng biểu diễn P(m/h, n/h, 1), và x = m/h, y = n/h.

Khi sử dụng toạ độ thuần nhất, các điểm trong không gian hai chiều được biểu diễn bằng ma trận [n 3], trong đó n la 2số lượng các đỉnh của đối tượng. Tam giác có ba toạ độ (x1, y1) ; (x2, y2) ; (x3, y3) sẽ được mô tả bằng ma trận tam giác sau :

Như vậy, các bạn đã hiểu vì sao chúng ta phải sử dụng toạ độ Xạ ảnh trong đồ hoạ máy tính.

II. CÁC PHÉP QUAN SÁT BA CHIỀU

Các phép quan sát ba chiều phức tạp hơn các phép quan sát hai chiều không chỉ vì có thêm chiều thứ ba mà còn vì phải biểu diễn các mô hình hình ba chiều trên mặt hai chiều. Trong hai chiều, phép ánh xạ đơn giản sẽ tạo ra hình ảnh. Trong không gian ba chiều, có nhiều tuỳ chọn hơn phụ thuộc vào mô hình được quan sát như thế nào - đứng, cạnh, … Hơn nữa, để phải sử dụng các phép chiếu để ánh xạ mô hình ba chiều lên mặt phẳng chiếu hai chiều. Có nhiều dạng chiếu khác nhau để tạo hình ảnh khác nhau của mô hình. Các phép chiếu này sẽ được nghiên cứu trước vì chúng là vấn đề cốt lõi của các phép quan sát ba chiều.

1. PHÉP CHIẾU

Vấn đề chiếu một đối tượng ba chiều lên mặt phẳng hai chiều đã được nghiên cứu hàng thế kỷ nay bởi các kĩ sư, các kiến trúc sư, các nhà mỹ thuật. Các hệ thống đồ hoạ máy tính cũng phải giải quyết đến các vấn đề liên quan đến phép chiếu.

Các phép chiếu hình học phẳng được quan tâm nhiều nhất bởi các kĩ sư. Chúng được phân loại theo cấu trúc cây như hình 2.

1.1. Phép chiếu song song

Tâm của phép chiếu đặt tại vô cực sao cho tất cả các tia chiếu song song với nhau.

1.1.1. Xiên

Các tia chiếu xiên so với mặt phẳng chiếu. Ngoài ra, một trong các mặt của đối tượng song song với mặt phẳng chiếu.

1.1.2. Vuông góc

Các tia chiếu vuông góc với mặt phẳng chiếu.

a) Các hình chiếu vuông góc : Các mặt đối tượng song song với các mặt phẳng chiếu chính.

b) Trục đo : Các mặt đối tượng nghiêng so với mặt phẳng chiếu.

1.2. Phép chiếu phối cảnh

Tâm chiếu đặt cách mặt phẳng chiếu một khoảng cách hữu hạn.

Chúng ta có một nhận xét quan trọng sau :

Phép chiếu song song được sử dụng trong kĩ thuật. Trong một vài trường hợp, chúng giữ nguyên kích thước thật của đối tượng, nhưng không tạo ra hình ảnh như thực tế. Phép chiếu phối cảnh đưa ra kết quả hoàn toàn ngược lại : hình ảnh thật nhưng bỏ mất kích thước thật.

Chúng ta sẽ làm việc với cơ sở của phép chiếu trục đo. Đây chính là nguồn gốc của biến không gian ba chiều thành hai chiều trên phần mềm hình học động.

2. CÁC PHÉP CHIẾU TRỤC ĐO

Trong các phép chiếu trục đo, phép chiếu trục đo vuông góc (isometric) thường được sử dụng trong kĩ thuật. Trong phép chiếu loại này các góc giữa các trục chính đều bằng 1200.

Để tạo hình chiếu trục đo vuông góc đều trên máy tính, một trình tự các phép quay, tịnh tiến hoặc cả hai được thực hiện trên đối tượng. Sau đó thực hiện phép chiếu vuông góc, thường là lên mặt phẳng z = 0, với điều đặc biệt là các cạnh song song của đối tượng được rút ngắn lại bằng nhau. Hệ số rút ngắn được tính bằng tỉ số giữa chiều dài mỗi cạnh trên hình chiếu với chiều dài thật của chúng.

Giả sử có một hình chiếu trên mặt phẳng Oxy. Các phép quay cần thiết là phép quay một góc qy quanh trục Oy, sau đó là phép quay một góc qx quanh trục Ox như hình 3. (den day)

Trình tự này sẽ duy trì các đường thẳng đứng của hình chiếu. Đây là một kĩ thuật chuẩn sử dụng trong kĩ thuật để quan sát hình ảnh trục đo, gọi là “phép nghiêng”. Các ma trận quay tương ứng để tạo ra phép nghiêng này được viết như sau :

Ở đây là ma trận biểu diễn phép quay quanh trục x trong không gian ba chiều.

Để tạo hình chiếu trục đo, phép chiếu vuông góc lên mặt phẳng Oxy được thực hiện như sau :

Cần phải tìm các giá trị và tạo nên các hình chiếu trục đo. Xét ba vector đơn vị trên các trục x, y, z qua phép biến đổi bằng ma trận [MISO] các trục này trở thành x*, y*, z*. Hệ số tỉ lệ giữa độ dài trên hình chiếu và độ dài thật cần cho phép chiếu trục đo được tính thông qua các vector đơn vị này. Hình chiếu các vector đơn vị này được tính như sau :

Độ dài hình chiếu của các vector đơn vị này là :

B. PHÉP DỰNG NGỌC GIANG (PHÉP DỰNG NG) BIẾN KHÔNG GIAN BA CHIỀU THÀNH KHÔNG GIAN HAI CHIỀU

Sau khi đã cung cấp cho các bạn cơ sở toán học của phép biến hình biến không gian ba chiều thành không gian hai chiều. Chúng ta cần phải hiện thực hoá cơ sở toán này. Sau đây là cách dựng trên phần mềm hình học động Cabri của tôi.

1. Hiện hệ trục toạ độ (ở bên trái màn hình).

2. Dựng hai đường tròn có bán kính lần lượt bằng 1 và bằng 2 có tâm tại gốc toạ độ.

3. Lấy điểm N trên đường tròn có bán kính 1, điểm G trên đường tròn có bán kính là 2, giao điểm của của đoạn thẳng nối gốc toạ độ với điểm G và đường tròn có bán kính 1 (điểm thứ hai).

4. , điềm thứ hai, ta sẽ biết được hoành độ và tung độ của chúng.

5. Dựng hai đường thẳng vuông góc tại O với các đường thẳng vuông góc với các trục toạ độ (bên phải màn hình).

6. Tính các kết quả cos(n) ; sin(n) ; sin(g) . sin(n) ; -cos(g) . sin(n).

7. Dựng điểm A(cos(n), sin(g) . sin(n)) ; B(sin(n), -cos(g) . sin(n)) ; C(0, cos(n)). Chú ý rằng, nếu có hoành độ hoặc tung độ âm thì ta phải dựng về phía tay trái, hoặc phía dưới cho tương ứng với giá trị âm.

8. Dựng vector OA. Dựng (để cho đẹp khi trình chiếu thì ta sẽ nhân ba vector đơn vị với cùng một hệ số ví dụ hệ số là 4).

9. Dựng vector OB. Dựng

10. Dựng vector OC. Dựng

11. Ẩn đi các đưởng không cần thiết ta có hình cần dựng. Phép dựng Ngọc Giang là một trong những phép dựng hình biến không gian ba chiều thành không gian hai chiều tốt nhất. Hình chuyển động mượt. Cơ sở toán tuyệt đối chính xác. Cần nói thêm rằng, khi dựng hình trên phần mềm hình học động các bạn cần phải chú ý đến hai yếu tố. Đó là cơ sở toán và hình trình diễn. Hình trình diễn phải mượt. Cơ sở toán phải chính xác. Nếu bạn có một phép dựng biến không gian ba chiều thành không gian hai chiều mà hình trình diễn tốt nhưng cơ sở toán (đặc biệt là khi xử lí tại điểm k ) mà không bằng 0 (ví dụ bằng một con số vô định nào đó), thì cách dựng của bạn bị sai.

Tôi đã giới thiệu với các bạn một bài viết mà tôi có đôi điều cần phải nói. Đó là bạn đọc đừng có vội chê những cách dựng trên phần mềm hình học động mà tôi giới thiệu cho các bạn là tầm thường. Xin thưa rằng, nếu tôi không đưa ra cho các bạn thì các bạn có thể mất 5 năm, 10 năm, … hoặc có thể cả cuộc đời chưa chắc đã tìm ra nổi. Việc dựng hình biến không gian ba chiều thành hai chiều đòi hỏi phải rất thận trọng, cẩn thận từng li, từng tí. Nếu bạn đọc đã nỗ lực hết mình mà không dựng được thì các bạn có thể liên lạc với Tạp chí tin học và nhà trường. Tạp chí sẽ liên lạc trực tiếp với tôi. Và tôi sẽ tặng không cho các bạn hình vẽ đã dựng sẵn. Hình vẽ mà tôi tặng cho các bạn hoàn toàn miễn phí và sau đó những hình vẽ khác mà bạn dựng trực tiếp trên hình của tôi đều là của các bạn. Đó là lời cam kết về mặt pháp lý mà tác giả xin cam kết rõ ràng với các bạn qua bài báo này. Thay vì bạn biết đi, rồi biết chạy. Thì tôi tặng hẳn cho bạn đôi cánh để biết bay. Để các bạn có thể bay tới những phương trời xa hơn, cao hơn và nhanh hơn. Đó là ước nguyện lớn nhất của tác giả.

( Nguyễn Ngọc Giang - 229/85 - Thích Quảng Đức - Phường 4 - Quận Phú Nhuận - TP. Hồ Chí Minh )
URL của bài viết này::http://www.vnschool.net/modules.php?name=News&file=article&sid=2257
© Cong ty Cong Nghe Tin hoc Nha truong contact: sales@schoolnet.vn