Dibujé un polígono usando la herramienta pluma. Ahora me gustaría dibujar pequeños círculos (que ilustran los vértices) en los puntos de control del polígono.
Según la solicitud, un script para hacer esto en las rutas seleccionadas. Esta es una alternativa para la respuesta de @CConroy que puede facilitar las cosas a largo plazo. Dibuja símbolos en puntos y tangentes y conecta las tangentes con líneas. Puede usar la paleta de símbolos para cambiar su aspecto después del hecho. Podría ser útil para alguien.
Coloque lo siguiente en un archivo .jsx y ejecútelo con las rutas seleccionadas:
#target illustrator
main();
function main(){
var sym = createSymbolsIfNeeded(activeDocument);
handlePaths(activeDocument.selection,
sym.anchor, sym.tangent);
// pass undefined for sym tangent if you dont want
// tangent handles.
}
function handlePaths(sel, symAcnhor, symDir) {
for(var i = 0; i < sel.length; i++){
if(sel[i].typename == "PathItem"){
symbolsOnPoints(sel[i], symAcnhor, symDir);
}
// you would possibly need to recurse
// the groups and compound paths in some
// cases.
}
}
function symbolsOnPoints(path, symAcnhor, symDir) {
var pts = path.pathPoints;
for(var i = 0; i < pts.length; i++){
var pos = pts[i].anchor
if(!(symDir === undefined)) {
var pos2 = pts[i].rightDirection;
if (dist(pos, pos2) > 0.1){
drawLine(pos, pos2);
centeredSymbol(pos2, symDir);
}
pos2 = pts[i].leftDirection;
if (dist(pos, pos2) > 0.1){
drawLine(pos, pos2);
centeredSymbol(pos2, symDir);
}
}
centeredSymbol(pos, symAcnhor);
}
}
function centeredSymbol(pos, symbol) {
var p = pos.slice(0);
sym = activeDocument.symbolItems.add(symbol);
p[0] -= sym.width/2.0;
p[1] += sym.height/2.0;
sym.position = p;
return sym;
}
function drawLine(p1, p2) {
var line = activeDocument.pathItems.add();
line.setEntirePath([p1,p2]);
return line;
}
function dist(a, b){
return Math.sqrt(Math.pow(b[0]-a[0], 2) +
Math.pow(b[1]-a[1], 2));
}
function createSymbolsIfNeeded(doc){
var symAnchor;
try {
symAnchor = doc.symbols.getByName("Anchor");
}
catch(err) {
var circle = doc.pathItems.ellipse(5,5,5,5);
symAnchor = doc.symbols.add(circle);
symAnchor.name = "Anchor";
circle.remove();
}
var symTangent;
try {
symTangent = doc.symbols.getByName("Tangent");
}
catch(err) {
var rect = doc.pathItems.rectangle(5,5,5,5);
var symTangent = doc.symbols.add(rect);
symTangent.name = "Tangent";
rect.remove();
}
return {anchor : symAnchor, tangent: symTangent};
}
Imagen 1: Ejemplo de resultado. Puede cambiar fácilmente los diferentes símbolos de marcador en la paleta de símbolos.
PD: El script no es realmente súper seguro y estable porque es uno de mis propios scripts para una documentación rápida, así que tenga cuidado.
PPS: he enviado este código a bitbucket
Comience dibujando una línea y un círculo y diseñe cada uno como le gustaría que se vean los lados y vértices del polígono.
Arrastra la línea al panel Pinceles y elige Pincel de motivo. En el cuadro de diálogo Opciones de pincel de patrón, establezca el primer mosaico (Esquina exterior) en Ninguno y presione Aceptar.
Luego, Opción-arrastre su círculo al Panel de pinceles en esa primera ranura de mosaico . Volverá al cuadro de diálogo Opciones de pincel de patrón, pero ahora sus círculos estarán en lugar de todos los vértices (básicamente, las esquinas). Repita la opción de arrastrar para los 3 mosaicos de pincel restantes.
aquí hay otra forma de dibujar círculos o cuadrados en cada punto de anclaje (aunque no hay controladores de dirección)
Use el complemento de suscripción , que es un complemento de ilustrador gratuito hecho exactamente para este propósito (entre otros).
En el enlace que agrego, encontrará tutoriales para todo lo que hace el complemento, pero específicamente para sus necesidades, usará esta herramienta:
joojaa
Zohar Levi
bien