创建canvas
咱们就直接上代码吧
<body>
<!-- 增加一个canvas标签,height和width都是canvas带有的属性,这里他们不需要带有px -->
<canvas height="200" width="400" style="background:green;"></canvas>
</body>
<script>
const canvas = document.querySelector('canvas') //获取canvas标签
const context = canvas.getContext('2d') // getContext(value) 他的value可以有多种类,目前使用2d,也就是平面画图
// 以上代码,我们就成功获取了一个canvas
<script>
getContex(value)
value:
- ‘2d’ 简单来说就是我们可以创建一个平面模型,此参数可以返回一个WebGLRenderingContext(WebGL渲染上下文)对象
- ‘webgl’ 或 ‘experimental-webgl‘ ,此参数可以返回一个WebGLRenderingContext(WebGL渲染上下文)对象, WebGL(全写Web Graphics Library)是一种3D绘图协议,说白了就是让我们在浏览器中绘制3d模型,这个东西我感觉咱们可以直接去看three.js了
3.‘webgl2’,此参数可以返回一个webGL2RenderingContext对象,可以用来绘制三维3D效果跟上面一样只不过就是升级过的版本
4.’bitmaprenderer’,创建一个ImageBitmapRenderingContext(位图渲染上下文),可以借助给定的ImageBitmap替换Canavs的内容。
2d模型的构建
上面都是概念性的东西,我们主要已2d为主,学会2d再说其他的
首先我们完成一个圆形的绘制(颜色填充所形成的圆)
const minRaduis = Math.min(canvas.width,canvas.height)/2//获取最大半径
context.fillStyle = 'red' //设置填充的颜色
context.beginPath() // 开始绘制
context.arc(canvas.width/2,canvas.height/2,minRaduis,0,Math.PI/2) //圆的绘制
context.fill() // 对设置的颜色进行填充
我们上面用到了
- beginPath()方法,简单理解就是重新开始一个新的图形的绘制
- arc()方法,圆弧绘制方法,形成圆的方法
- fiil()方法,路径填充的方法。
1.fill(fillRule填充规则,用来确定一个点实在路径内还是路径外。
2.fill(path,fillRule),path指path2d对象
fillRule: 1.nonzero(非零规则)2. nonzero(奇偶规则)
nonzero规则:顾名思意就是“非零规则”,用通俗的话讲,就算计算某些东西是不是0,如果不是0则内部,填充;如果是0则外部,不填充。
nonzero规则:顾名思意就是“非零规则”,用通俗的话讲,就算计算某些东西是不是0,如果不是0则内部,填充;如果是0则外部,不填充。
可以通过另一篇文章搞清楚填充规则-》点击此处进入另一篇,我是看了两遍才明白。
那么一个简单的填充圆就完成了