canvas绘制贝塞尔曲线

原文:canvas绘制贝塞尔曲线

1、绘制二次方贝塞尔曲线

quadraticCurveTo(cp1x,cp1y,x,y); 其中参数cp1x和cp1y是控制点的坐标,x和y是终点坐标

数学公式表示如下:

二次方贝兹曲线的路径由给定点P0P1P2的函数Bt)追踪:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
*{padding: 0;margin:0;}
body{background: #1b1b1b;}
#div1{margin:50px auto; width:300px; height: 300px;}
canvas{background: #fff;}
</style>
<script type="text/javascript">
window.onload = function(){
    var c = document.getElementById(‘myCanvas‘);
    var content = c.getContext(‘2d‘);

    //绘制二次方贝塞尔曲线
    content.strokeStyle ="#FF5D43";
    content.beginPath();
    content.moveTo(0,200);
    content.quadraticCurveTo(75,50,300,200);
    content.stroke();
    content.globalCompositeOperation = ‘source-over‘;    //目标图像上显示源图像

    //绘制上面曲线的控制点和控制线,控制点坐标为两直线的交点(75,50)
    content.strokeStyle = ‘#f0f‘;
    content.beginPath();
    content.moveTo(75,50);
    content.lineTo(0,200);
    content.moveTo(75,50);
    content.lineTo(300,200);
    content.stroke();

};
</script>
</head>
<body>
    <div id="div1">
        <canvas id="myCanvas" width="300" height="200"></canvas>
    </div>
</body>
</html>

2、三次方贝塞尔曲线

bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)  其中参数cp1x,cp1y表示第一个控制点的坐标, cp2x,cp2y表示第二个控制点的坐标, x,y是终点的坐标;

数学公式表示如下:

P0P1P2P3四个点在平面或在三维空间中定义了三次方贝兹曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1P2;这两个点只是在那里提供方向资讯。P0P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
*{padding: 0;margin:0;}
body{background: #1b1b1b;}
#div1{margin:50px auto; width:300px; height: 300px;}
canvas{background: #fff;}
</style>
<script type="text/javascript">
window.onload = function(){
    var c = document.getElementById(‘myCanvas‘);
    var content = c.getContext(‘2d‘);

    //三次方贝塞尔曲线
    content.strokeStyle = ‘#FA7E2A‘;
    content.beginPath();
    content.moveTo(25,175);
    content.bezierCurveTo(60,80,150,30,170,150);
    content.stroke();
    content.globalCompositeOperation = ‘source-over‘;

    //绘制起点、控制点、终点
    content.strokeStyle = ‘red‘;
    content.beginPath();
    content.moveTo(25,175);
    content.lineTo(60,80);
    content.lineTo(150,30);
    content.lineTo(170,150);
    content.stroke();

};
</script>
</head>
<body>
    <div id="div1">
        <canvas id="myCanvas" width="300" height="200"></canvas>
    </div>
</body>
</html>

时间: 2024-10-29 00:06:26

canvas绘制贝塞尔曲线的相关文章

html5 canvas绘图-贝塞尔曲线

贝塞尔曲线(ezier curve)最迟是由法国物理学家与数学家paul de Casteljau发明的.它的广泛运用则要归功于法国工程师皮埃尔 贝塞尔 贝塞尔曲线期初被用在汽车车身的设计上.现在则多用于计算机图形系统中.例如Adobe Illustrator/Apple的Cocoa框架以及在Html5的canvas. 贝塞尔曲线分为两种:平方(quadratic)贝塞尔曲线及立方(cubic)贝塞尔曲线.平方贝塞尔曲线是一种二次曲线(second degree curve),意思就是说,它们是

JavaScript+canvas 利用贝塞尔曲线绘制曲线

效果图: <body> <canvas id="test" width="800" height="300"></canvas> <script type="text/javascript"> //一个工具函数,用于将角度从角度制转化成弧度制 function rads(x){ return Math.PI*x/180;} var canvas = document.getEle

HTML5 canvas绘制线条曲线

HTML5 canvas入门 线条例子 1.简单线条 2.三角形 3.填充三角形背景颜色 4.线条颜色以及线条大小 5.二次贝塞尔曲线 6.三次贝塞尔曲线 <!doctype html> <html> <head> <meta charset="utf-8"/> <meta name="keywords" content="脚本小子_小贝_HTML5_canvas线条"/> <me

绘制贝塞尔曲线

//绘制多图形(继承UIView) - (void)drawRect:(CGRect)rect { UIColor *color =  [UIColor redColor]; [color set]; UIBezierPath *path = [UIBezierPath bezierPath]; path.lineWidth = 5.0; //创建多边形 [path moveToPoint:CGPointMake(100, 0)]; //画线 [path addLineToPoint:CGPoi

Android自定义View进阶 - 贝塞尔曲线

Path之贝塞尔曲线 作者微博: @GcsSloop [本系列相关文章] 在上一篇文章Path之基本图形中我们了解了Path的基本使用方法,本次了解Path中非常非常非常重要的内容-贝塞尔曲线. 一.Path常用方法表 为了兼容性(偷懒) 本表格中去除了在API21(即安卓版本5.0)以上才添加的方法.忍不住吐槽一下,为啥看起来有些顺手就能写的重载方法要等到API21才添加上啊.宝宝此刻内心也是崩溃的. 作用 相关方法 备注 移动起点 moveTo 移动下一次操作的起点位置 设置终点 setLa

【转】贝塞尔曲线介绍

原文链接: http://blog.csdn.net/sangxiaonian/article/details/51984013 http://blog.csdn.net/sangxiaonian/article/details/51984584 http://blog.csdn.net/sangxiaonian/article/details/51985405 其他参考链接: https://www.jianshu.com/p/55c721887568 作为一个有只志向的码农,除了知道一些基本

贝塞尔曲线与CSS3动画、SVG和canvas的应用

简介 贝塞尔曲线是可以做出很多复杂的效果来的,比如弹跳球的复杂动画效果,首先加速下降,停止,然后弹起时逐渐减速的效果. 使用贝塞尔曲线常用的两个网址如下: 缓动函数:http://www.xuanfengge.com/easeing/easeing/ cubic-bezier:http://cubic-bezier.com/ 如何用贝塞尔曲线画曲线 一个标准的3次贝塞尔曲线需要4个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 无论SVG, Canvas还是CSS3动画,都牵扯到这4个

HTML5 Canvas中的贝塞尔曲线

在HTML5提供的画布功能,也就是Canvas中,getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性.本文以getContext("2d")中提供的方法为例,简要研究了其中用于绘制曲线路径的贝塞尔曲线. JavaScript中的getContext("2d")为我们提供了两种绘制贝塞尔曲线路径的方法,分别是quadraticCurveTo()用于绘制二次贝塞尔曲线和bezierCurveTo()用于绘制三次贝塞尔曲线. 什么是贝塞

canvas绘制曲线

绘制曲线有几种思路: 1.通过quadraticCurveTo(controlX, controlY, endX, endY)方法来绘制二次曲线 2.通过bezierCurveTo(controlX1, controlY1, controlX2, controlY2, endX, endY)方法,来绘制贝塞尔曲线 3.通过画圆的方法arc(x, y, radius, startAngle, endAngle, antiClockwise)来取得某一段圆弧,作为要画出的曲线 1.二次曲线quadr