SlideShare a Scribd company logo
1 of 41
Download to read offline
Fractal Rendering
in Developer C++
Computer Graphics Seminar
Aritra Sarkar
SC09B009
Department of Avionics
Indian Instituteof Space Science and Technology
Coding Platform
Developer C++
BloodshedDev-C++ is a full-featured Integrated Development
Environment (IDE) for the C and C++ programming languages.
It uses the MinGW or TDM-GCC 64bit port of the GCC as its
compiler. Dev-C++ can also be used in combination with Cygwin or
any otherGCC-based compiler
Main Package used
graphics.h
windows.h
Other options:Apophysis, XaoS, Terragen, Ultra Fractal
Syntax for graphics
#include<iostream.h> #include<graphics.h> #include<conio.h>
#include<stdlib.h> #include<windows.h> #include<stdio.h>
void draw(float,float,float,float,int,int);
main()
{
initwindow(1350,680,"IMAGE 1",0,0);
// variable initialization
draw(x1,x2,y1,y2,n,4);
writeimagefile(“Fern.jpeg",0,0,1350,680);
getch();
}
void draw(float x1,float x2, float y1, float y2,int n,int c )
{
//do something
setcolor( COLOR(25,n*7,0) );
line(x1,y1,x3,y3);
line(x3,y3,x5,y5);
if((x2-x3)<2) return;
draw(x3,x4,y3,y4,n,1);
draw(x3,x5,y3,y5,n,1);
draw(x3,x2,y3,y2,n,1);
}
Geometry
The two branches
 Euclidian ~300BC
 Fractal ~1975 (17th century ?)
The Inventors
The two branches
 Euclid
 Benoit Mandelbrot
NATURAL
NATURAL
Finding fractals
MAN-MADE
MAN-MADE
Common graphics
The Britain Coastline
The coastline paradox is the
counterintuitive observation
that the coastline of a
landmass does not have a
well-defined length. This
results from the fractal-like
properties of coastlines. The
first recorded observation of
this phenomenon was by
Lewis Fry Richardson.
Making fractals
Iteration
Introduction to fractals
A fractal is a mathematical set that has a fractal dimension that
usuallyexceeds its topological dimension and may fall between the
integers. Fractals are typically self-similar patterns, where self-
similar means they are "the same from near as from far". Fractals
may be exactly the same at every scale, or, they may be nearly the
same at different scales.
As mathematical equations, fractals are usually nowhere
differentiable, which means that they cannot be measured in
traditionalways. An infinite fractal curve can be perceived of as
winding through space differently from an ordinary line, still being a
1-dimensional line yet having a fractal dimension indicating it also
resembles a surface.
• Irregularity locally and globally that is not easily described in traditional
Euclidean geometric language
• Simple and "perhaps recursive" definitions
• Fine or detailed structure at arbitrarily small scales.
• Self-similarity, which may be manifested as
• Exact self-similarity: identical at all scales; e.g. Koch snowflake
• Quasi self-similarity: approximates the same pattern at different scales;
may contain small copies of the entire fractal in distorted and
degenerate forms; e.g., the Mandelbrot set's satellites are
approximations of the entire set, but not exact copies
• Statistical self-similarity: repeats a pattern stochastically so numerical
or statistical measures are preserved across scales; e.g., randomly
generated fractals; the well-known example of the coastline of Britain,
for which one would not expect to find a segment scaled and repeated
as neatly as the repeated unit that defines, for example, the Koch
snowflake
• Qualitative self-similarity: as in a time series
• Multi-fractal scaling: characterized by more than one fractal dimension
or scaling rule
Types and identification
Objects that are rendered in Computer Graphics using fractals:
Clouds River networks
Fault lines Mountain ranges
Craters Lightning bolts
Coastlines Animal coloration patterns
Romanesco broccoli Snow flakes
Crystals Blood vessels and pulmonary vessels
Ocean waves DNA
Various vegetables (cauliflower, broccoli)
Phenomenon that are rendered in Science using fractals (apart from the above):
Heart rates Psychological subjective perception
Heartbeat Fractal Universe Theory
Earthquakes
Applications
Fractal antennas & transistor
Fractal heat exchangers
Digital imaging
Urban growth
Fractal landscape or Coastline complexity
Enzyme/enzymology (Michaelis-Menten kinetics)
Generation of new music
Signal and image compression
Creation of digital photographic enlargements
Seismology, geology, archeology and geography
Fractal in soil mechanics
Computer and video game design
Computer graphics
Organic environments
Fractography and fracture mechanics
Generation of patterns for camouflage, such as MARPAT
Technical analysis of price series
Fractals in networks
Neuroscience
Pathology
In technology
Dimensions
Topological Dimension < Hausdorff Dimension
Box Counting : log(n) / log(r)
n = number of partitions in each iteration
1/r = scaling factor of successive iterated parts
Cantor Set/Dust
Georg Cantor in 1883
Noise over transmission lines by
Benoit Mandelbrot for IBM
Fractal heartbeat
n = 2 ; 0 <1/r < 1
1D set : log(2) / log(3) = 0.6309
2D dust : log(4) / log(3) = 1.2619
void draw(float x1, float x2, float y1, float y2, int n, int c ) {
float x3,y3,x4,y4,x,y;
n++;
x=x2-x1;
rectangle(x1,y1,x2,y1+30);
setfillstyle(1,COLOR(180,180,180));
floodfill((x1+x2)/2,y1+10,COLOR(180,180,180));
if(n>6) return;
draw(x1,x1+x/3,y1+80,y1+80,n,0);
draw(x1+x*2/3,x2,y1+80,y1+80,n,0); }
Vicsek Saltire and Cross
n = 5
r = 3
Box Counting : log(5) / log(3) = 1.4649
The family of Vicsek fractals is one of the most
important and frequently studied regular fractal
classes, and it is of considerable interest to
understand the dynamical processes on treelike
fractal family.
Sierpinski Triangle/Pyramid
Wacław Sierpiński in 1915
n = 3
r = 2
Box Counting : log(3) / log(2) = 1.5849
void draw(float x1,float x2, float y1, float y2,int n,int c )
{
float x3,y3,x,y;
n++;
x = x2 - x1;
y = y2 - y1;
x3 = ((x * cos(30.35)) - (y * sin(30.35))) + x1;
y3 = ((y * cos(30.35)) + (x * sin(30.35))) + y1;
line((x3+x2)/2,(y3+y2)/2,(x1+x3)/2,(y1+y3)/2);
line((x1+x3)/2,(y1+y3)/2,(x1+x2)/2,(y1+y2)/2);
line((x1+x2)/2,(y1+y2)/2,(x3+x2)/2,(y3+y2)/2);
if(n>13) return;
draw((x1+x3)/2,(x3+x2)/2,(y1+y3)/2,(y3+y2)/2,n,1);
draw(x1,(x1+x2)/2,y1,(y1+y2)/2,n,2);
draw((x1+x2)/2,x2,(y1+y2)/2,y2,n,3);
}
Sierpinski Carpet / Menger Sponge
Wacław Sierpiński in 1915
n = 8
r = 3
Box Counting : log(8) / log(3) = 1.8928
T - Square
T-square has a fractal dimension of
log(4)/log(2) = 2. The black surface
extent is almost everywhere in the
bigger square, for, once a point has
been darkened, it remains black for
every other iteration; however some
points remain maroon.
The fractal dimension of the boundary
equals log(3)/log(2)= 1.58496.
Koch Curve / Anti-snowflake
Helge von Koch in 1904
n = 4
r = 3
Box Counting : log(4) / log(3) = 1.2619
Generalised:
Angle between 0 and 90 deg
Polygon n-flake
Dragon Curve
NASA physicists John Heighway, Bruce Banks, and William Harter
n = 2
r = sqrt(2)
Box Counting : log(2) / log(sqrt(2)) = 2
Can be tiled in many ways
Levy’s C
Paul Pierre Lévy
dimension : 1.9340
Used in detecting cancerous blood vessels in
kidneys
Pythagorean Tree
Albert E. Bosman in 1942
n = 2
r = 2/sqrt(2)
Box Counting : log(2) / log(2/sqrt(2)) = 2
Barsley’s Fern
Michael Barnsley modeled ‘Black Spleenwort’
n = 4
1/2 < 1/r < 1/m
void draw(float x1,float x2, float y1, float y2,int n,int c )
{
float x3,y3,x4,y4,x5,y5,x,y;
n++;
x = x2 - x1;
y = y2 - y1;
x3 = ((x*0.91 * cos(34.64)) - (y*0.91 * sin(34.64))) + x2;
y3 = ((y*0.91 * cos(34.64)) + (x*0.91 * sin(34.64))) + y2;
x4 = ((x*0.6 * cos(34.49)) - (y*0.6 * sin(34.49))) + x2;
y4 = ((y*0.6 * cos(34.49)) + (x*0.6 * sin(34.49))) + y2;
x5 = ((x*0.8 * cos(34.9)) - (y*0.8 * sin(34.9))) + x2;
y5 = ((y*0.8 * cos(34.9)) + (x*0.8 * sin(34.9))) + y2;
setcolor( COLOR(25,n*7,0) );
line(x1,y1,x3,y3);
line(x3,y3,x5,y5);
if((x2-x3)<2) return;
draw(x3,x4,y3,y4,n,1);
draw(x3,x5,y3,y5,n,1);
draw(x3,x2,y3,y2,n,1);
}
Chaos Method
In mathematics, the term chaos game as coined by
Michael Barnsley, originally referred to a method of
creating a fractal, using a polygon and an initial point
selected at random inside it. The fractal is created by
iteratively creating a sequence of points, starting with the
initial random point, in which each point in the sequence
is a given fraction of the distance between the previous
point and one of the vertices of the polygon; the vertex is
chosen at random in each iteration. Repeating this
iterative process a large number of times, selecting the
vertex at random on each iteration, and throwing out the
first few points in the sequence, will often (but not
always) produce a fractal shape.
The "chaos game" method plots points in random order
all over the attractor. This is in contrast to other methods
of drawing fractals, which test each pixel on the screen
to see whether it belongs to the fractal. The general
shape of a fractal can be plotted quickly with the "chaos
game" method, but it may be difficult to plot some areas
of the fractal in detail.
Apollonian Gasket
Greek mathematician Apollonius of Perga
Hausdorff dimension of about 1.3057
Apollonian Networks
main() {
initwindow(1000, 750, "Apollonian");
double x0 = 0, y0 = 0, f1x, f1y, x1, y1, r = sqrt(3), temp;
for(int i = 0; i < 1000000; i++) {
temp = 3 * (1 + r - x0) / (pow(1 + r - x0,2.0) + y0*y0) - (1 + r) / (2+r);
y0 = 3 * y0 / (pow(1 + r - x0,2.0) + y0*y0);
x0 = temp;
f1x = x0 /(x0*x0 + y0*y0);
f1y = -y0 /(x0*x0 + y0*y0);
switch(rand()%3) {
case 0:
x1 = x0; y1 = y0;
break;
case 1:
x1 = -f1x/2 - f1y*r/2; y1 = f1x * r / 2 - f1y / 2;
break;
case 2:
x1 = -f1x / 2 + f1y * r / 2; y1 = -f1x * r / 2 - f1y / 2;
break; }
x0 = x1; y0 = y1;
putpixel(x0*80 + 500, y0*80 + 325,COLOR(180,i/100000,180)); }
writeimagefile("Apollonian.jpg", 0, 0, 1000, 750);
getch(); }
Quasi-symmetric Fractals
In ComputerGraphics systems, Quasi-symmetric fractals are
rendered by rate of convergence of a complex iterative function.
The steps are:
• x-y (column – row) place is modeled as Complex Plane
(Argand’s Plane)
• For each coordinatepixel generate an initial seed
• Iterate the complex function till a particularvalue is reached
(or for a fixed number of times)
• Colourregions based on the number of iterations taken to reach
the value (or value reached after fixed iterations)
Benoît Mandelbrot
zn+1 = zn
2
+ c
main() {
initwindow(1350,680,"IMAGE 1",0,0);
float cx,cy,z1x=0,z1y=0,zdum,z;
int k;
for(int i=1;i<1350;i++) {
for(int j=1;j<680;j++) {
cx=i*.0002-1.9;
cy=j*.0002-0.1;
z1x=0;z1y=0;
z=sqrt(pow(z1x,2)+pow(z1y,2));
for(k=1;k<100&&z<6;k++) {
zdum=pow(z1x,2)-pow(z1y,2)+cx;
z1y=2*fabs(z1x)*fabs(z1y)+cy;
z1x=zdum;
z=sqrt(pow(z1x,2)+pow(z1y,2)); }
if(k<9) {putpixel(i,j,COLOR(20,20,k*1.7));}
else if(k<19) {putpixel(i,j,COLOR(20,20,k*30));}
else if(k<40) {putpixel(i,j,COLOR(180-k*20,180-k*20,20));}
else if(k<90) {putpixel(i,j,COLOR(180-k*10,20,20));}
else putpixel(i,j,COLOR(0,0,0)); }}
writeimagefile(“Burning Ship.jpeg",0,0,1350,680);
getch(); }
Mandelbrot
Orbit Traps
Colour each pixel based on minimum distance of z achieved from a fixed
point during n-iteration.
It has two types:
1. Point Based
2. Line Based e.g. Pickover Stalks
Random Counters
The Buddhabrot is rendered by first creating a 2-dimensional array of counters, each
counter corresponding to a final pixel of the image initialized to zero. A random
sampling of c points are iterated through the Mandelbrot function. For points which do
escape within a chosen maximum number of iterations, thus not in the Mandelbrot set,
their values are sent through the Mandelbrot function again and this time its path is
plotted into the array. After a large number of c values have been iterated, grayscale
shades are then chosen based on the values recorded in the array. The result is a density
plot highlighting regions where z values spend the most time on their way to infinity.
1993 Usenet post to scientific fractals by Melinda Green first mentions it.
Julia
Gaston Julia and Pierre Fatou
zn+1 = zn
2 + c
z2x=pow(z1x,2)-pow(z1y,2)-0.835;
z2y=2*z1x*z1y-0.212;
z=sqrt(pow(z2x,2)+pow(z2y,2));
z1x=z2x;
z1y=z2y;
Burning Ship
Michael Michelitsch and Otto E. Rössler in 1992
main() {
initwindow(1350,680,"IMAGE 1",0,0);
float cx,cy,z1x=0,z1y=0,zdum,z; int k;
for(int i=1;i<1350;i++) {
for(int j=1;j<680;j++) {
cx=i*.0002-1.9;
cy=j*.0002-0.1;
z1x=0;z1y=0;
z=sqrt(pow(z1x,2)+pow(z1y,2));
for(k=1;k<100&&z<6;k++) {
zdum=pow(z1x,2)-pow(z1y,2)+cx;
z1y=2*fabs(z1x)*fabs(z1y)+cy;
z1x=zdum;
z=sqrt(pow(z1x,2)+pow(z1y,2)); }
if(k<9) {putpixel(i,j,COLOR(20,20,k*1.7));}
else if(k<19) {putpixel(i,j,COLOR(20,20,k*30));}
else if(k<40) {putpixel(i,j,COLOR(180-k*20,180-k*20,20));}
else if(k<90) {putpixel(i,j,COLOR(180-k*10,20,20));}
else putpixel(i,j,COLOR(0,0,0)); }}
writeimagefile(“Burning Ship.jpeg",0,0,1350,680);
getch(); }
Phoenix
Zn+1 = Z2
n + Re(C) + Im(C)*Zn-1
where: C = Re(C)+i*Im(C), Re(C) and Im(C) are x and y coordinates.
Initial value of Z = 0
Glynn Set
Earl F. Glynn, from Julia Set
z = ze + mu where: mu=a+bi & e = 1.5
main() {
initwindow(1335,680,"IMAGE 1",0,0);
float cx,cy,z1x=0,z1y=0,zdum1,zdum2,znxt=0,zprex,zprey,th;
int k;
for(int i=1;i<1350;i++) {
for(int j=1;j<680;j++) {
cy=i*.00028-0.1872;
cx=j*-0.00043-0.392;
z1x=cx; z1y=cy;
zdum1=cx;zdum2=cy;
for(k=1;(k<100&&(zdum1+zdum2)<16);k++) {
zdum1=z1x*z1x;
zdum2=z1y*z1y;
th=atan2(z1y,z1x);
z1x=pow(sqrt(zdum1+zdum2),1.5)*cos(1.5*th)-0.2;
z1y=pow(sqrt(zdum1+zdum2),1.5)*sin(1.5*th)-0.0; }
putpixel(i,j,COLOR(abs(z1y-340)/abs(z1x-775),k*2.5,60)); }}
writeimagefile(“Glynn.jpeg",0,0,1335,680);
getch(); }
Diffusion-limited aggregation
Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a
random walk due to Brownian motion cluster together to form aggregates of such particles.
This theory, proposed by Witten and Sander in 1981, is applicable to aggregation in any
system where diffusion is the primary means of transport in the system. DLA can be
observed in many systems such as electro-deposition, Hele-Shaw flow, mineral deposits,
and dielectric breakdown.
The clusters formed in DLA processes are referred to as Brownian trees. These clusters are
an example of a fractal. In 2-D these fractals exhibit a dimension of approximately 1.71 for
free particles that are unrestricted by a lattice
3D Fractals - Mandelbulb
Requires ray-tracing or similar colouring techinques and Quaternion Mathematics
Surface Rendering
Extension of Geometric Fractals, in 3 dimension
May use noise models (e.g. Perlin Noise)
Used extensively in Computer Games and Animated movies
E.g. StarWars Death Star, Star Trek Borg Cubes
Living on the Edge
Fractals are widely known as the Equations of Nature, they
are also the Boundary of Chaos.
The present universe can also be modeled as Fractal
Universe, with us at the boundary of a chaotic creation. The
perfect parameters that created the beauty of nature, as we
know it. The best variability possible, keeping the system
stable. A slight shift, and all would have been chaotic.
References
“The Fractal Geometry of Nature” by Benoit Mandelbrot
http://www.bugman123.com/Fractals/index.html
http://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimens
ion
“IntroducingFractals:A Graphic Guide” by Nigel Lesmoir-Gordon
“Chaos:A Very Short Introduction”by Leonard A. Smith
“Chaos” by James Gleick
……. and Google image search
Acknowledgements
I would like to take this opportunity to thank
Harsh Agarwal
Aerospace, IIST, 2009 Batch
for teaching me the basics of Fractal Programming
in Developer C++ in our 2nd Semester (Feb – May 2010)
and all the participants of
Conscientia 2011
R-Dimension (Fractal Rendering Workshop)
conducted by Harsh Agarwal and me,
for the valuable discussion sessions

More Related Content

What's hot

OpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and TerrianOpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and TerrianMohammad Shaker
 
Answers sign-charts
Answers sign-chartsAnswers sign-charts
Answers sign-chartsmath126
 
The Visual Terminator
The Visual TerminatorThe Visual Terminator
The Visual TerminatorMichele Lanza
 
Of Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareOf Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareMichele Lanza
 
Software Visualization 101+
Software Visualization 101+Software Visualization 101+
Software Visualization 101+Michele Lanza
 
Software Visualization - Promises & Perils
Software Visualization - Promises & PerilsSoftware Visualization - Promises & Perils
Software Visualization - Promises & PerilsMichele Lanza
 
CRL 1.8 functions MrG 2011.0920 - sage
CRL 1.8 functions MrG 2011.0920  - sageCRL 1.8 functions MrG 2011.0920  - sage
CRL 1.8 functions MrG 2011.0920 - sageA Jorge Garcia
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talkshonjo2
 
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)Daniel Luxemburg
 
Lecture01 fractals
Lecture01 fractalsLecture01 fractals
Lecture01 fractalsvijay bane
 
Derivatives Lesson Oct 14
Derivatives Lesson  Oct 14Derivatives Lesson  Oct 14
Derivatives Lesson Oct 14ingroy
 
Gaussian Image Blurring in CUDA C++
Gaussian Image Blurring in CUDA C++Gaussian Image Blurring in CUDA C++
Gaussian Image Blurring in CUDA C++Darshan Parsana
 
25 Years of C++ History Flashed in Front of My Eyes
25 Years of C++ History Flashed in Front of My Eyes25 Years of C++ History Flashed in Front of My Eyes
25 Years of C++ History Flashed in Front of My EyesYauheni Akhotnikau
 

What's hot (20)

Sim1
Sim1Sim1
Sim1
 
OpenGL L06-Performance
OpenGL L06-PerformanceOpenGL L06-Performance
OpenGL L06-Performance
 
OpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and TerrianOpenGL L07-Skybox and Terrian
OpenGL L07-Skybox and Terrian
 
Answers sign-charts
Answers sign-chartsAnswers sign-charts
Answers sign-charts
 
cpp_sample
cpp_samplecpp_sample
cpp_sample
 
متاپست (MetaPost)
متاپست (MetaPost)متاپست (MetaPost)
متاپست (MetaPost)
 
The Visual Terminator
The Visual TerminatorThe Visual Terminator
The Visual Terminator
 
Of Code and Change: Beautiful Software
Of Code and Change: Beautiful SoftwareOf Code and Change: Beautiful Software
Of Code and Change: Beautiful Software
 
Software Visualization 101+
Software Visualization 101+Software Visualization 101+
Software Visualization 101+
 
Software Visualization - Promises & Perils
Software Visualization - Promises & PerilsSoftware Visualization - Promises & Perils
Software Visualization - Promises & Perils
 
CRL 1.8 Functions
CRL 1.8 FunctionsCRL 1.8 Functions
CRL 1.8 Functions
 
Math 3-H6
Math 3-H6Math 3-H6
Math 3-H6
 
CRL 1.8 functions MrG 2011.0920 - sage
CRL 1.8 functions MrG 2011.0920  - sageCRL 1.8 functions MrG 2011.0920  - sage
CRL 1.8 functions MrG 2011.0920 - sage
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talks
 
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)
Exploring Color Spaces
 with Gesture Tracking and Smart Bulbs (Distill 2014)
 
Lecture01 fractals
Lecture01 fractalsLecture01 fractals
Lecture01 fractals
 
Derivatives Lesson Oct 14
Derivatives Lesson  Oct 14Derivatives Lesson  Oct 14
Derivatives Lesson Oct 14
 
Crypto lecture PDF
Crypto lecture PDFCrypto lecture PDF
Crypto lecture PDF
 
Gaussian Image Blurring in CUDA C++
Gaussian Image Blurring in CUDA C++Gaussian Image Blurring in CUDA C++
Gaussian Image Blurring in CUDA C++
 
25 Years of C++ History Flashed in Front of My Eyes
25 Years of C++ History Flashed in Front of My Eyes25 Years of C++ History Flashed in Front of My Eyes
25 Years of C++ History Flashed in Front of My Eyes
 

Similar to Fractal Rendering in Developer C++ - 2012-11-06

Computer graphics lab manual
Computer graphics lab manualComputer graphics lab manual
Computer graphics lab manualUma mohan
 
Fourier series example
Fourier series exampleFourier series example
Fourier series exampleAbi finni
 
talk at Virginia Bioinformatics Institute, December 5, 2013
talk at Virginia Bioinformatics Institute, December 5, 2013talk at Virginia Bioinformatics Institute, December 5, 2013
talk at Virginia Bioinformatics Institute, December 5, 2013ericupnorth
 
DSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxDSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxMUMAR57
 
Cascades Demo Secrets
Cascades Demo SecretsCascades Demo Secrets
Cascades Demo Secretsicastano
 
Solutions Manual for Calculus Early Transcendentals 10th Edition by Anton
Solutions Manual for Calculus Early Transcendentals 10th Edition by AntonSolutions Manual for Calculus Early Transcendentals 10th Edition by Anton
Solutions Manual for Calculus Early Transcendentals 10th Edition by AntonPamelaew
 
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Mozaic Works
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturialWayne Tsai
 
Intro to Python (High School) Unit #3
Intro to Python (High School) Unit #3Intro to Python (High School) Unit #3
Intro to Python (High School) Unit #3Jay Coskey
 
Crib Sheet AP Calculus AB and BC exams
Crib Sheet AP Calculus AB and BC examsCrib Sheet AP Calculus AB and BC exams
Crib Sheet AP Calculus AB and BC examsA Jorge Garcia
 
10CSL67 CG LAB PROGRAM 1
10CSL67 CG LAB PROGRAM 110CSL67 CG LAB PROGRAM 1
10CSL67 CG LAB PROGRAM 1Vanishree Arun
 
Calculus Early Transcendentals 10th Edition Anton Solutions Manual
Calculus Early Transcendentals 10th Edition Anton Solutions ManualCalculus Early Transcendentals 10th Edition Anton Solutions Manual
Calculus Early Transcendentals 10th Edition Anton Solutions Manualnodyligomi
 
対応点を用いないローリングシャッタ歪み補正と映像安定化論文
対応点を用いないローリングシャッタ歪み補正と映像安定化論文対応点を用いないローリングシャッタ歪み補正と映像安定化論文
対応点を用いないローリングシャッタ歪み補正と映像安定化論文doboncho
 
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps종빈 오
 

Similar to Fractal Rendering in Developer C++ - 2012-11-06 (20)

Computer graphics lab manual
Computer graphics lab manualComputer graphics lab manual
Computer graphics lab manual
 
Fourier series example
Fourier series exampleFourier series example
Fourier series example
 
talk at Virginia Bioinformatics Institute, December 5, 2013
talk at Virginia Bioinformatics Institute, December 5, 2013talk at Virginia Bioinformatics Institute, December 5, 2013
talk at Virginia Bioinformatics Institute, December 5, 2013
 
DSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxDSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docx
 
Cascades Demo Secrets
Cascades Demo SecretsCascades Demo Secrets
Cascades Demo Secrets
 
Monte carlo
Monte carloMonte carlo
Monte carlo
 
Matlab file
Matlab file Matlab file
Matlab file
 
Finger detection
Finger detectionFinger detection
Finger detection
 
Teknik Simulasi
Teknik SimulasiTeknik Simulasi
Teknik Simulasi
 
Solutions Manual for Calculus Early Transcendentals 10th Edition by Anton
Solutions Manual for Calculus Early Transcendentals 10th Edition by AntonSolutions Manual for Calculus Early Transcendentals 10th Edition by Anton
Solutions Manual for Calculus Early Transcendentals 10th Edition by Anton
 
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturial
 
kactl.pdf
kactl.pdfkactl.pdf
kactl.pdf
 
Intro to Python (High School) Unit #3
Intro to Python (High School) Unit #3Intro to Python (High School) Unit #3
Intro to Python (High School) Unit #3
 
Crib Sheet AP Calculus AB and BC exams
Crib Sheet AP Calculus AB and BC examsCrib Sheet AP Calculus AB and BC exams
Crib Sheet AP Calculus AB and BC exams
 
10CSL67 CG LAB PROGRAM 1
10CSL67 CG LAB PROGRAM 110CSL67 CG LAB PROGRAM 1
10CSL67 CG LAB PROGRAM 1
 
Calculus Early Transcendentals 10th Edition Anton Solutions Manual
Calculus Early Transcendentals 10th Edition Anton Solutions ManualCalculus Early Transcendentals 10th Edition Anton Solutions Manual
Calculus Early Transcendentals 10th Edition Anton Solutions Manual
 
対応点を用いないローリングシャッタ歪み補正と映像安定化論文
対応点を用いないローリングシャッタ歪み補正と映像安定化論文対応点を用いないローリングシャッタ歪み補正と映像安定化論文
対応点を用いないローリングシャッタ歪み補正と映像安定化論文
 
raster algorithm.pdf
raster algorithm.pdfraster algorithm.pdf
raster algorithm.pdf
 
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps
[shaderx5] 4.2 Multisampling Extension for Gradient Shadow Maps
 

More from Aritra Sarkar

Quantum computation: past-now-future - 2021-06-19
Quantum computation: past-now-future - 2021-06-19Quantum computation: past-now-future - 2021-06-19
Quantum computation: past-now-future - 2021-06-19Aritra Sarkar
 
Virus, Vaccines, Genes and Quantum - 2020-06-18
Virus, Vaccines, Genes and Quantum - 2020-06-18Virus, Vaccines, Genes and Quantum - 2020-06-18
Virus, Vaccines, Genes and Quantum - 2020-06-18Aritra Sarkar
 
Quantum computing - 2021-01-09
Quantum computing - 2021-01-09Quantum computing - 2021-01-09
Quantum computing - 2021-01-09Aritra Sarkar
 
Quantum for Healthcare - 2020-07-14
Quantum for Healthcare - 2020-07-14Quantum for Healthcare - 2020-07-14
Quantum for Healthcare - 2020-07-14Aritra Sarkar
 
Genomics algorithms on digital NISQ accelerators - 2019-01-25
Genomics algorithms on digital NISQ accelerators - 2019-01-25Genomics algorithms on digital NISQ accelerators - 2019-01-25
Genomics algorithms on digital NISQ accelerators - 2019-01-25Aritra Sarkar
 
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23Aritra Sarkar
 
QX Simulator and quantum programming - 2020-04-28
QX Simulator and quantum programming - 2020-04-28QX Simulator and quantum programming - 2020-04-28
QX Simulator and quantum programming - 2020-04-28Aritra Sarkar
 
ASTROSAT SSR - 2015-05-15
ASTROSAT SSR - 2015-05-15ASTROSAT SSR - 2015-05-15
ASTROSAT SSR - 2015-05-15Aritra Sarkar
 
Ccsds based file delivery protocol (cfdp) v1p3
Ccsds based file delivery protocol (cfdp) v1p3Ccsds based file delivery protocol (cfdp) v1p3
Ccsds based file delivery protocol (cfdp) v1p3Aritra Sarkar
 
Optimized Multi-agent Box-pushing - 2017-10-24
Optimized Multi-agent Box-pushing - 2017-10-24Optimized Multi-agent Box-pushing - 2017-10-24
Optimized Multi-agent Box-pushing - 2017-10-24Aritra Sarkar
 
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...Aritra Sarkar
 
Jupiter - The gas giant - 2012-11-06
Jupiter - The gas giant - 2012-11-06Jupiter - The gas giant - 2012-11-06
Jupiter - The gas giant - 2012-11-06Aritra Sarkar
 
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04Aritra Sarkar
 
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19Aritra Sarkar
 
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...Aritra Sarkar
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Aritra Sarkar
 
Artificial Intelligence for Robotics - Statement of Accomplishment
Artificial Intelligence for Robotics - Statement of AccomplishmentArtificial Intelligence for Robotics - Statement of Accomplishment
Artificial Intelligence for Robotics - Statement of AccomplishmentAritra Sarkar
 
Machine Learning - Statement of Accomplishment
Machine Learning - Statement of AccomplishmentMachine Learning - Statement of Accomplishment
Machine Learning - Statement of AccomplishmentAritra Sarkar
 
Introduction to Artificial Intelligence - Statement of Accomplishment
Introduction to Artificial Intelligence - Statement of AccomplishmentIntroduction to Artificial Intelligence - Statement of Accomplishment
Introduction to Artificial Intelligence - Statement of AccomplishmentAritra Sarkar
 

More from Aritra Sarkar (20)

Quantum computation: past-now-future - 2021-06-19
Quantum computation: past-now-future - 2021-06-19Quantum computation: past-now-future - 2021-06-19
Quantum computation: past-now-future - 2021-06-19
 
Virus, Vaccines, Genes and Quantum - 2020-06-18
Virus, Vaccines, Genes and Quantum - 2020-06-18Virus, Vaccines, Genes and Quantum - 2020-06-18
Virus, Vaccines, Genes and Quantum - 2020-06-18
 
Quantum computing - 2021-01-09
Quantum computing - 2021-01-09Quantum computing - 2021-01-09
Quantum computing - 2021-01-09
 
CV Aritra 08-2020
CV Aritra 08-2020CV Aritra 08-2020
CV Aritra 08-2020
 
Quantum for Healthcare - 2020-07-14
Quantum for Healthcare - 2020-07-14Quantum for Healthcare - 2020-07-14
Quantum for Healthcare - 2020-07-14
 
Genomics algorithms on digital NISQ accelerators - 2019-01-25
Genomics algorithms on digital NISQ accelerators - 2019-01-25Genomics algorithms on digital NISQ accelerators - 2019-01-25
Genomics algorithms on digital NISQ accelerators - 2019-01-25
 
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
HiPEAC'19 Tutorial on Quantum algorithms using QX - 2019-01-23
 
QX Simulator and quantum programming - 2020-04-28
QX Simulator and quantum programming - 2020-04-28QX Simulator and quantum programming - 2020-04-28
QX Simulator and quantum programming - 2020-04-28
 
ASTROSAT SSR - 2015-05-15
ASTROSAT SSR - 2015-05-15ASTROSAT SSR - 2015-05-15
ASTROSAT SSR - 2015-05-15
 
Ccsds based file delivery protocol (cfdp) v1p3
Ccsds based file delivery protocol (cfdp) v1p3Ccsds based file delivery protocol (cfdp) v1p3
Ccsds based file delivery protocol (cfdp) v1p3
 
Optimized Multi-agent Box-pushing - 2017-10-24
Optimized Multi-agent Box-pushing - 2017-10-24Optimized Multi-agent Box-pushing - 2017-10-24
Optimized Multi-agent Box-pushing - 2017-10-24
 
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...
Computer-Vision based Centralized Multi-agent System on Matlab and Arduino Du...
 
Jupiter - The gas giant - 2012-11-06
Jupiter - The gas giant - 2012-11-06Jupiter - The gas giant - 2012-11-06
Jupiter - The gas giant - 2012-11-06
 
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04
DuinOS controlled Rover with MATLAB 2009 and Android GingerBread - 2012-11-04
 
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
 
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...
Self-configuring Classical Logic Gate Circuits using Genetic Programming in J...
 
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
Elevation mapping using stereo vision enabled heterogeneous multi-agent robot...
 
Artificial Intelligence for Robotics - Statement of Accomplishment
Artificial Intelligence for Robotics - Statement of AccomplishmentArtificial Intelligence for Robotics - Statement of Accomplishment
Artificial Intelligence for Robotics - Statement of Accomplishment
 
Machine Learning - Statement of Accomplishment
Machine Learning - Statement of AccomplishmentMachine Learning - Statement of Accomplishment
Machine Learning - Statement of Accomplishment
 
Introduction to Artificial Intelligence - Statement of Accomplishment
Introduction to Artificial Intelligence - Statement of AccomplishmentIntroduction to Artificial Intelligence - Statement of Accomplishment
Introduction to Artificial Intelligence - Statement of Accomplishment
 

Recently uploaded

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Recently uploaded (20)

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Fractal Rendering in Developer C++ - 2012-11-06

  • 1. Fractal Rendering in Developer C++ Computer Graphics Seminar Aritra Sarkar SC09B009 Department of Avionics Indian Instituteof Space Science and Technology
  • 2. Coding Platform Developer C++ BloodshedDev-C++ is a full-featured Integrated Development Environment (IDE) for the C and C++ programming languages. It uses the MinGW or TDM-GCC 64bit port of the GCC as its compiler. Dev-C++ can also be used in combination with Cygwin or any otherGCC-based compiler Main Package used graphics.h windows.h Other options:Apophysis, XaoS, Terragen, Ultra Fractal
  • 3. Syntax for graphics #include<iostream.h> #include<graphics.h> #include<conio.h> #include<stdlib.h> #include<windows.h> #include<stdio.h> void draw(float,float,float,float,int,int); main() { initwindow(1350,680,"IMAGE 1",0,0); // variable initialization draw(x1,x2,y1,y2,n,4); writeimagefile(“Fern.jpeg",0,0,1350,680); getch(); } void draw(float x1,float x2, float y1, float y2,int n,int c ) { //do something setcolor( COLOR(25,n*7,0) ); line(x1,y1,x3,y3); line(x3,y3,x5,y5); if((x2-x3)<2) return; draw(x3,x4,y3,y4,n,1); draw(x3,x5,y3,y5,n,1); draw(x3,x2,y3,y2,n,1); }
  • 4. Geometry The two branches  Euclidian ~300BC  Fractal ~1975 (17th century ?)
  • 5. The Inventors The two branches  Euclid  Benoit Mandelbrot
  • 8. The Britain Coastline The coastline paradox is the counterintuitive observation that the coastline of a landmass does not have a well-defined length. This results from the fractal-like properties of coastlines. The first recorded observation of this phenomenon was by Lewis Fry Richardson.
  • 11. Introduction to fractals A fractal is a mathematical set that has a fractal dimension that usuallyexceeds its topological dimension and may fall between the integers. Fractals are typically self-similar patterns, where self- similar means they are "the same from near as from far". Fractals may be exactly the same at every scale, or, they may be nearly the same at different scales. As mathematical equations, fractals are usually nowhere differentiable, which means that they cannot be measured in traditionalways. An infinite fractal curve can be perceived of as winding through space differently from an ordinary line, still being a 1-dimensional line yet having a fractal dimension indicating it also resembles a surface.
  • 12. • Irregularity locally and globally that is not easily described in traditional Euclidean geometric language • Simple and "perhaps recursive" definitions • Fine or detailed structure at arbitrarily small scales. • Self-similarity, which may be manifested as • Exact self-similarity: identical at all scales; e.g. Koch snowflake • Quasi self-similarity: approximates the same pattern at different scales; may contain small copies of the entire fractal in distorted and degenerate forms; e.g., the Mandelbrot set's satellites are approximations of the entire set, but not exact copies • Statistical self-similarity: repeats a pattern stochastically so numerical or statistical measures are preserved across scales; e.g., randomly generated fractals; the well-known example of the coastline of Britain, for which one would not expect to find a segment scaled and repeated as neatly as the repeated unit that defines, for example, the Koch snowflake • Qualitative self-similarity: as in a time series • Multi-fractal scaling: characterized by more than one fractal dimension or scaling rule Types and identification
  • 13. Objects that are rendered in Computer Graphics using fractals: Clouds River networks Fault lines Mountain ranges Craters Lightning bolts Coastlines Animal coloration patterns Romanesco broccoli Snow flakes Crystals Blood vessels and pulmonary vessels Ocean waves DNA Various vegetables (cauliflower, broccoli) Phenomenon that are rendered in Science using fractals (apart from the above): Heart rates Psychological subjective perception Heartbeat Fractal Universe Theory Earthquakes Applications
  • 14. Fractal antennas & transistor Fractal heat exchangers Digital imaging Urban growth Fractal landscape or Coastline complexity Enzyme/enzymology (Michaelis-Menten kinetics) Generation of new music Signal and image compression Creation of digital photographic enlargements Seismology, geology, archeology and geography Fractal in soil mechanics Computer and video game design Computer graphics Organic environments Fractography and fracture mechanics Generation of patterns for camouflage, such as MARPAT Technical analysis of price series Fractals in networks Neuroscience Pathology In technology
  • 15. Dimensions Topological Dimension < Hausdorff Dimension Box Counting : log(n) / log(r) n = number of partitions in each iteration 1/r = scaling factor of successive iterated parts
  • 16. Cantor Set/Dust Georg Cantor in 1883 Noise over transmission lines by Benoit Mandelbrot for IBM Fractal heartbeat n = 2 ; 0 <1/r < 1 1D set : log(2) / log(3) = 0.6309 2D dust : log(4) / log(3) = 1.2619 void draw(float x1, float x2, float y1, float y2, int n, int c ) { float x3,y3,x4,y4,x,y; n++; x=x2-x1; rectangle(x1,y1,x2,y1+30); setfillstyle(1,COLOR(180,180,180)); floodfill((x1+x2)/2,y1+10,COLOR(180,180,180)); if(n>6) return; draw(x1,x1+x/3,y1+80,y1+80,n,0); draw(x1+x*2/3,x2,y1+80,y1+80,n,0); }
  • 17. Vicsek Saltire and Cross n = 5 r = 3 Box Counting : log(5) / log(3) = 1.4649 The family of Vicsek fractals is one of the most important and frequently studied regular fractal classes, and it is of considerable interest to understand the dynamical processes on treelike fractal family.
  • 18. Sierpinski Triangle/Pyramid Wacław Sierpiński in 1915 n = 3 r = 2 Box Counting : log(3) / log(2) = 1.5849 void draw(float x1,float x2, float y1, float y2,int n,int c ) { float x3,y3,x,y; n++; x = x2 - x1; y = y2 - y1; x3 = ((x * cos(30.35)) - (y * sin(30.35))) + x1; y3 = ((y * cos(30.35)) + (x * sin(30.35))) + y1; line((x3+x2)/2,(y3+y2)/2,(x1+x3)/2,(y1+y3)/2); line((x1+x3)/2,(y1+y3)/2,(x1+x2)/2,(y1+y2)/2); line((x1+x2)/2,(y1+y2)/2,(x3+x2)/2,(y3+y2)/2); if(n>13) return; draw((x1+x3)/2,(x3+x2)/2,(y1+y3)/2,(y3+y2)/2,n,1); draw(x1,(x1+x2)/2,y1,(y1+y2)/2,n,2); draw((x1+x2)/2,x2,(y1+y2)/2,y2,n,3); }
  • 19. Sierpinski Carpet / Menger Sponge Wacław Sierpiński in 1915 n = 8 r = 3 Box Counting : log(8) / log(3) = 1.8928
  • 20. T - Square T-square has a fractal dimension of log(4)/log(2) = 2. The black surface extent is almost everywhere in the bigger square, for, once a point has been darkened, it remains black for every other iteration; however some points remain maroon. The fractal dimension of the boundary equals log(3)/log(2)= 1.58496.
  • 21. Koch Curve / Anti-snowflake Helge von Koch in 1904 n = 4 r = 3 Box Counting : log(4) / log(3) = 1.2619 Generalised: Angle between 0 and 90 deg Polygon n-flake
  • 22. Dragon Curve NASA physicists John Heighway, Bruce Banks, and William Harter n = 2 r = sqrt(2) Box Counting : log(2) / log(sqrt(2)) = 2 Can be tiled in many ways
  • 23. Levy’s C Paul Pierre Lévy dimension : 1.9340 Used in detecting cancerous blood vessels in kidneys
  • 24. Pythagorean Tree Albert E. Bosman in 1942 n = 2 r = 2/sqrt(2) Box Counting : log(2) / log(2/sqrt(2)) = 2
  • 25. Barsley’s Fern Michael Barnsley modeled ‘Black Spleenwort’ n = 4 1/2 < 1/r < 1/m void draw(float x1,float x2, float y1, float y2,int n,int c ) { float x3,y3,x4,y4,x5,y5,x,y; n++; x = x2 - x1; y = y2 - y1; x3 = ((x*0.91 * cos(34.64)) - (y*0.91 * sin(34.64))) + x2; y3 = ((y*0.91 * cos(34.64)) + (x*0.91 * sin(34.64))) + y2; x4 = ((x*0.6 * cos(34.49)) - (y*0.6 * sin(34.49))) + x2; y4 = ((y*0.6 * cos(34.49)) + (x*0.6 * sin(34.49))) + y2; x5 = ((x*0.8 * cos(34.9)) - (y*0.8 * sin(34.9))) + x2; y5 = ((y*0.8 * cos(34.9)) + (x*0.8 * sin(34.9))) + y2; setcolor( COLOR(25,n*7,0) ); line(x1,y1,x3,y3); line(x3,y3,x5,y5); if((x2-x3)<2) return; draw(x3,x4,y3,y4,n,1); draw(x3,x5,y3,y5,n,1); draw(x3,x2,y3,y2,n,1); }
  • 26. Chaos Method In mathematics, the term chaos game as coined by Michael Barnsley, originally referred to a method of creating a fractal, using a polygon and an initial point selected at random inside it. The fractal is created by iteratively creating a sequence of points, starting with the initial random point, in which each point in the sequence is a given fraction of the distance between the previous point and one of the vertices of the polygon; the vertex is chosen at random in each iteration. Repeating this iterative process a large number of times, selecting the vertex at random on each iteration, and throwing out the first few points in the sequence, will often (but not always) produce a fractal shape. The "chaos game" method plots points in random order all over the attractor. This is in contrast to other methods of drawing fractals, which test each pixel on the screen to see whether it belongs to the fractal. The general shape of a fractal can be plotted quickly with the "chaos game" method, but it may be difficult to plot some areas of the fractal in detail.
  • 27. Apollonian Gasket Greek mathematician Apollonius of Perga Hausdorff dimension of about 1.3057 Apollonian Networks main() { initwindow(1000, 750, "Apollonian"); double x0 = 0, y0 = 0, f1x, f1y, x1, y1, r = sqrt(3), temp; for(int i = 0; i < 1000000; i++) { temp = 3 * (1 + r - x0) / (pow(1 + r - x0,2.0) + y0*y0) - (1 + r) / (2+r); y0 = 3 * y0 / (pow(1 + r - x0,2.0) + y0*y0); x0 = temp; f1x = x0 /(x0*x0 + y0*y0); f1y = -y0 /(x0*x0 + y0*y0); switch(rand()%3) { case 0: x1 = x0; y1 = y0; break; case 1: x1 = -f1x/2 - f1y*r/2; y1 = f1x * r / 2 - f1y / 2; break; case 2: x1 = -f1x / 2 + f1y * r / 2; y1 = -f1x * r / 2 - f1y / 2; break; } x0 = x1; y0 = y1; putpixel(x0*80 + 500, y0*80 + 325,COLOR(180,i/100000,180)); } writeimagefile("Apollonian.jpg", 0, 0, 1000, 750); getch(); }
  • 28. Quasi-symmetric Fractals In ComputerGraphics systems, Quasi-symmetric fractals are rendered by rate of convergence of a complex iterative function. The steps are: • x-y (column – row) place is modeled as Complex Plane (Argand’s Plane) • For each coordinatepixel generate an initial seed • Iterate the complex function till a particularvalue is reached (or for a fixed number of times) • Colourregions based on the number of iterations taken to reach the value (or value reached after fixed iterations)
  • 29. Benoît Mandelbrot zn+1 = zn 2 + c main() { initwindow(1350,680,"IMAGE 1",0,0); float cx,cy,z1x=0,z1y=0,zdum,z; int k; for(int i=1;i<1350;i++) { for(int j=1;j<680;j++) { cx=i*.0002-1.9; cy=j*.0002-0.1; z1x=0;z1y=0; z=sqrt(pow(z1x,2)+pow(z1y,2)); for(k=1;k<100&&z<6;k++) { zdum=pow(z1x,2)-pow(z1y,2)+cx; z1y=2*fabs(z1x)*fabs(z1y)+cy; z1x=zdum; z=sqrt(pow(z1x,2)+pow(z1y,2)); } if(k<9) {putpixel(i,j,COLOR(20,20,k*1.7));} else if(k<19) {putpixel(i,j,COLOR(20,20,k*30));} else if(k<40) {putpixel(i,j,COLOR(180-k*20,180-k*20,20));} else if(k<90) {putpixel(i,j,COLOR(180-k*10,20,20));} else putpixel(i,j,COLOR(0,0,0)); }} writeimagefile(“Burning Ship.jpeg",0,0,1350,680); getch(); } Mandelbrot
  • 30. Orbit Traps Colour each pixel based on minimum distance of z achieved from a fixed point during n-iteration. It has two types: 1. Point Based 2. Line Based e.g. Pickover Stalks
  • 31. Random Counters The Buddhabrot is rendered by first creating a 2-dimensional array of counters, each counter corresponding to a final pixel of the image initialized to zero. A random sampling of c points are iterated through the Mandelbrot function. For points which do escape within a chosen maximum number of iterations, thus not in the Mandelbrot set, their values are sent through the Mandelbrot function again and this time its path is plotted into the array. After a large number of c values have been iterated, grayscale shades are then chosen based on the values recorded in the array. The result is a density plot highlighting regions where z values spend the most time on their way to infinity. 1993 Usenet post to scientific fractals by Melinda Green first mentions it.
  • 32. Julia Gaston Julia and Pierre Fatou zn+1 = zn 2 + c z2x=pow(z1x,2)-pow(z1y,2)-0.835; z2y=2*z1x*z1y-0.212; z=sqrt(pow(z2x,2)+pow(z2y,2)); z1x=z2x; z1y=z2y;
  • 33. Burning Ship Michael Michelitsch and Otto E. Rössler in 1992 main() { initwindow(1350,680,"IMAGE 1",0,0); float cx,cy,z1x=0,z1y=0,zdum,z; int k; for(int i=1;i<1350;i++) { for(int j=1;j<680;j++) { cx=i*.0002-1.9; cy=j*.0002-0.1; z1x=0;z1y=0; z=sqrt(pow(z1x,2)+pow(z1y,2)); for(k=1;k<100&&z<6;k++) { zdum=pow(z1x,2)-pow(z1y,2)+cx; z1y=2*fabs(z1x)*fabs(z1y)+cy; z1x=zdum; z=sqrt(pow(z1x,2)+pow(z1y,2)); } if(k<9) {putpixel(i,j,COLOR(20,20,k*1.7));} else if(k<19) {putpixel(i,j,COLOR(20,20,k*30));} else if(k<40) {putpixel(i,j,COLOR(180-k*20,180-k*20,20));} else if(k<90) {putpixel(i,j,COLOR(180-k*10,20,20));} else putpixel(i,j,COLOR(0,0,0)); }} writeimagefile(“Burning Ship.jpeg",0,0,1350,680); getch(); }
  • 34. Phoenix Zn+1 = Z2 n + Re(C) + Im(C)*Zn-1 where: C = Re(C)+i*Im(C), Re(C) and Im(C) are x and y coordinates. Initial value of Z = 0
  • 35. Glynn Set Earl F. Glynn, from Julia Set z = ze + mu where: mu=a+bi & e = 1.5 main() { initwindow(1335,680,"IMAGE 1",0,0); float cx,cy,z1x=0,z1y=0,zdum1,zdum2,znxt=0,zprex,zprey,th; int k; for(int i=1;i<1350;i++) { for(int j=1;j<680;j++) { cy=i*.00028-0.1872; cx=j*-0.00043-0.392; z1x=cx; z1y=cy; zdum1=cx;zdum2=cy; for(k=1;(k<100&&(zdum1+zdum2)<16);k++) { zdum1=z1x*z1x; zdum2=z1y*z1y; th=atan2(z1y,z1x); z1x=pow(sqrt(zdum1+zdum2),1.5)*cos(1.5*th)-0.2; z1y=pow(sqrt(zdum1+zdum2),1.5)*sin(1.5*th)-0.0; } putpixel(i,j,COLOR(abs(z1y-340)/abs(z1x-775),k*2.5,60)); }} writeimagefile(“Glynn.jpeg",0,0,1335,680); getch(); }
  • 36. Diffusion-limited aggregation Diffusion-limited aggregation (DLA) is the process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles. This theory, proposed by Witten and Sander in 1981, is applicable to aggregation in any system where diffusion is the primary means of transport in the system. DLA can be observed in many systems such as electro-deposition, Hele-Shaw flow, mineral deposits, and dielectric breakdown. The clusters formed in DLA processes are referred to as Brownian trees. These clusters are an example of a fractal. In 2-D these fractals exhibit a dimension of approximately 1.71 for free particles that are unrestricted by a lattice
  • 37. 3D Fractals - Mandelbulb Requires ray-tracing or similar colouring techinques and Quaternion Mathematics
  • 38. Surface Rendering Extension of Geometric Fractals, in 3 dimension May use noise models (e.g. Perlin Noise) Used extensively in Computer Games and Animated movies E.g. StarWars Death Star, Star Trek Borg Cubes
  • 39. Living on the Edge Fractals are widely known as the Equations of Nature, they are also the Boundary of Chaos. The present universe can also be modeled as Fractal Universe, with us at the boundary of a chaotic creation. The perfect parameters that created the beauty of nature, as we know it. The best variability possible, keeping the system stable. A slight shift, and all would have been chaotic.
  • 40. References “The Fractal Geometry of Nature” by Benoit Mandelbrot http://www.bugman123.com/Fractals/index.html http://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimens ion “IntroducingFractals:A Graphic Guide” by Nigel Lesmoir-Gordon “Chaos:A Very Short Introduction”by Leonard A. Smith “Chaos” by James Gleick ……. and Google image search
  • 41. Acknowledgements I would like to take this opportunity to thank Harsh Agarwal Aerospace, IIST, 2009 Batch for teaching me the basics of Fractal Programming in Developer C++ in our 2nd Semester (Feb – May 2010) and all the participants of Conscientia 2011 R-Dimension (Fractal Rendering Workshop) conducted by Harsh Agarwal and me, for the valuable discussion sessions