2017-10-13 2 views
1

Je voudrais créer un nombre de cercles le long d'une ligne de vecteur créée par la souris lorsque je clique sur la souris et que je la déplace.Création de 'n' cercles le long d'une ligne de vecteur créée par la souris paper.js

Cela se traduirait par une ligne de cercles qui serait à une certaine distance, selon le nombre de cercles dans la ligne. Les premier et dernier cercles seraient au point où la souris a été cliquée puis relâchée. Exemple: Si la ligne a une longueur de 1000px et que 3 cercles sont requis, il y aura un cercle à 0px 500px et 1000px. Si la ligne est longue de 1000px et que 5 cercles sont requis, il y aura un point à 0px, 250px, 500px, 750px et 1000px.

J'ai fait une tentative sur paper.js avec les résultats suivants, mais ce n'est pas tout à fait ce dont j'ai besoin. Dans cet exemple, les cercles suivent un chemin libre et sont espacés d'un nombre défini de pixels.

Click here to see

En supplément, il serait agréable de voir le chemin de la ligne de la souris avant que la souris est relâché.

+1

[ 'getPointAt (offset)'] (http://paperjs.org/reference/path/#getpointat-offset) est votre ami –

+0

Merci. Cela semble beaucoup plus simple que ma solution :) http://sketch.paperjs.org/#S/VVJNb8IwDP0rUS+kKpSh3Sg7MWmnaUjsNqYpNB5ELTZKUnpA/PfF6QeslzrvOc/Pdq4JqhMky2RbgS+PyTQpSfO5Ngg/nqgWLwKhFZ8hlGmxw5HICd+pcfBq1SEk/TZYekMoJFwAfSquO7woKw6WmnMv8sZxVOk455X1DpQP/KLoMEA9IE89ZKl14Twws/u94kGHM7hyrqnFDRn0d8WROz/gNWDAu7szzhrVgA0zPReSi6c9YwI8mCoba4PihtwgEttqj6YGIY1YRdvZIg5ChG+H8zn/2bfrKx3VGfrZbDnO18aWNUgGYgvyXiadimc2Ei/lzluqYE012SAw2deqrCYjq5VXOW928MZFMxP4uI5cab0ORrWM6az6r52HwyyOIySYLCu6Nm6DioUTXeAD+ QXErd7C + ​​9lbUFUcs0uWX9 + 3Pw == – RouthMedia

+0

Vous n'utilisez toujours pas 'getPointAtOffset' –

Répondre

0

Comme écrit @NicholasKyriakides dans son commentaire, ce qui peut être mieux mis en œuvre au moyen d'un Path avec getPointAt(offset).

J'ai implémenté ceci dans votre exemple de code et l'ai rendu plus générique, donc vous pouvez utiliser n'importe quel chemin, pas seulement une ligne droite. J'ai également remplacé vos éléments de cercle par des instances de SymbolItem, ce qui est plus efficace, car ils partagent beaucoup de données.

Here is the Sketch