javascript - 如何使用 raphael 图形使用 for 循环绘制由从小到大的矩形组成的塔?

标签 javascript jquery html raphael

我不知道如何使用 for 循环 8 次来绘制塔? 所以最终结果会是这样的 enter image description here

这是我所拥有的

setup = function() {
  paper = Raphael ('pyramid', 500,500)


  for (i=1; i <= 8; i+=1){


rect = paper.rect(80,i*5,i*15,5)
 }
$(document).ready(setup)

最佳答案

CH = Canvas 高度,CW = Canvas 宽度,

每个 block 的高度 H = CH/8。对于第一个,top = 0,bottom = H。对于第二个,top = H,bottom = H * 2。因此对于n,top = (n - 1) * H。

最后一个的宽度是CW,每一步减少一个方差V,所以宽度W = CW - (8 - n) * V。例如我们可以设置V = CW/8。 block 居中,因此 Left = (CW - W)/2。

cw = 180;
ch = 180;
s = 8;
paper = Raphael('pyramid', cw, ch)
for (n = 1; n <= s; n += 1) {
  h = ch / s;
  t = h * (n - 1);
  v = cw / s;
  w = cw - (s - n) * v;
  l = (cw - w) / 2;
  paper.rect (l, t, w, h);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js"></script>
<div id="pyramid"></div>

关于javascript - 如何使用 raphael 图形使用 for 循环绘制由从小到大的矩形组成的塔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60732197/

相关文章:

javascript - 如何将 hashmap 值从 java 文件传递​​到 Javascript

javascript - 通过 id 获取 fullcalendar fc-event div

javascript - 样式谷歌地图

javascript - Laravel 4 Blade {{}} 和 Hogan.js {{}} 语法

javascript - keydown 事件不适用于 jQuery Mobile 中的输入类型搜索

jquery - 如何重置默认情况下来自 value 属性的 html 表单值

javascript - 在 JSX 中 onClick 时切换变量

javascript - 当内容设置为 jQuery 对象时,谷歌地图信息窗口的大小不正确以适合图像

javascript - 从链接中获取字段值

javascript - React.js 从数组创建多个表