首页 > 其他分享 >canvas扇形径向渐变和角度渐变

canvas扇形径向渐变和角度渐变

时间:2023-06-12 15:58:22浏览次数:63  
标签:canvas devicePixelRatio 渐变 height 扇形 context var 径向

径向渐变

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

var centerX = canvas.width / 2; // 扇形中心点的X坐标
var centerY = canvas.height / 2; // 扇形中心点的Y坐标
var radius = 100; // 扇形的半径
var startAngle = 0; // 扇形的起始角度
var endAngle = Math.PI / 2; // 扇形的结束角度

var gradient = context.createRadialGradient(centerX, centerY, 0, centerX, centerY, radius);
gradient.addColorStop(0, 'rgba(0, 0, 0, 0)'); // 渐变的起始颜色为完全透明
gradient.addColorStop(1, 'rgba(0, 0, 0, 1)'); // 渐变的结束颜色为完全不透明

context.beginPath();
context.moveTo(centerX, centerY);
context.arc(centerX, centerY, radius, startAngle, endAngle);
context.fillStyle = gradient; // 设置扇形的填充样式为渐变
context.fill();

扇形渐变

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

// var width = canvas.width,height=canvas.height;
// if (window.devicePixelRatio) {
//   console.log('window.devicePixelRatio', window.devicePixelRatio)
//   devicePixelRatio = window.devicePixelRatio;
//     canvas.style.width = width + "px";
//     canvas.style.height = height + "px";
//     canvas.height = height * devicePixelRatio;
//     canvas.width = width * devicePixelRatio;
//     context.scale(devicePixelRatio, devicePixelRatio);
// }

var centerX = canvas.width / 2; // 扇形中心点的X坐标
var centerY = canvas.height / 2; // 扇形中心点的Y坐标
var radius = 100; // 扇形的半径

function draw() {
  // context.scale(0.25, 0.25);
    for(let i = 0; i < 90; i+=1) {
      // 绘制扇形
      context.beginPath();
      context.moveTo(centerX, centerY);
      context.arc(centerX, centerY, radius, toRadian(i), toRadian(i+1));
      context.fillStyle = 'rgba(255, 0, 0, ' + i/90 + ')'; // 根据透明度设置填充样式
      context.fill();
    }
}

// 开始动画
draw();

function hexToRgb(hex) {
  return 'rgb(' + parseInt('0x' + hex.slice(1, 3)) + ',' + parseInt('0x' + hex.slice(3, 5))
          + ',' + parseInt('0x' + hex.slice(5, 7)) + ')';
}


function toRadian(angle) {
  return Math.PI / 180 * angle;
}

 

标签:canvas,devicePixelRatio,渐变,height,扇形,context,var,径向
From: https://www.cnblogs.com/fqh123/p/17475234.html

相关文章

  • html照片从模糊到清晰的渐变加载显示方法
    1.背景介绍在网络相册应用中用户查看照片是最朴素的需求,当网络比较慢的时候查看照片等待的时间是比较长的,用户体验会很差。 2.现状现在加载照片的方法主要有一下两种:(1)最原始的方式在html页面直接用img标签加载显示照片。该方法在网络速度比较慢或者要显示的照片比较大的时候会......
  • CSS实现简单动态渐变闪烁效果
    CSS练习用例:.event{border-radius:4px;-webkit-border-radius:4px;color:#FFFFFF;font-size:12px;margin:0px30px;padding:2px0px;}.event.received{background-color:#4B946A;display:none;}@keyframe......
  • 文字效果 用背景渐变实现 波浪背景文字
    1.实现波浪背景div{width:400px;height:200px;outline:2pxdashedgray;--c:#2196F3;--w1:radial-gradient(100%57%attop,#0000100%,var(--c)100.5%)no-repeat;--w2:radial-gradient(100%57%atbottom,var(--c)100%,#0000100.5%)no-repea......
  • CSS实现兼容性的渐变背景(gradient)效果
    一、有点俗态的开场白要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现兼容性的渐变背景效果已经完全成为可能,本文就将展示如何实现兼容性的渐变背景效果。在众......
  • echarts折线图颜色渐变设置
    constcolor1="rgb(229,53,59,0.05)"constcolor2="rgb(229,53,59,0)"series:[{data:[12,30,60,80,100,60,130,12,30,60,80,100,60,130],type:'line',......
  • 渐变色Panel构造方法的重写
    #此类用于设置渐变色panelclassMyPanel(wx.Panel):def__init__(self,parent):wx.Panel.__init__(self,parent,wx.ID_ANY)self.SetBackgroundStyle(wx.BG_STYLE_PAINT)self.Bind(wx.EVT_PAINT,self.OnPaint)self.Bind(wx.EVT_SIZ......
  • HTML5 CANVAS 弹幕插件
    概述修改了普通弹幕运动的算法,新增了部分功能详细修改了普通弹幕运动的算法,新增了部分功能,具体请参看附件里的CHANGELOG.md和README.md一、概述说实话,从第二版到现在又过了半年,本来以为可能不会写第三版的,顶多将第二版的代码重构下就可以了,没想到还是花了一个星期左......
  • Canvas API初步学习
    1.字体 在canvas中最常见的字体表现形式有填充字体和漏空字体。   漏空字体用方法:strokeText(Text,left,top,[maxlength]);  填充字体用方法:fillText(Text,left,top,[maxlength]);上面的两个方法的最后一个参数是可选的,四个参数的含义分为是:需绘制的字符串,绘制到画布中时......
  • 微信小程序使用ec-canvas真机上tooltip有阴影
    问题微信小程序项目中,使用了ec-canvas绘制图表,在开发者工具中预览正常,但是在真机上点击图表tooltip会出现一层阴影,如下图所示:修改后解决之后探索到解决方案,代码如下:tooltip:{trigger:'axis',textStyle:{align:'left',textShadowBlur:10,//重点......
  • HTML5的Canvas画图模拟太阳系运转
    今天研究的是利用HTML5的Canvas画图来模拟太阳系运转,首先,在这个太阳系里分为画轨道和画星球两个部分,对于每一个星球我们要知道它的颜色和公转周期,如下图。  采用面向对象编程的思想,代码如下 stars.html<!DOCTYPEHTML><html> <head></head> <body> <canvasid="canvas"......