Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2013, 22:56
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

Разбить квадрат на равные части по условию
Добрый вечер.
Вопрос скорее всего не по 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, 23.06.2013 в 23:33.
Ответить с цитированием
  #2 (permalink)  
Старый 24.06.2013, 00:02
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

clgs,
А где начальные условия - т.е что имеем на входе ?
Ширину высоту - исходной фигуры и ширину высоту вложенных ячеек -? Или как ?
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2013, 00:15
Аспирант
Отправить личное сообщение для clgs Посмотреть профиль Найти все сообщения от clgs
 
Регистрация: 19.09.2008
Сообщений: 32

Решил
$("[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);//устанавливаем ширину и высоту
		});
	});

пока не задашь вопрос голова не варит)

Последний раз редактировалось clgs, 24.06.2013 в 00:26.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в jQuery разбить код на части? muravey jQuery 3 10.02.2011 12:05
как разбить текст на части определенного размера? R.I.P.er Общие вопросы Javascript 12 07.12.2010 22:29