cavans图形绘制(直线、矩形、原型、贝塞尔曲线、渐变背景) 1

简介: cavans图形绘制(直线、矩形、原型、贝塞尔曲线、渐变背景)

一、绘制直线

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>canvas</title>
</head>
 
<body>
<canvas id="myCanvas" width="200" height="200" style="border:1px solid #753838;">您的浏览器不支持HTML5 canvas</canvas>
</body>
<script>
  <!--  获取绘制元素-->
  var c = document.getElementById("myCanvas");
  //获取cavas绘制上下文
  var ctx = c.getContext("2d");
  //设置直线起点
  //定义开始坐标
  ctx.moveTo(0, 0);
  //定义结束坐标
  ctx.lineTo(200, 200)
  //设开始绘制
  ctx.stroke();
</script>
</html>

二、绘制多条直线(线帽)

<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>canvas</title>
</head>
 
<body>
<canvas id="myCanvas" width="200" height="200" style="border:1px solid #753838;">您的浏览器不支持HTML5 canvas</canvas>
</body>
<script>
  <!--  获取绘制元素-->
  var c = document.getElementById("myCanvas");
  //获取cavas绘制上下文
  var ctx = c.getContext("2d");
  //开始绘制
  ctx.beginPath();
  //设置线宽
  ctx.lineWidth = 10;
  //设置联调端点样式,默认值添加平直边缘
  ctx.lineCap = "butt";
  //设置起点
  ctx.moveTo(20, 20);
  //设置终点
  ctx.lineTo(180, 20)
  //绘制
  ctx.stroke();
 
  ctx.beginPath();
  //设置联调端点样式,添加圆形边缘
  ctx.lineCap = "round";
  ctx.moveTo(20, 40);
  ctx.lineTo(180, 40);
  ctx.stroke();
 
  ctx.beginPath();
  //设置联调端点样式,添加方形边缘
  ctx.lineCap = "square";
  ctx.moveTo(20, 60);
  ctx.lineTo(180, 60);
  ctx.stroke();
</script>
</html>

三、绘制复杂图形

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>canvas</title>
    <script>
        function draw(id) {
            var canvas = document.getElementById(id);
            //获取canvas上下文
            var context = canvas.getContext("2d");
            //设置绘图区域颜色
            context.fillStyle = "#eeeeef";
            //绘制矩形
            context.fillRect(0, 0, 300, 400);
            var dx = 150;
            var dy = 150;
            var s = 100;
            //开始绘图
            context.beginPath();
            //    设置绘图区域颜色
            context.fillStyle = 'rgb(100,255,100)';
            //    设置线条颜色
            context.strokeStyle = "rgb(0,0,100)";
            var x = Math.sin(0);
            var y = Math.cos(0);
            var dig = Math.PI / 15 * 11;
            //不断旋转绘制直线
            for (var i = 0; i < 30; i++) {
                var x = Math.sin(i * dig);
                var y = Math.cos(i * dig);
                context.lineTo(dx + x * s, dy + y * s);
            }
            context.closePath();
            context.fill();
            context.stroke();
        }
    </script>
</head>
<body onload="draw('canvas')">
<canvas id="canvas" width="300" height="400"></canvas>
</body>
</html>

四、绘制矩形

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>canvas</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="200"></canvas>
</body>
<script>
<!--    获取绘制元素-->
    var c=document.getElementById("myCanvas");
    //获取canvas上下文
    var ctx=c.getContext("2d");
    //定义矩形起点和宽高
    ctx.rect(20,20,150,100);
    //绘制矩形
    ctx.stroke();
</script>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>canvas</title>
</head>
<body>
<canvas id="myCanvas" width="200" height="200"></canvas>
</body>
<script>
    <!--    获取绘制元素-->
    var c = document.getElementById("myCanvas");
    //获取canvas上下文
    var ctx = c.getContext("2d");
    //    设置绘图区域颜色
    ctx.fillStyle = 'rgb(112,206,57)';
    //定义矩形起点和宽高,并绘制
    ctx.fillRect(20, 20, 150, 150);
 
</script>
</html>

五、绘制弧线

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>canvas</title>
</head>
<body>
<canvas id="myCanvas" width="400" height="400"></canvas>
 
</body>
<script>
    <!--    获取绘制元素-->
    var canvas = document.getElementById("myCanvas");
    //获取绘制上下文
    var context = canvas.getContext("2d");
    //开始绘制
    context.beginPath();
    //    设置线条颜色
    context.strokeStyle = 'rgb(206,70,28)';
    //绘制圆,设置圆心坐标,半径40,起始弧度,结束弧度
    context.arc(100, 100, 40, 0, 0.5 * Math.PI);
    context.stroke();
    //开始绘制
    context.beginPath();
    //    设置线条颜色
    context.strokeStyle = 'rgb(236,210,44)';
    //绘制圆,设置圆心坐标,半径40,起始弧度,结束弧度
    context.arc(200, 100, 40, 0, 1 * Math.PI);
    context.stroke();
    //开始绘制
    context.beginPath();
    //    设置线条颜色
    context.strokeStyle = 'rgb(36,152,148)';
    //绘制圆,设置圆心坐标,半径40,起始弧度,结束弧度
    context.arc(100, 200, 40, 0, 1.5 * Math.PI);
    context.stroke();
    //开始绘制
    context.beginPath();
    //    设置线条颜色
    context.strokeStyle = 'rgb(15,18,217)';
    //绘制圆,设置圆心坐标,半径40,起始弧度,结束弧度
    context.arc(200, 200, 40, 0, 2 * Math.PI);
    context.stroke();
</script>
</html>


六、绘制复杂圆形

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>canvas</title>
</head>
<body onload="draw('myCanvas')">
<canvas id="myCanvas" width="300" height="400"></canvas>
</body>
<script>
    function draw(id) {
        var canvas = document.getElementById(id);
        if (canvas == null) {
            return false;
        }
        var ctx = canvas.getContext("2d");
        //设置填充颜色
        ctx.fillStyle="rgb(94,83,83)";
        ctx.fillRect(0,0,600,700);
        for (var i = 0; i < 10; i++) {
            //开始创建路径
            ctx.beginPath();
            //创建路径图形
            ctx.arc(i*25,i*25,i*10,0,Math.PI*2,true);
            //关闭路径
            ctx.closePath();
            //设置填充样式
            ctx.fillStyle="rgba(255,0,0,0.25)";
            //填充
            ctx.fill();
        }
 
    }
 
</script>
</html>

cavans图形绘制(直线、矩形、原型、贝塞尔曲线、渐变背景) 2:https://developer.aliyun.com/article/1547220

相关文章
|
前端开发 算法 数据可视化
怎么在echarts图上左右滑动切换数据区间
怎么在echarts图上左右滑动切换数据区间
600 0
|
缓存 前端开发 Serverless
Vercel 部署 Node 服务
Vercel 部署 Node 服务
1903 0
Vercel 部署 Node 服务
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
156 4
|
JSON API 数据格式
BING壁纸免费API接口教程
接口简介:获取每日不同的必应官方壁纸。请求地址:https://cn.apihz.cn/api/img/bingapi.php,支持POST或GET请求。需提供用户ID、用户KEY及返回格式(JSON/TXT)。返回状态码和图片地址或错误信息。示例及详细文档见官网。
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
前端开发 JavaScript
HTML+CSS实现超酷炫的返回顶部特效,你一定会爱上!
HTML+CSS实现超酷炫的返回顶部特效,你一定会爱上!
|
编解码
MATLAB | 科研绘图第十五期多Y轴图
MATLAB | 科研绘图第十五期多Y轴图
283 0
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之表增加字段,提示创建表失败:DDL execute error, OdpsException: ODPS-0130071:[1,60] Semantic analysis exception - column,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
391 2
|
消息中间件 Kafka 数据处理
超硬核解析!Apache Hudi灵活的Payload机制
Apache Hudi 的Payload是一种可扩展的数据处理机制,通过不同的Payload我们可以实现复杂场景的定制化数据写入方式,大大增加了数据处理的灵活性。Hudi Payload在写入和读取Hudi表时对数据进行去重、过滤、合并等操作的工具类,通过使用参数 &quot;hoodie.datasource.write.payload.class&quot;指定我们需要使用的Payload class。 ​
2426 0
超硬核解析!Apache Hudi灵活的Payload机制
|
算法 JavaScript 数据可视化
基于leaflet-velocity的二维动态风场展示
本文讲解了leaflet-velocity插件,并利用插件进行了模拟的动态风场、洋流等信息的综合展示,让读者掌握集成方式。
1762 0
基于leaflet-velocity的二维动态风场展示