Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выводим слова в данной области из массива (https://javascript.ru/forum/jquery/66620-vyvodim-slova-v-dannojj-oblasti-iz-massiva.html)

Black_Star 28.12.2016 18:45

Цитата:

Сообщение от Dilettante_Pro
Как выкручиваться - ???

:-? Не знаю.
Я уже понял, что задавать фиксированные размеры width и height было глуповато . Что до примера ksa , то я не вижу как его тут применить? У него получается что создаваемые блоки не пересекаются друг с другом. У меня они просто не должны пересекаться с одним блоком .box, и создаваться во всем остальном пространстве

ksa 29.12.2016 11:01

Цитата:

Сообщение от Black_Star
У него получается что создаваемые блоки не пересекаются друг с другом. У меня они просто не должны пересекаться с одним блоком .box

А друг с другом могут пересекаться?

Dilettante_Pro 29.12.2016 12:30

ksa,
Цитата:

Сообщение от ksa
А друг с другом могут пересекаться?

А можете сделать при таком условии?

Dilettante_Pro 29.12.2016 13:00

Black_Star,
вариант решения проблемы динамических размеров: создавать слова и включать в DOM невидимыми, показывать только прошедшие проверку на непересекаемость
Или вообще не проверять - блок вынести вперед

ksa 29.12.2016 13:37

Цитата:

Сообщение от Dilettante_Pro
А можете сделать при таком условии?

Дык я при любых условиях могу сделать... :D
Просто вопрос смысла делать что-то бесплатно. Всегда есть некий компромисс между "интересно", "бесплатно" и "времязатратно"... В данном случае не так интересно, чтобы делать бесплатно задачку, которая займет достаточно много времени...
Наверное денек на нее уйдет, по моим прикидкам. А это 8 часов... Даже если брать по 1000р за час, вряд ли ТС оплатит кому-либо 8т.р. за рабочий макет по его нуждам. :D

Black_Star 03.01.2017 13:07

Всем спасибо за подсказки. :thanks:
Придумал как решить данный вопрос разбив данный интервал на области видимости.
http://codepen.io/BlackStar1991/pen/bgGeqQ

Кому понадобится идея, такова.
1) Если случайное число по вертикале меньше чем верхняя точка блока или больше чем нижняя точка выводите текст как есть. (Учитывая размер шрифта)
2) Если по вертекали значение попадает в область блока (куда попадать не должно было) то пересчитывай горизонталь по формуле
RandomNumber = rand()%(100-(y-x));
if RandomNumber > x then RadomNumer +=(y-x);
Вообщем оно работает. :)
Есть конечно небольшие косяки, но результат меня устраивает :p


Часовой пояс GMT +3, время: 01:26.