context.quadraticCurveTo() context.bezierCurveTo()详解

使用quadraticCurveTo()描绘2维的贝塞尔曲线,之前的坐标点与当前坐标点之间以2维贝塞尔曲线连接。参数cpx与cpy表示贝塞尔曲线的控制点坐标,参数x,y为新追加的坐标点,指定的坐标点都以canvas元素的左上端为基准点。

什么是贝塞尔曲线

所谓的贝塞尔就是根据控制点算出的曲线,当需要曲线时一般使用贝塞尔曲线绘画。

quadraticCurveTo(cpx, cpy, x, y)方法由1个控制点与1个追加坐标点绘制2维贝塞尔曲线。 context . bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)方法则是由2个控制点和1个追加坐标点绘制3维贝塞尔曲线。

绘制2维贝塞尔曲线的步骤如下:

参数值及其说明
说明 实例
cpx 控制点的x坐标值。  
cpy 控制点的y坐标值
x 从当前坐标延伸2维贝塞尔曲线的x坐标。
h 从当前坐标延伸2维贝塞尔曲线的y坐标。

JavaScript:

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.beginPath();

context.moveTo(100,20);

context.quadraticCurveTo(150,100);

context.stroke();

参数值及其说明
说明 实例
x 绘制当前路径开始点的x坐标值。  
y 绘制当前路径开始点的y坐标值

使用HTML+JavaScript的方法,绘画例

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>使用canvas绘制图像</title>

<script type="text/javascript">

<!--

function test() {

//建立绘画环境

var canvas = document.getElementById(‘sample1‘);

if (canvas.getContext) {

var context = canvas.getContext(‘2d‘);

//以下指定具体的绘画内容

context.beginPath(); //开始新的路径

context.moveTo(60,120);//路径的开始位置的坐标

context.quadraticCurveTo(150,20,250,100); //路径的轮廓

context.stroke(); //显示当前路径的轮廓

}

}

//-->

</script>

</head>

<body onLoad="test()">

<h2>使用canvas绘制图像</h2>

<canvas width="300" height="150" id="sample1" style="">

只有支持canvas元素的浏览器才能正常显示图像。

</canvas>

</body>

</html>

时间: 2024-08-17 04:36:35

context.quadraticCurveTo() context.bezierCurveTo()详解的相关文章

【转】Context Switches上下文切换性能详解

http://blog.csdn.net/aiai5251/article/details/50015745 Context Switches 上下文切换,有时也被称为进程切换(process switch)或任务切换.是一个重要的性能指标. CPU从一个线程切换到另外一个线程,需要保存当前任务的运行环境,恢复将要运行任务的运行环境,必然带来性能消耗. Context Switches 上下文切换简介 操作系统可以同时运行多个进程, 然而一颗CPU同时只能执行一项任务,操作系统利用时间片轮转的方

jQuery(sel,[context]) jQuery()实例代码详解

概述 这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素. jQuery 的核心功能都是通过这个函数实现的. jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数.这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素. 默认情况下, 如果没有指定context参数,$()将在当前的 HTML document中查找 DOM 元素:如果指定了 context 参数,如一个 DOM 元素集或 jQ

CacheManager彻底解密:CacheManager运行原理流程图和源码详解(DT大数据梦工厂)

内容: 1.CacheManager重大价值: 2.CacheManager运行原理图: 3.CacheManager源码解析: BlockManager针对Cache这样的行为做了CacheManager Spark出色的原因: 1.Spark基于RDD构成了一体化.多元化的大数据处理中心(不需要再处理多种范式来部署多种框架,只要Spark!!!降低成本投入获得更高的产出): 2.迭代,因为在计算的时候迭代,在构建复杂算法的时候非常方便(图计算.机器学习.数据仓库),而CacheManager

详解Spring框架的核心思想之IOC

微信号:GitShare微信公众号:爱折腾的稻草如有问题或建议,请在公众号留言[1] 前续 为帮助广大SpringBoot用户达到"知其然,更需知其所以然"的境界,作者将通过SpringBoot系列文章全方位对SpringBoot2.0.0.RELEASE版本深入分解剖析,让您深刻的理解其内部工作原理. No.1 Spring是什么 为了让更多的朋友了解Spring,首先科普一下Spring!有兴趣的朋友可以去Spring官网逛逛,地址是:https://spring.io/ The

Android中Context详解 ---- 你所不知道的Context

转载至 :http://blog.csdn.net/qinjuning 前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context

Android中Context详解 ---- 你所不知道的Context (转载)

Android中Context详解 ---- 你所不知道的Context (转载) http://blog.csdn.net/qinjuning 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context的原理.类结构关系.一个简单的问题是,一个应用

Android应用Context详解及源码解析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果] 1 背景 今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马上要诞生这篇文章.我们平时在开发App应用程序时一直都在使用Context(别说你没用过,访问当前应用的资源.启动一个activity等都用到了Context),但是很少有人关注过这玩意到底是啥,也很少有人知道getApplication与getApplica

块级格式化上下文(block formatting context)、浮动和绝对定位的工作原理详解

CSS的可视化格式模型中具有一个非常重要地位的概念——定位方案.定位方案用以控制元素的布局,在CSS2.1中,有三种定位方案——普通流.浮动和绝对定位: 普通流:元素按照先后位置自上而下布局,inline元素水平排列,直到行被占满后换行,block元素则被渲染为完整的一行,除非指定,所有元素默认为普通流定位. 浮动:浮动布局中,元素首先按照普通流位置出现,然后根据浮动方向尽可能向左或右偏移,效果与文本环绕相似. 绝对定位:元素会脱离普通流,因此绝对定位元素不会对其兄弟元素产生影响(与float不

Android中Context详解 ---- 你所不知道的Context(转)

Android中Context详解 ---- 你所不知道的Context(转)                                              本文出处 :http://blog.csdn.net/qinjuning 前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打