当前位置:首页 > JavaScript

js实现曲线

2026-01-31 21:23:05JavaScript

使用Canvas绘制曲线

在JavaScript中,Canvas API提供了多种绘制曲线的方法。beginPath()开始路径,moveTo()移动到起点,quadraticCurveTo()bezierCurveTo()绘制曲线。

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

ctx.beginPath();
ctx.moveTo(50, 50);
ctx.quadraticCurveTo(100, 100, 150, 50); // 二次贝塞尔曲线
ctx.stroke();

使用SVG创建曲线

SVG的<path>元素可通过d属性定义曲线路径。M移动到起点,QC分别创建二次或三次贝塞尔曲线。

<svg width="200" height="200">
  <path d="M50 50 Q100 100 150 50" stroke="black" fill="none"/>
</svg>

使用数学函数生成曲线点

通过数学函数(如正弦函数)生成坐标点,再用线段连接形成曲线。

const points = [];
for (let x = 0; x < 200; x++) {
  const y = 50 + 30 * Math.sin(x * 0.05);
  points.push({x, y});
}

ctx.beginPath();
points.forEach((point, i) => {
  if (i === 0) ctx.moveTo(point.x, point.y);
  else ctx.lineTo(point.x, point.y);
});
ctx.stroke();

使用第三方库(如D3.js)

D3.js提供高级曲线生成功能,如插值曲线或平滑过渡。

import * as d3 from 'd3';

const lineGenerator = d3.line()
  .x(d => d.x)
  .y(d => d.y)
  .curve(d3.curveBasis);

const pathData = lineGenerator(points);

曲线动画效果

结合requestAnimationFrame动态更新曲线坐标,实现动画效果。

js实现曲线

let offset = 0;
function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.beginPath();
  for (let x = 0; x < 200; x++) {
    const y = 50 + 30 * Math.sin(x * 0.05 + offset);
    if (x === 0) ctx.moveTo(x, y);
    else ctx.lineTo(x, y);
  }
  ctx.stroke();
  offset += 0.1;
  requestAnimationFrame(animate);
}
animate();

标签: 曲线js
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…