绘制贝塞尔曲线java_Android中贝塞尔曲线的绘制方法示例代码

贝塞尔曲线,很多人可能不太了解,什么叫做贝塞尔曲线呢?这里先做一下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋。一般的矢量图形软件常利用贝塞尔曲线来精确画出曲线。

上面的介绍中,“线段像可伸缩的皮筋”这句话非常关键,但也特别好理解。至于贝塞尔曲线的详细内容大家可以查阅相关资料。

Android提供的贝塞尔曲线绘制接口

在Android开发中,要实现贝塞尔曲线其实还是很简单的,因为Android已经给我们提供了相关接口,但此接口方法被藏的有点深,藏于Path类中。此方法如下:

android.graphics.Path.quadTo(float x1, float y1, float x2, float y2)

Since: API Level 1

参数说明:

x1:操作点的x坐标

y1:操作点的y坐标

x2:结束点的x坐标

y2:结束点的y坐标

从API中看出,贝塞尔曲线从API-1就开始支持了。

Android贝塞尔曲线的绘制实例

熟悉方法后,下面就来实现:

SurfaceView框架不多讲,看过我博客的都应该知道的。

直接看MySurfaceView类,此类继承SurfaceView,是游戏的主视图。

这里为了更清晰的讲解:这里部分代码先不贴出来了,最后会整体贴出。

首先是定义相关的成员变量:

Java代码

// 贝赛尔曲线成员变量(起始点,控制(操作点),终止点,3点坐标)

private int startX, startY, controlX, controlY, endX, endY;

// Path

private Path path;

// 为了不影响主画笔,这里绘制贝赛尔曲线单独用一个新画笔

private Paint paintQ;

// 随机库(让贝赛尔曲线更明显)

private Random random;

本类构造函数:

Java代码

/**

* SurfaceView初始化函数

*/

public MySurfaceView(Context context) {

super(context);

...

//贝赛尔曲线相关初始化

path = new Path();

paintQ = new Paint();

paintQ.setAntiAlias(true);

paintQ.setStyle(Style.STROK

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值