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格式来指定填充颜色(字符串)

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

 

 

相关推荐

  1. WebGL入门

    2024-04-09 07:46:04       35 阅读
  2. WebGIS开发者入门

    2024-04-09 07:46:04       44 阅读
  3. <span style='color:red;'>WebGIS</span>

    WebGIS

    2024-04-09 07:46:04      31 阅读
  4. Webgl学习系列-认识Webgl

    2024-04-09 07:46:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 07:46:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 07:46:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 07:46:04       82 阅读
  4. Python语言-面向对象

    2024-04-09 07:46:04       91 阅读

热门阅读

  1. jenv实现mac下多版本jdk管理以及切换

    2024-04-09 07:46:04       34 阅读
  2. vue页面跳转过渡动画与防止抖动

    2024-04-09 07:46:04       37 阅读
  3. 独角数卡切换英文界面并集成Stripecheckout记录

    2024-04-09 07:46:04       33 阅读
  4. 详解Oracle数据库增量备份和不完全恢复

    2024-04-09 07:46:04       36 阅读
  5. vue 的状态库管理

    2024-04-09 07:46:04       41 阅读
  6. Redis分区

    2024-04-09 07:46:04       34 阅读
  7. C语言中的pow()和floor()

    2024-04-09 07:46:04       38 阅读