Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: SDL: pyöritys keskipisteen ympäri

Baglair [28.12.2006 22:21:59]

#

Syntyi tässä pieni ongelma, kun yritin pyöritellä kuvia SDL:n rotozoomilla. Kuvat pyörivät, mutta ei keskipisteen kohdalta. Kaikenmoisia sini viritelmiä kokeiltu on. Mikä neuvoksi?

Metabolix [28.12.2006 22:44:47]

#

Tällainen löytyi omien koodinpätkien seasta:

#include <SDL.h>
#include <SDL_rotozoom.h>

typedef double float_t;

// Blittaa kuvan niin, että sen keskusta on annetuissa koordinaateissa
void Blittaa(SDL_Surface * Src, float_t x, float_t y, SDL_Surface * Dest)
{
	SDL_Rect Alue = {
		(int)(x - (Src->w >> 1) + 0.5),
		(int)(y - (Src->h >> 1) + 0.5),
		Src->w, Src->h
	};
	SDL_BlitSurface(Src, 0, Dest, &Alue);
}

// Pyörittää ja kutsuu ylempää
void RotozoomBlittaa(
	SDL_Surface * Src,
	float_t x, float_t y,
	SDL_Surface * Dest,
	double Kulma, double Skaalaus, int Smooth)
{
	SDL_Surface * Temp = rotozoomSurface(Src, Kulma, Skaalaus, Smooth);
	Blittaa(Temp, x, y, Dest);
	SDL_FreeSurface(Temp);
}

Pitää siis piirtää niin, että piirtofunktiolle annetaan keskipisteen koordinaatit. Tällainen piirtofunktio siirtää kuvaa sen leveyden mukaisesti, jolloin keskipiste tulee tosiaan siihen, mihin se haluttiin.

Baglair [28.12.2006 22:54:21]

#

Isot kiitokset!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta