begin process at 2010 09 03 22:15:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI

ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Classé sous :Rotation, Angle, PlgBlt Niveau :Débutant Date de création :25/02/2008 Date de mise à jour :25/02/2008 14:19:33 Vu / téléchargé :5 040 / 477

Auteur : cirec

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Exemple simple de rotation de bitmap en pur GDI

Ceci est possible grâce à l'utilisation de la fonction PlgBlt

Le code est assez simple et commenté ... juste ce qu'il faut ;-)



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 février 2008 14:19:33 :
Ajout de capture d'écran

 Sources du même auteur

Source avec Zip Source avec une capture BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, T...
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API VERSIO...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API
Source avec Zip Source avec une capture EFFETS ZOOM & MIROIR SUR BITMAP

 Sources de la même categorie

Source avec Zip Source avec une capture AUSSI PRATIQUE QUE CANVAS.PIXELS[ ] MAIS JUSQU'À 450 FOIS PL... par Caribensila
Source avec Zip Source avec une capture REMPLISSAGE D'UNE COURBE DE BÉZIER par barbichette
Source avec Zip Source avec une capture DESKTOPICONFLYING par cantador
Source avec Zip Source avec une capture DÉFILEMENT D'UN TEXTE SOUS FORME D'IMAGE SUR UN AFFICHEUR À ... par zwail1
Source avec Zip Source avec une capture CONVERSION PIXEL, MM, INCH, TWIPS, POINT... par yanb

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PLGBLT ET LA ROTATION DE BITMAPS par Bacterius
Source avec Zip Source avec une capture EFFETS ZOOM & MIROIR SUR BITMAP par cirec
Source avec Zip MOTEUR POUR JEU DE CUBES. par Caribensila
Source avec Zip Source avec une capture GLTICKTICK (GLSCENE) ET TICKTICK, DEUX HORLOGE A AIGUILLES (... par f0xi

Commentaires et avis

Commentaire de Caribensila le 25/02/2008 15:13:07

Salut,

J'aurais bien aimé disposer de ce source quand je faisais mon "cube tournant".
Ca m'aurait évité d'utiliser le l'asm sans rien y connaître. :)

Bravo Cirec!

Commentaire de Caribensila le 25/02/2008 16:16:31

Oué!
Et puis 'faudrait que ça tourne selon les 3 axes avec un verso pour simuler une feuille de platane virevoltant dans le vent d'automne...
Merci Cirec.  

lol

Commentaire de cirec le 25/02/2008 17:52:49 administrateur CS

ha ha ha ...

prenez un ticket ... et faites la queue ... lolll

Plus sérieusement,

pour mettre tout ça dans une fonction ... c'est pas un problème
pour choisir le centre de rotation ... c'est pas un problème
pour une rotation sur 3 axes ... c'est pas un problème (si Francky passe par ici il pourra le confirmer) j'avais fait il y a déjà longtemps de cela un cube avec 6 faces différentes qui tournait sur 3 axes.

par contre en ce qui concerne l'anti-aliasing je ne me suis jamais penché sur le problème

Je me suis efforcé à faire une source aussi simple que possible (à la portée de tous) et vous me demandez juste l'inverse ^^

Merci pour vos appréciations.

Commentaire de DRJEROME le 26/02/2008 14:49:04

Bonjour

oui dans les fonctions GDI

il y a

"PlgBlt" et aussi "SetWorldTransform"


il y a un exemple que j'ai fait, si vous voulez le voir en tapant "JROD SetWorldTransform" sur google

A+

drjerome JROD

Commentaire de Debiars le 04/03/2008 14:16:47

Salut Cirec,
Moi, j'aimerai bien récupérer dans un fichier le bitmap dans sa nouvelle position... Tel quel, je ne récupère qu l'image d'origine.

Même réfexion à drjerome qui en plus me rogne des parties d'image.

Cela me servirait bien pour redresser de quelques degrés des images scannées de traviole.

Pour la vitesse d'exécution, y a rien à dire, c'est --->

jp ofBiars

Commentaire de cirec le 04/03/2008 14:28:26 administrateur CS

@Debiars:

je ne suis pas certain d'avoir bien compris ta demande.

Tu aimerais pouvoir enregistrer l'image dans une position (après rotation)

Dans ce cas :
Il faut savoir que peut importe l'angle de rotation

PntArray[0]  <----- représente le coin supérieur gauche de l'image
PntArray[1]  <------ représente le coin supérieur droit de l'image
PntArray[2] <------ représente le coin inférieur gauche de l'image

le coin inférieur droit est calculé automatiquement par PlgBlt


Donc en créant un Bitmap et en lui donnant des dimmensions suffisante (pour ne pas tronquer l'image) tu peux afficher/enregistrer le résultat avec :

PlgBlt(BMPDest.Canvas.Handle, PntArray, BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height, 0, 0, 0);

Commentaire de informatixo le 13/11/2008 22:48:13

Merci beaucoup pour cette source qui est bien commentée et bien codée.

Je me tente à mettre une note car je vois que personne ne l'a encore fais. Je te mets 9 / 10 pour ne pas mettre 10 / 10.

J'apprécie particulièrement la clarté du code et la vitesse d'exécution de la rotation. Je ne connaissais pas PlgBlt mais je l'a place dans un coin de ma tête.

Merci et bonne continuation à tous.

Commentaire de codures le 12/09/2009 00:07:41

Salut Cirec,

Je te propose un petit test pour mieux comprendre la rapidité de cette fonction (PlgBlt).
Au lieu de charger un cube orné des nouilles, ou autres images de taille inferieure à 512x512, charge donc une photo faite avec un appareil photo numérique (disons une photo.bmp de 3500x2500 en pf24bit) et essaye de la tourner légèrement . Je te mets 10/10 pour la documentation et pour le code .

PS : N'essaye pas le Ctrl+Alt+Suppr, ça ne marche pas dans ces cas là.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

rotation quelle est la formule pour une rotation? [ par zibong ] Bonjourjaimerai conetre le formule qui me permetrait de conaitre les coordoné d'un point apré sa rotation lancer une balle [ par ptifranfran ] Je suis en train de r&#233;aliser un petit jeu o&#249; un joueur doit lancer une balle. Il doit entrer l'angle de tir et la vitess. J'aimerai que cett Rotation d'une image [ par petitripol ] Bonjour tout le monde!&nbsp;&nbsp;&nbsp;Ca fait 1 heure que je cherche un peu partout pour savoir comment on pourrait faire pour faire tourer une imag Calcul d'un angle [ par akhria ] Salut, je cherche &#224; calculer l'angle d'un vecteur vitesse &#224; partir de la norme de cette vitesse et de ces coordonn&#233;es...mais ArcTan et Utiliser CANVAS.arc à partir d 'un centre de cercle, rayon et angle de départ et d'arriver [ par snipersolo ] Bonjour a tous!J'en fais appel a vous apr&#232;s presque 5h de recherche.Toujours ces probl&#232;mes avec la fonction CANVAS.arc...Je cherche &#224; e Rotation [ par potate ] Donc voil&#224;, &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; je suis en train de cr&#233;er un jeu et celui-ci comporte pour l'instant un objet qui se d&#233;pla probleme arctan [ par Enos ] Enosbonjours,J'ai un probleme de calcul d' angle. Si je prend la formule suivante :angle=arctan[(sommet1-sommet2)/(hauteur*2) , le resultat est correc faire tourner un composant image sur 360° [ par mighty_warrior ] Bonjours,Je suis débutant et je cherche à savoir comment entrainer un composant Timage en rotation sur 360° dont le centre de rotation peut être chois Rotation d'une image par rapport a l'origine [ par hasen ] Bonjour a tous!Pour un projet, je suis en train de coder une fonction permettant la rotation d'une image (tres basique, définie par quelques point seu Shape Rotation ??? [ par MiniProgramer ] Salut j ai essayée cet tutoriel de faire une Rotation de ma Bitmap mais sa ne marche pas bienL'angle reste toujours 0 Gard !!!Source ici


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,248 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales