Accueil > Forum > > > > Triangle de vision
Triangle de vision
samedi 19 février 2005 à 00:38:57 |
Triangle de vision

goutbouyo
|
Salut,
J'ai un petit problème concernant les maths que je n'arrive pas à résoudre.
J'ai un triangle isocèle dans l'espace (en fait c'est un champ de vision) qui est horizontal(donc Y ne varie pas).
Ce triangle est attaché par le milieu de sa base à un ennemie dont je connais la position.
Comment est ce que je peux calculer les coordonnées des sommets de ce triangle en connaissant seulement l'angle de rotation de l'ennemi et sa position ???
C'est en OpenGl.
Vous avez une idée ???
|
|
samedi 19 février 2005 à 00:40:47 |
Re : Triangle de vision

goutbouyo
|
Petite rectification : Ce triangle est attaché à l'ennemie par le milieu de sa base son sommet.
|
|
samedi 19 février 2005 à 10:55:32 |
Re : Triangle de vision

erazor
|
mmm a premiere vu je dirai utilise plutot un arc de cercle qu'un triangle pour ton angle de vision cela te permettra de verifier juste si d'une part la cible est dans l'angle de vision et d'autre part si elle est a distance pour la voir
et pour cela rien de plus simple, a partir des coordonnes de ta premiere entité et de la deuxieme, il suffit de determiner la distance les separants a l'aide d'un zoli petit... pythagore (rappel: hypothenuse=racine(a²+b²))
ensuite a toi de trouver une maniere efficace pour determiner si il n'y a pas un objet assez imposant entre les deux entites pour les cachés l'une de l'autre...
|
|
samedi 19 février 2005 à 15:21:41 |
Re : Triangle de vision

luhtor
|
Un conseil, oubli les triangles isocèles, mais considère les vecteurs
normaux aux deux cotés de ton triangle isocèle (les deux cotés de meme
longueur), puis tu fais tourner ces vecteurs en fonction de l'angle de
rotation de la personne. Si alpha est l'angle de rotation et beta le
champ de vision. Si tu connais les matrices ou les lois de
transformation pour les rotations, tu appliques à un vecteur la
rotation alpha - beta/2 et l'autre alpha + beta/2.
La suite, pour savoir si quelque chose se trouve dans le champ de vision, deux produits scalaires font l'affaire.
++
|
|
samedi 19 février 2005 à 18:55:23 |
Re : Triangle de vision

goutbouyo
|
A Erazor : ok pour Pythagore, ça me donne une distance mais si je suis derrière l'ennemie il doit pas me voir aussi bien que si j'étais devant lui.
Donc comment je vérifie si je suis dans le champ de vision de l'ennemie.
A Luthor : ta méthode à l'air efficace mais un peu trop compliquée pour moi ...
|
|
samedi 19 février 2005 à 22:17:34 |
Re : Triangle de vision

luhtor
|
Je te donne rapidement l'allure :)
La position du gas, on l'appelle M de coordonnées (x,y).
Le vecteur normal à la première face n1(x1,y1)
puis le deuxième (x2,y2).
On considère maintenant un objet P de coordonnées (a,b).
Le vecteur MP (du gas au point) c'est MP = (a-x , b-y)
Jusque la, ca va ? :)
Et bien l'objet est visible si et seulement si, le produit scalaire de MP par n1 et n2 est positif, c'est à dire :
if (
( (a-x)*x1 + (b-y)*y1 >= 0)
&&
( (a-x)*x2 + (b-y)*y2 >= 0)
)
alors l'objet est visible.
Voila comment gérer efficacement et
relativement simplement quand meme :), la champ de vision, sans calcul
de racine carré ou autre qui ralentisse le pc.
Si tu veux savoir comment définir les vecteurs n1 et n2, je peux détailler, si tu veux.
|
|
samedi 19 février 2005 à 22:36:19 |
Re : Triangle de vision

goutbouyo
|
Ok merci pour ton explication. Mais si le sommet du triangle est sur M alors P est visible seulement si les produits scalaires sont négatifs, non ??? 
|
|
samedi 19 février 2005 à 23:44:31 |
Re : Triangle de vision

luhtor
|
Le sommet du triangle dans mon explication c'est le point M, le sommet est ici sur le personnage.
Le fait que ce soit négatif ou positif, si tu changes la direction des
vecteurs en leur opposés, oui les test devront etre négatif. Mais moi
les vecteurs normal n1 et n2 je considère qu'ils pointent vers l'autre
coté du triangle.
Imagine tu es le point M (le sommet du triangle) face a toi, à droite:
un coté du triangle, un vecteur normal qui part du coté vers la gauche.
Le produit scalaire permet de séparer le plan est deux.
Le deuxième produit scalaire partant du coté gauche vers la droite, découpe également le plan en deux parties.
Le plan est donc séparé en 4 parties, la partie qui nous intéresse
c'est celle du milieu devant le point M, donc la positivité des 2
produits scalaires. J'espère avoir été clair :)
|
|
dimanche 20 février 2005 à 12:16:28 |
Re : Triangle de vision

erazor
|
pour ce qui est de ma méthode il te suffit de verifier si angle 1 champ de vision<angle visee autre entitee<angle 2 champ de vision
et s'il est pas compris dedans ba la c sur qu'il peut pas le voir c meme a mon avis le premier test a faire
pour ce qui est de l'explication de luthor, desolé mais mes connaissances en maths étant un peu faibles (quoi? qui a dit que j'ai passé u bac S SI?) je suis desolé mais je ne peux pas aider :-)
|
|
dimanche 20 février 2005 à 13:26:05 |
Re : Triangle de vision

luhtor
|
Erazor, en fait, ca dépend si on veut que ce soit rapide. Ta méthode va
demander les fonctions arcsinus, arccosinus, et arctangente. :), voila
le problème. Enfin c'est pas vraiment pas un problème, mais on peut
faire beaucoup plus rapide et plus élégant je pense :) Note également,
qu'avec ces fonctions on va etre "emmerdé" par les problèmes de
définitions :)
Exemple:
arctan(90°) c'est l'infini, donc il va apparaitre des bugs, ou alors,
ca va demander beaucoup de précaution, de cas particulier, bref, vous
imaginez :) Alors vous allez me dire, bas on utilise arccos et arcsin,
qui sont plus sympa. Ben oue, mais va falloir faire le rapport, et la
division par zero est pas loin :)
voila :)
|
|
Cette discussion est classée dans : position, triangle, vision
Répondre à ce message
Sujets en rapport avec ce message
Récupérer la couleur d'un pixel à la position x,y de l'écran [ par atao ]
quelqu' un sait il comment peut on récupérer la couleur d'un pixel à la position x,y de l'écranmerciatao.
(vc++) menu popup [ par madVinz ]
$@lµT, je cherche un faire un menu ki saffiche a la position du curseur, mé sans fenetre, qd on lance le prog, le menu saffiche direct la ou é le curs
chercher la position d'un caractere [ par Johjo ]
Bon, je cherche à obtenir la position d'une chaine de caractere dans une autre chaine de caractere.Mais les seuls fonctions que j'ai trouvé me renvoye
Recuperer des données dans une char [ par Johjo ]
JE voudrais savoir si il y a une fonction pour recuperer des données dans une chaine de caractere. Par exemple, j'ai "voiture", je voudrais recuperer
position d'un control [ par Xs ]
salut !!comment on peut récuperer la position X,Y d'un objet et sa taille (longueur, largeur);j'entend en fait par objet, un bouton.merci
Connaitre la position du curseur!!! [ par tormoj ]
Salut tout le monde,je voudrais savoir comment on fait pour connaitre la position du curseur dans une EditBox?Et enfin comment on fait pour griser tou
Position de la souris. [ par Colombus ]
Bonjour, Dans un projet MFC j'ouvre un bitmap; Je voudrais par la suite, "uniquement" après clic sur un bouton pouvoir avec la souris cliquer sur un p
Need advice [ par hotnicks ]
Bonjour,je suis en train d'écrire un jeu de plateau, dans lequel les 'pions' sont appelés pièces. Je veux être capable de lister tous les coups légaux
Position du curseur [ par CyberP ]
En mode console (MS-DOS), comment changer la position du curseur sur l'écran pour pouvoir écrire à un endroit précis ?Dans un autre compilateur, la fo
triangles et OPENGL [ par kapotman ]
Bonjour a tousje cherche un source en c ou C++ pour visualiser un triangle dans une fenetre avec translation , rotation et changement d'echelle sans u
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|