仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 918|回复: 10
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Html 5 Canvas绘制分形图Mandelbrot仓酷云

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。为了测试一下js和Canvas的盘算才能,做了一个Mandelbrot的分形图,撑持鼠标ZoomIn。Mandelbrot的界说很复杂,虚数立体的每一个点(x,y),经由过程重复盘算zn+1=zn2+c,z0=0。只要了局收敛才属于Mandelbrot,不然依据n的设定一个色彩,越年夜越深,代表靠近属于汇合的点,能够把汇合中的点了解为n=无量年夜。保举在chrome中翻开本页,还撑持firefox和ie9。拖动鼠标能够分明发明chrome是最流利的。
更加专业的Mandelbrot请check这里http://www.atopon.org/mandel/



  1. <canvasid="canvas"width="600"height="480"style="margin-left:100px"><p>Yourbrowserdoesnotsupportthecanvaselement.</p></canvas><p><inputid="reset"type="button"value="Reset"/></p><script>varcanvas=document.getElementById(canvas);varcontext=canvas.getContext(2d);varwidth=canvas.width,height=canvas.height;varmaxIterations=100;varminRe=-2.0;varmaxRe=1.0;varminIm=-1;varmaxIm=minIm+(maxRe-minRe)*height/width;reset();document.getElementById("reset").onclick=reset;canvas.onmousedown=function(evt){varx0=evt.pageX-canvas.offsetLeft;vary0=evt.pageY-canvas.offsetTop;varx1,y1,w,h;varimgd=context.getImageData(0,0,width,height);update(evt);functionupdate(evt){x1=evt.pageX-canvas.offsetLeft;y1=evt.pageY-canvas.offsetTop;w=Math.abs(x1-x0),h=Math.abs(y1-y0);}functionclear(evt){if(w&&h){context.clearRect(0,0,width,height);context.putImageData(imgd,0,0);}}canvas.onmousemove=function(evt){clear(evt);update(evt);context.strokeStyle="red";context.strokeRect(x0<x1?x0:x1,y0<y1?y0:y1,w,h);}canvas.onmouseup=function(evt){clear(evt);canvas.onmousemove=canvas.onmouseup=null;minRe=minRe+(maxRe-minRe)/width*(x0<x1?x0:x1);maxRe=minRe+(maxRe-minRe)/width*w;minIm=minIm+(maxIm-minIm)/height*(y0<y1?y0:y1);maxIm=minIm+(maxIm-minIm)/height*h;draw();}}functionreset(){minRe=-2.0;maxRe=1.0;minIm=-1;maxIm=minIm+(maxRe-minRe)*height/width;draw();}functiondraw(){context.fillRect(0,0,width,height);varimgd=context.getImageData(0,0,width,height)varpix=imgd.data;vardrawPixel=function(x,y,itr){vari=(y*width+x)*4;pix[i]=pix[i+1]=pix[i+2]=Math.round(itr*255/maxIterations);}mandelbrot(width,height,drawPixel);context.putImageData(imgd,0,0);}functionmandelbrot(imageWidth,imageHeight,drawPixel){varre_factor=(maxRe-minRe)/(imageWidth-1);varim_factor=(maxIm-minIm)/(imageHeight-1);for(vary=0;y<imageHeight;++y){varc_im=maxIm-y*im_factor;for(varx=0;x<imageWidth;++x){varc_re=minRe+x*re_factor;varz_re=c_re,z_im=c_im;varisInside=true;varn=0;for(;n<maxIterations;++n){varz_re2=z_re*z_re,z_im2=z_im*z_im;if(z_re2+z_im2>4){isInside=false;break;}z_im=2*z_re*z_im+c_im;z_re=z_re2-z_im2+c_re;}if(!isInside){drawPixel(x,y,n);}}}}</script>
复制代码


另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。
小妖女 该用户已被删除
沙发
发表于 2015-1-22 10:23:10 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
不帅 该用户已被删除
板凳
发表于 2015-1-22 20:02:06 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
透明 该用户已被删除
地板
发表于 2015-1-24 16:06:09 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
分手快乐 该用户已被删除
5#
发表于 2015-2-2 09:53:39 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
爱飞 该用户已被删除
6#
发表于 2015-2-7 17:38:43 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
小魔女 该用户已被删除
7#
发表于 2015-2-11 20:07:30 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
若天明 该用户已被删除
8#
发表于 2015-3-2 17:51:37 | 只看该作者
那么,ASP.Net有哪些改进呢?
老尸 该用户已被删除
9#
发表于 2015-3-11 04:50:14 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
简单生活 该用户已被删除
10#
发表于 2015-3-17 20:54:36 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
11#
发表于 2015-3-25 02:00:35 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表