Advertisement
Guest User

Java

a guest
Mar 31st, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. function Mandeliter( cx, cy, maxiter ){
  2. var
  3. x = 0.0,
  4. y = 0.0,
  5. xx = 0,
  6. yy = 0,
  7. xy = 0;
  8.  
  9. var i = maxiter;
  10. while( i-- && xx + yy <= 4 ){
  11. xy = x * y;
  12. xx = x * x;
  13. yy = y * y;
  14. x = xx - yy + cx;
  15. y = xy + xy + cy;
  16. }
  17. return maxiter - i;
  18. }
  19.  
  20. function Mandelbrot( width,height, xmin,xmax, ymin,ymax, iterations ){
  21. var canvas = document.createElement( 'canvas' );
  22. canvas.width = width;
  23. canvas.height = height;
  24.  
  25. var ctx = canvas.getContext( '2d' );
  26. var img = ctx.getImageData( 0, 0, width, height );
  27. var pix = img.data;
  28. for( var ix = 0; ix < width; ++ix )
  29. for( var iy = 0; iy < height; ++iy )
  30. {
  31. var x = xmin + (xmax - xmin) * ix / (width - 1);
  32. var y = ymin + (ymax - ymin) * iy / (height - 1);
  33. var i = Mandeliter( x, y, iterations );
  34. var ppos = 4 * (width * iy + ix);
  35. if( i === iterations )
  36. {
  37. pix[ppos] = 0;
  38. pix[ppos+1] = 0;
  39. pix[ppos+2] = 0;
  40. }
  41. else
  42. {
  43. var c = 3 * Math.log(i)/Math.log(iterations - 1.0);
  44. if (c < 1)
  45. {
  46. pix[ppos] = 255*c;
  47. pix[ppos+1] = 0;
  48. pix[ppos+2] = 0;
  49. }
  50. else if( c < 2 )
  51. {
  52. pix[ppos] = 255;
  53. pix[ppos+1] = 255*(c-1);
  54. pix[ppos+2] = 0;
  55. }
  56. else
  57. {
  58. pix[ppos] = 255;
  59. pix[ppos+1] = 255;
  60. pix[ppos+2] = 255*(c-2);
  61. }
  62. }
  63. pix[ ppos+3 ] = 255;
  64. }
  65. ctx.putImageData( img, 20,20 );
  66. // document.body.insertBefore( canvas, document.body.childNodes[0] );
  67. document.body.appendChild( canvas, document.body.childNodes[0] );
  68. }
  69. var mandel = confirm("Do you wish me to draw the Mandelbrot Set?");
  70. var p;
  71. if(mandel)
  72. {
  73. p = prompt("How many iterations (100-5000)?",100);
  74. Mandelbrot( 450,300, -2,1, -1,1, p );
  75. }
  76. else{
  77. document.write("Nothing to see - User declined!");
  78. alert("User Declined the option \n of rendering the Mandelbrot Set");
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement