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

查看:79
本文介绍了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...

如果你想在窗口调整画布大小得到调整大小,我建议你看看这个答案。

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天全站免登陆