当前位置:首页 > 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实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现图片放大缩小

js实现图片放大缩小

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

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let currentY…

js实现的游戏

js实现的游戏

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