gpt4 book ai didi

javascript - 如何使用 html canvas 绘制任意形状?

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:21 26 4
gpt4 key购买 nike

我正在尝试在 html Canvas 上绘制这个类似图表的形状:

0

100 .
.
200 . .
.
300 . .
.
400 . . .
.
500 .................................

我看不出我的形状坐标有什么问题:

(0, 500), (0, 400), (100, 400), (200, 300), (300, 200), (400, 100), (400, 500)

HTML/js:

<html>
<head>
<script type="text/javascript">
function drawSteps(heights) {
var y = 500;
var steps = document.getElementById('steps').getContext('2d');
steps.fillStyle = '#C3EDBD';
steps.beginPath();
steps.moveTo(0, y);

var x = 0;
for (var i = 0; i < heights.length; i++) {
console.log(x.toString() + ', ' + (y - heights[i]).toString());
steps.lineTo(x, y - heights[i]);
x += 100;
}

steps.lineTo(x, 500);
steps.lineTo(0, 500);
steps.closePath();
steps.fill();
}
</script>
</head>
<body>
<canvas id="steps"></canvas>
<script type="text/javascript">
drawSteps([100, 100, 200, 300, 400]);
</script>
</body>
</html>

屏幕上没有打印任何内容,但 Canvas 占用了一个 300x150 像素的占位符。

最佳答案

它已绘制,但您的 Canvas 太小,因此您看不到它(默认为 300 x 150 像素)。

将 Canvas 更改为:

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

你会看到结果。

参见 DEMO .

请注意,使用 CSS 调整它的大小将不起作用,因为您的 Canvas 仍具有默认的 300 x 150 像素,但会拉伸(stretch)到您在 CSS 中定义的尺寸。

参见 this demo比较 Canvas 的 HTML 和 CSS 大小。

关于javascript - 如何使用 html canvas 绘制任意形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38557664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com