Đệ quy tam giác Sierpinki Python
Đệ quy có thể tạo ra những hình ảnh đẹp và đáng kinh ngạc có các phần con giống nhau. Các thiết kế được gọi là fractals. Một trong những fractal nổi tiếng nhất là tam giác Sierpinki, được đặt tên theo nhà toán học người Ba Lan Waclaw Sierpinski (1882–1969) Show Cũng như nhiều mẫu tự tương tự, nó được định nghĩa đệ quy
Ví dụ: đây là hình tam giác Sierpinki của một vài đơn đặt hàng đầu tiên. Hãy dành một chút thời gian để xác nhận rằng tam giác Sierpinki bậc 1 thực sự bao gồm ba bản sao nhỏ hơn của tam giác Sierpinki bậc 0, rằng tam giác Sierpinki bậc 2 được hình thành từ ba bản sao nhỏ hơn của tam giác Sierpinki bậc 1, v.v. Mặc dù các hình tam giác bậc cao có thể trông giống như chúng ta đã vẽ một hình tam giác lớn màu đen với nhiều hình tam giác màu trắng lộn ngược khác nhau ở trên, nhưng thực tế không phải vậy. Mỗi hình tam giác được vẽ là màu đen; . Mã của bạn chỉ nên vẽ các hình tam giác màu đen đã điền. Các phần màu trắng là “không gian âm” hoặc các vùng không có gì được vẽ Bạn phải thực hiện chức năng
trong đó lấy đầu vào là ba điểm góc của một tam giác và thứ tự. Hàm vẽ một tam giác Sierpinki được xác định bởi ba điểm góc đó và theo thứ tự đã chỉ định. Giá trị trả về từ Chúng tôi cung cấp hàm trợ giúp
Sổ tay
đồ họa thử nghiệmMột chức năng tạo ra đầu ra đồ họa, chẳng hạn như Sierpinki, không cho phép thử nghiệm đơn vị, vì vậy chúng tôi đã cung cấp một bản trình diễn GUI đơn giản mà bạn có thể sử dụng để thử nghiệm tương tác. Mã khởi động cho 2 chứa một bài kiểm tra được cung cấp để chạy bản trình diễn GUI của chúng tôi. Không sửa đổi bài kiểm tra được cung cấp này. Chạy thử nghiệm này sẽ hiển thị một cửa sổ đồ họa để kiểm tra tương tác bản vẽ fractal của bạn. Xem đoạn phim ghi hình này để xem minh họa hoạt động của GUITrong GUI, sử dụng thanh trượt để thay đổi thứ tự và kéo các góc để thay đổi kích thước tam giác. Bạn sẽ tùy thuộc vào việc kiểm tra trực quan tính chính xác của bản vẽ và xác nhận rằng số lượng hình tam giác được trả về là như mong đợi. Khi bạn kiểm tra xong, hãy đóng cửa sổ đồ họa để thoát khỏi GUI Tiện ích mở rộngTam giác Sierpinki chỉ là một trong nhiều hình ảnh tự đồng dạng; . Chúng tôi muốn xem những gì bạn tạo ra Bolzano Bài đăng. 1 Chủ đề. 1 Đã tham gia. Tháng 3 năm 2021 Danh tiếng. 0 #1 23-03-2021, 07. 40 PM (Bài đăng này đã được sửa đổi lần cuối. 24-03-2021, 09. 49 giờ sáng tới Bolzano. )Xin chào, import numpy as np from math import sqrt # a b c P = np.array([(0, 0), (1, 0), (1, (1/sqrt(2)))], dtype=float) # I could start with any point, but decided to start with a a = np.array((0, 0), dtype=float) new_point: #1.iteration # a + b p1 = P[0] + P[1] new_point #2.iteration t1 = P[0] + p1 t2 = P[1] + p1 t3 = P[2] + p1 # b + c p2 = P[1] + P[2] new_point #2.iteration t4 = P[0] + p2 t5 = P[1] + p2 t6 = P[2] + p2 # c + a p3 = P[2] + P[0] new_point #2.iteration t7 = P[0] + p3 t8 = P[1] + p3 t9 = P[2] + p3Vấn đề của tôi là viết tất cả những điều này theo cú pháp đệ quy trong python (đệ quy là bắt buộc). Tôi còn vẽ mọi thứ ra giấy nên tôi hiểu thuật toán, nhưng không biết viết cú pháp như thế nào. Còn việc vẽ đồ thị cho tất cả các điểm thì sao? . zeros(), nhưng người ta giải thích rằng đây là một hàm dành cho ma trận, vì vậy tôi không chắc cách triển khai hàm này vào chương trình. Bạn có thể giúp gì không? Đáp lại Tìm thấy Đáp lại deanhystad Bài đăng. 4.386 Chủ đề. 16 Đã tham gia. Tháng 2 năm 2020 Danh tiếng. 259 #2 24-Mar-2021, 02. 37 PM (Bài đăng này đã được sửa đổi lần cuối. 24-03-2021, 02. 37 PM by deanhystad. )Tại sao bạn lại sử dụng numpy? . Đáp lại Tìm thấy Đáp lại SheeppOSU Bài đăng. 481 Chủ đề. 86 Đã tham gia. Tháng 2 năm 2018 Danh tiếng. 21 #3 03-04-2021, 06. 11 giờ sáng (Bài đăng này đã được sửa đổi lần cuối. 03-04-2021, 06. 11 giờ sáng bởi SheeppOSU. )Mình sẽ viết hàm lấy 3 điểm cho tam giác, lấy 3 điểm cho tam giác nằm trong nó để được 3 bộ 3 điểm như vậy. [A, p1, p3], [B, p1, p2], [C, p2, p3]. Sau đó, nó tự thực hiện với mỗi bộ ba điểm. Bạn có thể tìm ra những việc cần làm với các điểm và cách yêu cầu chương trình dừng lại. import numpy as np from math import sqrt def recursive(points): p1 = (points[0] + points[1]) / 2 p2 = (points[1] + points[2]) / 2 p3 = (points[2] + points[0]) / 2 for p_set in np.array([points[0], p1, p3], [points[1], p1, p2], [points[2], p3, p2]): recursive(p_set) recursive(np.array([[0, 0], [1, 0], [1, 1/sqrt(2)]])) Đáp lại Tìm thấy Đáp lại Tam giác Sierpinki được đệ quy như thế nào?Mã nguồn (tam giác Sierrapinki)
. The algorithm starts with the vertices of a triangle and subdivides this triangle into three smaller triangles in the subdivide function. Sau đó, hàm chia nhỏ tự gọi đệ quy cho từng tam giác mới và lặp lại quy trình.
Công thức cho tam giác Sierpinki là gì?Có thể tìm thấy diện tích của một lần lặp nhất định của Tam giác Sierpinki bằng cách sử dụng Công thức Tam giác Sierpinki cho diện tích. An=√34(34)n A n = 3 4 ( 3 4 ) n , trong đó n n là bước lặp mong muốn, tính từ n=0 n = 0 , trong đó bước 0 là toàn bộ tam giác đều ban đầu. |