六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 110|回复: 0

HTML5 Canvas 提高班(一) —— 光栅图形学(1)中点画圆算法

[复制链接]

升级  0%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
50
 楼主| 发表于 2012-12-22 20:43:48 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">    本系列的随笔在于给大家提供一些难度较深的canvas应用场景,借用数学或物理模型实现效果或性能媲美桌面应用的案例;并且此系将尽可能使用最简明的js代码展示效果。
    推荐使用:chrome、ie9浏览器进行阅读,同时我还在做一个基于canvas的矢量渲染器的类库,希望大家关注。
    话不多说,我们现在开始第一次随笔的内容。
光栅图形学(1)中点画圆算法

    我们平时在使用canvas绘制图形时,通常会调用context的各种API,如设置样式的strokeline、fillcolor等;再如绘制图形的context.arc,context.fillRect等。
    如果我们现在有一个场景,需要绘制1W个以上的图形,并且要求其刷新频率达到12fps以上,也就是说我们必须要在1秒内完成10W次canvasAPI的调用,想想这有多么可怕,大家可以在机子的机器上尝试一下。。得卡到强制关闭浏览器。
    下面我们引入了光栅图形学中的中点画圆算法。
   1.获取context元素的像素数组:

<div class="cnblogs_code">    var cxt= canvas.getContext("2d");    cxt.clearRect(0, 0, width, height);    var data = cxt.getImageData(0, 0,width, height);    imageData = data.data;
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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