当前位置:首页 > JavaScript

js 画图实现

2026-02-02 10:09:51JavaScript

使用 Canvas API 绘制图形

Canvas API 是 HTML5 提供的原生绘图工具,通过 JavaScript 操作画布元素实现绘图。基本步骤如下:

  1. 在 HTML 中创建 <canvas> 元素:

    <canvas id="myCanvas" width="500" height="500"></canvas>
  2. 获取画布上下文并绘制图形:

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

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

// 绘制圆形 ctx.beginPath(); ctx.arc(200, 200, 50, 0, Math.PI * 2); ctx.fillStyle = 'red'; ctx.fill();


### 使用 SVG 绘图

SVG 是矢量图形标记语言,可通过 JavaScript 动态创建和修改:

1. HTML 中直接嵌入 SVG:
```html
<svg id="mySvg" width="500" height="500"></svg>
  1. 使用 JavaScript 添加图形元素:
    
    const svg = document.getElementById('mySvg');

// 创建圆形 const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); circle.setAttribute('cx', '100'); circle.setAttribute('cy', '100'); circle.setAttribute('r', '50'); circle.setAttribute('fill', 'green'); svg.appendChild(circle);

js 画图实现


### 使用第三方库(Chart.js)

对于数据可视化,Chart.js 提供简单易用的图表绘制功能:

1. 引入库文件:
```html
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<canvas id="myChart"></canvas>
  1. 创建图表:
    const ctx = document.getElementById('myChart');
    new Chart(ctx, {
     type: 'bar',
     data: {
         labels: ['Red', 'Blue', 'Yellow'],
         datasets: [{
             label: 'Color Values',
             data: [12, 19, 3],
             backgroundColor: [
                 'rgba(255, 99, 132, 0.2)',
                 'rgba(54, 162, 235, 0.2)',
                 'rgba(255, 206, 86, 0.2)'
             ]
         }]
     }
    });

使用 D3.js 进行高级可视化

D3.js 适合复杂的数据可视化需求:

  1. 引入 D3.js:

    <script src="https://d3js.org/d3.v7.min.js"></script>
    <div id="visualization"></div>
  2. 创建力导向图示例:

    
    const width = 600, height = 400;
    const svg = d3.select("#visualization")
     .append("svg")
     .attr("width", width)
     .attr("height", height);

// 模拟数据 const nodes = [{id: 1}, {id: 2}, {id: 3}]; const links = [{source: 1, target: 2}, {source: 2, target: 3}];

js 画图实现

// 创建力导向布局 const simulation = d3.forceSimulation(nodes) .force("link", d3.forceLink(links).id(d => d.id)) .force("charge", d3.forceManyBody()) .force("center", d3.forceCenter(width / 2, height / 2));


### WebGL 三维绘图

对于高性能 3D 图形,可使用 Three.js:

1. 引入 Three.js:
```html
<script src="https://cdn.jsdelivr.net/npm/three@0.132.2/build/three.min.js"></script>
<div id="3d-container"></div>
  1. 创建简单 3D 场景:
    
    const scene = new THREE.Scene();
    const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
    const renderer = new THREE.WebGLRenderer();
    renderer.setSize(800, 600);
    document.getElementById('3d-container').appendChild(renderer.domElement);

const geometry = new THREE.BoxGeometry(); const material = new THREE.MeshBasicMaterial({color: 0x00ff00}); const cube = new THREE.Mesh(geometry, material); scene.add(cube);

camera.position.z = 5;

function animate() { requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); } animate();

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

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现验证码

js实现验证码

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

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取…