J'ai pris quelques minutes pour traduire une petite démo Javascript sympathique sous Delphi.
ça se passe ici.
J'ai pris quelques minutes pour traduire une petite démo Javascript sympathique sous Delphi.
ça se passe ici.
Sur le même lien, vous pourrez trouver le même projet mais avec un rendu OpenGL qui est plus fluide sur mon PC
Très sympa comme animation.
Tu n'as pas essayé de voir ce que cela pouvait donner en mettant une texture entre les maillages ?
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Magnifique, et très fun
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Excellent, et fort réaliste ! A part quand un morceau est coupé, qu'il tombe au "sol" et continue de bouger. Meurt sale bête, meurt !
Très fort ! J'ai hâte de regarder le code.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Bonjour,
Superbe! Pourrait-on avoir un petit résumé des principes de base utilisés par l'algo : cela faciliterait la compréhension du code.
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
le code n'est pas très compliqué...mais il pourrait être plus simple au départ j'ai repris la logique JavaScript et portée sous Delphi sans vraiment chercher à peaufiner puisque ça tient en 300 lignes. J'ai tout de même remplacé la liste de points par un tableau puisqu'on connait le nombre de point et qu'il est fixe. Le code gagnerais à utiliser une liste globale des contraintes, ça ne sert pas à grand chose des les associées aux points.
Quoi qu'il en soit, ce projet contient (mise à par la partie VCL) 3 objets:
- TPhysics c'est juste pour englober le tout
- TPoint défini un des points du maillage
- TConstraint représente un lien entre deux points
en fait seules les contraintes sont visibles à l'écran, chaque ligne du maillage est une contrainte. Quand on supprime une contrainte ça crée un trou.
la procédure build_cloth() crée les points et les contraintes.
la première ligne (y = 0) est "pinned" c'est à dire fixe.
pour toutes les autres lignes (y > 0) on crée une contrainte verticale vers la ligne précédent
pour toutes les colonnes sauf la première (x > 0) on crée un contrainte avec la colonne précédente.
ensuite c'est juste un peu de math, les points tombent (ax, ay) et subissent un vecteur de force (vx, vy) calculé à partir de la position courante (px, py) et la position à venir (x, y) qui provient des contraintes.
la nouvelle position (nx, ny) est calculée en partant de la position courante, plus le vecteur (vx, vy) et l'accélération (ax, ay) : 1/2 g t ² (cours de maths de seconde ?)
donc à chaque boucle, les contraintes poussent les deux points liée à conserver une distance constante (spacing), et le lien casse si la distance entre les deux points est trop grande (tear_distance).
la position d'un point résulte alors de la gravité et de la somme des contraintes qui lui sont appliquées.
c'est en fait le même principe que SodaPlay
Bonjour,
A Paul TOTH : Merci pour ces explications, c'est assez costaud d'avoir modélisé le phénomène physique en un algo appliqué à un filet virtuel donc sans poids réel : en fixant la constante gravity à 90 au lieu de 900 on constate que le filet met très longtemps pour se remettre à la verticale ce qui suppose qu'il a fallu une astuce pour trouver des valeurs numériques adéquates à affecter aux paramètres des équations mathématiques.
Par contre ce qui m'épate c'est la bonne fluidité des mouvements obtenus avec des MoveTo() ... LineTo() je m'attendais à y touver l'utilisation des Scanlines.
A+.
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Superbe effet de contrainte physique sur tissu.
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager