Illustrator: ¿Cómo dibujar círculos en los puntos de control?

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.

Hay un error en el ilustrador más reciente que hace que esto sea un poco molesto de hacer sin herramientas adicionales. Además, todas las respuestas actuales han entendido mal su pregunta.
¿Quizás sabe cómo consultar la posición de los puntos de control de un poli en un script? Probablemente sería capaz de manejar el resto.
@ZoharLevi si su pregunta obtuvo una respuesta satisfactoria a continuación, acepte la que crea que funcionó mejor. Para ello, haga clic en la marca de verificación verde junto a esa respuesta. Es bueno para ti, para mí y sobre todo para la comunidad y otras personas que buscan soluciones al mismo problema.

Respuestas (4)

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};
}

    tangentes

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

Entonces, ¿los dispositivos de control y los volantes de ángulo se simulan en la captura de pantalla? genio.
¡Lindo! Si hubiera visto esta publicación un poco antes, mencionaría a un viejo mío que hace exactamente lo mismo . "Tal vez haya algo en este negocio de Java [sic] después de todo". ;)
@Jongware bueno, ya tenía esto en mi disco duro y realmente no vi una razón para no compartirlo. Es una necesidad bastante obvia. También estaba jugando con hacer de esto un efecto en algún momento.

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.

ingrese la descripción de la imagen aquí

No estoy seguro de por qué esto está bajando votos. Funciona. No creo que los usuarios estén leyendo con suficiente atención.
@scott estoy de acuerdo con esta declaración
en realidad, los círculos no se encuentran exactamente en los puntos de control. Pero no voté en contra, voté a favor para revertir el mod erróneo
El cepillo podría modificarse para alinear los círculos correctamente. Agregué la captura de pantalla en un esfuerzo rápido por disuadir a los votantes negativos.
Gracias por mejorar mi respuesta Scott. Soy nuevo en el sitio y sigo aprendiendo las cuerdas.
@Scott, desafortunadamente, no para los extremos abiertos, pero ¿podrías usar una punta de flecha para eso?
No hay problema @CConroy Tu respuesta estuvo bien. Solo lo edité porque no podía entender por qué estaba recibiendo menos votos. Así que traté de aclarar para detener eso. Sin embargo, fue una buena respuesta tal como estaba. ¡Bienvenido!
@Joojaa incluso para extremos abiertos. Solo tiene más cuidado con el recorte del cepillo. Pero se puede hacer con bastante facilidad.
@jooja ¿no se pueden configurar las tapas finales? es decir, dentro/fuera/centrado
No automáticamente para pinceles @Yorik
Es posible si construye cuidadosamente un pincel y sus esquinas. Me gusta esto Pero tiendes a obtener círculos "torcidos" si los ángulos de las esquinas son demasiado estrechos. Sin embargo, no sería un problema si todos los ángulos fueran de 90 °. Y pierde cualquier anclaje interno o anclaje suave, como en el círculo.
Ese es un buen truco si quiero poner círculos en las esquinas; pero: i) quiero en todos los puntos de control, ii) como se mencionó, se tambalea en ángulos agudos, iii) no puedo acceder a los círculos después y editarlos, por ejemplo, traducción. Gracias

aquí hay otra forma de dibujar círculos o cuadrados en cada punto de anclaje (aunque no hay controladores de dirección)

  • selecciona tu camino
  • Ctrl+C para copiar
  • Ctrl+F para pegar la copia al frente
  • Seleccionar->Objeto->Controles de dirección
  • Ctrl+X para eliminar los segmentos y mantener solo los anclajes

ingrese la descripción de la imagen aquí

  • Efecto->Convertir en forma->Elipse...2 pts ancho/alto extra

ingrese la descripción de la imagen aquí

  • Puedes hacer círculos o cuadrados.

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

¿Podría contarnos sobre otros complementos que utiliza?
Hay cientos de plugins y scripts para programas de adobe, deberías ser más específico
En los tutoriales del enlace adjunto explican cómo usar esta herramienta para hacer que un círculo encaje perfectamente dentro de una forma
Sí, pero no pregunta sobre ajustes de círculos, sino círculos en puntos de control de curvas y posiblemente tangentes. no círculo a través de los puntos sino círculos en el punto? o tal vez estoy loco.