Bonjour, je suis nouveau sur ce forum, je commence avec C4D (quel logiciel fantastique !), et je voudrais savoir si il existe une technique – genre Xpresso ou autre diablerie – pour faire que les points de splines en contact avec une autre spline suivraient au cas où cette dernière serait déplacée. Me suivez-vous ?
Imaginez que j'aurais déplacé la spline rouge et hop, automatiquement, les points en contact (A et B) des splines vertes suivraient le mouvement.
Je sais qu'il y a parmi vous des génies de la modélisation et de la programmation, comme César Vonc, Vesale, Aurety, Rudy, oli_d, Macgreggor, et surtout xs_yann, dans une moindre mesure Sansalvador, et j'en oublie, si vous pouviez me répondre, ça m'aiderait rudement. Merci d'avance !
Dernière modification par MacGreggor ; 31/12/2015 à 16h02.
Mmmmm.....si je comprends bien , tu voudrait modifier la cage spline de ta Topolino qui comporte plusieurs splines indépendantes , et le soucis est là , elles sont indépendantes et je pense qu'il n'y a pas 50 solutions pour faire ce que tu veux:
- connecter tes splines de manière à n'en faire plus qu'une , mais dans ce cas , je pense que ça met le bazar si tu utilises "Spline Patch"
-sélectionner les splines concernées , puis sélectionner les points respectifs aux coordonnées en commun pour ensuite les déplacer
Il reste une 3ème solution......celle où je n'ai rien compris à ta question
Sinon , j'imagine que tu savais déjà tout ça mais je me permets de te le rappeler étant donner tes antécédents céphaliques
Tu as bien raison pour mes antécédents céphaliques, pour simplifier disons que chaque point d'une spline A en contact le long d'une autre spline B suivrait le mouvement si on déplaçait la B. (Je redis un peu la même chose mais je ne vois pas comment expliquer autrement.)
Ah, céphalique, avec un seul L, tu parlais de la mémoire, j'avais compris tout autre chose.
Salut,
Y'a un peu de setup à faire, mais pour faire simple tu peux tenter un truc comme ça :
Tu définies la position des points que tu veux connecter à la spline par rapport à un offset sur cette spline.
Merci fiston, je vais tenter le truc. Le développeur de Spline Patch devrait réfléchir à ce problème parce quand on commence à avoir des centaines de splines ça devient un peu fastidieux à la longue de tout bouger.
Je vais tenter d'améliorer ça, c'est intéressant comme problème.
J'ai déjà fais quelques tests pour calculer une approximation de l'offset le plus correct :
En gros il vérifie si le point est plus près de l'offset 0.0 ou 1.0 (0% ou 100% de la spline).Code PHP:
def get_closest_aux(spline, pos, start, end):
pos -= spline.GetMg().off
start_pos = spline.GetSplinePoint(start, 0)
end_pos = spline.GetSplinePoint(end, 0)
dist1 = (start_pos - pos).GetLength()
dist2 = (end_pos - pos).GetLength()
middle = (start + end) / 2.0
if dist1 < dist2:
end = middle
else:
start = middle
return start, end
def get_closest(spline, pos):
max_iter = 20
eps = 0.001
start, end = 0.0, 1.0
for i in xrange(0, max_iter):
start, end = get_closest_aux(spline, pos, start, end)
if abs(start - end) < eps:
break
return (start + end) / 2
Si le point est plus près de l'offset 1.0 que 0.0, il cherche entre 0.5 et 1.0, ensuite si le point est plus près de l'offset 0.5 que 1.0, il cherche entre 0.5 et 0.75, etc. Et il converge petit à petit vers l'offset le plus correct.
En ayant l'offset correct, il suffit de récupérer l'index des points qui sont à coller à la spline (pas très compliqué si il le sont déjà), je pense qu'il y a moyen que la connexion se fasse automatiquement.
Je sais pas si j'aurais le temps de finir ça maintenant, mais j'essayerai de poster une version améliorée dans le courant de la semaine prochaine.
Intéressant , mais j'ai une question
Si les points que l'on déplace sont soumis à une interpolation légère , cela va forcément déformer la forme obtenue en amont et du coup , il faudra repasser sur chacun de ces points pour régler les courbes à l'aide de la tirette , je me trompe ?
En effet tu ne ne trompes pas. Mais déjà si les splines ne se décollent pas, c'est un progrès considérable. Et suivant celles que tu utilises, ça peut ne pas être trop embêtant. Xs_Yann, tu es prodigieux.
Et bon réveillon tout le monde !
salut les gars je déterre ce post car je souhaite réaliser cette opération mais avec des splines dans un cloner ....en gros ca serait de relier les splines placées dans un cloner... avez vous avancé sur le sujet ou pas du tout ?