当前位置:首页 > JavaScript

js实现画图

2026-03-01 00:20:18JavaScript

JavaScript 画图基础方法

使用 HTML5 的 <canvas> 元素是实现画图的核心方式。通过获取画布上下文,可以绘制线条、形状、文本等。

// 获取画布和上下文
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// 绘制矩形
ctx.fillStyle = 'red';
ctx.fillRect(10, 10, 100, 100);

绘制路径

路径绘制适用于复杂图形,通过 beginPath()stroke()/fill() 控制。

ctx.beginPath();
ctx.moveTo(50, 50);  // 起点
ctx.lineTo(150, 50); // 直线
ctx.arc(100, 100, 50, 0, Math.PI * 2); // 圆
ctx.stroke();        // 描边

使用第三方库

对于高级绘图需求,可引入库如 Chart.js(数据可视化)或 Fabric.js(交互式绘图)。

js实现画图

Chart.js 示例:

new Chart(document.getElementById('chart'), {
  type: 'bar',
  data: {
    labels: ['A', 'B', 'C'],
    datasets: [{
      data: [10, 20, 30],
      backgroundColor: ['#ff0000', '#00ff00', '#0000ff']
    }]
  }
});

SVG 绘图替代方案

通过操作 SVG DOM 实现矢量图形,适合可缩放图形。

js实现画图

const svg = document.getElementById('svgCanvas');
const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
circle.setAttribute('cx', '50');
circle.setAttribute('cy', '50');
circle.setAttribute('r', '40');
circle.setAttribute('fill', 'blue');
svg.appendChild(circle);

动画实现

结合 requestAnimationFrame 实现动态效果。

let x = 0;
function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(x, 50, 20, 20);
  x += 2;
  requestAnimationFrame(animate);
}
animate();

事件交互

监听鼠标事件实现交互式绘图。

canvas.addEventListener('mousemove', (e) => {
  const rect = canvas.getBoundingClientRect();
  ctx.fillRect(e.clientX - rect.left, e.clientY - rect.top, 5, 5);
});

标签: 画图js
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js验证码实现

js验证码实现

验证码的基本原理 验证码(CAPTCHA)用于区分人类用户和自动化程序。常见类型包括图形验证码、滑动验证码、短信验证码等。JavaScript 可用于前端验证码的生成和验证逻辑。 图形验证码实现 使…