Android Path之Direction.CW、Direction.CCW

Path.Direction.CW:clockwise ,沿顺时针方向绘制

Path.Direction.CCW:counter-clockwise ,沿逆时针方向绘制

举个例子讲解:

@Override

protected void onDraw(Canvas canvas) {

    super.onDraw(canvas);

    //设置画布背景颜色

    canvas.drawColor(Color.YELLOW); 

    //将坐标系的原点移动到控件的中心

    canvas.translate(getMeasuredWidth()/2,getMeasuredHeight()/2);

    //创建矩形
    Path path = new Path();
    RectF rectF = new RectF(-200, -200, 200, 200);
    path.addRect(rectF, Path.Direction.CW);
    //重置最后一个点的位置
    path.setLastPoint(-50,50);
    canvas.drawPath(path,paint);
}

运行效果图:

之所以运行成如此,是因为setLastPoint重置了最后一点的位置,即D被重置为(-50,50)。可为什么重置点D而不是其它点呢?原因在于Path.Direction.CW(表示按顺时针方向绘制)。绘制矩形时,首先以(left, top)为起始点,以(width/2, height/2)为中心点,然后根据Direction来绘制下一点。CW表示顺时针,下一点自然就是B,再下一个点就是C,最后一个点就是D,由于setLastPoint的原因,D点位置变成了(-50, 50)。依次连线各个点,便有上图结果。

如果把Direction.CW换成Direction.CCW,那么运行效果图:

注意:我在模拟器测试的时候,发现绘制效果不正确;换成真机后,测试效果图如上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值