我已经有一个动态创建的金字塔。它看起来像这样(这是一个state.pyramidlevel = 3
),因为它有3层:
使用以下代码:
<div class="overflow-auto">
<div id="zoomable" class="">
<div v-html.domProps="state.pyramid" style="width: max-content; height: 100vh;"></div>
</div>
</div>
function createPyramid() {
const height = state.pyramidlevel;
let pyramidstr = '';
// Start with 1 asterisk in the first row
let numAsterisks = 2;
for (let row = 0; row < height; row++) {
let rowStr = '';
// Add spaces to center the pyramid
for (let space = 0; space < height - row - 1; space++) {
rowStr += '';
}
// Add div for this row
for (let star = 0; star < numAsterisks; star++) {
rowStr += `
<div
style="
text-align:center;
margin:3px;
width: 150px;
height: 30px;
border: 1px solid black;
background-color: rgb(255, 255, 255);">
Vacant
</div>`;
}
// Add this row to the pyramid
pyramidstr += `<div
style="
display: flex;
place-content: center;
"
>${rowStr}</div>`;
// Double the number of asterisks for the next row
numAsterisks *= 2;
}
state.pyramid = pyramidstr;
}
现在,这就是我头疼的地方:
我希望我的金字塔是,1:2,这意味着,每一块砖应该在每两块砖下面的中间:与state.pyramidlevel = 2
类似:
.____. .____.
|____| |____|
.____. .____. .____. .____.
|____| |____| |____| |____|
等等......
我真的需要帮助。我已经忙了三天了。谢谢。
1条答案
按热度按时间wwtsj6pe1#
我不认为当你在每一层加倍积木时这会起作用,因为积木很快就会彼此远离而被感知为堆叠的,即。
已经有两座金字塔了。想象一下再加两层...
简单堆叠很容易:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
由于它的增长方式,您可以使用简单的水平边距来调整块之间的空间。
随着行大小翻倍,空间呈指数增长。使用容器对我来说似乎更容易:
不出所料,看起来摇摇晃晃的,对吧?
很有趣,希望能有所帮助。