AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

 

 [Résolu par arthuro] Extreme physique et la rotation

Aller en bas 
4 participants
AuteurMessage
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 15:15

Bonjour,

Apres plusieurs tentative et une dizaines de feuilles mis à la poubelle.
Je viens vers vous en quête d'aide.

J'ai :
Code:
_dir = degtorad(point_direction(x,y,mouse_x,mouse_y)-90);
_c_dir = ep_body_get_rot(global.world,corps)

c = sign(_dir-_c_dir);
vr = max(-0.05,min(0.05,c-vr));

ep_body_set_velocity_center(global.world,corps,vh,vv,vr);

Qui sert (sans être super optimisé et pas tellement esthétique)  à faire tourner un objet, selon un angle (ici l'angle objet x,y à souri x,y).
Le problème avec Extreme Physics, c'est qu'il n'y a pas de fonction qui ressemble à :
Code:
point_direction(x1,y1,x2,y2);

Hormis :
Code:
ep_body_set_position(...);

Seulement, ce dernier fausse tout, étant donner qu'il ne sert pas vraiment à ça.

Je ne trouve pas de résonnement logique à faire, pour que l'objet pointe en direction de la sourie, sans devoir faire une chose aussi moche...

Merci.

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri


Dernière édition par Caohimin le Jeu 4 Juil 2013 - 14:35, édité 1 fois
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 16:19

Peut-tu reformuler ta question, j'ai du mal à cerner ta demande.

Citation :

Le problème avec Extreme Physics, c'est qu'il n'y a pas de fonction qui ressemble à :
Code:
point_direction(x1,y1,x2,y2);
Tu programme sous game maker, donc tu possède cette fonction, que veut tu d'autre?

happy1 

_________________
[Résolu par arthuro] Extreme physique et la rotation Pochette[Résolu par arthuro] Extreme physique et la rotation Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 16:33

Extreme physique possède sa propre gestion de collision, donc? De mouvement. 

Sous GM pour faire qu'un objet regarde la sourie :

Code:
image_angle = point_distance(x,y,mouse_x,mouse_y);

Cependant, lorsque l'on ajoute l'extension Extreme Physics, le script si dessus, ne sert a rien... Evidemment étant donner que E.T. (non pas ce E.T. la...), gère lui même les collisions, les mouvements...

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 17:06

Donc tu cherche à faire tourner l'objet, pas la direction entre les 2 points, c'est ca ?
J'ai jamais utilisé extrem physics, mais si ep_body_get_rot() existe, je suppose qu'il y a aussi ep_body_set_rot(), non ?
(et désolé si c'est faux...)

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 17:08

Non il n'existe pas mop

 Ce n'est pas si simple que ça.
Ce que je demande, c'est de l'aide sur comment faire la fonction qui ressemble à : 

Code:
point_direction(x,y,mouse_x,mouse_y);

mais avec les fonctions d'ont j'ai accès, c'est à dire :


Code:
ep_body_set_velocity_center(global.world,corps,vv,vh,vr);

 global.world = variable qui contient l'id du monde physique.
corps = variable qui contient l'id du corps de l'objet.
vv = variable de la vitesse verticale.
vh = variable de la vitesse horizontale.
vr = vitesse de rotation.

A savoir, qu'il ne suffit pas de donné un angle pour que l'objet le suive, mais une vitesse de rotation, d'où la difficulté.

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 21:02

Le script que tu nous as fournit fonctionne-t-il ?
Si oui
Qu'est ce qui te gène dans ce script?
Si non
Qu'obtient tu ?

_________________
[Résolu par arthuro] Extreme physique et la rotation Pochette[Résolu par arthuro] Extreme physique et la rotation Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 21:25

Oui il fonctionne, mais il ne fais pas exactement ce que j'aimerais, mais il s'en approche.

Code:
_dir = degtorad(point_direction(x,y,mouse_x,mouse_y)-90);

il prend la valeur de la direction de la souris + 90°, et le converti en radian.

Code:
_c_dir = ep_body_get_rot(global.world,corps)

il prend la direction de l'objet, en radian.

Code:
c = sign(_dir-_c_dir);

un petit calcul pour connaitre si la direction a prendre est en sens horaire ou non.

Code:
vr = max(-0.05,min(0.05,c-vr));

ici c'est la vitesse de rotation, elle peut valoir toute les valeur comprise entre -0.05 et 0.05

Le problème vient de la : j'ai mis 0.05, donc il tourne très lentement... sachant qu'il fait 0.05(° ou rad, je ne sais plus...)/step et qu'une seconde = 600 steps.
Deuxièmement, lorsque l'on arrive à la direction 0°, (horizontale à droite), et que l'on continue la rotation, l'on arrive a 359°, et la catastrophe... L'objet fait un tour sur lui même en sens anti-horaire.

Code:
ep_body_set_velocity_center(global.world,corps,vh,vv,vr);

Et la on applique toute les valeur a l'objet.

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
GrandeLangue
Bonne participation
GrandeLangue


Messages : 77
Localisation : Lille
Projet Actuel : Faire des maths

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyMer 3 Juil 2013 - 23:10

Caohimin a écrit:
Le problème vient de la : j'ai mis 0.05, donc il tourne très lentement... sachant qu'il fait 0.05(° ou rad, je ne sais plus...)/step et qu'une seconde = 600 steps.

Pourquoi tu ne peux pas mettre plus que 0.05 ? (Et ce sont bien des radians)

Citation :
Deuxièmement, lorsque l'on arrive à la direction 0°, (horizontale à droite), et que l'on continue la rotation, l'on arrive a 359°, et la catastrophe... L'objet fait un tour sur lui même en sens anti-horaire.

C'est parce que ton code ne fait pas attention au fait que les angles doivent être entre 0 et 2*pi rad. Un petit modulo peut nous arranger tout ça :
c = sign(_dir-_c_dir);
devient
c = sign((3*pi+_dir-_c_dir) mod (2*pi) - pi);

_________________
Un superbe jeu de plateforme où vous pouvez contrôler le temps ici : TimeBoy

Pour maîtriser les pistons dans Minecraft : https://www.youtube.com/MindcraftMax
Project Spark est mort, vive Project Spark ! Top 25 des créations qui ont été réalisées avec ce moteur de création de jeu depuis sa sortie, avant que les serveurs n'aient été arrêtés : https://www.youtube.com/watch?v=nPenVqIcFgc
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 0:59

Si je peux mettre plus, seulement l'objet semble vibrer, il ne cesse pas sa rotation totalement si tu vois ce que je veux dire.

J'ai modifier ce que tu m'a donner, plus de problème lors de la rotation, cependant, un autre est apparu, au dessus de 11 rad, il retourne a 5 rad... donc subit une sorte de demi-tour.
Je toucherais 2/3 truc, la il est tard, merci de ton aide GrandeLangue.

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 12:18

Je te donne deux trois conseil.

1) Pour obtenir le petit angle entre deux angles c1 et c2
Il y a d'autre méthodes mais celle-ci je peut t'assurer qu'elle fonctionne:

vr =(+/- ) sign( cos(c1)*sin(c2)-sin(c1)*cos(c2) )

(C'est juste le signe d'un produit vectoriel entre les deux vecteurs directeur)
(Il y aura peut-être à inverser le résultat suivant la direction voulu).

2 ) Aussi tu devrais essayer :

vr =(+/- )( cos(c1)*sin(c2)-sin(c1)*cos(c2) )

Cela pourrait en plus résoudre ton problème de stabilité.
Encore une fois, c'est à un signe près.

Donne moi des nouvelles de la méthode 2)


Oublie pas de convertir les angles c1 et c2 en radian. (DEGTORAD)

Bien entendu, tu peux faire:
vr *= coefficient
pour moduler la vitesse.

3) Si le problème de stabilité n'est pas règlé, ajoute:
vr=abs(vr)*vr

( Pour annuler la dérivé de la vitesse en 0)

_________________
[Résolu par arthuro] Extreme physique et la rotation Pochette[Résolu par arthuro] Extreme physique et la rotation Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2


Dernière édition par arthuro le Jeu 4 Juil 2013 - 12:36, édité 2 fois
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 12:30

J'avais demandé cette formule dans zut récemment, voilà une des réponses qu'on m'avait donnée : (merci sachem Wink)
Code:
((((angle1 - angle2) % 360) + 540) % 360) - 180
Je pense que c'est plus rapide que les sinus et tout Smile

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 12:32

Citation :

Je pense que c'est plus rapide que les sinus et tout Smile
Oui mais c'est surtout pour introduire le point 2) pour réduire l'instabilité.

Plus la différence est grande, plus la vitesse est grande.

_________________
[Résolu par arthuro] Extreme physique et la rotation Pochette[Résolu par arthuro] Extreme physique et la rotation Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 12:45

Oups! 
T'as édité après coup, donc j'avais pas vu le #2 (ou alors il y était et je suis aveugle), et je croyais que les deux formules étaient identiques... awesome 

Bon, je part de ce topic ou je suis tout le temps HS Yum!

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 13:13

Bonjour,

La trigonométrie... Si j'avais parier que c'était ça qui allais résoudre mon problème... J'ai pas mal de cours a revoir, surtout la dessus... Je ne sais même plus a quoi sert sinus, cosinus et tangente...

Et merci a toi arthuro, tout est parfais. La vitesse de rotation se met bien à 0,00 rad.
Par contre :
Code:
vr *= coef;
Le fais de nouveau trembler, donc j'ai retiré de suite. Et tout fonctionne.

Par contre, si tu pouvais me détailler au mieux ce que le calcule fais, avec des exemples pour être encore plus explicite, histoire que je ferme le forum un peu moins con que je ne l'ai ouvert. gnii 

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 14:09

Alors:

sinus(a) , cosinus(a) sont les coordonnées du point qui parcourt le cercle de centre 1 où alpha est l'angle du point.
tangente ça donne la pente ( le taux de variation y/x) sachant l'angle.


Ensuite J'ai utiliser le déterminant pour caractériser en quoi les deux direction différait.
Sachant que ce que proposait les autres marche aussi je pense.

le vecteur directeur d'angle c1 à pour coordonnées
cos(c1), sin(c1)

le vecteur directeur d'angle c2 à pour coordonnées
cos(c2), sin(c2)


le produit vectoriel donne l'aire du parallélogramme dont les deux vecteurs données sont deux "coté qui se touchent"
exemple
[Résolu par arthuro] Extreme physique et la rotation 300px-Determinant_de_vecteur_dim_2

Par contre c'est peut-être dure à comprendre, c'est une aire relative, si j'échange les deux vecteur on obtient l'opposé de l'aire précédente.

ainsi: (imaginé qu'un vecteur tourne |  /   --   \  |
._
|_|   = 1
_
/_/   = 0.57

--   = 0 ( ici les deux direction sont les mêmes et donc les vecteur sont superposé)

_
\_\   = -0.57

._
|_|   = -1

Je ne sais pas ce que donnera cette animation ascii.gnii 

Ainsi avec cette propriété on peut connaître si l'angle entre les deux vecteur est positif ou négatif.


Ensuite un point important, je sais pas si tu l'a utilisé.
C'est :
vr=abs(vr)*vr

cela permet d'introduire un point de dérivé nulle en 0. Le graph à une pente nulle en 0, alors que sinon avec vr=vr, il serait de 1
De sorte à réduire les variations lorsqu'on est très proche du but.
Ainsi, plus on est proche du but, moins on ose se décaler.

_________________
[Résolu par arthuro] Extreme physique et la rotation Pochette[Résolu par arthuro] Extreme physique et la rotation Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
Caohimin
Très bonne participation
Caohimin


Messages : 134
Localisation : Au coeur de cette charmante demoiselle.

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 14:30

Oh, bien.

Merci pour le petit cours ^^, je copie colle sur un .txt sur mon bureau pages sur Ipad, histoire de lire et relire pour qu'il finisse par entrer.

 Et le luxe en ascii lol

_________________
fleche_d Caohimin fleche_g
neutre

Communauté
Barbarre
Nauséabonde
Ahuri
Revenir en haut Aller en bas
GrandeLangue
Bonne participation
GrandeLangue


Messages : 77
Localisation : Lille
Projet Actuel : Faire des maths

[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation EmptyJeu 4 Juil 2013 - 22:18

Pour le fait que ça tremble quand tu choisis une trop grande vitesse pour vr, c'est très probablement car ton angle c1 est très proche de c2, mais que ta vitesse vr lui est supérieure. Dans ce cas-là, il faut changer vr pour qu'il soit égal à l'angle exact entre c1 et c2

Tu n'as qu'à rajouter dans ton code après le calcul de vr :

Code:
angle = diff_angle(c1, c2);
if angle <= abs(vr)
{vr = sign(vr) * angle}
où diff_angle(c1, c2) est le script qui te donne la valeur de l'angle géométrique (c'est-à-dire un angle positif) entre c1 et c2. Si c1 et c2 peuvent être négatifs et/ou dépasser 2 pi, utilise le code de sachem pour diff_angle :
Code:
((((argument0 - argument1) % (2*pi)) + (3*pi)) % (2*pi)) - pi
Sinon, si tu es sûr que tes angles c1 et c2 restent entre 0 et 2 pi (ce qui ne me semble pas être le cas d'après ta réponse à mon précédent message, vu que tu me dis que l'angle va jusqu'à 11*pi. Mais tu peux toujours obliger tes angles à rester entre 0 et 2*pi après), diff_angle doit ressembler à ça :
Code:
var diff;
diff = abs(argument0 - argument1);
if (diff <= pi)
{return diff}
else
{return 2*pi - diff}

Voilà. Tout ça pour dire que maintenant (si tout va bien)
arthuro a écrit:
Bien entendu, tu peux faire:
vr *= coefficient
pour moduler la vitesse.

_________________
Un superbe jeu de plateforme où vous pouvez contrôler le temps ici : TimeBoy

Pour maîtriser les pistons dans Minecraft : https://www.youtube.com/MindcraftMax
Project Spark est mort, vive Project Spark ! Top 25 des créations qui ont été réalisées avec ce moteur de création de jeu depuis sa sortie, avant que les serveurs n'aient été arrêtés : https://www.youtube.com/watch?v=nPenVqIcFgc
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu par arthuro] Extreme physique et la rotation Empty
MessageSujet: Re: [Résolu par arthuro] Extreme physique et la rotation   [Résolu par arthuro] Extreme physique et la rotation Empty

Revenir en haut Aller en bas
 
[Résolu par arthuro] Extreme physique et la rotation
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu][ultimate 3D]Rotation
» [Résolu] Le moteur physique...
» [Résolu] Problème avec la physique
» [Résolu]-Rotation de la vue
» Problème de rotation de sprite en 3D [résolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: