Distribuir horizontalmente a lo largo del camino

¿Cómo puedo distribuir objetos horizontalmente a lo largo de un camino? Blendy Brushesno me funcionan porque distribuyen los objetos de manera uniforme según la distancia a lo largo del camino.

Empecé usando el Blendmétodo de esta pregunta . Sin embargo, como se muestra a continuación, los puntos no se distribuyen horizontalmente como me gustaría. ¿Cómo llego a la ruta y los objetos que se muestran en la parte inferior de la siguiente figura?

ingrese la descripción de la imagen aquí

Estoy bastante seguro de que podrías hacerlo creando un pincel, ¿qué intentaste usando pinceles?
Cuando intenté usar un pincel, seguí esto: graphicdesign.stackexchange.com/questions/12806/… . Sin embargo, me encontré con los mismos problemas.

Respuestas (2)

Si puede usar un entorno de secuencias de comandos que pueda detectar intersecciones de Bezier, esto es muy fácil de lograr. Desafortunadamente, Adobe no incluye estos métodos en su kit de herramientas de secuencias de comandos. En cambio, uso principalmente Scriptographer o Paper.js, pero creo que Inkscape también puede encontrar intersecciones más complejas. Aquí está la excelente introducción a las matemáticas de Mike Kamermans para aquellos interesados: Intersecciones de curvas de Bezier .

El siguiente es un script para paper.js/scriptographer que alinea un conjunto de objetos seleccionados sin agrupar con la primera intersección de la ruta seleccionada más alta:

var sel = document.selectedItems;
var sel0 = sel[0];
sel.splice( 0, 1 );
var pathOffset = new Point( 0, 500 );
var line = new Path.Line( sel[0].position + pathOffset, sel[0].position - pathOffset );
for ( i = 0; i < sel.length; i++ ) {
    line.position = sel[i].position;
    lineIntersections = line.getIntersections(sel0);
    if (lineIntersections !== null && lineIntersections.length > 0) {
        sel[i].position = lineIntersections[0].point;
    }
}
line.remove();

Aquí hay un .gif del proceso y el resultado:

Alinear objetos a la intersección con una ruta

¡Gracias! Ni siquiera sabía que existía paper.js. También resuelve algunos otros problemas que he tenido.

Puede distribuir fácilmente todos los puntos para que el espacio entre ellos sea uniforme. Simplemente seleccione los puntos y haga clic en el botón Distribuir espacio horizontal en el Panel de alineación . Luego tendrás que mover manualmente los puntos verticalmente para encontrar tu línea.

alinear

Si no ve las opciones Distribuir espaciado en el panel Alinear, elija Show Optionsen el menú Panel de alineación.

No existe ningún método, que yo sepa, que distribuya uniformemente los objetos horizontalmente y, al mismo tiempo, siga un contorno vertical sin distorsionar los objetos en sí.

Los pinceles distorsionarán los objetos en el 99,5 % de los casos. Las mezclas, si bien son capaces de una distribución uniforme a lo largo de su lomo, no son capaces de una distribución que ignore el lomo de la mezcla (que es lo que está buscando).

No sé si esto se ajusta a sus necesidades, pero ¿qué tal si simplemente usa un trazo discontinuo ?

carrera

Puede modificar las distancias de separación cuando sea necesario.

Gracias, has respondido mi pregunta. Desafortunadamente para mí, como ha señalado, la respuesta es "No, no es posible".
Los objetos se distribuyen horizontalmente, pero es el espacio vertical el que cambia. Debería eliminar el "verticalmente", simplemente es confuso allí.
La idea del trazo discontinuo es inteligente. Es como un cepillo pero sin la distorsión. Sin embargo, la distribución horizontal de los puntos a lo largo de la parte inferior de la página es imprescindible para mí. La línea discontinua no logra eso sin editar manualmente muchos espacios. Tengo más de 100 objetos para varios archivos; la edición manual simplemente no es una opción.