¿Cómo puedo distribuir objetos horizontalmente a lo largo de un camino? Blend
y Brushes
no me funcionan porque distribuyen los objetos de manera uniforme según la distancia a lo largo del camino.
Empecé usando el Blend
mé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?
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:
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.
Si no ve las opciones Distribuir espaciado en el panel Alinear, elija Show Options
en 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 ?
Puede modificar las distancias de separación cuando sea necesario.
bien
Kevin