Chủ Nhật, 6 tháng 9, 2015

Đường cong bậc ba Spline

15.  Đường cong bậc ba Spline :

       Trong công thức của Bezier, chúng ta sử dụng hàm hợp liên tục để xác định điểm kiểm soát tương đối. Với các điểm nội suy thì mức độ tương đối sẽ khác nhau mà trong đó một chuỗi các phần tử nhỏ sẽ kết hợp với nhau tạo ra đường cong đa hợp. Theo tính toán thì đường bậc ba sẽ đa thức bậc thấp nhất có thể để biểu diễn một đường cong trong không gian và chuỗi điểm Hermite sẽ phù hợp nhất đối với việc xây dựng nên đường cong đa hợp này. Việc yêu cầu người sử dụng đưa vào các vector tiếp tuyến tại mỗi điểm trong tập hợp các điểm là cực kỳ bất tiện cho nên thường trong các đường bậc ba đa hợp ta sử dụng các điều kiện biên liên tục trong phép đạo hàm bậc một và hai tại điểm nối giữa. và đường cong được xác định như trên gọi là đường spline bậc ba với phép đạo hàm liên tục bậc hai. Giá trị đạo hàm của đường cong sẽ xác định độ cong tại mỗi điểm nút và nó cũng đưa ra điều kiện biên cho mỗi đoạn trên đường cong. Vậy đường bậc ba spline có ưu điểm là không phải xác định độ dốc của đường tại các nút nhưng nhược điểm của nó là chỉ tạo ra sự thay đổi toàn cục khi ta thay đổi vị trí của điểm. Đường cong – Spline đi qua n điểm cho trước mà mỗi đoạn là các đường cong bậc ba độc lập có độ dốc và độ cong liên tục tại mỗi điểm kiểm soát hay điểm nút. Với n điểm ta có (n-1) đoạn với mỗi đoạn gốm bốn vector hệ số hay 4(n-1) cho n-1 đoạn, và 2(n-1) điều kiện biên và (n- 2) điều kiện về độ dốc cùng (n-2) về độ cong. Để xây dựng nên đường spline có tham số với n điểm nút ta có một dãy các giá trị tham số mà ta gọi là vector nút. u0......un-1 trong đó ui+1 >ui Cần lựa chọn tại mỗi nút, cách lựa chọn đơn giản nhất là theo cách đơn điệu có nghĩa là với giá trị 0 tại điểm đầu và tăng lên 1 tại những điểm kế tiếp. tuy vậy phương pháp này dẫn đến độ cong không mong muốn tại các điểm vì vậy việc tham số hoá sẽ đưa vào chiều dài, nhưng phương pháp này cũng không được chính xác khi mà đường cong chưa xác định chiều dài. Tuy nhiên thông thường người ta sử dụng việc tích luỹ của các dây cung với: u0 =0và ui+1 = ui + di+1 trong đó di: là khoảng cách giữa 2 điểm pi-1 và pi Trong các trường hợp đường cong có bậc lớn hơn ba có thể dùng cho đường spline. Thông thường đường spline bậc n sẽ được xây dựng trên các phần nhỏ liên tục của các biến độc lập. Hình 7.5 Kết nối hai đường cong Hình trên cho thấy hai đoạn cong có chung điểm nối mà đường cong liên tục tại điểm đó, việc biểu diễn tính liên tục của đường cong thông qua chữ cái C-Cuntinue. C0 để đảm bảo không Chương 7: Đường cong và mặt cong trong 3D 125 có sự gián đoạn giữa hai đoạn cong. C1 tính liên tục bậc nhất hay đạo hàm bậc nhất tại điểm nối. C2 đạo hàm bậc hai liên tục của đường cong tại điểm nối. Giả sử khi biểu diễn đường cong mềm thông qua các đoạn cong q1, q2, q3 (mỗi đoạn có 4 vector hệ số) cần thoả mãn: Liên tục tại điểm nối hay C1 0 = C2 0 Độ dốc (hay vector tiếp tuyến) tại điểm nối (điểm cuối của q1 và đầu q2) là như nhau: C1 1 = C2 1 (đạo hàm bậc nhất) Thoả mãn liên tục trên tại điểm nối (đạo hàm bậc 2 liên tục tại điểm nối)C1 2 = C2 2 Việc kết hợp các đoạn cong Hermite bậc ba để mô tả một đường cong mềm theo kiểu phân đoạn spline là phương pháp đơn giản nhất hay còn gọi là phương pháp Hermite nội suy. Với phương pháp này thì tham biến ui cho mỗi đoạn cong i của tập các đoạn cong Hermite sẽ biến đổi trong khoảng từ 0 đến 1 và luôn tồn tại đạo hàm bậc nhất của các đoạn cong tại các điểm nối. Phương trình cho mỗi đoạn cong được sử dụng lúc này là phương trình đường cong bậc ba Hermite

        Phân đoạn của đường cong Spline - Hermite Theo Hermite các đoạn là các đường cong, tính liên tục của đạo hàm bậc hai tại các điểm nối có thể dễ dàng đạt được bằng cách đặt P’’i-1(ui-1=1) là đạo hàm bậc hai tại điểm cuối của đoạn (i-1) bằng với P’’i(ui=0) đạo hàm bậc hai tại điểm đầu của đoạn thứ i. P’’i-1(1)= P’’i(0) Có phương trình: Pi(u) = k0i + k1iu + k2iu2 + k3iu3 Đạo hàm bậc hai sẽ là: P’’i(u) = 2k2i + 6k3iu P’’i-1(1)= P’’i(0) nên 2k2(i-1) + 6k3(i-1)u= 2k2i Vì điểm cuối của đoạn i-1 trùng với điểm đầu của đoạn thứ i(Pi(0)=Pi-1(1)) .

Không có nhận xét nào:

Đăng nhận xét