Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
rotar x grados un TBitmap

hola amigos, estoy intentando hacer un pequeño juego que muestre la hora analogica y pida que la metas en digital y si está bien o mal suene un sonido u otro y una señal visual. Lo tengo encarrilado pero con 12 minuteros cada uno girado en el bmp para cada hora y otros 12 horeros. La duda es que me gustaria saber como hacer lo mismo pero en vez de tener 12 y 12 imagenes solo tener 1 y 1 y rotar la imagen los grados necesarios . La imagen la cargo en un TBitmap y no se como rotarla ¿Me pueden ayudar?
Responder Con Cita
  #2  
Antiguo 20-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aguml.

Código PHP:
#include <math>

void RotateBMP(Graphics::TBitmap *bmpfloat radsbool adjSizeTColor bkColor clNone) {
  
float C,S;
  
Graphics::TBitmap *tmp = new Graphics::TBitmap;
  
int ofsXofsY;
  
TPoint pts[2];

  
cos(rads);
  
sin(rads);
  
tmp->TransparentColor     bmp->TransparentColor;
  
tmp->TransparentMode      bmp->TransparentMode;
  
tmp->Canvas->Brush->Color bkColor;

  if(
adjSize) {
    
tmp->Width  = (int)bmp->Width abs(C) + bmp->Height abs(S);
    
tmp->Height = (int)bmp->Width abs(S) + bmp->Height abs(C);
    
ofsX        = (tmp->Width bmp->Width bmp->Height S) / 2.0;
    
ofsY        = (tmp->Height bmp->Width bmp->Height C) / 2.0;
  } else {
    
tmp->Width  bmp->Width;
    
tmp->Height bmp->Height;
    
ofsX        = (bmp->Width bmp->Width bmp->Height S) / 2.0;
    
ofsY        = (bmp->Height bmp->Width bmp->Height C) / 2.0;
  }
  
pts[0].floor(ofsX);
  
pts[0].floor(ofsY);
  
pts[1].floor(ofsX bmp->Width C);
  
pts[1].floor(ofsY bmp->Width S);
  
pts[2].floor(ofsX bmp->Height S);
  
pts[2].floor(ofsY bmp->Height C);
  
PlgBlt(tmp->Canvas->Handleptsbmp->Canvas->Handle00,
    
bmp->Widthbmp->Height000);

  
bmp->Assign(tmp);
  
delete tmp;

Ejemplo de uso:
Código PHP:
void __fastcall TForm1::btnRotateClick(TObject *Sender)
{
  
Graphics::TBitmap *bmp = new Graphics::TBitmap;
  
bmp->Assign(Image1->Picture->Bitmap);
  
RotateBMP(bmp0.5false);
  
Image2->Picture->Bitmap->Assign(bmp);
  
delete bmp;

Salida:



Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-03-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
mil gracias amigo!!! Mañana lo pruebo que acabo de llegar a casa y he pillado un catarron...
Responder Con Cita
  #4  
Antiguo 21-03-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Gracias amigo, me vino genial y lo hice de las dos maneras, tirando de imagenes rotadas y con la funcion que me pusiste.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Radianes a Grados torito Varios 4 05-05-2010 01:48:46
Linea a 45 grados en FastReport hmoner Impresión 0 07-06-2008 16:03:06
Como rotar una imagen en delphi x grados SIN DEFORMARLA? djmetroid Gráficos 14 27-05-2008 07:07:21
triangulo de 45 grados pattyka Gráficos 8 20-07-2006 15:58:51
Como rotar x grados un bitmap ( o grafico en general ) manoley23 Gráficos 2 28-07-2003 17:23:38


La franja horaria es GMT +2. Ahora son las 20:04:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi