第六章
1.简答题
(1)使用Canvas API绘图时,直线有几种线帽形态?lineCap属性有哪些取值?分别表示什么含义?
lineCap用于设置或返回线帽(线条的结束端点)样式,可以有以下三种取值。 butt:默认属性值,不为直线添加端点 round:为直线添加圆形端点 square:为直线添加正方形端点
(2)Canvas使用什么方法在网页中绘制圆形?其中需要几个参数?每个参数的含义是什么?
Canvas API 使用绘制图形路径来绘制圆形。绘制图形路径时,需要使用绘图上下文对象ctx的arc()方法。该方法的定义如下。
ctx.arc(x,y,radius,startAngle,endAngle,anticlockwise)
其中,x、y分别为绘制圆形的圆心横坐标和纵坐标,radius为圆形半径,startAngle为开始角度,endAngle为结束角度,anticlockwise为是否按逆时针方向进行绘制。
arc()方法通过指定开始角度与结束角度,除了可以用来绘制圆形,还可以绘制圆弧,这两个角度就决定了绘制的弧度。anticlockwise为布尔值参数,参数值为true时,按逆时针绘制;参数值为false时,则按顺时针绘制。
(3)路径创建完成后,为什么要使用图形上下文对象的closePath()方法关闭路径? 路径创建完成后,使用绘图上下文对象的closePath()方法关闭路径。如果绘制路径时未使用closePath()方法,则绘制出的是没有封闭的路径,除非使用beginPathj()开始新的路径绘制。
(4)Canvas定义颜色值有哪几种方法?
Canvas绘图时,绘图上下文的fillStyle属性与strokeStyle属性用来指定填充的颜色或边框的颜色,颜色定义方法与CSS中颜色定义方法基本相同。下面是定义颜色的各种方法。
? 颜色名:直接使用颜色的英文名称作为属性值,例如,blue表示蓝色。 ? #rrggbb:用一个6位的十六进制数表示颜色,例如,#0000FF表示蓝色。
? #rgb:是#rrggbb的一种简写方式,例如,#0000FF可以表示为#00F,#00FFDD表示为#0FD。
? rgb(rrr,ggg,bbb):使用十进制数表示颜色的红、绿、蓝分量,其中,rrr、ggg、bbb都是0~255的十进制整数。例如,rgb(0,0,0)代表黑色。
? rgb(rrr%,ggg%,bbb%):使用百分比表示颜色的红、绿、蓝分量,例如,rgb(50%,50%,50%)表示rgb(128,128,128)。
? rgba(rrr,ggg,bbb,alpha):使用十进制数表示颜色的红、绿、蓝分量,alpha表示颜色的透明度,例如rgba(0,128,0,0.5)表示半透明的绿色。
2.操作题
(1)绘制如图6-28所示星空的效果,其中黑色矩形宽800像素、高400像素,在矩形范围内绘制200颗大小、位置、角度随机的黄色五角星。
图6-28 星空的效果
5star (2)在页面中绘制如图6-29所示的四种不同渐变色的矩形。