Как нарисовать башню из прямоугольников, переходящих от маленьких к большим, используя графику Рафаэля, используя для l oop? - PullRequest
3 голосов
/ 18 марта 2020

Я не понимаю, как нарисовать башню, используя для l oop 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)

1 Ответ

0 голосов
/ 18 марта 2020

Быть CH = Высота холста и CW = Ширина холста,

Каждый блок имеет высоту H = CH / 8. Для первого top = 0, bottom = H. Для второго top = H, bottom = H * 2. Так что для n top = (n - 1) * H.

Ширина последний - CW, уменьшающийся на дисперсию V каждый шаг, поэтому Width W = CW - (8 - n) * V. Например, мы можем установить V = CW / 8. Блок центрирован, поэтому слева = (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>
...