Calculer les coordonnées d'un pixel après une rotation de l'image
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Calculer les coordonnées d'un pixel après une rotation de l'image



  1. #1
    TheRedColossus

    Calculer les coordonnées d'un pixel après une rotation de l'image


    ------

    Bonjour,

    Je suis actuellement en train de développer un jeu en Java et je commence à m'occuper des hitbox. J'aimerais conaître les coordonnées des pixels d'une image après avoir fait une rotation.

    Voici les coordonnées d'un pixel dans l'image (l'origine est en haut à gauche de l'image) :
    px ds img.png

    Voici les coordonnées de l'image dans l'écran (l'origine est en haut à gauche de lécran) :
    img ds ecran.png

    Je vais effectuer une rotation :
    rotation0.png

    La rotation est effectué et le pixel a bougé :
    rotation1.png

    J'aimerais connaître les valeurs newPxX et newPxY en utilisant pxX, pxY, width, height, imgX, imgY et â.
    Les coordonnées (imgX ; imgY) et (newPxX ; newPxY) sont calculées par rapport à l'origine de l'écran.
    Les coordonnées (pxX ; pxY) sont calculées par rapport à l'origine de l'image.

    Merci à ceux qui pourront me répondre.

    -----

  2. #2
    mécano41

    Re : Calculer les coordonnées d'un pixel après une rotation de l'image

    Bonjour,

    Si j'ai compris :

    newpxX = imgX + pxX.cos(a) - pxY.sin(a)
    newpxY = imgY + pxX.sin(a) + pxY.cos(a)

    avec a positif dans le sens Ox vers OY du repère principal

    Cordialement

  3. #3
    TheRedColossus

    Re : Calculer les coordonnées d'un pixel après une rotation de l'image

    Tout d'abord, merci.

    Ça fonctionne presque, les pixels s'affichent au bon endroit mais avec un décalage qui est le même pour tous les pixels de l'image. Plus l'image est grande plus le décalage est grand.
    Seulement, je ne sais pas si c'est une erreur de programmation ou de mathématiques.
    Peux-tu m'expliquer les calculs car en les comprenant je pourrais peut-être résoudre le problème.

  4. #4
    mécano41

    Re : Calculer les coordonnées d'un pixel après une rotation de l'image

    Bonsoir,

    Dans ce que j'avais compris, il s'agissait de faire tourner l'image, donc n'importe quel pixel de l'image, comme dans l'appli. EXCEL jointe en faisant bouger le curseur...

    Si c'est autre chose, explique-le, je verrai ce que je peux faire

    Cordialement
    Fichiers attachés Fichiers attachés

  5. A voir en vidéo sur Futura
  6. #5
    Paraboloide_Hyperbolique

    Re : Calculer les coordonnées d'un pixel après une rotation de l'image

    Bonsoir,

    Citation Envoyé par TheRedColossus Voir le message
    Tout d'abord, merci.

    Ça fonctionne presque, les pixels s'affichent au bon endroit mais avec un décalage qui est le même pour tous les pixels de l'image. Plus l'image est grande plus le décalage est grand.
    Seulement, je ne sais pas si c'est une erreur de programmation ou de mathématiques.
    Peux-tu m'expliquer les calculs car en les comprenant je pourrais peut-être résoudre le problème.
    Je soupçonne que cela pourrait-être un problème d'aliasing: vous devez échantillonner les pixels de l'image ayant subie une rotation sur une grille (qui, elle, n'a pas subit de rotation).

    Voici un cours qui traite du problème (pages 36 et suivantes): http://www.cgeo.ulg.ac.be/infographi...graphie_02.pdf

  7. #6
    TheRedColossus

    Re : Calculer les coordonnées d'un pixel après une rotation de l'image

    Ok c'est bon j'ai résolu le problème.

    Ce qui se passait, c'est que la rotation s'effectuait autour de l'origine de l'image et pas en son centre. J'ai donc rajouté ceci avant d'effectuer les calculs :

    pxX = pxX + width/2
    pxY = pxY + height/2

    Après cette rectification, l'angle tournait normalement mais il y avait un décalage que j'ai corrigé en rajoutant ceci :

    newPxX = imgX + width/2 + pxX.cos(a) - pxY.sin(a)
    newPxY = imgY + height/2 + pxX.sin(a) + pxY.cos(a)

    Je te remercie de m'avoir aidé mécano41.
    Quand à Paraboloide_Hyperbolique merci quand même de ta participation .

Discussions similaires

  1. Lecture d'une image pixel par pixel en C
    Par invite1f0ed006 dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 29/11/2012, 17h56
  2. Passage de coordonnées cartésiennes d'un écran en pixel en coordonnées GPS
    Par invite941c057e dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 03/09/2010, 21h16
  3. Traitement d'image au delà du pixel: intox ou réalité?
    Par philovent dans le forum Technologies
    Réponses: 24
    Dernier message: 26/06/2010, 09h18
  4. vecteur rotation (coordonnées.)
    Par invite3efbab03 dans le forum Physique
    Réponses: 7
    Dernier message: 25/04/2010, 15h04
  5. Choix d'un centre de rotation en coordonnées polaires
    Par citron_21 dans le forum Physique
    Réponses: 13
    Dernier message: 26/07/2008, 14h41