Не будьте пустословным, по крайней мере, по отношению к "лидеру области".Везде бывает, и в кореле и в лидере отрасли.
Подобная фраза, учитывая ваше заявление о двойном высшем образовании, расценивается мной, скорее, как шутка, ибо я все еще не до конца утратил веру в нынешнее высшее образование этой страны.В компьютерной графике элементарным объектом и базовым, к тому же, является линия, которая
Это внушает уважение, которым я действительно проникся с самого начала, только почему же тогда он не написал учебник, в котором говорилось бы, что в векторной графике базовым элементом является не линия? Может термины изменились? Или вообще подход к графике стал другой?все-таки действующий программер.
Это было случайно.Он и тебя посчитал
Ну да, мануал читать никогда не лишне. Эти настройки в полной мере будут работать при использовании для кисти образца, который представляет собой узор или паттерн, которым будет замощен контур объекта или линия.чем отличаются Stretch Fit (Растягивать до заполнения) от Approximate Path
Здесь _MBK_ упоминал о возможных алгоритмах, если Вы о скриптах:парочки шагов до автоматизации. Т.е. на кусочки-то они режутся
Скриптом гораздо проще закодить преобразование экспандированной кривой в линию
А вообще, раз уж мы заговорили о скрипте, то проще всего разбить линию на участки заданной длины и убрать промежутки между ними.
Теория суха, но зеленеет жизни древо. Внимательно прочитайте процитированной мною свою фразу и найдите различие.А то я уж испугался было. ))
"Как в растровой графике основным элементом изображения является точка,
так в векторной графике основным элементом изображения является линия
(при этом не важно, прямая это линия или кривая)." - стр.60
"8.1. Математические основы векторной графики
В основе векторной графики лежат математические представления о
свойствах геометрических фигур. Как мы сказали выше, простейшим
объектом векторной графики является линия. Поэтому в основе векторной
графики лежит, прежде всего, математическое представление линии." - стр.62
Источник:
В. Е. Васильев, А. В. Морозов
"Компьютерная графика"
Санкт-Петербург, 2005
http://www.ict.edu.ru/ft/005415/nwpi237.pdf
Не думаю, что есть учебники, где утверждается что-то иное.
Про самый простой способ автоматизации как разбиение линии на части - беру слова обратно. Для Корела, да, это делается в несколько строк, а у лидера отрасли снова внезапная проблема - индусы почему то сочли излишним добавление в модель метода вставки нового узла по относительным координатам, в итоге теперь, чтоб разбить отрезок пополам требуется весьма нехилая математика. Самый же простой способ я продемонстрирую сегодня, как только доберусь до иллюстратора, надеюсь это, заодно, даст страждущему @drawline требуемые примеры.Ну да, мануал читать никогда не лишне. Эти настройки в полной мере будут работать при использовании для кисти образца, который представляет собой узор или паттерн, которым будет замощен контур объекта или линия.
Stretch Fit - удлиняет или укорачивает элементы узора для подгонки к объекту. Использование этого значения может привести к неравномерному распределению элементов узора, т.е. образец может масштабироваться;
Add space to fit - изменяет размеры интервала для наиболее равномерного распределения паттерна, т.е. образец остается неизменного размера;
Approximate Path - образец сдвигается внутрь или наружу относительно оси контура для достижения равномерного распределения элементов по длине этого контура, образец остается неизменного размера.
Поэтому для "нашего" пунктира первая и третья настройки различий иметь не будут, так как образец является линией, а не фигурой или узором.
Здесь _MBK_ упоминал о возможных алгоритмах, если Вы о скриптах:
var oldwidth,oldcolor;
if (documents.length > 0) {
if (activeDocument.selection.length>0)
{
for (var i=0;i<activeDocument.selection.length;i++)
if (activeDocument.selection[i].typename == "PathItem")
{
oldwidth=activeDocument.selection[i].strokeWidth;
oldcolor=activeDocument.selection[i].strokeColor;
activeDocument.selection[i].strokeWidth=0.000001;
}
app.executeMenuCommand("OffsetPath v22");
app.executeMenuCommand("ungroup");
app.executeMenuCommand("noCompoundPath");
for (var i=0;i<activeDocument.selection.length;i++)
if (activeDocument.selection[i].typename == "PathItem")
{
activeDocument.selection[i].filled=false;
activeDocument.selection[i].closed=false;
activeDocument.selection[i].stroked=true;
activeDocument.selection[i].strokeWidth=oldwidth;
activeDocument.selection[i].strokeColor=oldcolor;
}
} else
{
alert("No selection");
}
} else
{
alert("No opened document");
}
var oldwidth,oldcolor;
if (documents.length > 0) {
if (activeDocument.selection.length>0)
{
for (var i=0;i<activeDocument.selection.length;i++)
if (activeDocument.selection[i].typename == "PathItem")
{
oldwidth=activeDocument.selection[i].strokeWidth;
oldcolor=activeDocument.selection[i].strokeColor;
activeDocument.selection[i].strokeWidth=0.0001;
}
app.executeMenuCommand("OffsetPath v22");
app.executeMenuCommand("ungroup");
app.executeMenuCommand("noCompoundPath");
for (var i=0;i<activeDocument.selection.length;i++)
if (activeDocument.selection[i].typename == "PathItem")
{
for (j=0;j<activeDocument.selection[i].pathPoints.length-1;j++)
{
var pp=activeDocument.selection[i].pathPoints[j];
for (k=j+1;k<activeDocument.selection[i].pathPoints.length;k++)
{
var pp1=activeDocument.selection[i].pathPoints[k];
if ((Math.abs(pp1.anchor[0]-pp.anchor[0])<0.001) && (Math.abs(pp1.anchor[1]-pp.anchor[1])<0.001))
{
pp1.remove();
}
}
}
activeDocument.selection[i].filled=false;
activeDocument.selection[i].closed=false;
activeDocument.selection[i].stroked=true;
activeDocument.selection[i].strokeWidth=oldwidth;
activeDocument.selection[i].strokeColor=oldcolor;
}
} else
{
alert("No selection");
}
} else
{
alert("No opened document");
}
Ну не нашел различий, может у меня кровь сильно к мозгу прилила и я уже за пеленой ничего не вижу? (пытаюсь иронизировать над собой)и найдите различие
В общем, самое дельное решение оттуда - назначить толщину 0.0001 pt и сделать Expand
Не разумею, чем вам все таки не угодил данный способ?
----
----
- Set thickness of line to 0.0001 pt
- Menu Object > Expand (if greyed out, choose Object Expand Appearance first, as the object has appearance attributes applied to it)
- Set thickness back to original value
Проверил у себя - прекрасно разбивает на отрезки. Единственно что - потом надо полученную группу раскомбинировать и отрезки разомкнуть
У меня в CS6 прекрасно выставляется 0.0001 pt ЧЯДНТ?
Как Вы проверяете, что это отрезки, а не объекты? У меня так:
Это если после Expand инструментом "поиграться" Anchor Poin Tool
Ну вроде как, по условию было преобразовать именно в двухточечные отрезки, про аттрибут замкнутости требования не было? Или плоттер этот аттрибут воспринимает как приказ вернуться в исходную? Ну тогда разомкнуть их все скопом - или для лидера отрасли это тоже нетривиальное действие?
Ну в кореле это делается легким нажатием волшебной кнопки...
...Два сплайна, опирающиеся на две точки при разьединении в одной из них легко превращаются в один.
проверил в Corel-е
Было бы здорово, если бы _МВК_ показал на примере именно в Illustrator-е такую линию.Везде бывает, и в кореле и в лидере отрасли. Замкнутый отрезок из одного узла - что вас смущает?
Кстати, тоже очень нужный инструмент был бы в свое время.даже обводку возвращает на место
Ну не нашел различий, может у меня кровь сильно к мозгу прилила и я уже за пеленой ничего не вижу?
В компьютерной графике элементарным объектом и базовым, к тому же, является линия, которая имеет две координаты
Все ваши беды - от неправильной формулировки. Я давно вам тонко намекал, что у иллюстратора нет понятия "линия"1) После Expand тонкой пунктирной линии с толщиной 0,0001 pt останутся объекты с двумя точками, но с двойными линиями.
_МВК_ утверждает, что после снятия атрибута Closed (который в явном виде есть только в Corel) должна остаться только одна линия.
Дык вроде дописалЕсли допишете, думаю, кому-то пригодится обязательно!