canvas教程

Java ME技术讨论区(2)

字号+ 作者:H5之家 来源:H5之家 2017-10-23 12:13 我要评论( )

注意 如果直线的绘制超出屏幕,则超出部分的像素将被忽略,因此在使用直线时要考虑屏幕的大小限制。 3.1.5 绘制弧形Graphics对象也可以被用来绘制和填充弧形,例如圆和椭圆。弧形的表示方法为 Arc(x,y,w,h,startAn

注意
如果直线的绘制超出屏幕,则超出部分的像素将被忽略,因此在使用直线时要考虑屏幕的大小限制。

3.1.5 绘制弧形Graphics对象也可以被用来绘制和填充弧形,例如圆和椭圆。弧形的表示方法为 Arc(x,y,w,h,startAngle,arcAngle),它们都由坐标系上的一个轮廓所限定。绘制方法为:
(1)以坐标(x,y)为起点,沿x轴正方向延伸w个 单位,沿y轴的正方向延伸h个单位,得到一个矩形,此虚拟矩形内切绘制一个椭圆(如果w和h相 等,则为圆)。
(2)以矩形的中心为圆心,以时钟3点的方向为0°,逆时针为正方向,从0°正方向旋转startAngle 度,和椭圆相交得到一条直线和一个交点。
(3)从这条直线开始,正方向旋转arcAngle度,得到另一条直线和交点,这样就得到了一个两交点之间的 圆弧。

(4)这个圆弧和两条直线得到一个封闭的区域, 弧线的绘制和填充就以这个封闭区域为基础。整个绘制过程如图3-5所示。
绘制弧线时,根据弧线得到一个与之最接近的坐标集合,然后填充这些坐标左下角的像素。填充弧时,只对在封闭区 域内的像素进行填充。
对于一个360°的弧线,它会覆盖一个宽为w+1,高为h+1的矩形, 而填充弧则覆盖一个宽为w,高为h的矩形,其中w和h都不为0。
如果w和h为0,则填充弧不会影响任何像素,而只要不全为0,绘制弧则 可能绘制一条直线。Graphics提供了两个方法来分别进行弧形的绘制和填充,例如:
g.setColor(0x000000);                      //设置画笔颜色为黑色
g.drawArc(5,5,120,60,0,360);               //绘制一个弧形
g.setColor(0x00FFFF);                      //设置画笔颜色为淡蓝色
g.fillArc(10,10,150,70,30,80);             //填充一个弧形
3.1.6 绘制圆角矩形

Graphics也支持绘制和填充圆角矩形,圆 角矩形是矩形和弧的组合。圆角弧形的坐标表示方法为:RoundRect(x,y,w,h,arcWidth,arcHeight),它的矩形部分用 Rect(x,y,w,h)表示,弧形部分用 Arc(x,y,2*arcWidth,2*arcHeight,0,360)表示,然后由0°开始从圆心分割为90°的4个部分,分别和矩形4个角相 切,组合成一个圆角矩形。圆角矩形的绘制原理如图3-6所示。
Graphics提供了两个方法,分别来进行圆角矩形的绘制和填充,例如:
g.setColor(0x000000);                       //设置画笔颜色为黑色
g.drawRoundRect(30,40,120,120,20,10);       //绘制一个圆角矩形
g.setColor(0x00FF00);                       //设置画笔颜色为绿色
g.fillRoundRect(60,70,30,60,30,30);         //填充一个圆角矩形
3.1.7 绘制三角形MIDP 2.0新增了一个方法用来填充一个三角形,该方法原型为:
fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3);
该方法的6个参数分别代表了三角形3个顶点的X、Y轴坐标。例如:
g.setColor(0x000000);                        //设置画笔颜色为黑色
g.fillTriangle(30, 40, 30, 100, 10, 0);      //填充一个三角形
3.1.8 绘制笔触的设置绘制直线、圆弧、矩形和圆角矩形时可以选择使用SOLID或者DOTTED这两种画笔风格。Graphics 对象提供的画笔风格分为两类。
n     SOLID:值为0,表示当前画笔为1个像素宽的实线,填充紧靠指定坐标的右下端像素。
n     DOTTED:值为1,表示当前画笔为点线,打点频率和长度由MIDP实现决定,直线和弧线的终点不能保证被绘制,矩形的交点也无法保证被绘制。
setStrokeStyle方法用来设置画笔风格,getStrokeStyle方法用来获取当前的画笔风 格,可以使用Graphics对象在任何地方设置画笔风格,设置后会取代前面的设置,影响后续操作,直到再次改变其设置。例如:
g.setStrokeStyle(Graphics.DOTTED);              //将笔触风格设置为点线
g.drawLine(10,20,100,20);                       //绘制线条
g.drawLine(5,50,5,50);                          //绘制线条

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas.drawBitmap参数

    canvas.drawBitmap参数

    2017-09-13 18:00

  • [教学视频]Canvas动画和手机游戏开发

    [教学视频]Canvas动画和手机游戏开发

    2017-08-29 16:01

  • 绘图效率问题 Canvas?OpenGL?

    绘图效率问题 Canvas?OpenGL?

    2016-10-21 18:00

  • 怎样在canvas 上添加Button呢?

    怎样在canvas 上添加Button呢?

    2016-03-27 10:00

网友点评
2