Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

Matrice de passage

Posté par
Zeddicus
09-11-08 à 01:50

Bonjour,

Existe-t'il une matrice de passage pour ces 2 équations :

x = 64*x' + (y'%2)*32
y = y'*16

C'est le modulo 2 qui m'embète ...

Je vous remercie d'avance pour votre aide.

Posté par
Zeddicus
re : Matrice de passage 09-11-08 à 14:14

Posté par
apaugam
re : Matrice de passage 09-11-08 à 14:29

la question est "illisible"
où est modulo 2 ?

Posté par
Zeddicus
re : Matrice de passage 09-11-08 à 16:52

X = 64*X' + (Y' modulo 2)*32
Y = Y'*16


Voila

Posté par
apaugam
re : Matrice de passage 09-11-08 à 17:21

et les lettres designent quoi ? des entiers ?
que signifie les * ? multiplier ?

Posté par
Zeddicus
re : Matrice de passage 09-11-08 à 17:44

En faite c'est pour une gestion de l'affichage dans un petit jeu vidéo. Pour pouvoir passer de mon tableau à 2 dimensions qui correspondent aux cases du jeux à leur affichage à l'écran.

On représente chaque case sous la forme d'un losange car pour obtenir un "simili de perspective" on va faire une rotation de notre case de 45° puis on divise par 2 la hauteur comme sur le schéma.

Ensuite avec ces "losanges" je doit fabriquer ma carte , il y a deux dispotions principales différentes , la première une carte en forme de losange et la deuxième rectangulaire, comme vous pouvez le voir sur les images.

Maintenant si je prend la carte en forme de losange si je place le (0,0) de mon tableau à deux dimensions dans le coin supérieur nord , l'axe x vers le sud-est et l'axe y vers le sud-ouest. Pour passer de mon tableau à 2 dimensions j'obtiens les equations suivantes :

PosXEcran = (xDuTableau - yDuTableau ) * largeurDuLosange/2
PosYEcran = (xDuTableau + yDuTableau ) * hauteurDuLosange/2

Si on prend des losanges avec 64 pixels de largeur et 32 pixels de hauteur ca nous donne :

PosXEcran = 32*xDuTableau -32*yDuTableau
PosYEcran = 16*xDuTableau + 16*yDuTableau

Donc la matrice de passage est :
A=[ 32, -32
    16, 16]

Ce qui me permet facilement de postionner mes "petits losanges" et quand je veux retrouver la case correspondant à la position de ma souris j'utilise la matrice inverse:

A-1=[16/1024, 32/1024,
               -16/1024, 32/1024]

Alors ça c'est pour la carte en losage , mais moi je voudrais utiliser le même principe mais pour une carte "rectangulaire" , ce qui nous donne les équations suivantes:

PosXEcran =  xDuTableau * largeurDuLosange + (yDuTableau modulo 2) * largeurDuLosange/2
PosYEcran =  yDuTableau * (hauteurDuLosange/2)

soit les equations données au début du post:

X = 64*X' + (Y' modulo 2)*32
Y = Y'*16

Es que c'est possible ? Et si oui comment faire avec ce modulo 2 ?
Il sert à savoir si on est sur ligne pair ou impair.

Voila j'espère avoir été plus clair.

Matrice de passage

Matrice de passage

Matrice de passage

Posté par
Zeddicus
re : Matrice de passage 09-11-08 à 17:50

Zut je ne trouve pas où l'on édite, c'est plein de fautes d'orthographe...

Posté par
apaugam
re : Matrice de passage 09-11-08 à 17:52

le plus simple est peut etre d'ecrire deux systemes un pour les pairs et un pour les impairs et de resoudre chacun des deux systemes en inversant chacune des deux matrices ou plus simplement avec la methode de gauss

Posté par
Zeddicus
re : Matrice de passage 09-11-08 à 17:54

Oui les * correspondent à "multiplier". J'avais pas fait attention en bas on peut mettre des symbôles oups... Alors est équivalent à *

Posté par
apaugam
re : Matrice de passage 09-11-08 à 17:54

il suffit ensuite de mettre une fct logique
cela edxiste en programation
si pair alors
else ....



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !