Разбить квадрат на равные части по условию
Добрый вечер.
Вопрос скорее всего не по JS, но решить надо с помощью JS. Есть квадрат, в который помещены 4 квадрата, всё просто: $("[type=\"master\"]").each(function(i){ var w=$(this).find('[space]').width(), s=Math.pow(w,2), c=$(this).attr('cnt'),//количество вложенных квадратов s2=s/c, w2=Math.sqrt(s2); $(this).find('[space]').height(w); if(1>c) return; $(this).find("[type=\"worker\"]").each(function(i){ $(this).width(w2).height(w2); }); }); А теперь если поместить 3 квадрата, скрипт не подходит, точнее требуется корректировка. Вопрос: как определить оптимальное число ячеек, естественно в большую сторону? |
clgs,
А где начальные условия - т.е что имеем на входе ? Ширину высоту - исходной фигуры и ширину высоту вложенных ячеек -? Или как ? |
Решил
$("[type=\"master\"]").each(function(){//цикл по основным квадратам var w=$(this).find('[space]').width(),//ширина квадрата s=Math.pow(w,2),//площадь квадрата c=$(this).attr('cnt'),//количество вложенных квадратов s2=s/c,//расчетная площадь вложенного квадрата n=Math.ceil(w/Math.sqrt(s2)),//правильное количество ячеек w2=w/n;//ширина вложенного квадрата $(this).find('[space]').height(w);//устанавливаем высоту равную ширине if(1>c) return; $(this).find("[type=\"worker\"]").each(function(){//цикл по вложенным квадратам $(this).width(w2).height(w2);//устанавливаем ширину и высоту }); }); пока не задашь вопрос голова не варит) |
Часовой пояс GMT +3, время: 11:08. |