当前位置:首页 > JavaScript

画图js实现

2026-02-01 02:14:27JavaScript

使用Canvas API绘制图形

Canvas API是HTML5提供的原生绘图工具,通过JavaScript操作Canvas元素实现绘图功能。需要获取Canvas的上下文(context)后调用绘图方法。

// 获取Canvas元素和上下文
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

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

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

使用SVG动态生成图形

SVG是基于XML的矢量图形格式,可以通过JavaScript动态创建和修改SVG元素。

画图js实现

// 创建SVG元素
const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
svg.setAttribute("width", "300");
svg.setAttribute("height", "200");

// 添加矩形
const rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.setAttribute("x", "10");
rect.setAttribute("y", "10");
rect.setAttribute("width", "100");
rect.setAttribute("height", "100");
rect.setAttribute("fill", "green");
svg.appendChild(rect);

// 添加到DOM
document.body.appendChild(svg);

使用第三方库绘制图表

Chart.js是流行的图表库,适用于快速创建各种统计图表。

// 引入Chart.js后使用
const ctx = document.getElementById('chartCanvas').getContext('2d');
const chart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['Red', 'Blue', 'Yellow'],
        datasets: [{
            label: 'Dataset',
            data: [12, 19, 3],
            backgroundColor: ['red', 'blue', 'yellow']
        }]
    }
});

使用D3.js进行数据可视化

D3.js是专业级数据可视化库,适合创建复杂的交互式图表。

画图js实现

// 创建SVG容器
const svg = d3.select("body").append("svg")
    .attr("width", 400)
    .attr("height", 200);

// 绘制数据点
svg.selectAll("circle")
    .data([10, 20, 30])
    .enter().append("circle")
    .attr("cx", (d, i) => i * 50 + 30)
    .attr("cy", 50)
    .attr("r", d => d)
    .attr("fill", "purple");

使用WebGL进行3D绘图

Three.js是基于WebGL的3D图形库,适合创建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(window.innerWidth, window.innerHeight);
document.body.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();

使用HTML/CSS绘制简单图形

CSS可以创建基本的几何图形,适合简单的UI元素。

<style>
    .circle {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        background-color: orange;
    }
    .triangle {
        width: 0;
        height: 0;
        border-left: 50px solid transparent;
        border-right: 50px solid transparent;
        border-bottom: 100px solid teal;
    }
</style>

<div class="circle"></div>
<div class="triangle"></div>

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

相关文章

vue实现画图

vue实现画图

Vue 实现画图功能 在 Vue 中实现画图功能通常需要结合 HTML5 的 <canvas> 元素或第三方库。以下是几种常见的方法: 使用原生 Canvas API 通过 Vue 直接…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 j…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(…