Я десятки разів зустрічав питання, співзвучний з назвою цього уроку. Кілька разів брав участь в дискусіях, намагаючись вирішити задачу. І тільки сьогодні я наблизився до відповіді на питання - Як. Упевнений, що багато дизайнерів розподіляють об'єкти всередині іншої форми вручну, але нам же хочеться зробити все швидко і автоматично, чи не так?
Для розподілу об'єктів в межах іншого об'єкта нам знадобляться три скрипта, з якими ми познайомимося в процесі їх застосування. А поки скачайте zip архів зі скриптами, натиснувши на кнопку Download на початку або наприкінці уроку. Розпакуйте архів і помістіть його вміст в системну папку зі скриптами, наприклад:
Для Windows: C: # 92; Program Files # 92; Adobe # 92; Adobe Illustrator CS5 # 92; Presets # 92; en_GB # 92; Scripts
Для Mac: Applications / Adobe # 92; Adobe Illustrator CS5 # 92; Presets # 92; en_GB # 92; Scripts
Перезапустіть Adobe Illustrator, якщо в момент установки скриптів додаток було відкрито. Всі скрипти були успішно протестовані в Adobe Illustrator CS5, CS6 і СС.
Створимо контур без заливки, всередині якого будемо розподіляти об'єкти.
![Як розподілити форми в межах іншої форми - rboom (інший) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-5c295cf2.png)
Після установки скриптів їх назви з'явилися в меню File> Script> .... Виділяємо створений шлях (до речі, він може бути відкритим), потім переходимо File> Script> Circle Fill. У діалоговому вікні встановлюємо максимальну і мінімальну величину кіл у відсотках до розміру зовнішнього об'єкта і мінімальну дистанцію між колами.
![Як розподілити форми в межах іншої форми - rboom (інший) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-30376932.png)
У вас також є можливість вибирати колір кіл зі списку, проте ця опція не знадобиться в цьому уроці.
![Як розподілити форми в межах іншої форми - rboom (форми) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-911c28f6.png)
Натискаємо на кнопку OK.
![Як розподілити форми в межах іншої форми - rboom (форми) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-57176877.png)
Крутий ефект отримано за кілька секунд, але хотілося б використовувати інші об'єкти для заповнення простору всередині форми. Давайте створимо об'єкт, яким ми хочемо замінити колу. Спочатку я створив дуже простий мильний міхур, який представляє собою групу з кола чорного кольору і форми відблиску білого кольору. Перед застосуванням наступного скрипта переконайтеся, будь ласка, що наш міхур знаходиться вище кіл і ці кола не згруповані. Це обов'язкові умови роботи скрипта FindAndReplaceGraphic_TransformToFit.
![Як розподілити форми в межах іншої форми - rboom (інший) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-bd98cf24.png)
Виділяємо окружності і міхур, потім переходимо File> Script> FindAndReplaceGraphic_TransformToFit.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt; Script & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-8c6f5832.png)
Як ви можете бачити, заміна об'єктів успішно відбулася, при цьому був врахований розмір вихідних кіл, що утворюють форму серця.
Тепер давайте спробуємо замінити окружності об'єктом з більш складною формою. Головне, щоб цей об'єкт мав висоту і ширину, які не рівні між собою.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt; Script & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-d3e89947.png)
Виділяємо всі об'єкти, потім переходимо File> Script> FindAndReplaceGraphic_TransformToFit.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt; Script & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-b17fa44a.png)
Як ви можете бачити, об'єкти після заміни були деформовані. Така деформація буде тим більше, чим більше різниця між висотою і шириною замінює об'єкта. Для того щоб позбутися від деформації пропоную виконати один трюк. Створимо коло без заливки і обведення, так щоб об'єкт знаходився всередині неї.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-53bedbed.png)
Групуємо об'єкт і окружність без заливки і обведення, потім повторюємо заміну кіл (File> Script> FindAndReplaceGraphic_TransformToFit). Тепер деформація відсутня.
![Як розподілити форми в межах іншої форми - rboom (File & gt; Script & gt; FindAndReplaceGraphic_TransformToFit) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-28e04b4a.png)
Не забувайте, що ви завжди можете повернути і посувати отримані об'єкти в довільному порядку, для цього призначена функція Transform Each (Object> Transform> Transform Each ...).
![Як розподілити форми в межах іншої форми - rboom (File & gt; Script & gt; FindAndReplaceGraphic_TransformToFit) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-0e225f49.png)
Якщо ви бачили подібні ілюстрації, то знаєте, що зовнішню форму часто заповнюють декількома об'єктами, а не одним, як в даному випадку. Немає проблем. Виділити об'єкти у випадковому порядку нам допоможе Random Select скрипт (File> Script> Random Select). Після його запуску відкривається діалогове вікно, в яке ви повинні ввести процентне співвідношення виділених об'єктів.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt; Script & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-dedadae1.png)
![Як розподілити форми в межах іншої форми - rboom (File & gt; Script & gt; FindAndReplaceGraphic_TransformToFit) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-1809b9f5.png)
Виділяємо новий об'єкт, не знімаючи виділення з раніше виділених об'єктів.
![Як розподілити форми в межах іншої форми - rboom (форми) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-c9c2a7fd.png)
Запускаємо скрипт FindAndReplaceGraphic.
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-02815345.png)
![Як розподілити форми в межах іншої форми - rboom (потім переходимо File & gt;) Як розподілити форми в межах іншої форми - rboom](https://images-on-off.com/images/129-130/kakraspredelitformivpredelaxdrugoyformir-9ab316e7.png)
Особисто мені хочеться отримувати більшу щільність об'єктів, всередині заповнюється форми. Тому якщо у вас є інші рішення, що розглядається завдання, будьте ласкаві, поділіться з нами своїм досвідом.