我有一個問題,我需要配置一個代碼。這使得在畫布上的mandelbrot分形,我需要從HTML形式的變量,將其轉換爲JavaScript變量,但這是我的問題。而且我需要從表格中獲得最小和最大的測試數字範圍。有任何想法嗎?請幫忙!Mandelbrot,html變量爲javascript
<body>
<h1>Mandelbrot fraktál</h1>
<form>
c: <input id="cid" type="text" name="firstname">
<input type="submit" value="Submit">
</form>
<!-- A vászon kijelölése, méretezése -->
<canvas id="myCanvas" width="500" height="500" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
// === Mandelbrot objektum létrehozása
var mandelbrot = {
// === Osztályváltozók
maxiter : 32, // iterációk száma
////xmin : -2.0, xmax : 1.0, // valós rész
////ymin : -1.5, ymax : 1.5, // képzetes rész
// === Komplex szám eleme-e a Mandelbrot halmaznak?
mandelcolor: function (c,b){
// a: valós rész, b: képzetes rész
var z=[c,b];
var i=0;
// A következő sorozatelem kiszámítása
while(i<this.maxiter && z[0]*z[0]+z[1]*z[1]<=4.0){
// Új elem = Z négyzete + kiinduló érték
var aa=z[0]*z[0]-z[1]*z[1]+c;
var bb=2*z[0]*z[1]+b;
z[0]=aa; z[1]=bb;
i++;
}
// Visszatérési érték a pixel színkódja
return '#'+i.toString(16)+i.toString(16)+i.toString(16);
},
// === Mandelbrot fraktál rajzolása soronként
fraktal: function(){
for(var y=0;y<context.canvas.height;y++)
// A vizsgált komplex szám képzetes részének
// leképezése az Y koordináta alapján
var zy = this.ymin + (this.ymax - this.ymin) * y/context.canvas.height;
for(var x=0;x<context.canvas.width;x++){
// A vizsgált komplex szám valós részének leképezése
// az X koordináta alapján
var zx = this.xmin + (this.xmax - this.xmin) * x/context.canvas.width;
context.fillStyle=this.mandelcolor(document.getelementById("cid"),zy);
context.fillRect(x,y,1,1);
}
}
}
}
// === Globális változók deklarálása
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
mandelbrot.fraktal();
</script>
哪一位是你作戰? – 2014-10-06 13:15:45