non poteva mancare il fedele compagno dell'insieme di Mandelbrot ovvero l'insieme di Julia
In pratica esiste una corrispondenza tra le coordinate nel piano complesso dell'insieme di Mandelbrot ed il corrispettivo insieme di Julia
L'esempio sopra riportato e' corrispondente al punto-0.125;0.75 dell'insieme di Mandelbrot
Il codice e' estremamente simile a quello del precedente post
package com.julia;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Display;
import android.widget.ImageView;
public class JuliaIntActivity extends Activity {
/** Called when the activity is first created. */
private static final double re_min = -2;
private static final double re_max = 2.0;
private static final double im_min = -2.0;
private static final double im_max = 2.0;
private static int iterazioni = 100;
private double ynew;
private double xnew;
private double a;
private double b;
private int test;
private double re_factor;
private double im_factor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView view = (ImageView) findViewById(R.id.imageView1);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); //240
int height = display.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.RGB_565);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.BLACK);
view.setImageBitmap(bitmap);
re_factor = (re_max - re_min);
im_factor = (im_max - im_min);
a = -0.125;
b = 0.75;
// recupera le informazioni sulle dimensioni dello schermo
for (int i=0;i<width;i++)
{
for (int j=0;j<height;j++)
{
double x = im_min + i * im_factor / width;
double y = re_min + j * re_factor / height;
test = 0;
for (int k=0;k<iterazioni;k++)
{
xnew = x * x - y * y + a;
ynew = 2 * x * y + b;
if (((xnew*xnew)+(ynew*ynew))>4)
{
test = k;
k = iterazioni;
}
x = xnew;
y = ynew;
}
if (test%2 == 1)
{
//punto bianco
canvas.drawPoint(i, j, paint);
}
}
}
}
}
Iscriviti a:
Commenti sul post (Atom)
Eth0 su LuckFox Pico Mini A
Le schede Luckfox Pico Mini A (a differenza delle sorelle maggiori) non hanno un connettore RJ45 e nonostante i pin da saldare non sembrano...
-
Per lo shield WiFly e' stata effettuata la patch descritta qui Per la connessione del lettore Rfid si usano i seguenti pin VCC ...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
Nessun commento:
Posta un commento