CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Petit concours de programmation

Lapintade
Lapintade
Niveau 30
15 janvier 2005 à 17:50:49

Voici des petits degradés en cercle trés colorés :

http://walljv.free.fr/index.php?to=view&id=63

ShellShock
ShellShock
Niveau 9
15 janvier 2005 à 20:39:16

dnob700 -> Voila ta fonction ComputeImage fait avec une boucle while à la place d´un for, sans break et sans rajouter de variable.

void ComputeImage()
{
double zr,zi,cr,ci,zrt;
int X,Y,I;
for ( Y=0,X=0;Y<IMAGE_Y;X++,X==IMAGE_X?Y++,X=0:0)
{

cr=zr=-.77+X*(.005)/IMAGE_X;ci=zi=-0.106+Y*(.003
)/IMAGE_Y;

I = 0;
while((zr*zr+zi*zi)<4 && I<255)
{
zrt=zr;
zr=zr*zr-zi*zi+cr;
zi=2*zrt*zi+ci;

I++;
}
if ( (zr*zr+zi*zi)>4)
{
PutPixel(X,Y,0,0,I<<4,0);
}
}
}

ShellShock
ShellShock
Niveau 9
15 janvier 2005 à 20:43:00

Voila un lien avec le meme code mais un peu plus lisible :)

http://walljv.free.fr/index.php?to=view&id=64

Lapintade
Lapintade
Niveau 30
15 janvier 2005 à 23:04:13

Perso, je comprends pas la notation avec ? dans la ligne for.
Ca rends la ligne assez indigeste. Je prefere le bon break quand meme, c´est bien plus comprehensible.

ShellShock
ShellShock
Niveau 9
15 janvier 2005 à 23:48:23

La notation avec le ? je l´ai repris du prog de Dnob700, je me suis contenté d´enlever le break.
Sinon moi aussi j´aurait pas mis le ? dans la figne for.

dnob700
dnob700
Niveau 10
16 janvier 2005 à 00:24:34

oui, mais c´est plus long.

le ? : dans la boucle for, c´était une astuce que j´avais envie de tester pour imbriquer deux boucle for en une seule.

à l´origine j´avais un
for ( Y=0;...
for ( X=0;...

mais j´ai exactement le même résultat avec cette structure absolument illisible! en une seule boucle.

ne vous inqiétez pas, mes vrais programmes sont écrit bien plus proprement.

par contre je suis vraiment impressionné par le prog de ton ami Lapintade. Même fractint ne zoom pas aussi profondément sur l´ensemble de mandelbrot, alors à cette vitesse ( même si le zoom continu donne une impression de vitesse un peu fictive, c´est quand même énorme).

A ce propos je me posais une question : vsd utilise nativement des double de 64 bit alors que les double " normaux" sont de 80 bits, existe-t-il des librarie simple pour les utiliser ? et surtout comment exploiter le coprocesseur arithmétique de 128 bits de mon P4 ( je suppose qu´on doit pouvoir avoir des double de 128 bits alors) ?

jejej
jejej
Niveau 9
16 janvier 2005 à 00:36:54

WOW c magnifique :)

Par contre , je ne savais pas qu´on pouvait dessiner sans utiliser directx ou sdl . ..
bon j´ai pas encore lu le code source , j´ai juste compilé , mais créer une image comme ca a partir de rien , c impressionant ^^ GG

je vais essayer de dessiner un carre , puis un cercle :)

Lapintade
Lapintade
Niveau 30
16 janvier 2005 à 00:58:11

ShellShock > Ok, c´est dnoob le cochon alors :-)

jejej > C´est juste creer un tableau et le sauver sur le disque dur. Ensuite il se trouve que ca correspond a un TGA que tu peux afficher, mais rien a voir avec l´affichage ecran ou la il te faut une lib graphique.
C´est ca qui est rigolo dans cet exercice, c´est que n´importe qui avec n´importe quoi peut compiler et participer a ce truc.

J´attends le carré et le cercle alors :)

jejej
jejej
Niveau 9
16 janvier 2005 à 10:40:47

Arg c´est pas si simple que ca en a l´air , de faire un cercle :p)

jejej
jejej
Niveau 9
16 janvier 2005 à 11:06:41

Bon , logiquement , ce code affiche un cercle , mais il semblerait qu´il soit . .. noir . .. sur un fond . .. noir :snif2:

http://rafb.net/paste/results/DWZCu957.html

jejej
jejej
Niveau 9
16 janvier 2005 à 11:15:02

En fait , en l´ouvrant avec irfan view , et en zoomant un peu , on voit un cercle violet !
enfin plutot 1/4 de cercle en fait !
ca marche !
a moi le premier prix !

Lapintade
Lapintade
Niveau 30
16 janvier 2005 à 13:13:39

Ok pour le code de cercle. :)

Pour le centrer, utilise plutot :

PutPixel( ( IMAGE_X/2)+iCosx , ( IMAGE_Y/2)+iSinx , R , G , B , 0 ) ;

sinon ca fait crasher car tu rempli des index negatifs dans le tableau.

Lapintade
Lapintade
Niveau 30
16 janvier 2005 à 16:27:46

Un damier en 3D :

http://walljv.free.fr/index.php?to=view&id=65

jejej
jejej
Niveau 9
16 janvier 2005 à 20:41:37

Juste une remarque à propos de ce " wall du forum jv " , je ne sais pas qui est son auteur , mais il faudrait ajouter une fonction " effacer les numéros de ligne " , parceque c lourd pour les copier coller .

Lapintade
Lapintade
Niveau 30
16 janvier 2005 à 21:06:04

Utilises " telecharger le fichier source" en bas :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment