当前位置:首页 > 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(交互式绘图)。

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 实现矢量图形,适合可缩放图形。

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();

事件交互

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

js实现画图

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

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

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…