CSCE 441 Lecture 10

From Notes
Jump to navigation Jump to search

« previous | Wednesday, February 5, 2014 | next »


Fractals and Iterated Affine Transformations

A transformation F(X) is contractive if, for all compact sets X1X2,

DH(F(X1),F(X2))<DH(X1,X2)
compact set
a finite set
transformations on sets
A set is a collection of points
Apply point-wise transformation to all point within the set
distance
distance between identical sets should be 0
DH(X1,X2)=DH(X2,X1)

Hausdorff Distance

dX1X2=maxx1X1(minx2X2|x1x2|)DH=max(dX1X2,dX2X1)

Iterated Affine Transformations

Special class of fractals where each transformation is an affine transformation:

F1(x)={M1x,F2(x)=M2x,}

Rotations, translation, and scaling by themselves are not contractive

Rendering Fractals

Given starting set X0, inductively define Xi+1=jFj(Xj)

Attractor is X.

Serpinski's triangle: Scale by factor of 0.5 about each vertex of the large triangle

Apply transformations on previous shape again, and again, and again, etc.

Starting shape does not matter.

Perform BFS of "transformation tree"

Finding Transformations

Given a fractal built by iterated affine transformations, how do you determine the original transformation?

  1. Locate a shape that covers the entire fractal
  2. Find copies of that shape within the fractal
  3. Use the three-point strategy to find the transformation of each copy.


Fractal Tennis

  1. Start with any point on the fractal x by applying x=Mrandx several times.
  2. Apply random transformations to that point to get corresponding points on the fractal:


for (int i = 0; i < 100; ++i)
    x = m[rand] * x;

for (int i = 0; i < 100000; ++i) {
    draw(x);
    x = m[rand] * x;
}