Как автоматизировать создание этого шаблона в Adobe Illustrator?

введите описание изображения здесьЯ хочу воспроизвести этот шаблон в Ai. Однако я не могу воспроизвести небольшую деталь: эти линии не выровнены по прямой линии, а вместо этого указывают на точку на холсте, больше похоже на то, как железные опилки выравниваются по направлению к магниту.

Любая помощь приветствуется, спасибо!

Что вы пробовали? Вы проверили 3D-инструменты в иллюстраторе? Это может помочь.
Я уверен, что где-то есть дубликат этого, но я не могу его найти.

Ответы (3)

Лучший способ, который я могу придумать, это использовать ЭФФЕКТЫ - РАЗМЫТИЕ - РАДИАЛЬНОЕ РАЗМЫТИЕ, но это растрирует ваши линии.

Шаг 1: создайте ряды и столбцы точек: сделайте 1 точку, удерживайте Shift + Option/alt и перетащите ее на копию, затем нажмите Command/Control + D, чтобы продублировать ее сверху на равных промежутках. Затем выберите строку, удерживайте Shift + Option/alt и перетащите ее вниз примерно под прямым углом, а затем нажмите Command/Control + D, чтобы продублировать ее вниз, чтобы заполнить доску. Конечно, вы можете получить более подробную информацию, если хотите, но я слишком ленив для этого.радиальное размытие шаг 1

Шаг 2: Выделите только точки (сначала я поместил свои в отдельный слой). Перейдите в ЭФФЕКТЫ — РАЗМЫТИЕ — РАДИАЛЬНОЕ РАЗМЫТИЕ.

эффекты - размытие - радиальное размытие

Шаг 3: выберите настройки, обязательно выберите ZOOM. Для деталей размером 5x3 дюйма это были мои настройки:

настройки радиального размытия

Вы должны получить что-то вроде этого:введите описание изображения здесь

Так что просто поиграйтесь с настройками, пока не будете довольны результатом. Обычно я создаю несколько копий слоя «точки», чтобы мне было легче перемещаться вперед и назад.

Отличное использование радиального размытия!

Это, вероятно, достигается с помощью какого-то автоматического программного процесса, потому что действительно, поскольку все линии имеют одинаковую длину (включая неудобную среднюю), они каким-то образом расположены «как металлические опилки на магните». Однако подход, о котором я подумал, заключался в использовании инструмента «Смешение». Тем не менее, это больше работы, когда формы обращены в разные стороны. Во-первых, я попытался использовать штриховые линии: я провел наклонную линию в одном углу монтажной области и отразил ее копию на другой стороне. Затем я использовал Blend, чтобы смешать один ряд этих штрихов. Я думал, что будет легко просто отразить его вниз и смешать два новых бленда, но это не так: в результате получился Z-бленд верхнего и нижнего рядов, соединенных диагональной линией. Итак, я вернулся и расширил ряды перехода, чтобы мои штрихи стали тонкими прямоугольниками, и сделал составные пути на всякий случай. Тем не менее, при отражении и смешивании с его отражением эти ряды наклонных прямоугольников не дали ожидаемого результата, потому что они просто не смешивались должным образом и образовывали изогнутые конфигурации. Однако, когда я взял нижний ряд и сделал его плоским (увеличение по вертикали до очень-очень маленького размера), получился хороший вид для половины шаблона. Поскольку это работало нормально, я отразил это вертикально, чтобы сформировать полную коробку. Проблема в том, что линии по-прежнему имеют разную длину, поэтому может потребоваться дополнительная обработка неизвестного типа, чтобы они больше походили на пример. Однако, когда я взял нижний ряд и сделал его плоским (увеличение по вертикали до очень-очень маленького размера), получился хороший вид для половины шаблона. Поскольку это работало нормально, я отразил это вертикально, чтобы сформировать полную коробку. Проблема в том, что линии по-прежнему имеют разную длину, поэтому может потребоваться дополнительная обработка неизвестного типа, чтобы они больше походили на пример. Однако, когда я взял нижний ряд и сделал его плоским (увеличение по вертикали до очень-очень маленького размера), получился хороший вид для половины шаблона. Поскольку это работало нормально, я отразил это вертикально, чтобы сформировать полную коробку. Проблема в том, что линии по-прежнему имеют разную длину, поэтому может потребоваться дополнительная обработка неизвестного типа, чтобы они больше походили на пример.

Завершенный узор с помощью инструмента «Переход»

Структура слоя

Я нашел этот скрипт rotateTowardPoint.jsxполезным:

// rotateTowardPoint.jsx

// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.

// test env: Adobe Illustrator CC (Win/Mac)

// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.

// Fri, 14 Feb 2014 21:08:40 +0900

function main(){
    // settings:
    // extract_groups: rotates each item in the groups, otherwise rotates each groups  (checkbox value)
    // show_dialog: shows a dialog before execution, otherwise shows no dialog
    var conf = {
        extract_groups : false,
        show_dialog : true
    }

    if(documents.length < 1) return;

    var sels = activeDocument.selection;
    if( sels.length < 2 ) return;

    if( conf.show_dialog){
        var win = new Window("dialog", "rotateTowardPoint");
        win.alignChildren = "fill";

        win.chk = win.add("checkbox", undefined, "extract groups");

        win.btnGroup = win.add("group", undefined );
        win.btnGroup.alignment = "center";
        win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
        win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");

        var getValues = function(){
            conf.extract_groups = win.chk.value;
        }

        win.btnGroup.okBtn.onClick = function(){
            getValues();
            rotateToPoint( sels, conf );
            win.close();
        }

        win.btnGroup.cancelBtn.onClick = function(){
            win.close();
        }
        win.show();
    } else {
        rotateToPoint( sels, conf );
    }
}

function rotateToPoint( sels, conf ){
    var target = sels[0];

    if( conf.extract_groups ){
        sels = extractGroup( sels.slice(1) );
    } else {
        sels = sels.slice(1);
    }

    // gets the center of the foreground object.
    // the other objects are rotated toward this point.
    var point = getCenter( target );

    for(var i = 0; i < sels.length; i++){
        var t = getAngle( point, getCenter(sels[i]));
        sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
    }
}

function getCenter(p){
    return [p.left + p.width / 2,
            p.top - p.height / 2];
}

function getAngle(p1, p2){
    return Math.atan2(p2[1] - p1[1],
                      p2[0] - p1[0]) * 180 / Math.PI;
}

function extractGroup( s, r ){
    if( r == undefined ) r = [];

    for( var i = 0; i < s.length; i++){
        if( s[i].typename == "GroupItem" ){
            extractGroup( s[i].pageItems, r );
        } else {
            r.push( s[i] );
        }
    }

    return r;
}

main();

https://shspage.blogspot.com/2014/02/rotatetowardpointjsx.html

Можете ли вы объяснить, как ваш сценарий может быть использован для решения текущей проблемы? Мы ищем ответы с некоторыми пояснениями, а не просто ссылку и какой-то код.