La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/08/2025 03:37:02


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/06/2006 11:52:59 Sujet du message :

Moi j'ai posé la question qu'estce que c'est, pas à quoi ca sert, c'est bizarre cette manie chez certaines personne de répondre à une autre question que celle posée.
Bon je vais poser une question plus précise alors: les coordonnées du vecteur correspondent à quoi EXACTEMENT?

Et quand je demandais c'était justement que non ces vecteurs ne sont pas comme ceux que j'ai vue en maths, en maths un vecteur était déterminé par 2 ensembles de coordonnées et un sens.

Merci quand même d'avoir essayer de me répondre, c'est l'intention qui compte, je ne t'en veus pas^^.
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/06/2006 12:39:43 Sujet du message :

Tu prends ton vecteur (une flêche quoi). A l'origine tu imagine un repère orthonormé. Tu prends la pointe du vecteur, tu fais des projections (à angle droit je sais plus le mot) sur chaque axe, ça te donne les coordonnées x,y,z du vecteur.

Je pense que ça revient à faire une soustraction entre les 2 ensemble de coordonnées dont tu parles (point arrivée - point origine, selon le "sens").

Dans NWN, l'origine par défaut d'un vecteur est le point (0,0,0) de la zone (soit le coin sud ouest).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/06/2006 13:51:11 Sujet du message :

Merci beaucoup Sith, maintenant Semcatala a parlé du vecteur du joueur, ce vecteur est défini par rapport à l'origine du décor ou par rapport au joueur?
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 03/06/2006 14:03:09 Sujet du message :

BenGorre> Ben en fait c'est sur que si tu n'as jamais assisté a un cours de math sur les vecteurs en 3eme , tu ne peux pas comprendre de quoi on parles.

Et on ne peut pas te refaire l'intégralité du cours sur le forum , par contre il y a des liens .....

[http]

C'est super bien expliqué et ça pourra pas mal t'aider.

Quand tu aura bien compris le sens des mots " coordonnées " , " axe des X ", etc etc etc et de l'ensemble de ces mots clé , tu saisira mieux de quoi on parles ! Very Happy

Je ne fais pas ce post pour essayer de t'embêter ou te prendre pour un imbécile , mais faut juste être réaliste .... c'est sur que si tu n'a pas un minimum de bases , on ne peut pas non plus tout t'apprendre ...... !

Et puis ouvre l'éditeur et regarde en bas a gauche en déplacant ta souris sur la zone , tu y vera les X et les Y qui changent en même temps que tu positionne ta souris sur la zone , et tu verra donc bien ou sont les cordonnées.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/06/2006 14:10:13 Sujet du message :

J'ai des bases, j'ai suivis les cours de maths de 3eme, j'avais 17 de moyenne même (1er de la classe en maths) et jai eu 18 au bachalauréat^^.
Tout ca pour te dire que si je dit que le système des vecteurs de NWN est pas tout à fait le même que celui vu en maths, je sais de quoi je parle(ou tous mes profs de Lycée et collèges étaient débiles). JE ne dis pas qu'un vecteur en lui même est une chose différente mais il n'est pas définit de la même facon (ne pas entendre définit par "qu'est ce que ca veut dire").

Voilà grace à Sith Vicious je comprend maintenant, il me reste juste la réponse à ma dernière question et je vais faire des merveilles avec les vecteurs(ca va me servir à une amélioration du NIC où on vérrait vraiment le personnage monter et descendre du cheval).
_________________
La mort n'est rien seul le fait de mourir est terrible
Henry Fielding 1745

Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/06/2006 14:49:11 Sujet du message :

Théoriquement, un vecteur c'est une direction et une longueur dans un repère, ça n'a pas une origine définie.

Dans NWN, c'est pareil. Mais c'est le moyen d'obtenir les vecteurs qui pose problème.
Le repère, c'est les coordonnées de la zone, unité le mètre (1/10 d'un carré de terrain).
Il y a une confusion possible entre vecteur et position, du fait de la fonction :
NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Elle renvoit un vecteur, qui n'est rien d'autre que l'ensemble des coordonnées de oTruc dans la zone.

Tu parles du vecteur du joueur. Tout dépend de ce qu'on entend par là. Soit ce vecteur là (GetPosition). Soit, et je pense que c'est plus ce que tu cherches, un vecteur orienté comme le joueur, en gros partant de ses pieds et allant en face de lui.

Je viens de faire ce script, je pense que ça devrait t'aider à mieux comprendre : ça crée un effet visuel à 1 mêtre devant le PC (mettre dans le onitemactivated) :
NWScript :
void main()
{
    object oItem = GetItemActivated();
    object oPC = GetItemActivator();

    vector vNorm = Vector(1.0,1.0,0.0);
    //SendMessageToPC(oPC,VectorTo String(vNorm)); //dans x0_i0_position
    float fFacing = GetFacing(oPC); //orientation du joueur
    vNorm.x*=cos(fFacing);
    vNorm.y*=sin(fFacing);
    vNorm = VectorNormalize(vNorm);
    //SendMessageToPC(oPC,VectorTo String(vNorm));

    location lNew = Location(GetArea(oPC),GetPosition(oPC)+vNorm,0.0);
   
   
    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_S);
    ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,lNew);

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Note : les angles sont définis dans le rpère à 2 dimension (x,y) à moins que j'ai raté un épisode.

J'espère que ça peut t'aider, moi les maths c'est pas mon truc (ça m'a fait mal de réviser mes cosinus et sinus pour scripter huhu Very Happy)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 12/06/2006 14:37:27 Sujet du message :

Je me suis amusé à faire une bibliothèque qui sert à manipuler les vecteurs. Elle demande qu'à s'agrandir Razz

NWScript :
//:Confused///////////////////////// ///////////////////////
//:: Name Fonctions de vecteurs                  ///
//:: Filename in_res_vecteurs                    \\\
//:: Created By: -MeteZ-                          \\\
//                                                \\\
// Si vous desirez modifier/arranger, faire part  ///
// de vos appreciations/remarques, n'hesitez pas, ///
// a me le faire savoir.                        ///
////////////////////////////// /////////////////////

/*
  VERSION : 0.1
  vec_ precedant la fonction : manipule les vecteurs
  cal_ precedant la fonction : manipule les nombres

  Contient plusieurs fonction permettant de manipuler plus simplement
  les vecteurs nwn.
  Note : Les vecteurs de nwn ont une particularite, ils sont dotes d'une
  valeur z car nous sommes dans un plan orthonorme a 3 axes.
*/


// Eleve fNb au carre
float cal_eleverAuCarre(float fNb);
float cal_eleverAuCarre(float fNb)
{
    return pow(fNb, 2.0);
}

// Renvoie le x milieu entre vecteur1 et vecteur 2
// Une valeur inferieure a 0 sort de l'"ecran" de la zone nwn
float vec_xMilieu(vector vecteur1, vector vecteur2);
float vec_xMilieu(vector vecteur1, vector vecteur2)
{
    return (vecteur1.x + vecteur2.x) / 2;
}

// Renvoie le y milieu entre vecteur1 et vecteur 2
// Une valeur inferieure a 0 sort de l'"ecran" de la zone nwn
float vec_yMilieu(vector vecteur1, vector vecteur2);
float vec_yMilieu(vector vecteur1, vector vecteur2)
{
    return (vecteur1.y + vecteur2.y) / 2;
}

// Renvoie le z milieu entre vecteur1 et vecteur 2
// Une valeur inferieure a 0 sort de l'"ecran" de la zone nwn
float vec_zMilieu(vector vecteur1, vector vecteur2);
float vec_zMilieu(vector vecteur1, vector vecteur2)
{
    return (vecteur1.z + vecteur2.z) / 2;
}

// Renvoie la distance (en therme de vecteur) entre vecteur1 et vecteur2
// Cette fonction renvoie les memes valeurs que GetDistanceBetween
// et GetDistanceBetweenLocations mais n'utilise que les vecteurs
float vec_distanceEntre(vector vecteur1, vector vecteur2);
float vec_distanceEntre(vector vecteur1, vector vecteur2)
{
    float fX = cal_eleverAuCarre(vecteur2.x - vecteur1.x);
    float fY = cal_eleverAuCarre(vecteur2.y - vecteur1.y);
    float fDistance = sqrt(fX + fY);
    return fDistance;
}

// Renvoie le vecteur AB a partir des coordonnees points A et B
// Utile pour faire une translation de vecteur AB
vector vec_vecteurAB(vector vecteurA, vector vecteurB);
vector vec_vecteurAB(vector vecteurA, vector vecteurB)
{
    float x = vecteurB.x - vecteurA.x;
    float y = vecteurB.y - vecteurA.y;
    float z = vecteurB.z - vecteurA.z;
    return Vector(x, y, z);
}

// Renvoie un vecteur ayant les coordonnes de la translation de vTranslation
// par vOrigine. Pour avoir un vecteur comme translation vous pouvez
// utilisez la fonction vec_vecteurAB
vector vec_translation(vector vOrigine, vector vTranslation);
vector vec_translation(vector vOrigine, vector vTranslation)
{
    float x = vOrigine.x + vTranslation.x;
    float y = vOrigine.y + vTranslation.y;
    float z = vOrigine.z + vTranslation .z;
    return Vector(x, y, z);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Par exemple grâce à elle les translations entre deux objets deviennent très simple.
Prenons trois objets a, b, c. On veut qu'un VFX apparaisse par la translation du vecteur ab en origine c.
Ca donne :
NWScript :

object oA = nimporte quoi;
object oB = nimporte quoi;
object oC = nimporte quoi;
vector vA = GetPositionFromLocation(GetLocation(oA));
vector vB = GetPositionFromLocation(GetLocation(oB));
vector vC = Vector(2.0, 15.0, 0.0); // par exemple
effect eVisual = EffectVisualEffect(VFX_FNF_TIME_STOP);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVisual, Location(GetArea(oPC), vec_translation(oC, vec_vecteurAB(oA, oB)), 0.0), 0.0);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

Lu en francais, la dernière ligne donne : Faire un effet visuel instantannée à la location de la translation du vecteur ab par le vecteur origine c.

Et comme je vais qu'on aime bien les schémas ici. Je vais en faire un aussi Razz
Donc on a toujours a, b et c, on nomme l'effet visuel d Smile

Citation :

-------------------------
-------------------------
---c------>d-------------
-------------------------
-------------a------>b----
Là c'est en 2D mais ca marche aussi en 3D.

Voili voilou, si vous avez des idées pour agrandir la bibliothèque, faites le savoir.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 12/06/2006 16:41:16 Sujet du message :

Heu, je voudrais pas me la ramener de trop mais :

NWScript :
// Renvoie un vecteur ayant les coordonnes de la translation de vTranslation
// par vOrigine. Pour avoir un vecteur comme translation vous pouvez
// utilisez la fonction vec_vecteurAB
vector vec_translation(vector vOrigine, vector vTranslation);
vector vec_translation(vector vOrigine, vector vTranslation)
{
float x = vOrigine.x + vTranslation.x;
float y = vOrigine.y + vTranslation.y;
float z = vOrigine.z + vTranslation .z;
return Vector(x, y, z);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Ca s'appelle :
NWScript :
vector vFinal = vOrigine+vTranslation
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

Tout simplement.

Sinon
NWScript :

vector vA = GetPositionFromLocation(GetLocation(oA));
// Tu as directement :
vector vA = GetPosition(oA);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Pour :
NWScript :
// Renvoie la distance (en therme de vecteur) entre vecteur1 et vecteur2
// Cette fonction renvoie les memes valeurs que GetDistanceBetween
// et GetDistanceBetweenLocations mais n'utilise que les vecteurs
float vec_distanceEntre(vector vecteur1, vector vecteur2);
float vec_distanceEntre(vector vecteur1, vector vecteur2)
{
float fX = cal_eleverAuCarre(vecteur2.x - vecteur1.x);
float fY = cal_eleverAuCarre(vecteur2.y - vecteur1.y);
float fDistance = sqrt(fX + fY);
return fDistance;
}


//Il y a :
float vDistance = VectorMagnitude(vecteur2-vecteur1);
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Pour les positions tout ça pour ceux qui connaissent pas il y a déjà l'incontournable "x0_i0_position" avec plein des trucs bien dedans.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 59.112ms