所以我正在尝试用 HTML5 制作我办公室的漂亮交互式地图以用于文档目的(跟踪电话分机、端口号等),并且由于我们的许多办公室和隔间都是相同的,我想我应该只有一个每种类型的办公室,然后为所有匹配的办公室复制它。我唯一的问题是,我无法正确旋转画布。我已按照所有教程进行操作,但由于某种原因,我的图像一直被截断。我似乎无法找到问题的根源。
有任何想法吗?
到目前为止,这是我的代码:
<!DOCTYPE HTML>
<head>
<title>Test Interactive Office Schematic</title>
<style>
html, body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<script>
function addOffice(type, id, occupentName) {
var canvas = document.createElement('canvas');
canvas.id = id;
canvas.style.position = "absolute";
canvas.style.left = "20px";
canvas.style.class = "office";
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(0, 0);
if (type == 1) {
canvas.width = 80;
canvas.height = 80;
context.lineTo(2, 0);
context.lineTo(2, 20);
context.quadraticCurveTo(22, 20, 22, 0);
context.lineTo(60, 0);
context.lineTo(60, 80);
context.lineTo(0, 80);
context.lineTo(0, 0);
}
context.lineWidth = 2;
context.strokeStyle = 'black';
context.stroke();
context.textBaseline = "Alphabetic";
context.textAlign = "center";
context.fillText(occupentName, canvas.width / 2, canvas.height / 2);
document.body.appendChild(canvas);
canvas = document.getElementById("1");
context = canvas.getContext('2d');
var tempCanvas = document.createElement("canvas"),
tempCtx = tempCanvas.getContext("2d");
tempCanvas.width = canvas.width;
tempCanvas.height = canvas.height;
tempCtx.drawImage(canvas, 0, 0, canvas.width, canvas.height);
context.clearRect(0, 0, canvas.width, canvas.height);
context.save();
context.translate(canvas.width / 2, canvas.height / 2);
context.rotate(180 * Math.PI / 180);
context.drawImage(tempCanvas, 0, 0, 80, 80, 40, 40, 80, 80);
context.restore();
}
addOffice(1, 1, "test");
</script>
</body>