Hodei

New Member

Download miễn phí Trình bày các kỹ thuật hình học phân hình thông qua sự khảo sát các cấu trúc Fractal cơ sở và thuật toán chi tiết để tạo nên các cấu trúc này





LỜI NÓI ĐẦU. 1

Chương I:SỰ RA ĐỜI VÀ CÁC KẾT QUẢ CỦA HÌNH HỌC PHÂN HÌNH. 5

 I.1 Sự ra đời của lý thuyết hình học phân hình 5

 Tính hỗn độn của các quá trình phát triển có quy luật trong tự nhiên 5

 Sự mở rộng khái niệm số chiều và độ đo trong lý thuyết hình học Eulide cổ điển 8

 I.2 Sự phát triển c ủa l ý thuyết hình học phân hình 9

 I.3 Các ứng dụng tổng quát của hình học phân hình 10

 Ứng dụng trong vấn đề tạo ảnh trên máy tính 11

 Ứng dụng trong công nghệ nén ảnh 11

 Ứng dụng trong khoa học cơ bản 13

 I.4 Các kiến thức cơ sở của hình học phân hình 13

 I.4.1 Độ đo Fractal 13

 I.4.2 Các hệ hàm lặp IFS 17

Chương II : MỘT SỐ KỸ THUẬT CÀI ĐẶT HÌNH HỌC PHÂN HÌNH. 21

 II.1 Họ đường Von Kock 21

 Đường hoa tuyết Von Kock-Nowflake 21

 Đường Von Kock-Gosper 26

 Đường Von Kock bậc hai 3-đoạn 28

 Đường Von Kock bậc hai 8-đoạn 30

 Đường Von Kock bậc hai 18-đoạn 32

 Đường Von Kock bậc hai 32-đoạn 33

 Đường Von Kock bậc hai 50-đoạn 35

 Generator phức tạp 38

 II.2 Họ đường Peano 44

 Đường Peano nguyên thuỷ 44

 Đường Peano cải tiến 45

 Tam giác Cesaro 49

 Tam giác Cesaro cải tiến 51

 Một dạng khác của đường Cesaro 54

 Tam giác Polya 56

 Đường Peano-Gosper 58

 Đường hoa tuyết Peano 7-đoạn 62

 Đường hoa tuyết Peano 13-đoạn 66

 II.3 Đường Sierpinski 70

 II.4 Cây Fractal 73

 Các cây thực tế 73

 Biểu diễn toán học của cây 73

 II.5 Phong cảnh Fractal 77

 II.6 Hệ thống hàm lặp (IFS) 84

 Các phép biến đổi Affine trong không gian R2 84

 IFS của các pháp biến đổi Affine trong không gian R2 85

 Giải thuật lặp ngẫu nhiên 86

 II.7 Tập Mandelbrot 88

 Đặt vấn đề 98

 Công thức toán học 88

 Thuật toán thể hiện tập Mandelbrot 89

 II.8 Tập Julia 94

 Đặt vấn đề 94

 Công thức toán học 94

 Thuật toán thể hiện tập Julia 95

 II.9 Họ các đường cong Phoenix 97

Chương III : GIỚI THIỆU VỀ NGÔN NGỮ CÀI ĐẶT VÀ KẾT QUẢ CHƯƠNG TRÌNH. 100

 III.1 Giới thiệu về ngôn ngữ cài đặt 100

 III.2 Kết quả chương trình 111

TÀI LIỆU THAM KHẢO 116

 

 

 

 

 

 

 

 

 

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


urtle_Y, Turtle_R, Turtle_Theta);
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
else
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
Turn(Angles[ I/2 ],Turtle_Theta);
XTemp = XPoints [NumLines -1];
YTemp = YPoints [NumLines -1];
for (I= 0 ; I pDC->MoveTo((int)XPoints[ I ],(int)YPoints[ I ]);
pDC->LineTo((int)XPoints[ I+1 ],(int)YPoints[ I+1 ]);
delete[]XPoints;
delete[]YPoints;
Đối với Level > 1 thì hàm này giống như hàm –Generator của đường Peano gốc. Với Level = 1, thì hàm này có hơi khác một chút. Thay vì định nghĩa bước con rùa (là biến Turtle_R) bằng 1/3 chiều dài đoạn thẳng ban đầu thì ta định nghĩa nó bằng 1/18 chiều dài đoạn thẳng ban đầu, về cơ bản generator được viết sao cho con rùa vẫn đi qua con đường giống như generator của đường Peano gốc, sử dụng các góc quay giống nhau, nhưng dùng 6 bước thay vì 1 bước như generator của Peano gốc. Tuy nhiên, các điểm được lưu trữ trong các mảng toạ độ có thay đổi. Sau khi lưu trữ toạ độ thứ nhất, ta lưu trữ vị trí sau bước 5, vị trí kế tiếp được lưu trữ ở cuối bước 1 sau khi quay đi một góc đầu tiên. Các vị trí còn lại được lưu trữ sau bước 5 và sau bước đầu tiên của đoạn thẳng kế, ngoại trừ bước 5 của đoạn thẳng cuối cùng sẽ không được lưu trữ lại. Kết quả là khi các đoạn thẳng được vẽ, chúng sẽ tạo nên một đường xiên nối các điểm 1/6 khoảng cách trên mỗi đoạn thẳng gặp nhau ở góc. (Ở đây NumLines = 19).
□ TAM GIÁC CESARO:
Hình sau cho chúng ta xem một generator rất đơn giản (initiator là đoạn thẳng nằm ngang):
Generator chứa hai cạnh của một tam giác cân. Do đó, số đoạn thẳng là N=2 và chiều dài của mỗi đoạn là:
Giả sử đoạn thẳng ban đầu có chiều dài là 1. Khi đó số chiều fractal là:
Phụ thuộc vào các điều kiện cụ thể, generator này sẽ được đặt bên trái hay bên phải của mỗi đoạn thẳng mà nó thay thế. Nhiều đường cong khác nhau hoàn toàn có thể được sinh ra từ generator này. Các đường này được khám phá bởi Ernest Cesaro vào năm 1905.
Các hình sau là các mức khác nhau của tam giác Cesaro:
Mức thứ nhất
Mức thứ năm
Ở bất kỳ mức nào trong việc xây dựng đường này, generator luôn được đặt ở bên phải của mỗi đoạn thẳng ở mức đầu tiên, bên trái của mỗi đoạn thẳng ở mức thấp hơn kế tiếp, bên phải của mỗi đoạn thẳng ở mức thấp hơn kế tiếp nữa v.v…
Như vậy đoạn mã của hàm Generator có thêm mảng Sign để lúc quay theo các góc khác nhau, chúng ta nhân tương ứng với phần tử của mảng Sign được khởi động như sau:
for (I = Level; I >=0; --I )
{
Sign [ I ] = Sign1;
Sign1 = -1;
}
Với Sign1 có thể khởi động lúc đầu là 1 hay -1.
// Sau đây là Edit Code của đường cong Tam Giác Cesaro.
void CesaroTriangleGenerator(CDC *pDC,double X1, double Y1, double X2, double Y2, int Level,int NumLines, double LineLen, double Angles[],int Sign[])
double *XPoints ,*YPoints;
int I;
double Turtle_Theta,Turtle_X, Turtle_Y, Turtle_R;
XPoints = new double [NumLines + 1];
YPoints = new double [NumLines + 1];
--Level;
Turtle_R=sqrt((X2-X1)* (X2-X1)+ (Y2-Y1)* (Y2-Y1))*LineLen;
XPoints[0]= X1;
YPoints[0]= Y1;
XPoints[NumLinesv -1]= X2;
YPoints[NumLines -1]= Y2;
Turtle_Theta = Point(X1,Y1,X2,Y2);
Turtle_X=X1;
Turtle_Y=Y1;
for (I=NumLines ; I>=1 ;I-=2)
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
XPoints[ I ]=Turtle_X;
YPoints[ I ]=Turtle_Y;
Turn(Angles[ I ]*Sign[Level],Turtle_Theta);
if (Level)
for ( I=0 ; I X1 = XPoints [ I ];
Y1 = YPoints [ I ];
X2 = XPoints [ I+1 ];
Y2 = YPoints [ I+1 ];
CesaroTriangleGenerator(pDC, X1, Y1, X2, Y2Level, NumLines, LineLen, Angles, Sign );
else
for ( I= 0; I pDC->MoveTo((int)XPoints[ I ],(int)YPoints[ I ]);
pDC->LineTo((int)XPoints[ I+1 ],(int)YPoints[ I+1 ]);
delete[]XPoints;
delete[]YPoints;
□ TAM GIÁC CESARO CẢI TIẾN:
Tam giác mô tả ở trên hơi khó để lần theo dấu vết vì đường rẽ theo góc 900 từ tâm của đoạn thẳng gốc thật sự đi lại theo vết của nó nhưng không thể quan sát được khi vẽ. Việc cập nhật đường cesaro có thể thực hiện bằng cách thay đổi góc generator từ 900 sang 850 đối với mức thấp nhất trước khi thực hiện quá trình vẽ.
Hình sau minh hoạ một generator (initiator là đoạn thẳng nằm ngang ).
Giống như đường Peano cải tiến, kết quả thu được là một đường cong mà số chiều fractal không hoàn toàn là 2, nhưng khi số lần đệ quy tiến ra vô cực thì số chiều fractal tiến về 2.
Hình sau cho chúng ta thấy mức thứ tư của tam giác Cesaro cải tiến:
Ta tính chiều dài mỗi đoạn của generator.
Giả sử chiều dài đoạn thẳng gốc là a
Ta có:
AE = a / 2
Đặt:
AC = b
CD = c
Ta có:

Ta có:
Đoạn mã của hàm –Generator như sau:
void ModifiedCesaroGenerator(CDC *pDC,double X1, double Y1, double X2, double Y2, int Level,int NumLines, double LineLen, double Angles[],int Sign[])
double *XPoints , *YPoints ;
int I;
double Turtle_Theta,Turtle_X, Turtle_Y, Turtle_R,Turtle_R1;
XPoints = new double [NumLines + 1];
YPoints = new double [NumLines + 1];
--Level;
Turtle_R1=sqrt((X2-X1)* (X2-X1)+ (Y2-Y1)* (Y2-Y1))*LineLen;
Turtle_R=Turtle_R1* 0.9128442;
XPoints [0]= X1;
YPoints [0]= Y1;
XPoints[NumLines -2]= X2 ;
YPoints[NumLines -2]= Y2 ;
Turtle_Theta = Point(X1,Y1,X2,Y2);
Turtle_X=X1;
Turtle_Y=Y1;
for (I=NumLines -1; I >=1; I-=2)
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
XPoints[ I ]=Turtle_X;
YPoints[ I ]=Turtle_Y;
Turn(Angles[ I ]* Sign[Level],Turtle_Theta);
if (I= =NumLines - 1)
Turtle_R=Turtle_R1;
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
XPoints[NumLines ]=Turtle_X;
YPoints[NumLines ]=Turtle_Y;
Turn(Angles[NumLines ]* Sign[Level],Turtle_Theta);
if (Level)
for (I= 0; I X1 = XPoints [ I ];
Y1 = YPoints [ I ];
X2 = XPoints [ I+1 ];
Y2 = YPoints [ I+1 ];
ModifiedCesaroGenerator(pDC, X1, Y1, X2, Y2,Level,NumLines, LineLen, Angles,Sign);
else
for (I= 0; I pDC->MoveTo((int)XPoints[ I ],(int)YPoints[ I ]);
pDC->LineTo((int)XPoints[ I+3 ],(int)YPoints[ I+3 ]);
for (I= 1; I pDC->MoveTo((int)XPoints[ I ],(int)YPoints[ I ]);
pDC->LineTo((int)XPoints[ I+2 ],(int)YPoints[ I+2 ]);
delete[]XPoints;
delete[]YPoints;
Hàm này giống với hàm trong đường Cesaro gốc nhưng lúc này mảng Angle là {0, -170, 0, 85, 0 } và NumLines = 4, đồng thời chiều dài các đoạn của generator có khác nhau. Chúng chia làm hai loại:
Loại chiều dài thứ nhất: Bằng nửa chiều dài của đoạn thẳng ban đầu.
Loại chiều dài thứ hai: Bằng nửa chiều dài của đoạn ban đầu nhân với 0.9128442.
□ MỘT DẠNG KHÁC CỦA ĐƯỜNG CESARO:
Giả sử chúng ta bắt đầu với đường generator và hai mức đầu tiên như ở đường Cesaro, nhưng sử dụng sự sắp xếp khác đi khi đặt generator về phía bên trái và phải của đoạn thẳng gốc khi chúng ta ở mức cao hơn. Kết quả là nhiều đường khác nhau có thể được sinh ra từ cách sắp xếp này.
Hình sau cho chúng ta mức khác nhau của hình Cesaro này:
Đoạn mã của hàm –Generator như sau:
void OtherCesaroGenerator(CDC *pDC,double X1, double Y1, double X2, double Y2, int Level,int NumLines,
double LineLen, double Angles[],int Sign)
double *XPoints ,*YPoints;
int I;
double Turtle_Theta,Turtle_X, Turtle_Y, Turtle_R;
XPoints = new double [NumLines + 1];
YPoints = new double [NumLines + 1];
--Level;
Turtle_R=sqrt((X2-X1)* (X2-X1)+ (Y2-Y1)* (Y2-Y1))*LineLen;
XPoints[0]= X1;
YPoints[0]= Y1;
XPoints[NumLinesv -1]= X2;
YPoints[NumLines -1]= Y2;
Turtle_Theta = Point(X1,Y1,X2,Y2);
Turtle_X=X1;
Turtle_Y=Y1;
for (I=NumLines; I>=1; I-=2)
Step(Turtle_X, Turtle_Y, Turtle_R, Turtle_Theta);
XPoints[ I ]=Turtle_X;
YPoints[ I ]=Turtle_Y;
Turn(Angles[ I ]*Sign,Turtle_Theta);
Sign= -1;
if (Level)
for(I=0; I X1 = XPoints [ I ];
Y1 = YPoints [ I ];
...

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D chuẩn mực kế toán quốc tế IAS 24 trình bày thông tin các bên liên quan Luận văn Kinh tế 0
D Trình bày các mô hình cơ cấu tổ chức quản lý. Liên hệ phân tích mô hình cơ cấu tổ chức của quản lý Luận văn Kinh tế 0
G Trình bày lý thuyết về tuần hoàn và chu chuyển tư bản. ý nghĩa thực tiễn rút ra khi nghiên cứu lý thuyết này đối với việc quản lý các doanh nghiệp của nước ta khi chuyển sang nền kinh tế thị trường định hướng XHCN Kiến trúc, xây dựng 0
Y Trình bày lý thuyết chung về công nghệ truyền tải không đồng bộ ATM như đặc điểm chung, các dịch vụ, các tính toán để thiết lập tham số ATM Luận văn Kinh tế 0
A Trình bày các khái niệm trong tạo ảnh cộng hưởng từ, các vấn đề về hạt nhân, spin hạt nhân và các hệ quả liên quan Luận văn Kinh tế 0
D Các dịch vụ dữ liệu trong thiết kế mạng: - X25 - Frame Relay - SMDS - ATM - SONET - Tìm hiểu, trình bày và Báo cáo về dịch vụ dữ liệu Frame Relay Công nghệ thông tin 0
D Hoàn thiện công tác lập và trình bày báo cáo tài chính hợp nhất trong các doanh nghiệp sản xuất thép thuộc Hiệp hội Thép Việt Nam Luận văn Kinh tế 0
H Trình bày các khái niệm cơ bản về chuẩn hoá đội ngũ giáo viên Luận văn Sư phạm 0
L Trình bày lý thuyết tuần hoàn và chu chuyển của tư bản, ý nghĩa thực tiễn rút ra khi nghiên cứu lý thuyết này đối với việc quản lý các doanh nghiệp Luận văn Kinh tế 0
H Trình bày lý thuyết tuần hoàn và chu chuyển của TB. ý nghĩa thực tiễn rút ra khi nghiên cứu lý thuyết này đối với việc quản lý các doanh nghiệp Luận văn Kinh tế 0

Các chủ đề có liên quan khác

Top