Mô hình hóa hình học

Biểu diễn ẩn và tham số

Một đối tượng hình học thường được mô tả theo một trong hai cách:

  • dạng ẩn \(F(\bm{x}) = 0\), thuận tiện để phân loại phía, tính khoảng cách có dấu và tìm pháp tuyến;

  • dạng tham số \(\bm{x} = \bm{x}(u, v)\), thuận tiện để sinh đỉnh, lấy mẫu bề mặt và gắn tọa độ texture.

Đường thẳng qua \(\bm{p}_0\) theo hướng \(\bm{d}\) có dạng

\[\bm{p}(t) = \bm{p}_0 + t \bm{d}.\]

Mặt phẳng qua \(\bm{p}_0\) với pháp tuyến \(\bm{n}\) có dạng

\[\bm{n} \cdot (\bm{p} - \bm{p}_0) = 0,\]

hay \(a x + b y + c z + d = 0\). Khoảng cách có dấu từ \(\bm{q}\) tới mặt phẳng là

\[\delta(\bm{q}) = \frac{\bm{n} \cdot \bm{q} + d}{\|\bm{n}\|}.\]

Dấu của \(\delta\) cho biết điểm nằm ở nửa không gian nào. Công thức này được dùng trong clipping, culling và phát hiện va chạm.

_images/oxy-01.svg

Hình 2 Điểm và vectơ trong một hệ tọa độ trực chuẩn hai chiều.

Giao và chiếu trực giao

Thay ray \(\bm{r}(t) = \bm{o} + t \bm{d}\) vào phương trình mặt phẳng cho

\[t = -\frac{\bm{n} \cdot \bm{o} + d}{\bm{n} \cdot \bm{d}}.\]

Mẫu số gần \(0\) nghĩa là ray gần song song với mặt phẳng; thuật toán phải dùng một ngưỡng số thay vì so sánh chính xác với \(0\).

Nếu \(\widehat{\bm{n}}\) là pháp tuyến đơn vị, hình chiếu trực giao của \(\bm{q}\) lên mặt phẳng là

\[\bm{q}_{\Pi} = \bm{q} -\bigl(\widehat{\bm{n}} \cdot (\bm{q} - \bm{p}_0)\bigr) \widehat{\bm{n}}.\]

Trong hai chiều, đường \(a x + b y + c = 0\) là trường hợp riêng và khoảng cách từ \((x_0, y_0)\) tới đường bằng

\[\frac{|a x_0 + b y_0 + c|}{\sqrt{a^2 + b^2}}.\]
_images/oxy-02.svg

Hình 3 Hình chiếu trực giao của một điểm lên đường thẳng.

Đường conic và quadric

Conic là nghiệm của phương trình bậc hai trong mặt phẳng. Ba dạng chính tắc thường gặp là

\[\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1, \qquad \frac{x^2}{a^2} - \frac{y^2}{b^2} = 1, \qquad y^2 = 4 p x.\]
Bảng 1 Ba đường conic chính tắc
Ellipse Hyperbol Parabol

Ellipse

Hyperbol

Parabol

Trong không gian, quadric mở rộng thành

\[\bm{x}^{\mathsf T} Q \bm{x} + \bm{q}^{\mathsf T} \bm{x} + c = 0.\]

Mặt cầu, ellipsoid, trụ và nón đều thuộc lớp này. Khi thay phương trình ray vào quadric, ta nhận một phương trình bậc hai theo \(t\); nghiệm dương nhỏ nhất là giao nhìn thấy đầu tiên. Dạng ma trận còn cho phép biến đổi cả quadric bằng một phép đổi tọa độ thống nhất.

Đường cong tham số

Đường cong \(\bm{c}(t)\) có tiếp tuyến \(\bm{c}'(t)\). Độ dài cung trên \([a, b]\)

\[L = \int_a^b \|\bm{c}'(t)\|\, dt.\]

Tham số không nhất thiết tỉ lệ với độ dài. Nếu cần vật chuyển động với tốc độ đều, phải lập bảng độ dài cung rồi ánh xạ thời gian sang tham số.

Trong animation và mô phỏng, đại lượng cần tối ưu phải được viết thành một phiếm hàm, chẳng hạn

\[T[\bm{c}] = \int_a^b \frac{\|\bm{c}'(t)\|}{v(\bm{c}(t))}\, dt,\]

rồi mới rời rạc hóa đường cong để tối ưu số.

Tiếp tuyến, pháp tuyến và diện tích

Với bề mặt tham số \(\bm{s}(u, v)\), hai vectơ tiếp xúc là \(\bm{s}_u\)\(\bm{s}_v\); pháp tuyến được tính bởi

\[\bm{n} = \frac{\bm{s}_u \times \bm{s}_v} {\|\bm{s}_u \times \bm{s}_v\|}.\]

Phần tử diện tích là

\[dA = \|\bm{s}_u \times \bm{s}_v\|\, du\, dv.\]

Đối với mặt ẩn \(F(\bm{x}) = 0\), gradient \(\nabla F\) là pháp tuyến tại các điểm chính quy. Hai cách biểu diễn vì thế có thể cung cấp pháp tuyến cho chiếu sáng mà không cần suy ra từ mesh đã rời rạc hóa.

_images/tangent-02.svg

Hình 4 Tiếp tuyến xuất hiện như giới hạn của các cát tuyến trên đường cong.