<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mind Unpacked &#187; Mandelbrot</title>
	<atom:link href="http://mindunpacked.com/tag/mandelbrot/feed/" rel="self" type="application/rss+xml" />
	<link>http://mindunpacked.com</link>
	<description>informatica.elettronica.chimica.new stuff</description>
	<lastBuildDate>Tue, 22 Dec 2009 17:35:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://mindunpacked.com</link>
<url>http://mindunpacked.com/wp-content/plugins/maxblogpress-favicon/icons/favicon-2.ico</url>
<title>Mind Unpacked</title>
</image>
		<item>
		<title>Un nuovo metodo per visualizzare l&#8217;insieme di Mandelbrot: il Buddhabrot.</title>
		<link>http://mindunpacked.com/2008/un-nuovo-metodo-per-visualizzare-linsieme-di-mandelbrot-il-buddhabrot/</link>
		<comments>http://mindunpacked.com/2008/un-nuovo-metodo-per-visualizzare-linsieme-di-mandelbrot-il-buddhabrot/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 23:25:58 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Buddhabrot]]></category>
		<category><![CDATA[Frattali]]></category>
		<category><![CDATA[Mandelbrot]]></category>

		<guid isPermaLink="false">http://mindunpacked.com/?p=116</guid>
		<description><![CDATA[Chi si interessa di matematica avrà sicuramente sentito parlare di quelle meravigliose figure che sono i frattali. In questo articolo vi parlerò di un metodo particolare, chiamato Buddhabrot, per visualizzare l&#8217;insieme di Mandelbrot che è uno dei frattali più famosi. Per questo motivo darò per scontati alcuni concetti di base e anche la conoscenza dell&#8217;insieme [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Chi si interessa di matematica avrà sicuramente sentito parlare di quelle meravigliose figure che sono i frattali. In questo articolo vi parlerò di un metodo particolare, chiamato Buddhabrot, per visualizzare l&#8217;<strong>insieme di Mandelbrot</strong> che è uno dei frattali più famosi. Per questo motivo darò per scontati alcuni concetti di base e anche la conoscenza dell&#8217;insieme di Mandelbrot. L&#8217;articolo sarà corredato dal codice di un programma in C++, che è lo stesso che ho usato per renderizzare le immagini presenti in questo articolo.<br />
<span id="more-116"></span><br />
Il <strong>Buddhabrot</strong> è una tecnica speciale inventata da <a title="Pagina del Buddhabrot di Melina Green" href="http://www.superliminal.com/fractals/bbrot/bbrot.htm" target="_blank">Melinda Green</a> che porta a dei risultati davvero spettacolari. Per disegnare l&#8217;insieme di Mandelbrot si analizzano vari punti del piano e si considerano appartenenti all&#8217;insieme quelli che <strong>non divergono</strong> (cioè non tendono ad allontanarsi ad una distanza infinita dall&#8217;origine) quando gli viene applicata ripetutamente la formula Z<sub>n+1</sub> = Z<sub>n</sub><sup>2</sup> + C. Nella formula C è un numero complesso che rappresenta le coordinate del punto che stiamo analizzando, e si parte da Z<sub>0</sub> = 0. La tecnica inventata da Melinda Green, invece, tiene in considerazione non la divergenza o meno di un punto ma la traiettoria descritta dai punti che <strong>divergono</strong> quando gli viene applicata ripetutamente la formula. Tutti i punti del piano descriveranno diverse traiettorie, così ci saranno zone meno trafficate e zone più trafficate, le prime risulteranno più scure e le ultime più luminose. Se, invece di considerare le traiettorie dei punti che divergono considerassimo quelle dei punti che non divergono otterremo il cosidetto Anti-Buddhabrot.</p>
<p style="text-align: justify;">Quando si renderizza l&#8217;insieme di Mandelbrot l&#8217;appartenenza di un punto all&#8217;insieme viene stabilita in base alla divergenza dello stesso. Per testare la divergenza viene applicata la formula su di esso diverse volte e, se il punto non accenna a divergere dopo un determinato numero di iterazioni (detto <strong>bailout</strong>) il punto viene considerato appartenente all&#8217;insieme. Chiaramente questo è scorretto dal punto di vista teorico, perchè si dovrebbe verificare che un punto non diverge quando il bailout tende all&#8217;infinito, ma visto che non è possibile effettuare un numero infinito di iterazioni ci si accontenta di un valore di bailout abbastanza alto che consente una notevole approssimazione. Ah, un punto viene considerato divergente quando la sua distanza dall&#8217;origine diventa maggiore di 2.</p>
<p style="text-align: justify;">Quando il bailout è abbastanza alto i risultati che otterremo saranno più precisi. Anche se il bailout è relativamente trascurabile per l&#8217;insieme di <strong>Mandelbrot</strong> (con valori abbastanza alti non si nota la differenza tra un valore ed un altro a meno che non stiamo zoomando), esso diviene fondamentale per renderizzare il Buddhabrot, ecco due immagini con valori di bailout diversi:</p>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_129" class="wp-caption alignnone" style="width: 310px"><a href="http://mindunpacked.com/wp-content/uploads/2008/11/1.jpg"><img class="size-medium wp-image-129" title="Buddhabrot N=20" src="http://mindunpacked.com/wp-content/uploads/2008/11/1-300x300.jpg" alt="Buddhabrot N=20" width="300" height="300" /></a><p class="wp-caption-text">Buddhabrot N=20</p></div></td>
<td>
<p><div id="attachment_131" class="wp-caption alignnone" style="width: 310px"><a href="http://mindunpacked.com/wp-content/uploads/2008/11/2.jpg"><img class="size-medium wp-image-131" title="Buddhabrot N=200" src="http://mindunpacked.com/wp-content/uploads/2008/11/2-300x300.jpg" alt="Buddhabrot N=200" width="300" height="300" /></a><p class="wp-caption-text">Buddhabrot N=200</p></div></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><center><script type="text/javascript">
heyos_ad_user = 11334;
heyos_ad_type = "G";
heyos_ad_format = "1";
heyos_color_border = "23292b";
heyos_color_bg = "23292b";
heyos_color_link = "FFFFFF";
heyos_color_text = "21b8ca";
heyos_color_url = "21b8ca";
</script>
<script type="text/javascript" src="http://admaster.heyos.com/core/bnr.js"></script></center><br />
I parametri che concorrono a determinare la qualità dei nostri rendering sono i seguenti:</p>
<ul style="text-align: justify;">
<li><strong>bailout</strong>: come abbiamo appena detto, più il bailout è elevato e minore sarà il margine di errore che potremmo avere su ogni punto. Per esempio, ci sono punti che divergono molto lentamente e che con un bailout basso vengono considerati non divergenti.</li>
</ul>
<ul style="text-align: justify;">
<li><strong> numero di pixels esaminati</strong>: di più pixels esaminiamo le traiettorie e più nitida sarà la nostra immagine. Quando il numero di pixels non è sufficiente otteniamo un fastidioso &#8220;effetto griglia&#8221;.</li>
</ul>
<ul style="text-align: justify;">
<li><strong> risoluzione</strong>: ovviamente, più è alta la risoluzione è migliore sarà la nostra immagine. C&#8217;è da notare, però, che immagini a risoluzione più alta richiedono un numero di pixels esaminati maggiore per ottenere risultati buoni, rispetto a immagini con risoluzione minore.</li>
</ul>
<p style="text-align: justify;">I tempi di rendering per questo tipo di frattale sono piuttosto lunghi, e quando i parametri qualitativi sono elevati diventano quasi insopportabili.</p>
<p style="text-align: justify;">Le immagini che abbiamo visto fino ad ora sono tutte in bianco e nero. Per ottenere risultati a colori viene usata una tecnica simile a quella che la NASA usa per <a title="Come la NASA colora le immagini" href="http://hubblesite.org/sci.d.tech/behind_the_pictures/meaning_of_color/index.shtml" target="_blank">colorare le immagini astronomiche</a>, cioè i <a title="Falsi colori, Wikipedia" href="http://en.wikipedia.org/wiki/False-color" target="_blank">falsi colori</a>. Così come la NASA assegna un colore diverso ad ogni frequenza della luce che riceve dallo spazio, noi creiamo tre immagini in bianco e nero con diversi valori di bailout e le assegnamo rispettivamente ai canali R, G e B dell&#8217;immagine. Otterremo in questa maniera immagini simili alle seguenti:</p>
<table style="text-align: justify;" border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_181" class="wp-caption alignnone" style="width: 310px"><a href="http://mindunpacked.com/wp-content/uploads/2008/12/3.jpg"><img class="size-medium wp-image-181" title="Buddahbrot 1" src="http://mindunpacked.com/wp-content/uploads/2008/12/3-300x300.jpg" alt="" width="300" height="300" /></a><p class="wp-caption-text">valore di bailout = 500, risoluzione = 1024x1024, tempo di rendering 50 minuti</p></div></td>
<td>
<p><div id="attachment_182" class="wp-caption alignnone" style="width: 310px"><a href="http://mindunpacked.com/wp-content/uploads/2008/12/davebrotmy6.jpg"><img class="size-medium wp-image-182" title="Buddahbrot" src="http://mindunpacked.com/wp-content/uploads/2008/12/davebrotmy6-300x300.jpg" alt="" width="300" height="300" /></a><p class="wp-caption-text">I dati di questa immagine non li ricordo... spero mi perdoniate.</p></div></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">(Nota: i colori dell&#8217;ultima immagine sono stati leggermente ritoccati con Photoshop)</p>
<p style="text-align: justify;">Bene, per ora è tutto. Spero di scrivere un secondo articolo su questo argomento in cui descriverò un&#8217;altra tecnica per renderizzare animazioni con il Buddhabrot (che in realtà può essere immaginato come un oggetti in 4 dimensioni), ma siccome i tempi di rendering sono piuttosto lunghi, dovrete aspettare che finisca di renderizzare un bel video. Allego qui il file sorgente del programma che ho usato per realizzare i rendering: <a title="Buddhabrot C++" href="http://www.mindunpacked.com/risorse/buddhabrot.tar.gz" target="_self">Buddhabrot C++</a></p>
<p style="text-align: justify;">Alla prossima&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mindunpacked.com/2008/un-nuovo-metodo-per-visualizzare-linsieme-di-mandelbrot-il-buddhabrot/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
