Nhận hướng dẫn làm đề tài, luận văn tốt nghiệp đại học. Bảo mật, tận tình, chi tiết.
Gọi: 0928.044.232 www.cachlamdoan.com
Tài trợ bài viết này và giới thiệu dịch vụ, sản phẩm, thương hiệu, nhu cầu tuyển dụng của doanh nghiệp đến với cộng đồng.
Vũ Quang Huy Fractal một khái niệm rất gần gũi, nó hiện diện ở mọi mặt trong cuộc sống. Tuy nhiên để có thể có được một fractal như ý cần phải tính toán rất nhiều, chính vì thế trong dự án Sins tôi phải tắt tính năng này và thay bằng một background đơn giản hơn để tối ưu hóa. Bài viết cung cấp cho bạn đọc một cái nhìn tổng quan về fractal: nó là gì và làm sao để tạo ra nó?
Nội dung bài viết

Giới thiệu

Với yêu cầu thiết kế background sao cho thật sinh động, tôi đã tìm hiểu nhiều cách khác nhau như vẽ kết hợp các layer, điều chỉnh các shader cho hợp lý, kết hợp các công thức toán học để sinh ra hiệu ứng ... Cuối cùng, tôi chọn fractal để xây dựng các background này.

Fractal một khái niệm rất gần gũi, nó hiện diện ở mọi mặt trong cuộc sống. Tuy nhiên để có thể có được một fractal như ý cần phải tính toán rất nhiều, chính vì thế tôi phải tắt tính năng này và thay bằng một background đơn giản hơn để tối ưu hóa cho các dự án của mình.

Trong tiếng Việt, fractal (phiên âm /ˈfræk.təl/) có nghĩa là phân dạng. Tuy nhiên, trong khuôn khổ bài viết này tôi muốn giữ lại cách gọi fractal để dễ dàng phân biệt với những khái niệm khác.

ss_1
Một dạng fractal được tạo nên bằng việc kết hợp các công thức toán học

Tiền đề bài viết

Tôi bị cuốn hút bởi sự đặc biệt của chúng. Chỉ từ những nét vẽ đơn giản như vẽ đường thẳng, đường cong – qua quá trình đệ quy ta có thể tạo nên những hình ảnh kì diệu, nên tôi chia sẻ nó cho các bạn.

Đối tượng hướng đến

Bài viết này dành cho bạn đọc đã có kiến thức vững về lập trình, đồ họa 2D và muốn tìm hiểu về factal cùng với các vấn đề có liên quan.

Fractal là gì?

“A fractal is a never-ending pattern. Fractals are infinitely complex patterns that are self-similar across different scales”

fractalfoundation.org

Trên đây là một trong những định nghĩa về fractal mà theo tôi nó phản ánh khá chính xác fractal là gì. Theo như định nghĩa trên:

“Một fractal là một pattern không bao giờ kết thúc. Những fractal phức tạp là những pattern mà nó lặp lại chính bản thân nó trên nhiều tỷ lệ phóng khác nhau”

Để làm rõ hơn khái niệm trên, chúng ta hãy cùng nhau xét một ví dụ đơn giản để biết fractal được tạo nên như thế nào? Từ đó sẽ cho ta có một cái nhìn bao quát hơn về fractal.

Tam giác Sierpinski

sierpinski-zoom41

Wacław Franciszek Sierpiński (1882 – 1969) là một nhà toán học người Ba Lan. Ông được biết đến bởi những đóng góp về lý thuyết tập hợp, lý thuyết số và Tô Pô. Ông đã công bố hơn 700 bài báo và 50 cuốn sách. Ba dạng fractal được đặt theo tên của ông là – Sierpinski triangle, Sierpinski carpet và Sierpinski curve).

Tam giác Sierpinski là một fractal được tạo ra theo phương pháp sau:

  • Khởi đầu với một tam giác đều.
  • Chia nhỏ tam giác ban đầu thành 4 tam giác nhỏ hơn, sau đó ta loại bỏ tam giác ở chính giữa.
  • Lặp lại bước trên với những tam giác nhỏ hơn.

680px-Sierpinski_triangle_evolution_svg
 
Đây là demo của giải thuật vẽ tam giác Sierpinski.

 

Click chọn các điểm tròn để thay đổi hình dạng của tam giác

Hiện diện của factal trong cuộc sống

Ta có thể tìm thấy fractal ở mọi mặt trong cuộc sống, từ những thứ vi mô như nơ-ron thần kinh của con người, cấu trúc tế bào phổi ... cho đến những thứ vĩ mô như cấu tạo các vết nứt gãy địa chất, hệ thống sông ngòi ... Lấy ví dụ là một chiếc lá, ta thấy được rằng: các gân lá, các gân lá nối tiếp lẫn nhau; gân lớn dẫn đến gân nhỏ, và gân nhỏ dẫn đến nhỏ hơn - tất cả đều tuân theo một quy luật có sẵn.

fractal-03
Fractal trong những gân lá

Không chỉ như vậy, ngoài những fractal trong tự nhiên như đã nêu ở trên. Fractal còn được tìm thấy trong ngành công nghiệp bán dẫn, trong toán học ...

Tài liệu tham khảo

  • http://www.codeproject.com/Articles/353651/Visualizing-Fractals - 16/7/2014
  • http://fractalfoundation.org/resources/what-are-fractals - 16/7/2014
  • http://en.wikipedia.org/wiki/Sierpinski_triangle - 16/7/2014
THẢO LUẬN
Phần lớn lập trình viên làm việc không phải vì tiền hoặc những lời tán dương, mà vì lập trình thực sự thú vị. Linus Torvalds
300x250

Liên hệ tài trợ cho STDIO

Tham gia tài trợ STDIO và đặt quảng cáo theo định kỳ của cá nhân, cửa hàng, doanh nghiệp của bạn tại đây.
Gọi: 028.36205514 www.stdio.vn/contact
ĐÓNG