j'ai une petite question quel est la technique pour faire quelque chose comme ça https://intra.epitech.eu/module/2014/B-MUL-050-1/NCE-1-1/acti-165810/project/file/Exemples/fdf-1.png
demande auprès de tes AERs même si je suis d'accord avec thewarwarcar sur le fait que t'a la bistro a faire pour le moment et que le fdf c'est pas pour tout de suite
Tu peux aussi demander a ta promo c'était le but de la piscine (travaille d'équipe)
Si tu crash sous Windows c'est la faute à Windows. Si tu crash sous Linux c'est ta faute et puis c'est tout
Alors là j'hallucine complètement... Dans un autre topic, je t'ai conseillé de lire les cours et pourtant te revoilà... Donc je vais recommencé... Tout est dans le cours --'
Oula, je suis le premier "non epitech" à venir sur ce topic ?
Le titre du topic était alléchant ! Bien entendu, je n'ai absolument pas pu voir le lien, car il y a un mot de passe. Donc je ne sais pas exactement ce que tu veux faire (même si je me doute). Si tu précises, je pense que ça sent les matrices de transformation, et l'algorithme de Bresenham par la suite.
Mais on ne pourra en parler que si on en sait davantage !
Le fichier, bah c'est pas difficile, tu charges ça dans un tableau.
Moi, ton projet m'a amusé, alors j'en ai fait une petite version, par contre je ne lis pas un fichier, j'applique une fonction Z = f(x,y) que j'ai appelé GetAlt.
Et j'ai fait une fonction qui, sur une moitié de terrain, dessine un demi cercle avec une belle pente, l'autre moitié un beau sol sinusoïdale.
Marrant !
#include <sdl/sdl.h>
#include <math.h>
#ifdef WIN32
#pragma comment(lib,"sdl.lib")
#pragma comment(lib,"sdlmain.lib")
#endif
void SDL_PutPixel32(SDL_Surface *surface, int x, int y, Uint32 pixel)
{
Uint8 *p;
if (x<0 || y<0 || x>surface->w-1 || y>surface->h-1)
return;
p = (Uint8*)surface->pixels + y * surface->pitch + x * 4;
*(Uint32*)p = pixel;
}
void Line(SDL_Surface* surf,int x1,int y1, int x2,int y2,Uint32 couleur) // Bresenham
{
int x,y;
int Dx,Dy;
int xincr,yincr;
int erreur;
int i;
Dx = abs(x2-x1);
Dy = abs(y2-y1);
if(x1<x2)
xincr = 1;
else
xincr = -1;
if(y1<y2)
yincr = 1;
else
yincr = -1;
x = x1;
y = y1;
if(Dx>Dy)
{
erreur = Dx/2;
for(i=0;i<Dx;i++)
{
x += xincr;
erreur += Dy;
if(erreur>Dx)
{
erreur -= Dx;
y += yincr;
}
SDL_PutPixel32(surf,x, y,couleur);
}
}
else
{
erreur = Dy/2;
for(i=0;i<Dy;i++)
{
y += yincr;
erreur += Dx;
if(erreur>Dy)
{
erreur -= Dy;
x += xincr;
}
SDL_PutPixel32(surf,x, y,couleur);
}
}
SDL_PutPixel32(surf,x1,y1,couleur);
SDL_PutPixel32(surf,x2,y2,couleur);
}
int KeyHit()
{
SDL_Event e;
if (SDL_PollEvent(&e))
if (e.type == SDL_KEYDOWN)
return 1;
return 0;
}
void Positionne(int i,int j,int alt,int* outx,int* outy)
{
int startx,starty;
int pas = 10;
startx = 10;
starty = 300;
*outx = startx + i*pas + j*pas;
*outy = starty + i*pas/2 - j*pas/2 - alt;
}
int GetAlt(int i,int j)
{
if (i>25)
return (int)(10*cos(i*1.0/3)+10*sin(j*1.0/3));
if ((i-25)*(i-25) + (j-25)*(j-25)<380)
return 20;
return 0;
}
void Segment(SDL_Surface* screen,int imin,int jmin,int imax,int jmax)
{
int xmin,ymin,xmax,ymax;
int alt = 0;
Positionne(imin,jmin,GetAlt(imin,jmin),&xmin,&ymin);
Positionne(imax,jmax,GetAlt(imax,jmax),&xmax,&ymax);
Line(screen,xmin,ymin,xmax,ymax,0x00007700);
}
int main(int argc,char** argv)
{
SDL_Surface* screen;
int i,j;
SDL_Init(SDL_INIT_VIDEO);
screen=SDL_SetVideoMode(1000,600,32,SDL_SWSURFACE|SDL_DOUBLEBUF);
for(i=0;i<50;i++)
{
for(j=0;j<50;j++)
{
if (i!=49)
Segment(screen,i,j,i+1,j);
if (j!=49)
Segment(screen,i,j,i,j+1);
}
}
SDL_Flip(screen);
while(!KeyHit()){}
SDL_Quit();
return 0;
}
Toi l'informatique n'a pas l'air de t'amuser par contre vu tes topics.
Tu t'achètes un diplôme ? (pas mal de gens payent pour s'acheter des diplômes), tu ne vas pas t'emmerder si tu fais ta carrière dans un truc que tu n'aimes pas ?
Tu dois surement trouvé la bistro trop dur , c'est vrai elle l'est mais tu ne devrais pas la negliger pour autant. C'est vrai que faire du graphique peut paraitre plus amusant , mais fait la bistro , du moins essaye.
il me dit qu'il ne trouve pas sdl.h alors que quand je lance le rpm il me dit:
le fichier /usr/bin/sdl-config de l'installation de SDL-devel-1.2.15-1.x86_64 entre en conflit avec le fichier du paquet libSDL-devel-1.2.15-10.4.1.x86_64 le fichier /usr/include/SDL/SDL_config.h de l'installation de SDL-devel-1.2.15-1.x86_64 entre en conflit avec le fichier du paquet libSDL-devel-1.2.15-10.4.1.x86_64 le fichier /usr/include/SDL/SDL_endian.h de l'installation de SDL-devel-1.2.15-1.x86_64 entre en conflit avec le fichier du paquet libSDL-devel-1.2.15-10.4.1.x86_64 le fichier /usr/lib64/libSDLmain.a de l'installation de SDL-devel-1.2.15-1.x86_64 entre en conflit avec le fichier du paquet libSDL-devel-1.2.15-10.4.1.x86_64 le fichier /usr/lib64/pkgconfig/sdl.pc de l'installation de SDL-devel-1.2.15-1.x86_64 entre en conflit avec le fichier du paquet libSDL-devel-1.2.15-10.4.1.x86_64
La résolution de ton écran a une profondeur de pixels. Maintenant, l'écrasante majorité, les pixels font 32 bits par pixels (bpp) (4 octets par pixels). exit les modes palletisés, exit le 16 bits avec masquage de bits pour récupérer les composants, exit le mode 24 bits qui a un mauvais alignement mémoire.
Il n'y aura probablement jamais plus de bits par pixel pou l'affichage : l'oeil humain est incapable de voir des nuances intermédiaires entre les nuances fournies par le 32 bpp. Nous sommes arrivés à la limite biologique. A moins qu'on change de mode RGB, mais à mon avis, ce n'est pas demain la veille.
Donc ma fonction PutPixel, pour être compacte, ne gère que le cas 32 bpp, et je pense fortement que chez toi aussi, ça tourne en 32 bpp
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html