帆布怎么画出平滑的曲线

  介绍

这篇文章将为大家详细讲解有关帆布怎么画出平滑的曲线,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>背景概要

相信大家平时在学习帆布或项目开发中使用帆布的时候应该都遇到过这样的需求:实现一个可以书写的画板小工具。

嗯,相信这对画布使用较熟的童鞋来说仅仅只是几十行代码就可以搞掂的事情,以演示下就是一个再也简单不过的例子了:

& lt; ! DOCTYPE  html>   & lt; html>   & lt; head>   ,,,& lt; title> Sketchpad  demo   ,,,& lt; style 类型=拔谋?css"比;   ,,,,,,,canvas  {   ,,,,,,,,,,,边界:,1 px  blue 固体,,   ,,,,,,,}   ,,,& lt;/style>   & lt;/head>   & lt; body>   ,,,& lt; canvas  id=癱anvas",宽度=?00“,身高=?00“祝辞& lt;/canvas>   ,,,& lt; script 类型=拔谋?javascript"比;   ,,,,,,,let  isDown =,假;   ,,,,,,,let  beginPoint =,空;   ,,,,,,,const  canvas =, document.querySelector(& # 39; #帆布# 39;);   ,,,,,,,const  ctx =, canvas.getContext (& # 39; 2 d # 39;);      ,,,,,,,//,设置线条颜色   ,,,,,,,ctx.strokeStyle =, & # 39;红色# 39;;   ,,,,,,,ctx.lineWidth =, 1;   ,,,,,,,ctx.lineJoin =, & # 39;轮# 39;;   ,,,,,,,ctx.lineCap =, & # 39;轮# 39;;      ,,,,,,,canvas.addEventListener (& # 39; mousedown& # 39;,,,,假);   ,,,,,,,canvas.addEventListener (& # 39; mousemove& # 39;,,,,假);   ,,,,,,,canvas.addEventListener (& # 39; mouseup # 39;,,,,假);   ,,,,,,,canvas.addEventListener (& # 39; mouseout& # 39;,,,,假);      ,,,,,,,function 下来(evt), {   ,,,,,,,,,,,isDown =,真的;   ,,,,,,,,,,,beginPoint =, getPos (evt);   ,,,,,,,}      ,,,,,,,function 移动(evt), {   ,,,,,,,,,,,if  (! isDown),返回;   ,,,,,,,,,,,const  endPoint =, getPos (evt);   ,,,,,,,,,,,画直线(beginPoint,端点);   ,,,,,,,,,,,beginPoint =,端点;   ,,,,,,,}      ,,,,,,,function 起来(evt), {   ,,,,,,,,,,,if  (! isDown),返回;   ,,,,,,,,,,,   ,,,,,,,,,,,const  endPoint =, getPos (evt);   ,,,,,,,,,,,画直线(beginPoint,端点);      ,,,,,,,,,,,beginPoint =,空;   ,,,,,,,,,,,isDown =,假;   ,,,,,,,}      ,,,,,,,function  getPos (evt), {   ,,,,,,,,,,,return  {   ,,,,,,,,,,,,,,,x:, evt.clientX,   ,,,,,,,,,,,,,,,y: evt.clientY   ,,,,,,,,,,,}   ,,,,,,,}      ,,,,,,,function 画直线(beginPoint,端点),{   ,,,,,,,,,,,ctx.beginPath ();   ,,,,,,,,,,,ctx.moveTo (beginPoint.y beginPoint.x也);   ,,,,,,,,,,,ctx.lineTo (endPoint.y endPoint.x也);   ,,,,,,,,,,,ctx.stroke ();   ,,,,,,,,,,,ctx.closePath ();   ,,,,,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

帆布怎么画出平滑的曲线