本文示例三次方贝塞尔曲线的画法。
方法如下:
context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)
其中,
cp1x 控制点1的横坐标
cp1y 控制点1的纵坐标
cp2x 控制点2的横坐标
cp2y 控制点2的纵坐标
x 终止点横坐标
y 终止点纵坐标
参考上一篇二次方贝塞尔曲线的画法很容易理解,只不过三次方贝塞尔曲线有两个控制点,可以在平面或三维空间(canvas暂未提供)中控制曲线的走向。
公式:
形成过程:
来实际画一下吧:
function drawScreen(){
var context = theCanvas.getContext('2d');
context.beginPath();
context.strokeStyle = 'red';
context.lineWidth = 2;
context.moveTo(20, 100);
//三次方贝塞尔曲线
context.bezierCurveTo(10, 30, 120, 40, 220, 100);
context.stroke();
context.closePath();
//标出相关坐标及连线
context.fillStyle = 'black';
context.fillText('(20, 100)', 20, 100);
context.fillText('(10, 30)', 10, 30);
context.fillText('(120, 40)', 120, 40);
context.fillText('(220, 100)', 160, 110);
context.beginPath();
context.strokeStyle = 'black';
context.lineWidth = 1;
context.moveTo(20, 100);
context.lineTo(10, 30);
context.lineTo(120, 40);
context.lineTo(220, 100);
context.stroke();
context.beginPath();
context.arc(10, 30,2,0,2*Math.PI, false);
context.arc(120, 40,2,0,2*Math.PI, false);
context.fill();
context.closePath();
}
效果如下:
最后,综合两种曲线的画法,我们来牛刀小试一下:
function drawScreen(){
var context = theCanvas.getContext('2d');
context.beginPath();
context.moveTo(170,0);
context.bezierCurveTo(0,125,300,175,130,300);
context.moveTo(250,0);
context.lineTo(250,300);
context.quadraticCurveTo(400,180,250,130);
context.quadraticCurveTo(400,60,250,0);
context.stroke();
context.closePath();
}
- 大小: 1.7 KB
- 大小: 69.8 KB
- 大小: 3.1 KB
- 大小: 8.3 KB
分享到:
相关推荐
2.24_bezierCurveTo,三次贝塞尔曲线|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、游戏开
NULL 博文链接:https://bun-ny.iteye.com/blog/1304950
2.23_quadraticCurveTo,二次贝塞尔曲线|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、
2.22_用canvas绘制一角弯月|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、游戏开发从入门到精通全
贝塞尔曲线生成小工具,里面包含二次贝塞尔曲线,三次贝塞尔曲线,在用canvas画贝塞尔曲线时很有用
贝塞尔曲线在canvas中画法实现,在html5中实现。。。。。。。。。。。。。
贝塞尔曲线实现直播点赞效果
canvas简单实例详解
该实例将三次方贝塞尔曲线的数据保存在内部,并且可以通过笔触(上下文)进行绘制。 调用createPointData(length)时,要存储在内部的Bezier曲线除以长度指定的数字,并将每个点的坐标数据存储在数组中。 每次...
2.25_canvas曲线的绘制小结|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、游戏开发从入门到精通全
1、二次贝塞尔曲线 quadraticCurveTo(cpx,cpy,x,y) //cpx,cpy表示控制点的坐标,x,y表示终点坐标; 数学公式表示如下: 二次方贝兹曲线的路径由给定点P0、P1、P2的函数B(t)追踪: 代码实例: 复制代码代码...
本篇文章主要介绍了canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
canvasTable是用canvas画布画柱状图、饼图、折线图1、折线图2、贝塞尔曲线
本文实例为大家分享了js Canvas实现二次贝塞尔曲线的具体代码,供大家参考,具体内容如下 先上效果图: 实现代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>二...
js canvas实现Beizer曲线绘制 闲暇时小小的想法,一下午实现,作为一个大一学生还是很有成就感的~
2.20_arc,圆弧和圆角矩形|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、游戏开发从入门到精通全系列
2.21_arcTo,另一种弧线绘制方法|canvas曲线的绘制(圆弧和贝塞尔曲线)|Canvas图形、动画、游戏开发从入门到精
NULL 博文链接:https://128kj.iteye.com/blog/2069461
1:贝塞尔曲线原理和实例(如贝塞尔曲线画圆,圆变心,粘性小红点) 2:PathNeasure原理和实例(旋转的小箭头) 3:属性动画原理和实例(雷达图,指示器,插值器。购物车。) 4:Scroller和VeloccityTracker 5:...
canvas画板实例,使用js+canvas。主要功能:画笔颜色、画笔粗细、橡皮擦、清除画布、撤销、导出图片。