当前位置:首页 > JavaScript

js实现画三角形

2026-03-02 03:29:19JavaScript

使用Canvas绘制三角形

Canvas是HTML5提供的绘图API,通过JavaScript可以轻松绘制各种图形,包括三角形。

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

ctx.beginPath();
ctx.moveTo(100, 100);  // 起点
ctx.lineTo(150, 150);  // 第二个点
ctx.lineTo(50, 150);   // 第三个点
ctx.closePath();       // 闭合路径
ctx.stroke();         // 描边

使用CSS绘制三角形

CSS可以通过边框技巧创建三角形,这种方法不需要JavaScript。

function createCSSTriangle() {
  const triangle = document.createElement('div');
  triangle.style.width = '0';
  triangle.style.height = '0';
  triangle.style.borderLeft = '50px solid transparent';
  triangle.style.borderRight = '50px solid transparent';
  triangle.style.borderBottom = '100px solid red';
  document.body.appendChild(triangle);
}

使用SVG绘制三角形

SVG是矢量图形标准,可以通过JavaScript动态创建。

function createSVGTriangle() {
  const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
  svg.setAttribute('width', '200');
  svg.setAttribute('height', '200');

  const triangle = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
  triangle.setAttribute('points', '100,10 150,190 50,190');
  triangle.setAttribute('fill', 'blue');

  svg.appendChild(triangle);
  document.body.appendChild(svg);
}

使用WebGL绘制三角形

WebGL提供了更强大的3D图形能力。

const canvas = document.getElementById('glCanvas');
const gl = canvas.getContext('webgl');

const vertices = [
  -0.5, -0.5, 0.0,
  0.5, -0.5, 0.0,
  0.0, 0.5, 0.0
];

const vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);

const vertexShaderSource = `
  attribute vec3 coordinates;
  void main() {
    gl_Position = vec4(coordinates, 1.0);
  }
`;

const fragmentShaderSource = `
  void main() {
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
  }
`;

// 创建着色器程序并绘制
// 完整实现需要更多WebGL初始化代码

使用D3.js绘制三角形

D3.js是数据可视化库,也可以用来绘制基本图形。

js实现画三角形

const svg = d3.select('body').append('svg')
  .attr('width', 200)
  .attr('height', 200);

svg.append('polygon')
  .attr('points', '100,10 150,190 50,190')
  .attr('fill', 'green');

每种方法适用于不同场景:Canvas适合动态图形,CSS适合简单UI元素,SVG适合可缩放矢量图形,WebGL适合3D和复杂图形处理,D3.js适合数据可视化集成。

标签: 角形js
分享给朋友:

相关文章

js实现分页

js实现分页

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

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现变形

js实现变形

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

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…