当前位置:首页 > 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
分享给朋友:

相关文章

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选框 co…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…

js 实现mvc

js 实现mvc

MVC 模式简介 MVC(Model-View-Controller)是一种软件设计模式,将应用程序分为三个核心组件:模型(Model)处理数据和业务逻辑,视图(View)负责展示数据,控制器(Con…

js sort 实现

js sort 实现

数组排序基础方法 JavaScript 数组的 sort() 方法默认按照字符串 Unicode 码点顺序排序。直接调用时会将元素转为字符串再比较: const arr = [10, 2, 5, 1…

js实现放大缩小

js实现放大缩小

使用 CSS transform 实现缩放 通过修改元素的 transform 属性实现平滑缩放效果。CSS 的 scale() 函数可以轻松调整元素大小。 const element = docu…

js实现菜单导航

js实现菜单导航

实现基础菜单导航结构 使用HTML和CSS创建菜单的基本结构,再通过JavaScript添加交互功能。HTML部分通常使用<ul>和<li>标签构建层级: <nav i…