??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲va久久久噜噜噜久久狠狠 ,国产91精品精华液一区二区三区,亚洲日本成人在线观看http://www.aygfsteel.com/myqiao/category/46360.htmlzh-cnTue, 19 Oct 2010 07:40:49 GMTTue, 19 Oct 2010 07:40:49 GMT60HTML5边玩边学Q?0Q:(x)俄罗斯方块就是这么简??控制界面(源码Q?/title><link>http://www.aygfsteel.com/myqiao/archive/2010/10/18/335477.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Mon, 18 Oct 2010 10:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/myqiao/archive/2010/10/18/335477.html</guid><wfw:comment>http://www.aygfsteel.com/myqiao/comments/335477.html</wfw:comment><comments>http://www.aygfsteel.com/myqiao/archive/2010/10/18/335477.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/myqiao/comments/commentRss/335477.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/myqiao/services/trackbacks/335477.html</trackback:ping><description><![CDATA[     摘要: q一ơ在上一程序的基础上增加了(jin)以下交互控制功能Q?、键盘控Ӟ2、开始、暂停;3、消除时候空行的停顿效果Q?、随着消除行数的增多,速度加快Q?、音效等{。可以看出,在数据模型抽象好的基上,完成控制和图形接口是非常方便的?nbsp; <a href='http://www.aygfsteel.com/myqiao/archive/2010/10/18/335477.html'>阅读全文</a><img src ="http://www.aygfsteel.com/myqiao/aggbug/335477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/myqiao/" target="_blank">左N</a> 2010-10-18 18:31 <a href="http://www.aygfsteel.com/myqiao/archive/2010/10/18/335477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:(x)俄罗斯方块就是这么简??数据模型?/title><link>http://www.aygfsteel.com/myqiao/archive/2010/10/17/335390.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sun, 17 Oct 2010 15:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/myqiao/archive/2010/10/17/335390.html</guid><wfw:comment>http://www.aygfsteel.com/myqiao/comments/335390.html</wfw:comment><comments>http://www.aygfsteel.com/myqiao/archive/2010/10/17/335390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/myqiao/comments/commentRss/335390.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/myqiao/services/trackbacks/335390.html</trackback:ping><description><![CDATA[     摘要: 要写一个俄|斯方块游戏,我们先来一块考虑一下下面几个问题:(x)....... 如果你对上面几个问题思考,每一个答案都和界面、控件、^台有关的话,是说假如你是用 .Net 的,你的每一个答案都是围l着如何利用控g、如何用窗体、在控g的哪个事仉面改变哪个属性等{,那么说明你被微Y?RAD 开发环境毒害的不浅Q我你立L?Visual StudioQ改用其他轻量的编E语a和开发^収ͼq样你可以更多的x问题的本w,而不是控件?nbsp; <a href='http://www.aygfsteel.com/myqiao/archive/2010/10/17/335390.html'>阅读全文</a><img src ="http://www.aygfsteel.com/myqiao/aggbug/335390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/myqiao/" target="_blank">左N</a> 2010-10-17 23:21 <a href="http://www.aygfsteel.com/myqiao/archive/2010/10/17/335390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:(x)动画初步 ?飞舞的精?/title><link>http://www.aygfsteel.com/myqiao/archive/2010/10/08/333934.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Thu, 07 Oct 2010 16:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/myqiao/archive/2010/10/08/333934.html</guid><wfw:comment>http://www.aygfsteel.com/myqiao/comments/333934.html</wfw:comment><comments>http://www.aygfsteel.com/myqiao/archive/2010/10/08/333934.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/myqiao/comments/commentRss/333934.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/myqiao/services/trackbacks/333934.html</trackback:ping><description><![CDATA[     摘要: 一、ؓ(f)什么选择 HTML5 HTML5 边玩边学上q篇已经是第七篇?jin),在这开始之前,我想先说明一下ؓ(f)什么叫“HTML5?边玩边学Q因为有人对 HTML5 提出质疑Q毕竟他是一个新生事物。我承认我用 HTML5 来吸引眼球了(jin)Q如果看q边玩边学系列的每一,你会(x)发现前六文  <a href='http://www.aygfsteel.com/myqiao/archive/2010/10/08/333934.html'>阅读全文</a><img src ="http://www.aygfsteel.com/myqiao/aggbug/333934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/myqiao/" target="_blank">左N</a> 2010-10-08 00:14 <a href="http://www.aygfsteel.com/myqiao/archive/2010/10/08/333934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:(x)汽R人,变Ş......http://www.aygfsteel.com/myqiao/archive/2010/10/05/333762.html左N左NTue, 05 Oct 2010 04:34:00 GMThttp://www.aygfsteel.com/myqiao/archive/2010/10/05/333762.htmlhttp://www.aygfsteel.com/myqiao/comments/333762.htmlhttp://www.aygfsteel.com/myqiao/archive/2010/10/05/333762.html#Feedback3http://www.aygfsteel.com/myqiao/comments/commentRss/333762.htmlhttp://www.aygfsteel.com/myqiao/services/trackbacks/333762.html阅读全文

左N 2010-10-05 12:34 发表评论
]]>
HTML5边玩边学Q?Q:(x)囑փ、图案和字体 http://www.aygfsteel.com/myqiao/archive/2010/10/04/333734.html左N左NMon, 04 Oct 2010 08:45:00 GMThttp://www.aygfsteel.com/myqiao/archive/2010/10/04/333734.htmlhttp://www.aygfsteel.com/myqiao/comments/333734.htmlhttp://www.aygfsteel.com/myqiao/archive/2010/10/04/333734.html#Feedback0http://www.aygfsteel.com/myqiao/comments/commentRss/333734.htmlhttp://www.aygfsteel.com/myqiao/services/trackbacks/333734.html阅读全文

左N 2010-10-04 16:45 发表评论
]]>
HTML5边玩边学Q?Q:(x)变的色?/title><link>http://www.aygfsteel.com/myqiao/archive/2010/10/03/333700.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sun, 03 Oct 2010 12:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/myqiao/archive/2010/10/03/333700.html</guid><wfw:comment>http://www.aygfsteel.com/myqiao/comments/333700.html</wfw:comment><comments>http://www.aygfsteel.com/myqiao/archive/2010/10/03/333700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/myqiao/comments/commentRss/333700.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/myqiao/services/trackbacks/333700.html</trackback:ping><description><![CDATA[     摘要: 渐变?GradientsQ上下文对象有两个方法可以创Z个叫?canvasGradient 的对象,q用它设|?fillStyle ?strokeStyle 属性,l制出来的图形就有渐变效果了(jin)  <a href='http://www.aygfsteel.com/myqiao/archive/2010/10/03/333700.html'>阅读全文</a><img src ="http://www.aygfsteel.com/myqiao/aggbug/333700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/myqiao/" target="_blank">左N</a> 2010-10-03 20:11 <a href="http://www.aygfsteel.com/myqiao/archive/2010/10/03/333700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:(x)像素和颜?/title><link>http://www.aygfsteel.com/myqiao/archive/2010/09/18/332404.html</link><dc:creator>左N</dc:creator><author>左N</author><pubDate>Sat, 18 Sep 2010 15:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/myqiao/archive/2010/09/18/332404.html</guid><wfw:comment>http://www.aygfsteel.com/myqiao/comments/332404.html</wfw:comment><comments>http://www.aygfsteel.com/myqiao/archive/2010/09/18/332404.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/myqiao/comments/commentRss/332404.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/myqiao/services/trackbacks/332404.html</trackback:ping><description><![CDATA[     摘要: 我们在电(sh)脑屏q上可以看到色彩斑斓的图像,其实q些囑փ都是׃个个像素点组成的。那么像素是什么?颜色又是什么呢Q(如果(zhn)提?gu)两个问题Q?zhn)一定是个热爱思考的人)(j)一个像素其实对应着内存中的一l连l的二进制位  <a href='http://www.aygfsteel.com/myqiao/archive/2010/09/18/332404.html'>阅读全文</a><img src ="http://www.aygfsteel.com/myqiao/aggbug/332404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/myqiao/" target="_blank">左N</a> 2010-09-18 23:00 <a href="http://www.aygfsteel.com/myqiao/archive/2010/09/18/332404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学Q?Q:(x)基础l图http://www.aygfsteel.com/myqiao/archive/2010/09/18/332371.html左N左NSat, 18 Sep 2010 03:32:00 GMThttp://www.aygfsteel.com/myqiao/archive/2010/09/18/332371.htmlhttp://www.aygfsteel.com/myqiao/comments/332371.htmlhttp://www.aygfsteel.com/myqiao/archive/2010/09/18/332371.html#Feedback3http://www.aygfsteel.com/myqiao/comments/commentRss/332371.htmlhttp://www.aygfsteel.com/myqiao/services/trackbacks/332371.html

在前一博客中Q我们测试了(jin) canvas 标签的用法,q得C(jin) canvas 标签的渲染上下文对象Q?但是q没有用它绘制Q何图形。在q一中Q我们先?jin)解一下HTML5l图的一些基概念Q然后再来画几个囑Ş玩玩?/p>

一、坐标系

其实只要玩过一点点囑Ş~程的h都知道,?sh)脑上的坐标pd数学上的坐标pȝ微有点不同,坐标的原点在l制区域Q这里是CanvasQ的左上角,X轴正向朝叻IY轴正向朝下,如下?/p>

声明Q?/strong>为本文ؓ(f)原创文章Q作者保留所有权利!Ƣ迎转蝲Q{载请注明作?font color="#ff0000">左N和出?font color="#ff0000">博客?/strong>

 

二、Stroke ?Fill

HTML5中将囑Ş分ؓ(f)两大c:(x)

W一cȝ?StrokeQ我的理解就是轮廓、勾勒或者线条,MQ图形是q条组成的Q?/p>

W二cȝ?FillQ就是填充区?/p>

上下文对象中有两个绘制矩形的Ҏ(gu)Q可以让我们很好的理解这两大cd形的区别Q?/p>

一个是 strokeRectQ还有一个是 fillRect

下面的代码分别用q两个方法来l制矩ŞQ你可以分别点击两个按钮来看看有什么不同,从而理?stroke ?fill 的区?/p>

讄d
<canvas id="test1" width="200" height="200" style=" background-color: grey">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="strokeRect"  onclick="strokeRect();"/>
<input type="button" value="fillRect"  onclick="fillRect();"/>

 

strokeRect ?fillRect
function strokeRect(){
    var canvas 
= document.getElementById('test1');
    var ctx
=canvas.getContext("2d");
    ctx.clearRect(
0,0,200,200);
    ctx.strokeStyle
="blue";
    ctx.strokeRect(
10,10,180,180);
}

function fillRect(){
    var canvas 
= document.getElementById('test1');
    var ctx
=canvas.getContext("2d");
    ctx.clearRect(
0,0,200,200);
    ctx.fillStyle
="blue";
    ctx.fillRect(
10,10,180,180);
}

 

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

三、颜?/strong>

上下文对象有两个属性可以用来设|颜Ԍ(x)strokeStyle ?fillStyle

strokeStyle 的值决定了(jin)你当前要l制的线条的颜色

fillStyle 的值决定了(jin)你当前要填充的区域的颜色

颜色值应该是W合CSS3 颜色值标?/a>的有效字W串。下面的例子都表C同一U颜艌Ӏ?/p>

关于颜色Q以后会(x)有更多的说明?/p>

 

四、基本绘?/strong>

除了(jin)上面l出的两个绘制矩形的Ҏ(gu)外,上下文对象还有几个方法可以用来绘制一些基本图形,如下Q?/p>

moveTo(x,y)QmoveToҎ(gu)q不能画ZQ何东西,它只是将ȝ的当前点Ud?x,y)?/p>

lineTo(x,y)Q从当前点到Qx,yQ点l制一条直Uѝ注意:(x)l制完成后,当前点就变成?x,y)Q除非你?moveTo Ҏ(gu)L变他

arc(x, y, radius, startAngle, endAngle, anticlockwise) Q绘制一条弧U?/p>

quadraticCurveTo(cp1x, cp1y, x, y)
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) Q这两个Ҏ(gu)都是l制贝叶斯曲U,具体用法看参考手?/p>

rect(x, y, width, height) Q绘制一个矩形。注意:(x) 当它被调用时QmoveTo Ҏ(gu)?x)自动被调用Q参Cؓ(f)(0,0)Q于是v始坐标又恢复成初始原点了(jin)?

有了(jin)直线、弧Uѝ曲Uѝ方形和圆Şq几U基本图形,我们可以组合出更复杂的囑Ş?/p>

 

五、理解绘制\?Drawing Path

上一文章中说过Q我们绘制的囑Ş是先l制C个抽象的上下文对象中Q其实就是内存中Q,然后再将上下文对象输出到昄讑֤上,q个输出到显C备的q程不需要我们操?j)。但是有时候我们ƈ不想立刻输出每一ơ绘制动作,也许我想让一l绘制动作完成以后,再集中一块输出, 比如一个围棋盘有19×19条直U组成,正常情况下需要向xC备输?9×19ơ,但是如果我们先暂停向昄讑֤输出Q等在上下文中(内存中)(j)全部l制完成19×19条直U时Q再向显C备输出,只需要输Zơ就可以?jin)?/p>

q种情况在HTML5中叫做绘制\径,它由几个上下文对象的Ҏ(gu)l成Q?/p>

beginPath() Q开始\径,意思就是在你调用这个方法后Q你l制的图形就不会(x)再向屏幕输出?jin),而只是画C(jin)上下文对象中Q内存中Q?/p>

stroke() Q将你调?beginPath Ҏ(gu)以后l制的所有线条,一ơ性输出到昄讑֤?/p>

closePath() Q如果你调用 beginPath Ҏ(gu)以后Q在上下文对象中q行?jin)一pd的绘Ӟ但是得到的图形是不闭合的Q这个方法将?x)帮你补上最后一条直U,你的图形闭合v来?/p>

注意Q?/span>closePathq不向屏q输出图形,而只是在上下文对象中补上一条线Q这个步骤不是必需?/u>?/p>

fill() Q?/p>

如果你的l制路径l成的图形是闭的,q个Ҏ(gu)用 fillStyle 讄的颜色填充图形,然后立即向屏q输出;

如果l制路径不是闭的,q个Ҏ(gu)?x)先图形闭合v来,然后再填充输出?/p>

注意Q?/strong>所有的 fill 囑ŞQ如 fillRect {,都是立刻向屏q输出的Q他们没有绘制\径这个概?/u>

 

下面的代码将l制一个简单的填充三角形?/p>

注意Q?/span>l制三角形的时候,默认的背景色为白Ԍ默认的前景色为黑?/u>?/p>

讄d
<canvas id="test2" width="200" height="200" style="border:1px solid #c3c3c3;">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="M?  onclick="drawTri();"/>
<input type="button" value="清除"  onclick="clearTri();"/>

 

l制三角?/span>
<script type="text/javascript">
    
function drawTri(){
        var canvas 
= document.getElementById('test2');
        var ctx
=canvas.getContext("2d");
        ctx.beginPath();
        ctx.moveTo(
75,50);
        ctx.lineTo(
100,75);
        ctx.lineTo(
100,25);
        ctx.fill();
    }
    
function clearTri(){
        var canvas 
= document.getElementById('test2');
        var ctx
=canvas.getContext("2d");
        ctx.clearRect(
0,0,200,200);
    }
</script>

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

六、半个单位的坐标

q里q要回过头来说说坐标Q下面的代码是在d上绘制网|点击“ȝ?#8221;按钮可以看见效果

讄d
<canvas id="test3" width="500" height="375" style="border:1px solid #c3c3c3;">你的览器不支持 &lt;canvas&gt;标签Q请使用 Chrome 览?nbsp;或?nbsp;FireFox 览?/span></canvas>
<input type="button" value="ȝ?  onclick="drawMap();"/>
<input type="button" value="清除"  onclick="clearMap();"/>

 

l制|格
<script type="text/javascript">
    
function drawMap(){
        var canvas 
= document.getElementById('test3');
        var ctx
=canvas.getContext("2d");
        ctx.beginPath();
        
for (var x = 0.5; x < 500; x += 10) {
            ctx.moveTo(x, 
0);
            ctx.lineTo(x, 
375);
        }
        
for (var y = 0.5; y < 375; y += 10) {
            ctx.moveTo(
0, y);
            ctx.lineTo(
500, y);
        }
        ctx.strokeStyle 
= "#eee";
        ctx.stroke();
    }
    
function clearMap(){
        var canvas 
= document.getElementById('test3');
        var ctx
=canvas.getContext("2d");
        ctx.clearRect(
0,0,500,375);
    }
</script>

 

你的览器不支持 <canvas>标签Q请使用 Chrome 览?或?FireFox 览?/canvas>

 

q段代码中,有一处奇怪的地方Q就是坐标@环是?.5开始的Q这是ؓ(f)什么呢Q?/p>

如下图,假如我想l制一条从(1,0)?1,3)的线Q由于线的默认宽度是一个像素,所以在我想象中应该l制?strong style="color: #339966">q?/u>的部分,卛_坐标 1 两边各占半个像素的宽度?/p>

然而,览器的最单位是一个像素,所以他?x)向两边扩展Q实际绘制出来的绿?/u>的部分,卛_用了(jin)两个像素的宽度。这P我们l制的线条在坐标上就不精了(jin)

如下图,如果我们l出的v始坐标是(1.5,0)?1.5,3)Q那么线条的宽度才是正确的一个像素?/p>

 

 

七、清I画?/strong>

上面l出的两D代码中Q我们都用到?jin)清I画布,用到的方法如下:(x)

clearRect(x,y,width,height)Q?/p>

它接受四个参敎ͼ x ?y 指定矩Ş左上?相对于原?的位|,width ?height 是矩形的宽和高。调用该Ҏ(gu)?x)将l出的矩形区域中所有绘制图形都清空Q露出画布的背景

 

声明Q?/strong>为本文ؓ(f)原创文章Q作者保留所有权利!Ƣ迎转蝲Q{载请注明作?font color="#ff0000">左N和出?font color="#ff0000">博客?/strong>

//==========================================

 



左N 2010-09-18 11:32 发表评论
]]>
HTML5边玩边学Q?Q:(x)dhttp://www.aygfsteel.com/myqiao/archive/2010/09/17/HTML5.html左N左NFri, 17 Sep 2010 15:45:00 GMThttp://www.aygfsteel.com/myqiao/archive/2010/09/17/HTML5.htmlhttp://www.aygfsteel.com/myqiao/comments/332343.htmlhttp://www.aygfsteel.com/myqiao/archive/2010/09/17/HTML5.html#Feedback2http://www.aygfsteel.com/myqiao/comments/commentRss/332343.htmlhttp://www.aygfsteel.com/myqiao/services/trackbacks/332343.html阅读全文

左N 2010-09-17 23:45 发表评论
]]>
վ֩ģ壺 Ϫ| | | | ʡ| | | | | ٺ| ̩| °Ͷ| | | | ƽ| Ȫ| ˶| | ũ| ҳ| | | ɽ| ˮ| ͷ| | | ν| | ͷ| | | ˮ| | | ®| Դ| ¡| | |