首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用画布在单页中绘制三个三角形?

使用画布在单页中绘制三个三角形可以通过以下步骤实现:

  1. 创建一个HTML文件,并在文件中添加一个画布元素:
代码语言:txt
复制
<canvas id="myCanvas" width="400" height="400"></canvas>
  1. 在JavaScript中获取画布元素,并获取其上下文:
代码语言:txt
复制
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
  1. 绘制第一个三角形:
代码语言:txt
复制
ctx.beginPath();
ctx.moveTo(50, 50); // 设置起点
ctx.lineTo(150, 50); // 绘制第一条边
ctx.lineTo(100, 150); // 绘制第二条边
ctx.closePath(); // 封闭路径
ctx.fillStyle = "red"; // 设置填充颜色
ctx.fill(); // 填充三角形
  1. 绘制第二个三角形:
代码语言:txt
复制
ctx.beginPath();
ctx.moveTo(200, 50);
ctx.lineTo(300, 50);
ctx.lineTo(250, 150);
ctx.closePath();
ctx.fillStyle = "green";
ctx.fill();
  1. 绘制第三个三角形:
代码语言:txt
复制
ctx.beginPath();
ctx.moveTo(100, 200);
ctx.lineTo(200, 200);
ctx.lineTo(150, 300);
ctx.closePath();
ctx.fillStyle = "blue";
ctx.fill();

完整的HTML文件代码如下:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
    <title>绘制三角形</title>
</head>
<body>
    <canvas id="myCanvas" width="400" height="400"></canvas>

    <script>
        var canvas = document.getElementById("myCanvas");
        var ctx = canvas.getContext("2d");

        ctx.beginPath();
        ctx.moveTo(50, 50);
        ctx.lineTo(150, 50);
        ctx.lineTo(100, 150);
        ctx.closePath();
        ctx.fillStyle = "red";
        ctx.fill();

        ctx.beginPath();
        ctx.moveTo(200, 50);
        ctx.lineTo(300, 50);
        ctx.lineTo(250, 150);
        ctx.closePath();
        ctx.fillStyle = "green";
        ctx.fill();

        ctx.beginPath();
        ctx.moveTo(100, 200);
        ctx.lineTo(200, 200);
        ctx.lineTo(150, 300);
        ctx.closePath();
        ctx.fillStyle = "blue";
        ctx.fill();
    </script>
</body>
</html>

这样就可以在单页中绘制三个三角形了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

bash如何使用双括号或括号、圆括号、花括号

问题 我使用Bash时,对于括号、圆括号和花括号的用法感到困惑,以及它们的双括号和括号形式之间的区别。有没有清晰的解释?...回答 方括号 Bash ,test 和括号 [ 是 shell 内置命令。命令行里 test expr 和 [ expr ] 的效果相同。...例如,你可以使用 && 和 || 代替 -a 和 -o,并且还有一个正则表达式匹配运算符 =~。 此外,简单的测试,双方括号的计算速度似乎比单方括号快得多。...花括号 花括号除了用来界定变量名外,还用于参数扩展,因此你可以执行以下操作: •截断变量的内容 •进行类似于 sed 的替换 •使用默认值 •以及更多 此外,花括号扩展可以创建字符串列表,这些列表通常在循环中被迭代...: 请注意,前导零和增量特性 Bash 4 之前是不可用的。

4100

如何在Ubuntu 14.04使用NodeJS,SailsJS和DustJS构建SPA(应用程序)

本教程,我们将设置一个带有SailsJS的NodeJS服务器作为管理代码的框架。我们将使用DustJS用于客户端和服务器上使用的同构模板。...SPA,我们不会替换整个页面,只是部分。...dust-compiler -s views/partials/ -d assets/templates/ --bootstrap --nonotify 现在,您的文件assets/templates夹应该有三个文件...该模板将如何重用?这个模板的编译版本(我们编译使用dust-compiler)驻留在assets/templates/home.js。此编译的模板稍后将包含在脚本标记。...我们成功构建了一个同构网站,允许客户端和服务器上使用相同的模板。 我们构建了应用程序(SPA)网站,并了解了使用SailsJS框架。

3K00
  • WebGL 纹理颜色原理

    可以将颜色缓存区看成图像颜色存储器,缓存区以RGB或RGBA的格式存储着画布上每一个像素的颜色信息,各个像素点组合起来就构成了颜色缓存的矩形阵列。...这里可以总结得出,画布上各个像素点呈现的颜色就是存放在颜色缓冲区的颜色信息所决定的,而绘制图形的颜色缓冲区的信息又是由顶点着色器决定。要知道颜色如何渲染就要深入分析着色器的工作过程。...一个三角形绘制过程拆分来看就是执行三次顶点着色器,将三个点坐标都传入装配区,根据绘制函数的图元参数gl.TRIANGLES将三个点装配成三角形,然后进入下一个过程——光栅化。...,接下来通过图元装配得到一个三角形的图元,到了关键的光栅化这一步,该如何定义片元的颜色呢?...): 定义绘制图形垂直方向如何填充,默认值gl.REPEAT 详细参考texParameteri 纹理单元 如果需要使用多张图片就要管理多个纹理图片,WebGL为了使用多个纹理,用纹理单元来处理纹理图像

    2.6K10

    【Golang语言社区】前端编程- 从零开始开发一款H5小游戏(一) 重温canvas的基础用法

    开始介绍如何写游戏前有必要重温一下canvas。它是本游戏的地基,建房子要快,首先地基要牢固。...毕竟自己平时没做过类似的活动大厂里这些工作一般都是让UED部门给承包了。 好了,废话不多说,进入主题。...我们可以将所有绘制分为两大类,一类是线,一类是面。线使用的API一般以stroke开头,面的API是以fill开头。...基础开发很少会使用到,可以用时再查阅文档。 为了能在一张画图上绘制多个图形而互不影响,CanvasRenderingContext2D提供了 beginPath和 closePath。...beginPath 用于开始绘制一个独立图形的时候声明,beginPath之后定义的画笔,颜料都不会影响到画图中的其他图形。

    1.1K140

    手把手教你写一个经典躲避游戏

    (毫无技术含量 = = 画布介绍 画布其实就是 元素,我们可以用它创造了一个上下文,也就是上上图代码的 ctx,通过调用 ctx 上的 api,我们就可以画布绘制出想要展示的内容了...额外需要注意的点是每次重新绘制前都需要先清空画布。 这样我们的画布就以每秒 60 帧的速度刷新了(虽然现在只有个灰色背景看不出差别。...最后再把绘制子弹和更新子弹的方法随便写一下 记得加上游戏每次渲染后还得更新一下,然后把子弹渲染和子弹更新给加上。 最后我们再修改一下更新逻辑,得控制屏幕的弹幕密度一个固定的值。...然后第二步开始画三角形,x 和 y 是三角形的重心,再设定一个重心到三个角的距离 d ,然后我们就可以算出三个点的坐标了 A: (x, y - d) B: (x - Math.cos(30deg) *...解决办法就是将 rotate 旋转改成实打实的三角形三个角旋转,这里需要用到转轴公式: 搞定,赶紧跑起来试试 耶!

    1.3K20

    什么是WebGL和为什么用Three.js | 《Three.js零基础直通02》

    WebGL是一个JavaScript API,它可以让我们非常高性能的画布绘制三角形。没错,三角形是组成数字3D世界的基础。...当然,WebGL实质就是绘图库,它并不区分你使用绘制3D还是2D图形,本课程里,我们当然是专注于构建3D的。 GPU可以用并行的方式进行计算。...3D模型往往由成千上万个三角形构成,每个三角形都有3个点。当我们计算机渲染我们的模型时,GPU实质上是计算所有的点的位置。...除此之外,GPU还需要绘制根据这些点组成的面的像素。 计算所有点的位置并将像素绘制画布上,这一切都是着色器Shader完成的。着色器的相关知识很难掌握。我们还需要知道如何向这些着色器提供数据。...再比如光照如何影响每一个三角形面的颜色,显然被光照到的三角形面要比没有光照三角形面要亮。 直接使用WebGL的API是非常困难的,画布绘制一个三角形就至少需要100行代码。

    2.4K30

    在编程中发现数学之美——使用python和Processing绘制几何图形

    现在你了解了processing如何绘制圆,为了创建动态的交互式的图形,我们还需要学习图形的位置和变换,让我们从位置开始。...还需要找到这个等边三角形的中点,使三角形围绕着它的中心旋转。要实现这些,我们需要确定等边三角形三个顶点的坐标。想一想,确定一个等边三角形的中心之后,如何绘制这个等边三角形?...Processing绘制三角形,需要给triangle函数提供6个参数:三个顶点的x坐标和y坐标。要找到上面图形中三个顶点的坐标,我们把上面的三角形中下面的部分一分为二,就像下面的图形一样: ?...然后我们使用计算的三个顶点绘制三角形。运行代码你会看到下面的图形: ?...绘制多个旋转的三角形 现在你学会了如何绘制旋转的单个三角形,我们需要找到将多个三角形放在一个圆上的办法。这和前面学过的将方块放在圆上的方法类似,这次我们使用tri函数。

    6.2K11

    WebGL 概念和基础入门

    属性用于说明如何从缓冲获取所需数据并将它提供给顶点着色器。 全局变量:全局变量着色程序运行前赋值,在运行过程全局有效。全局变量一次绘制过程传递给着色器的值都一样。...假如我们需要绘制一个三角形,此时 GPU 上进行的工作便是先调用三次顶点着色器计算出三角形的 3 个顶点在裁剪空间坐标系的对应位置,并通过变量 gl_Position 保存在 GPU ,然后调用片元着色器完成每个顶点颜色值的计算...原生 WebGL API 绘制三角形 前面我们已经学习了 WebGL 的发展史、基本概念和工作原理等内容,接下来我们就该实践出真知了,所以我们来看看如何通过 WebGL 在网页绘制一个简单的三角形。...我们知道 WebGL 作为一种 3D 绘图技术本身就是依托于 HTML5 的 canvas 元素而存在的,所以正式开始绘制之前我们需要进行一系列的准备工作: 首先我们需要创建一个 canvas 元素作为绘制三角形所需的画布...WebGL 原生 API 开发的不足 上面原生 WebGL API 绘制三角形的例子,充分向我们展示了使用原生 WebGL API 开发 3D 交互式网页存在的问题。

    4.1K31

    几个简单的小例子手把手带你入门webgl

    简单来说:就是使用「shader」,我们可以对画布「每个像素点做处理」,然后就可以生成各种酷炫的效果了。...同样,「webgl」,我们也可以设定物体的背面不可见,那么渲染过程,就会将不可见的部分剔除,不参与绘制。节省渲染开销。...开启绘制三角形: gl.drawArrays(gl.TRIANGLES, 0, 3) 「第一个参数表示绘制的类型」 「第二个参数表示从第几个顶点开始绘制」 「第三个参数表示绘制多少个点,缓冲中一共6个数据...,每次取2个,共3个点」 「绘制类型共有下列几种」 「看图:」 drawtype 这里我们看下画面是不是一个红色的三角形三角形截图 我们创建的数据是这样的: 「画布的宽度是 500 * 500...变量的使用 说完矩阵了下面,我们开始说下着色器的varying 这个变量 是如何和片元着色器进行联动的。

    1.4K21

    网页|HTML5 也可以画一画(canvas)

    canvas意为画布,现实生活中用它来作画,HTML5的canvas与之类似,可以称它为“网页画布”,有了这个画布便可以轻松的在网页绘制图形、文字、图片等。...(1)创建一个画布 HTML5提供了标签,使用标签可以在网页创建一个矩形区域的画布。但值得注意的是默认情况下 元素没有边框和内容。...canvas图形绘制,不能像日常生活,提笔想在哪里画就在哪里画,在这里需要用到坐标来实现。 ?...canvas图形绘制,路径只是草稿,真正绘制线必须执行stroke()方法根据路径进行描边和使用fill()方法进行图形的填充。...fillText(text,x,y)来定义 canvas 上绘制实心的文本,或者使用strokeText(text,x,y) 来定义 canvas上绘制空心的文本。

    2.4K20

    OpenGL ES——导入.stl格式的3D模型

    前言 在上一章,我们使用OpenGL ES绘制了一个平平无奇的三角形。那么如何绘制3D模型呢?其实,计算机的世界,所有的3D模型都是由无数的三角平面拼接而成。...通常我们使用.stl格式来记录一个3D模型的三角平面信息,根据.stl文件记录的三角平面信息,我们能够还原出一个完整的3D模型。 因此,本文将介绍,如何从.stl解析出三角平面信息,并绘制出来。...则会根据三角形三个顶点的加载顺序,以右手定则的形式,确定三角形平面的外面。...在这一段解析,我们不仅会获得三角形平面的顶点坐标和法向量数组,我们还提供了计算最大半径,计算中心点等方法。...不是直径,因此用0.5/r可以算出放缩比例 mScalef = 0.5f / r; mCenterPoint = model.getCentrePoint(); } 画布完成创建时

    1.9K40

    【前端就业课 第一阶段】HTML5 零基础到实战(十一)canvas 基础

    二、canvas 基础绘制线段 1_bit: html ,用 canvas 标签表示画布,如下代码所示。 <!...咱们可以发现我 head 部分添加了一个 style, style 添加了一个 canvas 的背景色样式,是为了给予这个canvas背景色方便查看。...1_bit:接下来咱们看看这个 canvas 如何进行使用,如以下代码示例。 <!...我们接着查看下一句代码: var context=canvas.getContext('2d'); 1_bit:这一句代码的 canvas 对象就是指对应的画布对象,因为刚刚使用了 getbyID 函数获取到了对应的节点...1_bit:这样的话就可以绘制出指定颜色的矩形了。 三、三角形绘制 小媛:那三角形怎么绘制? 1_bit:要绘制三角形我们需要搞懂线段的绘制的概念,咱们看以下代码。

    42720

    如何用Scratch 3绘制矢量图形 【Gaming】

    Scratch有一个预先制作的sprite库,可以用在项目中,但是您也可以使用内置的paint程序或内置的vector应用程序绘制自己的sprite。 如何绘制大象 使用矢量绘图不需要绘图技巧。...查找圆、椭圆、三角形和矩形。使用照片或正在绘制的对象的实时模型可能会有帮助。 我将通过解释如何绘制苹果来演示Scratch绘制矢量精灵的所有要点,但是您可以将此方法应用于任何要创建的对象。...这将创建一个新的精灵画布。 图片8.png 创建自定义精灵有两种方法: 若要创建一个全新的精灵,请使用并组合工具箱的任何绘图工具。...绘制茎 1. 选择矩形工具。画布上创建一个长而薄的矩形,在其中放置茎。 2. 使用“节点”工具来塑造矩形,使其类似于茎。把填充物换成你想要的颜色。 3. 使用箭头工具选择杆。...要将茎移到苹果后面,请单击画布上方的“后退”按钮。 图片14.png 添加突出显示形状 1. 选择线条工具。苹果形状上画一个三角形,把每一条新线和前一条线的末端连接起来。

    5.5K00

    canvas学习总结三:绘制路径-线段

    function drawLine(){ cxt.moveTo(50, 50); cxt.lineTo(100, 100); } 然而这样我们画布是看不见线段的,前面我们说到基于路径的绘制方法...我们只使用lineTo()也是能在画布绘制出线段的,我们把上面的代码改成如下面所示,效果也是一样的 function drawLine(){ cxt.lineTo(50, 50); cxt.lineTo...可以看出我们画布绘制了两条路径 注意:调用beginPath()之后,或者canvas刚建的时候,第一条路径构造命令通常被视为是moveTo()。...所以我们绘制图形的时候一定要先使用beginPath()。...这三个方法绘制线段 canvas绘制路径有两个重要的方法,beginPath()与closePath()。绘制图形之前先调用beginPath()是绘制多个图形必要的步骤。

    77310

    聊聊 19.7k Star 的 canvas 绘图神器 fabric.js

    1导语 我们想在画布上画个基本的简单形状的时候,使用 Canvas 不会觉得有什么繁琐。...但当画布上需要任何形式的互动,绘制复杂的图形和在特定情况需要改变图片的时候,使用原生 canvas API 将会变得很困难。 而 Fabric 旨在解决这个问题。...Fabric.js 是一个强大而简单的 Javascript HTML5 画布库 Fabric 画布元素之上提供交互式对象模型 Fabric 还具有 SVG-to-canvas(和 canvas-to-SVG...)解析器 为了方便,下面我将通过 vue项目 为大家讲解如何使用 Fabric 2....行高 Line Height 使用多行文本时有用。 字符间距 Char spacing 使文本更紧凑或更间隔。 子范围 Subranges 将颜色和属性应用到文本对象的子对象

    3.5K21
    领券