制作模糊形状的 HTML 画布 [英] HTML canvas making blurry shapes

查看:16
本文介绍了制作模糊形状的 HTML 画布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 HTML 制作简单的形状.但是形状需要很大.而且画布是全屏的

I want to make simple shapes using HTML. But the shapes need to be big. And the canvas is in full screen

示例:http://jsfiddle.net/xLgg43s9/1/embedded/result/

代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
* { margin: 0; padding: 0;}

body, html { height:100%; }

#canvas {
    position:absolute;
    width:100%;
    height:100%;
}
</style>
</head>

<body>
<canvas id="canvas">
</canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
ctx.fillStyle = "#000";
var w=canvas.width;
var h=canvas.height;
ctx.fillRect(0,0,w,h);
ctx.fillStyle="#fff";
ctx.beginPath();
var a=w/2;
var b=0;
ctx.arc(a,b,20,0,Math.PI,false);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.beginPath();
ctx.fillStyle="red";
ctx.fillRect(0,0,10,100);
ctx.stroke();
ctx.save();

ctx.translate(240, 120);

ctx.rotate(Math.PI / 4); // 45 degrees

ctx.fillStyle = "yellow";
ctx.fillRect(-40, -40, 20, 20);

ctx.restore();

</script>
</body>
</html>

请修复它.

推荐答案

不要通过 CSS 设置画布的大小,这会拉伸画布元素,而不是实际使画布变大.

Don't set the canvas's size through CSS, that stretches the canvas element, instead of actually making the canvas larger.

改用 HTML 属性:

Use HTML attributes, instead:

<canvas id="canvas" width="500" height="500"></canvas>

现在,由于您想将画布设置为 100% 的宽度/高度,这些预设属性对您不起作用,您将不得不使用一些 JS:

Now, since you want to set the canvas to 100% width / height, those pre-set attributes aren't going to do the trick for you, you're going to have to use some JS:

var canvas = document.getElementById("canvas");
canvas.width  = window.innerWidth;
canvas.height = window.innerHeight;
var ctx=canvas.getContext("2d");
// etc...

如果您想在调整窗口大小时调整画布大小,建议您查看 this answer.

If you want to have the canvas resize when the window gets resized, I'd suggest you look at this answer.

这篇关于制作模糊形状的 HTML 画布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆