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 05-05-2008
pulpin pulpin is offline
Miembro
 
Registrado: feb 2008
Ubicación: medellin,colombia
Posts: 53
Poder: 17
pulpin Va por buen camino
rotar imagen en c++ builder

bueno amigos llego a ustedes con esta pequeña duda, como puedo rotar una imagen en un angulo x, me gustaria encontrar una forma facil y practica, pero recibo cualquier ayuda, ademas si conocen algun componente que me ayude en esto se los agradeceria, las ayudas que he encontrado en el foro solo han sido para el delphi, por esto les pido ayuda. de antemano gracias.
Responder Con Cita
  #2  
Antiguo 05-05-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Revisa el truco 455 aunque está en delphi, puedes traducirlo a C o compilarlo tal cual. Recuerda que Builder compila código delphi.

Saludos.
Responder Con Cita
  #3  
Antiguo 05-05-2008
pulpin pulpin is offline
Miembro
 
Registrado: feb 2008
Ubicación: medellin,colombia
Posts: 53
Poder: 17
pulpin Va por buen camino
te agradeceria mucho si me indicas como puedo hacer que el builder compile el codigo ya queme salen algunos (muchos) erroes, o si te queda tiempo y no es mucha molestia, traducirme las partes mas complicadas.gracias de nuevo.
Responder Con Cita
  #4  
Antiguo 05-05-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Guarda el código delphi en un archivo exclusivo para él. Nombralo como quieras por ejemplo MODULO.PAS

Incluyelo en el proyecto como harías con otro módulo escrito en C.

Incluye el archivo cabecera MODULO.HPP donde tengas que usar esas funciones escritas en delphi. Ese archivo cabecera lo va a crear Builder automáticamente cuando compiles es código delphi.

Saludos.
Responder Con Cita
  #5  
Antiguo 05-05-2008
pulpin pulpin is offline
Miembro
 
Registrado: feb 2008
Ubicación: medellin,colombia
Posts: 53
Poder: 17
pulpin Va por buen camino
dime donde estoy errado:

copio el codigo en el notepad y lo guardo como .pas
luego abro el c++ builder, y abro el archivo .pas, pero no me permite compilar el archivo.

lo otro que intento es:

guardo el archivo como .pas en el notepad, luego adiciono el archivo .pas a mi proyecto, luego le doy copilar y me salen varios errores. los cuales tendre que estudiar para resolver.

gracias, espero tu opinion
Responder Con Cita
  #6  
Antiguo 05-05-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Claro, Si simplemente has copiado el código, te faltan algunas cosas.
Debes definir una unidad completa con sus cabeceras...

Prueba a compilar este código tal cual, pero guardado en un archivo llamado Rotar.pas. Lo añades a tu proyecto....

Código Delphi [-]
unit Rotar;

//----------------------------------------------------------------------------------------
interface  

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;  

function Rotate(Canvas: TCanvas; Width, Height, iAngle: Integer; Back: LongBool): TBitmap;



//----------------------------------------------------------------------------------------
implementation  

function Rotate(Canvas: TCanvas; Width, Height, iAngle: Integer; Back: LongBool): TBitmap;
var
 Points: array [0..2] of TPoint;
 Radio, Angle, _Angle: Real;
begin
 Points[0] := Point(-Width, Height);
 Points[1] := Point(Width, Height);
 Points[2] := Point(-Width, -Height);
// Points[3] := Point(Width, -Height);
 Radio := Sqrt(Sqr(Width / 2) + Sqr(Height / 2));
 _Angle := (360 - (iAngle mod 360)) * pi / 180;
 iAngle := 3;
 repeat Dec(iAngle);
  Angle := ArcTan(Points[iAngle].Y / Points[iAngle].X) + _Angle;
  if Points[iAngle].X < 0 then
   Angle := Angle + Pi;
  Points[iAngle] := Point(Round((Cos(Angle) * Radio) + Radio), Round(Radio - (Sin(Angle) * Radio)));
 until not LongBool(iAngle);

 Result := TBitmap.Create;
 Result.TransparentColor := clFuchsia;
 Result.Canvas.Brush.Color := clFuchsia;
 iAngle := Round(Radio * 2);
 Result.Height := iAngle;
 Result.Width := iAngle;
 plgblt(Result.Canvas.Handle, Points, Canvas.Handle, 0, 0, Width, Height, 0, 0, 0);
 if Back then Result.Canvas.CopyRect(Rect(0, 0, iAngle, iAngle), Result.Canvas, Rect(iAngle-1, 0, 0, iAngle));
end;

end.
De esta forma seguro que compila
Saludos.



EDITO:

Tambien te compliará si en la linea uses colocas sólamente:
Código Delphi [-]
uses
  Windows, SysUtils, Classes, Graphics;

Última edición por escafandra fecha: 05-05-2008 a las 21:10:10.
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
Como rotar una imagen en delphi x grados SIN DEFORMARLA? djmetroid Gráficos 14 27-05-2008 07:07:21
Rotar Imagen Rako Gráficos 5 23-11-2007 12:51:14
Rotar imagen jpg ElDioni Gráficos 6 09-11-2007 11:05:50
rotar una imagen sin parar jarscuba Gráficos 4 14-03-2005 09:51:31
Rotar una imagen zuriel_zrf Gráficos 2 29-12-2003 19:37:53


La franja horaria es GMT +2. Ahora son las 22:18:50.


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