WebGL入门

这篇具有很好参考价值的文章主要介绍了WebGL入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebGL采用HTML5中新引入的<canvas>元素(标签),它定义了网页上的绘图区域。

1、Canvas是什么

在HTML5出现之前,如果你想在网页上显示图像,只能使用HTML提供的原生方案<img>标签。用这个标签显示图像虽然简单,但只能显示静态的图片,不能进行实时绘制和渲染。HTML5引入了<canvas>标签,允许JavaScript动态地绘制图形。

艺术家们将画布作为绘画的地方,类似地,<canvas>标签定义了网页上的绘图区域。有了<canvas>,你就可以使用JavaScript绘制任何你想画的东西。

<canvas>提供一些简单的绘图函数,用来绘制点、线、矩形、圆等。

1.1 使用<canvas>标签

默认情况下,canvas是透明的,如果不用JavaScript在上面画些什么,你是看不到<canvas>的。

为<body>元素指定onload属性,告诉浏览器<body>元素加载完成后(即页面加载完成后)执行main()函数,并作为JavaScript程序的入口。

<body onload="main()">
    <canvas id="myCanvas" width="400" height="400"></canvas>
    <script src="./test.js"></script>

</body>

在canvas上绘制二维图形,需经过以下三个步骤:

  • 获取<canvas>元素;
  • 向该元素请求二维图形的“绘图上下文”;
  • 在绘图上下文上调用相应的绘图函数,以绘制二维图形。
//test.js
function main() {
    //获取<canvas>元素
    var canvas = document.getElementById('myCanvas');
    if (!canvas) {
        console.log("failed to retrieve the canvas element");
        return;
    }
    //获取绘制二维图形的绘图上下文
    var ctx = canvas.getContext('2d');

    //绘制蓝色矩形
    ctx.fillStyle = 'rgba(0,0,255,1.0)';//设置填充颜色为蓝色
    ctx.fillRect(120, 10, 150, 150);//使用填充颜色填充矩形
}

获取<canvas>元素,通过<canvas>标签的id属性,使用document.getElementById来获取<canvas>元素。

通过canvas.getContext('2d')获取canvas的2d上下文。

使用上下文支持的方法来绘制二维图形,使用rgba格式来指定填充颜色(字符串)

WebGL入门,webgl

如上图所示,<canvas>的坐标系统为x轴朝右,y轴朝下。灰色区域是canvas的区域,400*400。fillRect前两个参数为左上角顶点坐标。后两个参数为矩形的宽和高。

 文章来源地址https://www.toymoban.com/news/detail-845139.html

 

到了这里,关于WebGL入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • iClient3D for Cesium&WebGL入门之使用vscode以服务方式运行调试

    作者:超图研究院技术支持中心-于丁 iClient3D for CesiumWebGL入门之使用vscode以服务方式运行调试 相信大家第一次使用SuperMap iClient3D for Cesium或SuperMap iClient3D for WebGL的时候,都遇到过和我一样的事情: 在文件夹中直接打开html的示例代码文件于浏览器中; 或者使用vscode安装open

    2024年02月04日
    浏览(53)
  • WebGL前言——WebGL相关介绍

    第一讲内容主要介绍WebGL技术和相应的硬件基础部分,在初级课程和中级课程的基础上,将技术和硬件基础进行串联,能够对WebGL从产生到消亡有深刻全面的理解。同时还介绍WebGL大家在初级课程和中级课程中的一些常见错误以及错误调试的办法。 先热身一下吧,看个问题:如

    2023年04月08日
    浏览(46)
  • WebGL系列教程:WebGL基础知识

    下面我们来正式学习WebGL开发中的一些基本的概念和知识。 为了在 Web 上创建图形应用程序,HTML5 提供了一组丰富的功能,例如 2D Canvas、WebGL、SVG、3D CSS 转换和 SMIL。要编写 WebGL 应用程序,就需要用到 HTML5 的画布元素。 HTML5 的标签提供了一个简单而强大的选项来实现 JavaSc

    2024年02月14日
    浏览(47)
  • 【WebGL系列-01】获取WebGL上下文

    WebGL上下文是从 canvas 标签中获取到的,通过 canvas 对象的 getContext() 函数可以获取 WebGLRenderingContext 。 跟据参数的不同, getContext() 函数可以获取不同种类的渲染上下文。 canvas.getContext(contextType: String, contextAttributes ?: Object) contextType : \\\'2d\\\' :建立一个 CanvasRenderingContext2D 二维渲染

    2024年02月16日
    浏览(43)
  • Unity WebGL 关于构建webgl应用模板设置

    如果你想要修改unity 自带的webgl 启动样式,那么你需要在unity Assets 文件夹目录下添加如下目录   WebGLTemplates 目录是 unity 指定名称的目录,你可以在这个目录下新建你自己的模板目录 名字随意,然后在你需要找一下 你unity 的Default模板文件 ,在你unity 安装目录的  EditorDat

    2024年02月12日
    浏览(44)
  • unity webgl 系列(2):从webgl内存中下载文件到本地硬盘

    前面是将文件上传到webgl进程,本篇是将文件从webgl进程中下载文件到浏览器的下载目录中。 通用,只需要 二进制数组和文件名。 添加一段代码 解释:接收三个字符串:由文件二进制转换出来的二进制字符串、xxx.yy文件名、文件类型。 统一经过Pointer_stringify转化为js字符串,

    2024年04月17日
    浏览(38)
  • 快速上手WebGL,代码+图解手把手教你使用WebGL一步步实现热力图

    大家好,我是南木元元,热衷分享有趣实用的文章。 项目中需要绘制热力图,热力图其实就是数值大小用颜色来进行区分,每个点的数值需根据颜色映射表(调色板)映射为指定颜色。需要3个数值字段,可绘制在平行坐标系中(2个数值字段分别确定x、y轴,1个数值字段确定

    2024年01月18日
    浏览(57)
  • unity发布WebGl在手机上的横屏适配,webgl横版游戏在手机上直接转横屏

    unity版本2020.1 问题:webgl的横版游戏 1920*1080,在手机上适配的不好,还是竖屏显示, 使用官方的说明,说是只在全屏模式下能旋转,也不好用,可能直接旋转也不会达到理想的效果 解决方案: 1.我这边使用的方案是UI的适配,UGUI,采用的是两套UI,根据不同平台加载不同的资源

    2024年02月02日
    浏览(47)
  • WebGL简介以及使用

    WebGL(Web图形库) 是一种在没有使用插件的情况下在网页浏览器中渲染2D图形和3D图形的技术。它基于OpenGL ES,一个在嵌入式系统中广泛使用的图形API。WebGL通过HTML5的 canvas 元素直接在网页上实现图形渲染,使得开发者能够创建复杂的视觉效果和动态图形,而不会牺牲网页的性

    2024年02月01日
    浏览(29)
  • webgl-图形非矩阵旋转

    知识拓展 由(x1,y1)旋转β角度到(x2,y2) 根据圆极坐标方程 x1 = r*cosα y1 = r*sinα 可得 x2 =r*cos(α + β)= r*cosα*cosβ - r*sinα*sinβ,因为x1 = r*cosα,y1 = r*sinα,所以x2 = x1*cosβ -y1*sinβ y2 = r*sin(α + β) = r*sinα*cosβ + r*cosα*sinβ,因为x1 = r*cosα,y1 = r*sinα,所以y2 = y1* cosβ + x1*sinβ 因此 (

    2024年02月01日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包