fractals 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +66 -0
- data/Rakefile +65 -0
- data/doc/classes/Fractals.html +169 -0
- data/doc/classes/Fractals/Algorithms.html +125 -0
- data/doc/classes/Fractals/BurningShip.html +172 -0
- data/doc/classes/Fractals/Fractal.html +261 -0
- data/doc/classes/Fractals/Julia.html +171 -0
- data/doc/classes/Fractals/Mandelbrot.html +172 -0
- data/doc/classes/Fractals/Newton.html +173 -0
- data/doc/classes/Fractals/Renderers.html +118 -0
- data/doc/classes/Fractals/Renderers/Base.html +496 -0
- data/doc/classes/Fractals/Renderers/JRubyRenderer.html +178 -0
- data/doc/classes/Fractals/Renderers/PNGRenderer.html +202 -0
- data/doc/classes/Fractals/Renderers/RMagickRenderer.html +210 -0
- data/doc/classes/Fractals/Themes.html +131 -0
- data/doc/created.rid +1 -0
- data/doc/files/README.html +180 -0
- data/doc/files/examples_rb.html +122 -0
- data/doc/files/gpl-2_0_txt.html +522 -0
- data/doc/files/lib/fractals/algorithms_rb.html +90 -0
- data/doc/files/lib/fractals/renderers_rb.html +104 -0
- data/doc/files/lib/fractals/themes_rb.html +90 -0
- data/doc/files/lib/fractals_rb.html +114 -0
- data/doc/fr_class_index.html +49 -0
- data/doc/fr_file_index.html +37 -0
- data/doc/fr_method_index.html +57 -0
- data/doc/index.html +21 -0
- data/doc/rdoc-style.css +299 -0
- data/examples.rb +101 -0
- data/gpl-2.0.txt +339 -0
- data/lib/fractals.rb +105 -0
- data/lib/fractals/algorithms.rb +35 -0
- data/lib/fractals/renderers.rb +169 -0
- data/lib/fractals/themes.rb +48 -0
- data/test/burning_ship_test.rb +19 -0
- data/test/julia_test.rb +20 -0
- data/test/mandelbrot_test.rb +19 -0
- data/test/newton_test.rb +20 -0
- data/test/renderer_test.rb +21 -0
- metadata +104 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<!--
|
5
|
+
|
6
|
+
Files [Ruby Fractal Library - 1.2.0]
|
7
|
+
|
8
|
+
-->
|
9
|
+
<head>
|
10
|
+
<title>Files [Ruby Fractal Library - 1.2.0]</title>
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
13
|
+
<base target="docwin" />
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<div class="index">
|
17
|
+
<h1 class="section-bar">Files</h1>
|
18
|
+
<div id="index-entries">
|
19
|
+
|
20
|
+
<a href="files/README.html">README</a><br />
|
21
|
+
|
22
|
+
<a href="files/examples_rb.html">examples.rb</a><br />
|
23
|
+
|
24
|
+
<a href="files/gpl-2_0_txt.html">gpl-2.0.txt</a><br />
|
25
|
+
|
26
|
+
<a href="files/lib/fractals_rb.html">lib/fractals.rb</a><br />
|
27
|
+
|
28
|
+
<a href="files/lib/fractals/algorithms_rb.html">lib/fractals/algorithms.rb</a><br />
|
29
|
+
|
30
|
+
<a href="files/lib/fractals/renderers_rb.html">lib/fractals/renderers.rb</a><br />
|
31
|
+
|
32
|
+
<a href="files/lib/fractals/themes_rb.html">lib/fractals/themes.rb</a><br />
|
33
|
+
|
34
|
+
</div>
|
35
|
+
</div>
|
36
|
+
</body>
|
37
|
+
</html>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<!--
|
5
|
+
|
6
|
+
Methods [Ruby Fractal Library - 1.2.0]
|
7
|
+
|
8
|
+
-->
|
9
|
+
<head>
|
10
|
+
<title>Methods [Ruby Fractal Library - 1.2.0]</title>
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
13
|
+
<base target="docwin" />
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<div class="index">
|
17
|
+
<h1 class="section-bar">Methods</h1>
|
18
|
+
<div id="index-entries">
|
19
|
+
|
20
|
+
<a href="classes/Fractals/Renderers/Base.html#M000010">acts_as_renderer (Fractals::Renderers::Base)</a><br />
|
21
|
+
|
22
|
+
<a href="classes/Fractals/Renderers/Base.html#M000007">in_set? (Fractals::Renderers::Base)</a><br />
|
23
|
+
|
24
|
+
<a href="classes/Fractals/Fractal.html#M000013">iterate (Fractals::Fractal)</a><br />
|
25
|
+
|
26
|
+
<a href="classes/Fractals/Renderers/Base.html#M000006">new (Fractals::Renderers::Base)</a><br />
|
27
|
+
|
28
|
+
<a href="classes/Fractals/Julia.html#M000015">new (Fractals::Julia)</a><br />
|
29
|
+
|
30
|
+
<a href="classes/Fractals/BurningShip.html#M000014">new (Fractals::BurningShip)</a><br />
|
31
|
+
|
32
|
+
<a href="classes/Fractals/Mandelbrot.html#M000016">new (Fractals::Mandelbrot)</a><br />
|
33
|
+
|
34
|
+
<a href="classes/Fractals/Fractal.html#M000012">new (Fractals::Fractal)</a><br />
|
35
|
+
|
36
|
+
<a href="classes/Fractals/Newton.html#M000017">new (Fractals::Newton)</a><br />
|
37
|
+
|
38
|
+
<a href="classes/Fractals/Renderers/Base.html#M000008">render (Fractals::Renderers::Base)</a><br />
|
39
|
+
|
40
|
+
<a href="classes/Fractals/Renderers/Base.html#M000009">renderer= (Fractals::Renderers::Base)</a><br />
|
41
|
+
|
42
|
+
<a href="classes/Fractals/Renderers/PNGRenderer.html#M000001">to_blob (Fractals::Renderers::PNGRenderer)</a><br />
|
43
|
+
|
44
|
+
<a href="classes/Fractals/Renderers/RMagickRenderer.html#M000003">to_blob (Fractals::Renderers::RMagickRenderer)</a><br />
|
45
|
+
|
46
|
+
<a href="classes/Fractals/Renderers/Base.html#M000011">where_is? (Fractals::Renderers::Base)</a><br />
|
47
|
+
|
48
|
+
<a href="classes/Fractals/Renderers/PNGRenderer.html#M000002">write (Fractals::Renderers::PNGRenderer)</a><br />
|
49
|
+
|
50
|
+
<a href="classes/Fractals/Renderers/JRubyRenderer.html#M000005">write (Fractals::Renderers::JRubyRenderer)</a><br />
|
51
|
+
|
52
|
+
<a href="classes/Fractals/Renderers/RMagickRenderer.html#M000004">write (Fractals::Renderers::RMagickRenderer)</a><br />
|
53
|
+
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</body>
|
57
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<!--
|
5
|
+
|
6
|
+
Ruby Fractal Library - 1.2.0
|
7
|
+
|
8
|
+
-->
|
9
|
+
<head>
|
10
|
+
<title>Ruby Fractal Library - 1.2.0</title>
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12
|
+
</head>
|
13
|
+
<frameset rows="20%, 80%">
|
14
|
+
<frameset cols="25%,35%,45%">
|
15
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
16
|
+
<frame src="fr_class_index.html" name="Classes" />
|
17
|
+
<frame src="fr_method_index.html" name="Methods" />
|
18
|
+
</frameset>
|
19
|
+
<frame src="files/README.html" name="docwin" />
|
20
|
+
</frameset>
|
21
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
@@ -0,0 +1,299 @@
|
|
1
|
+
body {
|
2
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
3
|
+
font-size: 90%;
|
4
|
+
margin: 0;
|
5
|
+
margin-left: 40px;
|
6
|
+
padding: 0;
|
7
|
+
background: white;
|
8
|
+
color: black;
|
9
|
+
}
|
10
|
+
|
11
|
+
h1, h2, h3, h4 {
|
12
|
+
margin: 0;
|
13
|
+
background: transparent;
|
14
|
+
}
|
15
|
+
|
16
|
+
h1 {
|
17
|
+
font-size: 150%;
|
18
|
+
}
|
19
|
+
|
20
|
+
h2,h3,h4 {
|
21
|
+
margin-top: 1em;
|
22
|
+
}
|
23
|
+
|
24
|
+
:link, :visited {
|
25
|
+
background: #eef;
|
26
|
+
color: #039;
|
27
|
+
text-decoration: none;
|
28
|
+
}
|
29
|
+
|
30
|
+
:link:hover, :visited:hover {
|
31
|
+
background: #039;
|
32
|
+
color: #eef;
|
33
|
+
}
|
34
|
+
|
35
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
36
|
+
td > :link, td > :visited {
|
37
|
+
background: transparent;
|
38
|
+
color: #039;
|
39
|
+
text-decoration: none;
|
40
|
+
}
|
41
|
+
|
42
|
+
/* and inside a section title */
|
43
|
+
.section-title > :link, .section-title > :visited {
|
44
|
+
background: transparent;
|
45
|
+
color: #eee;
|
46
|
+
text-decoration: none;
|
47
|
+
}
|
48
|
+
|
49
|
+
/* === Structural elements =================================== */
|
50
|
+
|
51
|
+
.index {
|
52
|
+
margin: 0;
|
53
|
+
margin-left: -40px;
|
54
|
+
padding: 0;
|
55
|
+
font-size: 90%;
|
56
|
+
}
|
57
|
+
|
58
|
+
.index :link, .index :visited {
|
59
|
+
margin-left: 0.7em;
|
60
|
+
}
|
61
|
+
|
62
|
+
.index .section-bar {
|
63
|
+
margin-left: 0px;
|
64
|
+
padding-left: 0.7em;
|
65
|
+
background: #ccc;
|
66
|
+
font-size: small;
|
67
|
+
}
|
68
|
+
|
69
|
+
#classHeader, #fileHeader {
|
70
|
+
width: auto;
|
71
|
+
color: white;
|
72
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
73
|
+
margin: 0;
|
74
|
+
margin-left: -40px;
|
75
|
+
border-bottom: 3px solid #006;
|
76
|
+
}
|
77
|
+
|
78
|
+
#classHeader :link, #fileHeader :link,
|
79
|
+
#classHeader :visited, #fileHeader :visited {
|
80
|
+
background: inherit;
|
81
|
+
color: white;
|
82
|
+
}
|
83
|
+
|
84
|
+
#classHeader td, #fileHeader td {
|
85
|
+
background: inherit;
|
86
|
+
color: white;
|
87
|
+
}
|
88
|
+
|
89
|
+
#fileHeader {
|
90
|
+
background: #057;
|
91
|
+
}
|
92
|
+
|
93
|
+
#classHeader {
|
94
|
+
background: #048;
|
95
|
+
}
|
96
|
+
|
97
|
+
.class-name-in-header {
|
98
|
+
font-size: 180%;
|
99
|
+
font-weight: bold;
|
100
|
+
}
|
101
|
+
|
102
|
+
#bodyContent {
|
103
|
+
padding: 0 1.5em 0 1.5em;
|
104
|
+
}
|
105
|
+
|
106
|
+
#description {
|
107
|
+
padding: 0.5em 1.5em;
|
108
|
+
background: #efefef;
|
109
|
+
border: 1px dotted #999;
|
110
|
+
}
|
111
|
+
|
112
|
+
#description h1, #description h2, #description h3,
|
113
|
+
#description h4, #description h5, #description h6 {
|
114
|
+
color: #125;
|
115
|
+
background: transparent;
|
116
|
+
}
|
117
|
+
|
118
|
+
#validator-badges {
|
119
|
+
text-align: center;
|
120
|
+
}
|
121
|
+
|
122
|
+
#validator-badges img {
|
123
|
+
border: 0;
|
124
|
+
}
|
125
|
+
|
126
|
+
#copyright {
|
127
|
+
color: #333;
|
128
|
+
background: #efefef;
|
129
|
+
font: 0.75em sans-serif;
|
130
|
+
margin-top: 5em;
|
131
|
+
margin-bottom: 0;
|
132
|
+
padding: 0.5em 2em;
|
133
|
+
}
|
134
|
+
|
135
|
+
/* === Classes =================================== */
|
136
|
+
|
137
|
+
table.header-table {
|
138
|
+
color: white;
|
139
|
+
font-size: small;
|
140
|
+
}
|
141
|
+
|
142
|
+
.type-note {
|
143
|
+
font-size: small;
|
144
|
+
color: #dedede;
|
145
|
+
}
|
146
|
+
|
147
|
+
.section-bar {
|
148
|
+
color: #333;
|
149
|
+
border-bottom: 1px solid #999;
|
150
|
+
margin-left: -20px;
|
151
|
+
}
|
152
|
+
|
153
|
+
.section-title {
|
154
|
+
background: #79a;
|
155
|
+
color: #eee;
|
156
|
+
padding: 3px;
|
157
|
+
margin-top: 2em;
|
158
|
+
margin-left: -30px;
|
159
|
+
border: 1px solid #999;
|
160
|
+
}
|
161
|
+
|
162
|
+
.top-aligned-row {
|
163
|
+
vertical-align: top
|
164
|
+
}
|
165
|
+
|
166
|
+
.bottom-aligned-row {
|
167
|
+
vertical-align: bottom
|
168
|
+
}
|
169
|
+
|
170
|
+
#diagram img {
|
171
|
+
border: 0;
|
172
|
+
}
|
173
|
+
|
174
|
+
/* --- Context section classes ----------------------- */
|
175
|
+
|
176
|
+
.context-row { }
|
177
|
+
|
178
|
+
.context-item-name {
|
179
|
+
font-family: monospace;
|
180
|
+
font-weight: bold;
|
181
|
+
color: black;
|
182
|
+
}
|
183
|
+
|
184
|
+
.context-item-value {
|
185
|
+
font-size: small;
|
186
|
+
color: #448;
|
187
|
+
}
|
188
|
+
|
189
|
+
.context-item-desc {
|
190
|
+
color: #333;
|
191
|
+
padding-left: 2em;
|
192
|
+
}
|
193
|
+
|
194
|
+
/* --- Method classes -------------------------- */
|
195
|
+
|
196
|
+
.method-detail {
|
197
|
+
background: #efefef;
|
198
|
+
padding: 0;
|
199
|
+
margin-top: 0.5em;
|
200
|
+
margin-bottom: 1em;
|
201
|
+
border: 1px dotted #ccc;
|
202
|
+
}
|
203
|
+
|
204
|
+
.method-heading {
|
205
|
+
color: black;
|
206
|
+
background: #ccc;
|
207
|
+
border-bottom: 1px solid #666;
|
208
|
+
padding: 0.2em 0.5em 0 0.5em;
|
209
|
+
}
|
210
|
+
|
211
|
+
.method-signature {
|
212
|
+
color: black;
|
213
|
+
background: inherit;
|
214
|
+
}
|
215
|
+
|
216
|
+
.method-name {
|
217
|
+
font-weight: bold;
|
218
|
+
}
|
219
|
+
|
220
|
+
.method-args {
|
221
|
+
font-style: italic;
|
222
|
+
}
|
223
|
+
|
224
|
+
.method-description {
|
225
|
+
padding: 0 0.5em 0 0.5em;
|
226
|
+
}
|
227
|
+
|
228
|
+
/* --- Source code sections -------------------- */
|
229
|
+
|
230
|
+
:link.source-toggle, :visited.source-toggle {
|
231
|
+
font-size: 90%;
|
232
|
+
}
|
233
|
+
|
234
|
+
div.method-source-code {
|
235
|
+
background: #262626;
|
236
|
+
color: #ffdead;
|
237
|
+
margin: 1em;
|
238
|
+
padding: 0.5em;
|
239
|
+
border: 1px dashed #999;
|
240
|
+
overflow: auto;
|
241
|
+
}
|
242
|
+
|
243
|
+
div.method-source-code pre {
|
244
|
+
color: #ffdead;
|
245
|
+
}
|
246
|
+
|
247
|
+
/* --- Ruby keyword styles --------------------- */
|
248
|
+
|
249
|
+
.standalone-code {
|
250
|
+
background: #221111;
|
251
|
+
color: #ffdead;
|
252
|
+
overflow: auto;
|
253
|
+
}
|
254
|
+
|
255
|
+
.ruby-constant {
|
256
|
+
color: #7fffd4;
|
257
|
+
background: transparent;
|
258
|
+
}
|
259
|
+
|
260
|
+
.ruby-keyword {
|
261
|
+
color: #00ffff;
|
262
|
+
background: transparent;
|
263
|
+
}
|
264
|
+
|
265
|
+
.ruby-ivar {
|
266
|
+
color: #eedd82;
|
267
|
+
background: transparent;
|
268
|
+
}
|
269
|
+
|
270
|
+
.ruby-operator {
|
271
|
+
color: #00ffee;
|
272
|
+
background: transparent;
|
273
|
+
}
|
274
|
+
|
275
|
+
.ruby-identifier {
|
276
|
+
color: #ffdead;
|
277
|
+
background: transparent;
|
278
|
+
}
|
279
|
+
|
280
|
+
.ruby-node {
|
281
|
+
color: #ffa07a;
|
282
|
+
background: transparent;
|
283
|
+
}
|
284
|
+
|
285
|
+
.ruby-comment {
|
286
|
+
color: #b22222;
|
287
|
+
font-weight: bold;
|
288
|
+
background: transparent;
|
289
|
+
}
|
290
|
+
|
291
|
+
.ruby-regexp {
|
292
|
+
color: #ffa07a;
|
293
|
+
background: transparent;
|
294
|
+
}
|
295
|
+
|
296
|
+
.ruby-value {
|
297
|
+
color: #7fffd4;
|
298
|
+
background: transparent;
|
299
|
+
}
|
data/examples.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
# This file contains a few examples. View the source code for more information.
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'fractals'
|
5
|
+
require 'RMagick'
|
6
|
+
|
7
|
+
include Fractals
|
8
|
+
|
9
|
+
# Just as version 1.0.0, creating a fractal is as easy as:
|
10
|
+
mandelbrot = Mandelbrot.new
|
11
|
+
mandelbrot.write
|
12
|
+
|
13
|
+
# Or...
|
14
|
+
Mandelbrot.new.write
|
15
|
+
|
16
|
+
|
17
|
+
# Each of the expression's arguments can be modified using a Hash.
|
18
|
+
newton = Newton.new
|
19
|
+
newton.args = {:a => -0.5, :pz => lambda { |z| z**3 - 1 }}
|
20
|
+
newton.write('newton.png')
|
21
|
+
|
22
|
+
|
23
|
+
# New orbits fractals can be constructed by either inheriting from Fractal or
|
24
|
+
# instantiating it directly. The complex number args[:c] is added to the
|
25
|
+
# argument Hash during iteration.
|
26
|
+
fractal = Fractal.new(Complex(0.0, 0.0), {:p => 2}) do |args|
|
27
|
+
args[:z] = args[:z]**args[:p] +
|
28
|
+
Math.sqrt(args[:c])
|
29
|
+
end
|
30
|
+
fractal.write('new.png')
|
31
|
+
|
32
|
+
|
33
|
+
# Every property has a default value. In this example I've chosen to override
|
34
|
+
# quite a few of them. The result produces an image that looks similar to a
|
35
|
+
# snowflake.
|
36
|
+
snowflakes = Julia.new(Complex(-0.3007, 0.6601))
|
37
|
+
snowflakes.bailout = 5
|
38
|
+
snowflakes.max_iterations = 100
|
39
|
+
snowflakes.algorithm = Algorithms::NormalizedIterationCount
|
40
|
+
snowflakes.theme = Themes::Winter
|
41
|
+
snowflakes.set_color = [255, 255, 255]
|
42
|
+
snowflakes.write('snowflakes.png')
|
43
|
+
|
44
|
+
|
45
|
+
# Here I'm creating an animated fractal using RMagick and the RMagickRenderer's
|
46
|
+
# to_blob method. This is both CPU and memory intensive so act accordingly.
|
47
|
+
# This is about as complicated as it gets.
|
48
|
+
feigenbaum = Mandelbrot.new(Complex(-0.1528, 1.0397))
|
49
|
+
feigenbaum.max_iterations = 100
|
50
|
+
feigenbaum.renderer = Renderers::RMagickRenderer
|
51
|
+
feigenbaum.width = 150
|
52
|
+
feigenbaum.height = 150
|
53
|
+
feigenbaum.magnification = 25
|
54
|
+
feigenbaum.algorithm = Algorithms::NormalizedIterationCount
|
55
|
+
feigenbaum.theme = Themes::Water
|
56
|
+
|
57
|
+
image_list = Magick::ImageList.new
|
58
|
+
image_list.delay = 100
|
59
|
+
image_list.iterations = 1
|
60
|
+
|
61
|
+
(0...50).each { |i|
|
62
|
+
feigenbaum.magnification += (i**2)
|
63
|
+
image_list << Magick::Image.from_blob(feigenbaum.to_blob('gif'))[0]
|
64
|
+
}
|
65
|
+
|
66
|
+
image_list.write('feigenbaum.gif')
|
67
|
+
|
68
|
+
|
69
|
+
# Some interesting fractals:
|
70
|
+
|
71
|
+
# The Mandelbrot "satellite".
|
72
|
+
satellite = Mandelbrot.new(Complex(-0.743643135, 0.131825963))
|
73
|
+
satellite.max_iterations = 1500
|
74
|
+
satellite.magnification = 200000
|
75
|
+
satellite.renderer = Renderers::RMagickRenderer
|
76
|
+
satellite.write('satellite.jpg')
|
77
|
+
|
78
|
+
# The Feigenbaum Point.
|
79
|
+
feigenbaum = Mandelbrot.new(Complex(-0.1528, 1.0397))
|
80
|
+
feigenbaum.magnification = 25
|
81
|
+
feigenbaum.algorithm = Algorithms::NormalizedIterationCount
|
82
|
+
feigenbaum.theme = Themes::Water
|
83
|
+
feigenbaum.write('feigenbaum.png')
|
84
|
+
|
85
|
+
# The Misiurewicz Point.
|
86
|
+
misiurewicz = Mandelbrot.new(Complex(-0.1011, 0.9563))
|
87
|
+
misiurewicz.magnification = 50
|
88
|
+
misiurewicz.algorithm = Algorithms::NormalizedIterationCount
|
89
|
+
misiurewicz.write('misiurewicz.png')
|
90
|
+
|
91
|
+
# Seahorse Valley.
|
92
|
+
seahorse_valley = Mandelbrot.new(Complex(-0.8759, 0.2046))
|
93
|
+
seahorse_valley.magnification = 6
|
94
|
+
seahorse_valley.algorithm = Algorithms::NormalizedIterationCount
|
95
|
+
seahorse_valley.theme = Themes::Water
|
96
|
+
seahorse_valley.write('seahorse_valley.png')
|
97
|
+
|
98
|
+
# The classic Burning Ship.
|
99
|
+
burning_ship = BurningShip.new(Complex(-1.75, -0.04))
|
100
|
+
burning_ship.magnification = 32
|
101
|
+
burning_ship.write('burning_ship.png')
|