Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como inclinar un rectangulo en c++ - POO

Estas en el tema de Como inclinar un rectangulo en c++ - POO en el foro de C/C++ en Foros del Web. Hola a todos ,bueno necesecito de su ayuda, pues nose como inclinar una figura o imagen en C++ y programando en Visual studio 2008. Por ...
  #1 (permalink)  
Antiguo 19/11/2011, 15:49
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Pregunta Como inclinar un rectangulo en c++ - POO

Hola a todos ,bueno necesecito de su ayuda, pues nose como inclinar una figura o imagen en C++ y programando en Visual studio 2008.

Por ejemplo esto es lo que se y coloco en el form y me resulta un rectangulo con posicion (0,0) .


Código:
	Graphics ^g = this->CreateGraphics();
                int gWidth = (int)g->VisibleClipBounds.Width;
                int gHeight = (int)g->VisibleClipBounds.Height;

                BufferedGraphicsContext ^espacioBuffer = BufferedGraphicsManager::Current;
                espacioBuffer->MaximumBuffer = System::Drawing::Size( gWidth + 1, gHeight + 1 );
                BufferedGraphics ^buffer = espacioBuffer->Allocate( g, Drawing::Rectangle(0, 0, gWidth, gHeight));
		
		buffer->Graphics->DrawRectangle(Brushes:Red,0,0,100,100);
		
		buffer->Render(g);
                delete buffer;
                delete espacioBuffer;
                delete g;
Ahora el problema esta en como hago para que lo anterior se pueda inclinar ,revise en internet que se puede hacer con transformacion lineal pero nose como implemenetarlo.

Bueno saludos a todos y gracias.
  #2 (permalink)  
Antiguo 20/11/2011, 17:39
Avatar de sbcl  
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Como inclinar un rectangulo en c++ - POO

A que te referís con inclinar? Rotar sobre un eje? hacer Shearing? (Si no sabes lo que es shearing, busca el término en internet, no se como pasarlo al español).
No entiendo a que te referís con inclinar.
Si es inclinar, creo que puedo darte una solucion temporal.
Saludo
  #3 (permalink)  
Antiguo 21/11/2011, 14:58
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: Como inclinar un rectangulo en c++ - POO

Bueno si tienes razon, la palabra correcta seria rotar.
  #4 (permalink)  
Antiguo 21/11/2011, 20:45
Avatar de sbcl  
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Como inclinar un rectangulo en c++ - POO

Bueno, mi conocimiento es algo limitado, si algo no se entiende, o si alguien ve una mejor

manera de hacerlo por favor comente n.n

Lo primero que necesitaría es tener la los puntos de la figura geométrica.

Creo una clase para eso:

Código c:
Ver original
  1. Class point {
  2.    int x,y;
  3.    }
  4.  
  5. Class geo {
  6.    point ** points;
  7.    int point_count;
  8.    };

Vos después hacele los métodos para meter puntos, sobrecargar el =, Etc.
Basicamente,tenes una clase que representa una figura geométrica, y una clase que

representa un punto(compuesta por un X y un Y).

para rotarlo, tendrías que hacer algo asi:

Código c:
Ver original
  1. void rotate(geo * g,int degrees)
  2. {
  3.    int x;
  4.    point * replace_point = new point;
  5.    for (x = 0;x < g->point_count;x++){
  6.     replace_point->x = g->points[x].x * cos(degrees) + g->points[x].y * sin(degrees)
  7.     replace_point->y = g->points[x].x * (sin(degrees) * -1) + g->points[x].y * cos(degrees)
  8.     g->points[x] = *replace_point;
  9.     }  
  10. }

Esto Reemplazaría los puntos de la figura, por los puntos ya rotados.

Probalo y decime si funciona, por que guardo mis dudas, hace rato no hago esto.
Ojala funcione, y si no avisame, y trato de arreglarlo.

Abrazo!

Etiquetas: c++, inclinar, rectangulo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:32.