fonction qui genere une ligne 3d aleatoire... [algo] - Algo - Programmation
Marsh Posté le 11-12-2002 à 06:37:31
>> les points a chaque fois varient selon x, y et z,
soit fn = un nombre au pif dans un domaine de définition[a, b]
donc x = fn(), y = fn(), z = fn()
>> et dont l'espacement n'est a chaque fois pas trop important.
soit tu génères les deux points avec la première fonction, tu trouves l'équation paramétrique x = x0 + vecteurdirecteur*t (avec norme de vecteurdirecteur = 1, x0 le premier point de la droite), tu as x1 = x0 + vecteurdirecteur*(une valeur pas trop grande) ... , soit tu génères un point, exprime le second en coords sphériques, puis conversion en cartésiennes avec le radius que tu veux.
Marsh Posté le 11-12-2002 à 07:13:47
youdontcare a écrit : >> les points a chaque fois varient selon x, y et z, |
Merci beaucoup...
Tu peux la refaire en francais s'il te plait ?
Ou un joli piti lien serait sympa... car la j'avoue etre largue
Marsh Posté le 11-12-2002 à 09:02:06
soit fn = un nombre au pif dans un domaine de définition[a, b]
tu dois avoir une fonction rand() qui renvoie un nombre aléatoire entre 0 et 1
donc fn(a, b) = rand()*(b-a) + b
(je suppose que dans ton cas, tu fixes a et b au début du programme)
donc x = fn(), y = fn(), z = fn(). donne un point aléatoire en 3d.
à partir de ce point, tu en génères un deuxième comme indiqué dans mon dernier paragraphe. si tu ne connais pas les équations paramétriques, les coordonnées sphériques, etc. . c'est la base de l'algèbre linéaire.
tu peux aussi être plus spécifique, car je suis pas sûr d'avoir compris ... (surtout le "Une sorte de ligne 3d, continue" )
Marsh Posté le 11-12-2002 à 19:16:59
youdontcare a écrit : soit fn = un nombre au pif dans un domaine de définition[a, b] |
Je crois que je vais vraiment devoir mater ca alors
Sinon, pour la ligne, on peux voir le probleme differemment ( c'est pas ce que je veux en faire mais ca decrit bien le probleme).
Imagine que la ligne en question est un tunnel. Et que tu marches dedans. Tu veux que la ligne se balade dans tous les sens, mais jamais de virages a 90 degres et tout... juste de jolies courbes. De plus, pour la creer, faut pas faire des segments de 50km, sinon, c'est pas marrant,,, faut que ce soie un serpentin quoi
Marsh Posté le 11-12-2002 à 19:26:31
c'est pas une ligne que tu veux, c'est une courbe ! tu choisis n points au hasard en 3d, tu les relies par ce que tu veux (bézier = le plus simple, ou catmull-rom, etc ... google encore)
Marsh Posté le 11-12-2002 à 19:29:32
choppe le "foley van dam" si tu en as l'occasion. http://www.amazon.com/exec/obidos/asin/0201848406
Marsh Posté le 11-12-2002 à 20:08:30
youdontcare a écrit : choppe le "foley van dam" si tu en as l'occasion. http://www.amazon.com/exec/obidos/asin/0201848406 |
Excellent, in va etre bientot achete lui
merci
Marsh Posté le 11-12-2002 à 20:13:38
youdontcare a écrit : c'est pas une ligne que tu veux, c'est une courbe ! |
beh il a pas precise ligne droite
une ligne ca peut etre aussi courbe
(ou droite par morceau)..
LeGreg
Marsh Posté le 13-12-2002 à 04:22:53
Corrigez moi si j'ai faux :
Ce qu'il faut que j'utilise ce sont les NURBS :
glNurbsCurve and co finalement, nan ?
Me faut juste une courbe qui se balade en 3d de facon toute douce...
Par exemple pas d'angles, toujours des courbes...
En anglais on dirait smooth . Je sais pas le dire en francais ( je le perds peu a peu d'ailleurs )
Bref, j'ai bon ?
Marsh Posté le 11-12-2002 à 05:45:38
Bonjour !
J'ai besoin, pour un projet perso, de tracer une ligne aleatoire dans un espace 3d.
En fait, par ligne il faut plus entendre "trait".
Il me faudrait donc un petit algo qui me genere, de facon aleatoire, une ligne plausible, dont les points a chaque fois varient selon x, y et z, et dont l'espacement n'est a chaque fois pas trop important.
Une sorte de ligne 3d, continue, sans changements brutaux dans un espace quoi...
Vous voyez comment faire cela vous ?
Merci
---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !