Chìa khóa để thực hiện sơ đồ sai phân hữu hạn hoạt động trên hình học không đều là có ma trận "hình dạng" với các giá trị biểu thị các điểm bên ngoài, bên trong và trên ranh giới của miền. Nói rằng chúng tôi đã có một hình dạng như thế này:
000000001000000110000012100001221000122210012221001221000121000011000001000000000000
Tên miền thực (trong đó tất cả các mục nhập khác không của ma trận) tạo thành một hình tam giác hướng xuống dưới. Số 1 đại diện cho các điểm trên đường biên, trong khi 2 là đại diện cho các điểm bên trong (thường không được biết đến) Chúng ta có thể gán các số nút như sau:
00000000−1000000−1−100000−11−10000−127−1000−13811−100−14912−100−1510−1000−16−10000−1−100000−1000000000000
Ở đây, -1 đại diện cho các vị trí biên. Sau đó, bạn có thể chạy sơ đồ sai phân hữu hạn trên tất cả các mục trong ma trận, nhưng sử dụng câu lệnh if để thực hiện lược đồ của bạn chỉ trên các nút bên trong (từ 1 đến 12). Cách tiếp cận này không phải là cách hiệu quả nhất để thực hiện, nhưng nó sẽ hoàn thành công việc ... nếu bạn có đủ khả năng cho bộ nhớ, có thể tốt để lưu trữ các mục (i, j) của tất cả các nút bên trong và chạy một vòng lặp for chỉ trên các nút đó.
Để tạo hình học trực tiếp, bạn có thể thực hiện một trong hai điều sau:
1. Tạo hình ảnh đen trắng theo cách thủ công và nhập nó vào chương trình của bạn (dễ thực hiện nhất, nhưng không thể tinh chỉnh độ phân giải không gian dx hoặc dy của bạn).
2. Viết mã sẽ tạo ra các biểu diễn riêng biệt của các hình dạng cơ bản mà bạn muốn cho bất kỳ độ phân giải không gian nào bạn chọn (khó thực hiện hơn, nhưng mạnh mẽ hơn đối với các sơ đồ sai phân hữu hạn chung của bất kỳ độ phân giải không gian dx hoặc dy).
Nếu bạn muốn tìm hiểu thêm về cách thực hiện việc này, bạn có thể muốn xem xét các video này:
Khóa học đồ họa máy tính NPTEL, Video 2 (Đồ họa raster)
Khóa học đồ họa máy tính NPTEL, Video 3 (Đồ họa raster, tiếp tục)
Hãy xem chúng và cho tôi biết nếu điều này giải quyết câu hỏi của bạn.