当前位置:首页 > JavaScript

js实现曲线

2026-04-05 13:39:46JavaScript

使用Canvas绘制曲线

在JavaScript中,Canvas API提供多种方法绘制曲线。beginPath()开始路径,moveTo(x, y)设置起点,quadraticCurveTo(cp1x, cp1y, x, y)绘制二次贝塞尔曲线,bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)绘制三次贝塞尔曲线。

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

ctx.beginPath();
ctx.moveTo(50, 50);
ctx.quadraticCurveTo(100, 25, 150, 50);
ctx.stroke();

使用SVG绘制曲线

SVG的<path>元素通过d属性定义路径。M移动至起点,Q创建二次贝塞尔曲线,C创建三次贝塞尔曲线。

js实现曲线

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

使用数学函数生成曲线

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

js实现曲线

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

ctx.beginPath();
for (let x = 0; x < 200; x++) {
  const y = 50 + 20 * Math.sin(x * 0.1);
  ctx.lineTo(x, y);
}
ctx.stroke();

使用第三方库绘制曲线

库如D3.js或Chart.js简化曲线绘制。D3.js示例:

import * as d3 from 'd3';

const line = d3.line()
  .x(d => d.x)
  .y(d => 50 + 20 * Math.sin(d.x * 0.1));

const data = Array.from({length: 200}, (_, i) => ({x: i}));

d3.select('svg')
  .append('path')
  .attr('d', line(data))
  .attr('stroke', 'black')
  .attr('fill', 'none');

曲线动画效果

结合requestAnimationFrame实现动画,动态更新曲线控制点或路径。

let angle = 0;
function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.beginPath();
  ctx.moveTo(50, 50);
  const cp1y = 25 + 10 * Math.sin(angle);
  ctx.quadraticCurveTo(100, cp1y, 150, 50);
  ctx.stroke();
  angle += 0.05;
  requestAnimationFrame(animate);
}
animate();

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

相关文章

js实现授权

js实现授权

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

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…