Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Autres langages > Atelier Cod'Art > Lecture du sujet

Atelier Cod'Art

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  9  10  11  12  13  14  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  9  10  11  12  13  14  Suivante
Hors ligne zulon # Posté le 25/02/2008 à 18:00:13
The shrieker shrieks.
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Hum, merci knarf. Le site boguait et me signalait pas les nouveaux messages, alors j'ai pas tout suivi :-° .

Image utilisateur
 
Hors ligne ostream # Posté le 28/02/2008 à 23:00:09
Pas de commentaire
Avatar
Groupe : Membres
Moi j' ai essayé de copier l' algorythme que bluestorm a donné :
Image utilisateur
Je l' ai copié (de mémoire) avec pygame, mais j' obtient quelque chose de différent :

Les rayons sont plus concentrés sur un points.
Des fois, une partie du cercle n' est pas couverte.
On retrouve des espèces de courbes bisare au milieu du cercle.

Voici l' adresse de mon programme : http://dl.free.fr/getfile.pl?file=/hn2O9XTR/Test.py

EDIT :
En chipotant avec les couleurs, j' obtient des truc bien zarb. Screenshot :
Image utilisateur

Image utilisateur
 
Hors ligne bluestorm # Posté le 29/02/2008 à 08:14:50
dont ask to ask
Avatar
Groupe : Membres
Pourquoi t'embêter avec des degrés et des radians ? Il n'y a aucune raison de manipuler les degrés dans ce code.

Code : Python - Afficher / masquer les numéros de ligne
  1. if (Order1 % Order2) == 1 :

C'est ici que tu as une 'erreur' (erreur si tu considères que le but est de reproduire correctement l'algo)

Le bon algorithme est :
Code : Autre - Afficher / masquer les numéros de ligne
  1. if (Order1 * Order2) % DEPTH == 1 :
 
Hors ligne ostream # Posté le 29/02/2008 à 16:30:32
Pas de commentaire
Avatar
Groupe : Membres
Bah, moi je l' aime bien comme ça :)

Puis c' est souvent en fesant des erreurs qu' on trouve des choses belles.

Je crois que je vais ajouter la dimensions temps.

Image utilisateur
 
Hors ligne Minaithnir # Posté le 01/03/2008 à 01:17:04
Avatar
Groupe : Membres
J'ai cru voir le crible d'eratosthène dans les exemples et personne ne l'a encore fait (ou j'ai mal vu o_O )

voilà donc, quelques images que j'ai fait :
16*16 :Image utilisateur

32*32 :Image utilisateur

64*64 :Image utilisateur

128*128 :Image utilisateur

256*256 :Image utilisateur

et en exclu live (j'ai laissé allumé la nuit pour celui-là mais je n'avais pas encore implémenter de chrono :p )
1280*1024 (clic)

Au niveau du code, c'est un gros fouillis puisque qu'après une première version où je recompilai puor changer les dimensions, j'ai utiliser un programme en console où j'avais les parametres et qui les transmet via *argv[] . Sans compter la création d'un fichier qui contient les nombres, l'enregistrement de l'image et le choix de faire tous ça dans un sous-dossier ou non (et oui, je me suis compliqué la vie mais ça fait toujours progresser.)

Pour le crible en lui-même, j'en ai refait une version uniquement console et j'ai réussi à sortir tous les nombres premiers jusqu'a 200 000 000. Au delà, je pense que j'ai pas assez de RAM, il faut que je vois comment fractionner la recherche.

quelques notions dans les langages :
- xHTML/CSS
- PHP
- C
- C++
débutant en 3D : Blenderien en devenir
 
Hors ligne kedare # Posté le 01/03/2008 à 01:29:10
I Hate PHP
Avatar
Groupe : Membres
ca ressemble un peut a rien ... :p

"Toute technologie suffisamment avancée est indifférenciable de la magie" Arthur C. Clarke, “Profil de l’avenir”, 1961
Pseudo PSN: Kedare
Code Mii: 8684 6147 7730 6877

dev.Kedare Blog
 
Hors ligne Skelio # Posté le 01/03/2008 à 01:53:16
Groupe : Bannis
Personnellement je trouve que ça méritait d'être fait :o
Hors ligne Cyprien_ # Posté le 01/03/2008 à 08:23:35
Le Monde d'Akhiris
Avatar
Groupe : Membres
Mieux aurait était une Spirale d'Ulam tant qu'à faire dans les nombres premiers, mais je crois que ça a déjà été fait, je ne suis plus sûr :euh: .
Édité le 01/03/2008 à 08:23:59 par Cyprien_

Un jeu online novateur ?
Le Monde d'Akhiris !
 
Hors ligne bluestorm # Posté le 01/03/2008 à 09:25:42
dont ask to ask
Avatar
Groupe : Membres
Minaithnir > c'est pas grave, met le code quand même.

Et si tu en as honte, ben essaie de le nettoyer un peu avant :)
 
Hors ligne geenux # Posté le 01/03/2008 à 09:57:08
Vive Qt
Avatar
Groupe : Membres
Bon va falloir que je me remette aux fractales moi... Mais tuto de M@teo d'abord!
Pour l'instant je suis un peu bloqué sur Mandelbrot mais je finirais bien par y arriver!
Hors ligne ostream # Posté le 01/03/2008 à 11:53:18
Pas de commentaire
Avatar
Groupe : Membres
Ouais, désolé de te le dire, mais c' est laid. :p

Essaie de partir de ça pour faire quelque chose de beau : je sais sais pas moi, essaie de colorer chaque pixel suivant la distance au nombre premier le plus proche.

Où bien relie-les d' une manière où d' une autre.

Enfin bien joué quand même.

Image utilisateur
 
Hors ligne fppaty # Posté le 01/03/2008 à 15:20:39
http://plagnevillage.o-n.fr
Avatar
Groupe : Membres
Voila ce que j'ai fait .... :
Image utilisateur

Image utilisateur

Image utilisateur

Qu'en pensez-vous?
 
Hors ligne Kreeg # Posté le 01/03/2008 à 15:26:48
Je mangerais bien du GNU...
Avatar
Groupe : Bannis
Rien tant qu'on a pas de code.

Parti définitivement.

Raise the Titanic ! [Voir le topic]
En mode Hard Rock (ACDC/GnR/VR §) - Slash et J. Petrucci sont mes héros \o/
Attention (va) aux (sur) messages (ce) subliminaux, (site) camarade !
Une question sur OpenGL, un problème ? Rejoignez #opengl sur EpikNet !
La SDL pue grave, mais pas SFML !
Le modo qui ne connaissait pas Dimitri Borgur... :p


 
Hors ligne geenux # Posté le 01/03/2008 à 16:53:49
Vive Qt
Avatar
Groupe : Membres
Je trouve ton image sympa! Mais je trouverai ça encore mieux avec le code! Parceque le principe du topic c'est quand même Cod'art (donc CODE + art)
Hors ligne ostream # Posté le 01/03/2008 à 17:04:46
Pas de commentaire
Avatar
Groupe : Membres
Je trouve ça sympa. T' a fait ça comment?

Image utilisateur
 
Hors ligne Minaithnir # Posté le 01/03/2008 à 19:16:46
Avatar
Groupe : Membres
@kedare, fallait quand même tester pour le savoir ^^

@Cyprien_ , pour faire une Spirale d'Ulam, il faut connaitre les nombres premiers, le crible lui les calculs. Mais c'est une idée pour appliquer le résultat du crible.

@Bluestorm, j'ai eu un petit accident pour le code en fait, je viens de remarqué que j'avais Ctrl X au lieu de C quand j'ai fait le crible simple. Donc je met déjà le crible seul et quand j'aurai refait l'autre j'éditerai ce message. (j'ai effacer la partie qui créée l'image :( )

Déjà ça, le crible en console pour juste calculer les nombres premiers (oui je sais, system() c'est très moche :-° ) :
Code : C - Afficher / masquer les numéros de ligne
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. void crible(long Limite);
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     unsigned long Limite = 1024;
  10.     int menu = 1, continuer = 1;
  11.  
  12.     while(continuer)
  13.     {
  14.         system("cls");
  15.         printf("Programme de calcul de nombres premiers\n");
  16.         printf("Le programme calculera la totalite des nombres premiers de 1 a 'Maximum'.\nIl produit un fichier qui contient ces nombres\n");
  17.         printf("\n1 : Limite maximale : %ld", Limite);
  18.         printf("\n\n2 : Lancer le calcul\n3 : Quitter\n");
  19.  
  20.         printf("\nQue faire ? : ");
  21.         scanf("%d", &menu);
  22.  
  23.         switch(menu)
  24.         {
  25.             case 1 :
  26.                 printf("\n\nNouvelle Limite ? : ");
  27.                 scanf("%ld", &Limite);
  28.                 break;
  29.             case 2 :
  30.                 crible(Limite);
  31.                 /*sprintf(lancement, "\"crible.exe\" %ld %ld %d %d %d", Longueur, Hauteur, dossier, image, fichier);
  32.                 system(lancement);*/
  33.                 break;
  34.             case 3 :
  35.                 continuer = 0;
  36.                 break;
  37.         }
  38.     }
  39.  
  40.  
  41.     return 0;
  42. }
  43.  
  44. void crible(long Limite)
  45. {
  46.     unsigned long nombre = 2, coefficient = 0, *crible = NULL;
  47.     unsigned long compteur = 0, c = 0;
  48.     char save[400];
  49.     FILE* fichier = NULL;
  50.  
  51.     crible = (long*)malloc((Limite) * sizeof(long));
  52.  
  53.     for(compteur = 0; compteur < Limite; compteur++)
  54.     {
  55.         compteur++;
  56.         crible[compteur] = compteur;
  57.     }
  58.  
  59.     while(nombre*nombre < Limite)
  60.     {
  61.         coefficient = 2;
  62.         while(nombre*coefficient < Limite)
  63.         {
  64.             crible[nombre*coefficient] = 0;
  65.             coefficient ++;
  66.         }
  67.  
  68.         c = nombre;
  69.         do{
  70.             c++;
  71.             nombre = crible[c];
  72.         }while(nombre == 0);
  73.  
  74.     }
  75.  
  76.     sprintf(save, "%ld.txt", Limite);
  77.     fichier = fopen(save, "w");
  78.  
  79.     if(fichier != NULL)
  80.     {
  81.         c = 0;
  82.  
  83.         for(compteur = 1; compteur < Limite; compteur ++)
  84.         {
  85.             if(crible[compteur] != 0)
  86.             {
  87.                 c++;
  88.                 fprintf(fichier, "%ld\n", crible[compteur]);
  89.             }
  90.         }
  91.         fclose(fichier);
  92.     }
  93.  
  94.     free(crible);
  95. }


EDITH : code source de la version graphique
produit un sous-dossier contenant une image et un fichier texte.
les dimensions de l'image sont à rentrer avant compilation dans les defines correspondantes.

Code : C - Afficher / masquer les numéros de ligne
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <SDL.h>
  5.  
  6. //définition des dimensions de la fenêtre
  7. #define COLONNE 189
  8. #define LIGNE 189
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12.         /// Declaration des variables
  13.     // variables d'affichage
  14.     SDL_Surface *ecran = NULL, *pixel = NULL;
  15.     SDL_Rect position;
  16.  
  17.     //variables pour l'initialisation et la mesure du crible
  18.     long compteur = 0, duree = 0;
  19.  
  20.     //variables du crible
  21.     int nombre = 2, c, coefficient = 2;
  22.     long* crible = NULL;
  23.  
  24.     //variables pour la sauvegarde
  25.     FILE* fichier = NULL;
  26.     char save[100];
  27.     long l;
  28.  
  29.         /// Initialisation de la fenêtre et de l'aspect graphique
  30.     SDL_Init(SDL_INIT_VIDEO);
  31.  
  32.     ecran = SDL_SetVideoMode(COLONNE, LIGNE, 32, SDL_HWSURFACE);
  33.     pixel = SDL_CreateRGBSurface(SDL_HWSURFACE, 1, 1, 32, 0, 0, 0, 0); // Allocation de la surface
  34.     SDL_WM_SetCaption("crible d'eratosthene", NULL);
  35.  
  36.     SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
  37.     SDL_FillRect(pixel, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); // Remplissage de la surface avec du blanc
  38.  
  39.         /// Initialisation du crible
  40.     // Allocation et remplissage du tableau contenant tous les nombres
  41.     crible = (long int*)malloc((LIGNE*COLONNE) * sizeof(long));
  42.  
  43.     for(compteur = 0; compteur < LIGNE*COLONNE; compteur++)
  44.     {
  45.         crible[compteur] = compteur;
  46.     }
  47.  
  48.     // Prise de temps pour mesure
  49.     duree = SDL_GetTicks();
  50.  
  51.         /// Debut du crible
  52.     while(nombre*nombre < LIGNE*COLONNE)    //arret des recherche lorsque le carré du nombre est supérieur à l'air
  53.     {                                       //Exemple : sur 400, si nombre == 23, les nombres suivant serait multiplié par un coeff
  54.         coefficient = 2;                    //inférieur  23 pour être compris entre 1 et 400 et donc déjà parcourus par le crible
  55.         while(nombre*coefficient < LIGNE*COLONNE)   //Inutile de continuer si on est plus dans le cadre,
  56.         {                                           //sans compter les problème graphique
  57.             position.x = nombre*coefficient%COLONNE;
  58.             position.y = nombre*coefficient/COLONNE;
  59.             SDL_BlitSurface(pixel, NULL, ecran, &position);
  60.  
  61.             crible[nombre*coefficient] = 0;
  62.             coefficient ++;
  63.         }
  64.  
  65.         c = nombre;
  66.         do{
  67.             c++;
  68.             nombre = crible[c];
  69.         }while(nombre == 0);
  70.  
  71.     }
  72.  
  73.     duree = SDL_GetTicks() - duree;
  74.  
  75.     //création du sous-dossier
  76.     sprintf(save, "mkdir %d_%d", COLONNE, LIGNE);
  77.     system(save);
  78.     sprintf(save, "%d_%d\\nombres%d.txt", COLONNE, LIGNE, COLONNE*LIGNE);
  79.  
  80.     //enregistrement des nombres trouvés
  81.     fichier = fopen(save, "w");
  82.     if(fichier != NULL)
  83.     {
  84.         fprintf(fichier, "Calculés avec le crible d'ératosthène\nImplémenté par Minaithnir\n");
  85.         fprintf(fichier, "Nombres premiers de 1 à %d\nDimension de l'image %d * %d\n\n", LIGNE*COLONNE, COLONNE, LIGNE);
  86.         fprintf(fichier, "Temps de calcul : %ld ms\n\n", duree);
  87.  
  88.         l = 0;
  89.  
  90.         for(compteur = 0; compteur < LIGNE*COLONNE; compteur ++)
  91.         {
  92.             if(crible[compteur] != 0)
  93.             {
  94.                 l++;
  95.                     fprintf(fichier, "%ld \t: %ld\n", l, crible[compteur]);
  96.             }
  97.         }
  98.         fclose(fichier);
  99.     }
  100.  
  101.     //sauvegarde de l'image
  102.     sprintf(save, "%d_%d\\crible%d_%d.bmp", COLONNE, LIGNE, COLONNE, LIGNE);
  103.     SDL_SaveBMP(ecran, save);
  104.  
  105.     //libération mémoire
  106.     free(crible);
  107.     SDL_FreeSurface(pixel);
  108.     SDL_Quit();
  109.  
  110.     return EXIT_SUCCESS;
  111. }
Édité le 01/03/2008 à 23:27:51 par Minaithnir

quelques notions dans les langages :
- xHTML/CSS
- PHP
- C
- C++
débutant en 3D : Blenderien en devenir
 
Hors ligne alt tab # Posté le 04/03/2008 à 22:54:52
Avatar
Groupe : Membres
Bonjour à tous,

Voici quelques une de mes réalisations:

L' ensemble de Mandelbrot :
Image utilisateur

L' ensemble de Julia :
Image utilisateur

et un autre réalisation, un arbre généré a l'aide des fractales et OpenGL...
Image utilisateur

et voici le code source pour générer l'arbre:
Code : C++ - Afficher / masquer les numéros de ligne
  1. #include <SDL/SDL.h>
  2. #include <GL/gl.h>
  3. #include <GL/glu.h>
  4.  
  5. #include "sdlglutils.h"
  6.  
  7.  
  8. void DessinerAxes()
  9. {
  10.     //glClear(GL_COLOR_BUFFER_BIT);
  11.     glLineWidth(2);
  12.  
  13.     glBegin(GL_LINES);
  14.          glColor3ub(255,0,0);   glVertex3d(0,0,0);
  15.          glColor3ub(255,0,0);   glVertex3d(5,0,0);
  16.     glEnd();
  17.  
  18.     glBegin(GL_LINES);
  19.          glColor3ub(0,255,0);   glVertex3d(0,0,0);
  20.          glColor3ub(0,255,0);   glVertex3d(0,5,0);
  21.     glEnd();
  22.  
  23.     glBegin(GL_LINES);
  24.          glColor3ub(0,0,255);   glVertex3d(0,0,0);
  25.          glColor3ub(0,0,255);   glVertex3d(0,0,5);
  26.     glEnd();
  27.  
  28.     glColor3ub(255,255,255);
  29.  
  30.     glFlush();
  31. }
  32.  
  33. void DessinerBranches(SDL_Surface *ecran,GLUquadric* params , int iteration,GLuint ecorce)
  34. {
  35.     if (iteration>0)
  36.     {
  37.         glScaled(0.5,0.5,0.5);
  38.         glRotated(50,1,0,0);
  39.  
  40.         glBindTexture(GL_TEXTURE_2D,ecorce);
  41.         gluCylinder(params,0.5,0.5,10,12,1);
  42.  
  43.         glTranslated(0,0,10);
  44.         DessinerBranches(ecran,params,iteration-1,ecorce);
  45.         glTranslated(0,0,-10);
  46.  
  47.         glRotated(-50,1,0,0);
  48.  
  49.         glRotated(120,0,0,1);
  50.  
  51.         glRotated(50,1,0,0);
  52.  
  53.         glBindTexture(GL_TEXTURE_2D,ecorce);
  54.         gluCylinder(params,0.5,0.5,10,12,1);
  55.  
  56.         glTranslated(0,0,10);
  57.         DessinerBranches(ecran,params,iteration-1,ecorce);
  58.         glTranslated(0,0,-10);
  59.  
  60.  
  61.         glRotated(-50,1,0,0);
  62.  
  63.         glRotated(120,0,0,1);
  64.  
  65.         glRotated(50,1,0,0);
  66.  
  67.         glBindTexture(GL_TEXTURE_2D,ecorce);
  68.         gluCylinder(params,0.5,0.5,10,12,1);
  69.  
  70.         glTranslated(0,0,10);
  71.         DessinerBranches(ecran,params,iteration-1,ecorce);
  72.         glTranslated(0,0,-10);
  73.  
  74.  
  75.         glRotated(-50,1,0,0);
  76.  
  77.         glRotated(120,0,0,1);
  78.         glScaled(2,2,2);
  79.  
  80.     }
  81. }
  82.  
  83.  
  84. void DessinerArbre(SDL_Surface *ecran, int iteration)
  85. {
  86.     GLuint ecorce=loadTexture("ecorce.jpg");
  87.  
  88.     glPushMatrix();
  89.  
  90.     glColor3ub(255,255,255);
  91.  
  92.     GLUquadric* params = gluNewQuadric();
  93.     gluQuadricTexture(params,GL_TRUE);
  94.  
  95.  
  96.     glBindTexture(GL_TEXTURE_2D,ecorce);
  97.     gluCylinder(params,0.5,0.5,10,12,1);
  98.  
  99.     glTranslated(0,0,10);
  100.  
  101.  
  102.     DessinerBranches(ecran,params,iteration,ecorce);
  103.  
  104.     gluDeleteQuadric(params);
  105.     glPopMatrix();
  106.  
  107.     glFlush();
  108. }
  109.  
  110.  
  111. int main(void)
  112. {
  113.     int continuer = 1;
  114.     SDL_Event event;
  115.     SDL_Surface *ecran = NULL;
  116.  
  117.     SDL_Init(SDL_INIT_VIDEO); // Démarrage de la SDL
  118.  
  119.     ecran=SDL_SetVideoMode(1024, 768, 32, SDL_OPENGL);
  120.  
  121.     SDL_WM_SetCaption("Un arbre", NULL);
  122.  
  123.     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
  124.     glMatrixMode( GL_PROJECTION );
  125.     glLoadIdentity( );
  126.     gluPerspective(70,(double)1024/768,1,1000);
  127.     glEnable(GL_TEXTURE_2D);
  128.  
  129.  
  130.     gluLookAt(15,15,15,0,0,10,0,0,1);
  131.  
  132.     DessinerArbre(ecran, 5);
  133.  
  134.     SDL_GL_SwapBuffers();
  135.  
  136.     while (continuer)
  137.     {
  138.         SDL_WaitEvent(&event);
  139.         switch(event.type)
  140.         {
  141.             case SDL_QUIT:
  142.                 continuer = 0;
  143.         }
  144.  
  145.     }
  146.     glDisable(GL_TEXTURE_2D);
  147.     SDL_Quit(); // Arrêt de la SDL
  148.  
  149.     return EXIT_SUCCESS;
  150. }
Édité le 05/03/2008 à 18:05:53 par alt tab

"ce n'est pas parce que tu parles que tu es intelligent" Star Wars Ep.1 :-°
 
Hors ligne ostream # Posté le 05/03/2008 à 14:22:50
Pas de commentaire
Avatar
Groupe : Membres
J' aime pas du tout le fond jaune :/
Sinon, c' est pas mal :)

Image utilisateur
 
Connecté Asi # Posté le 09/03/2008 à 00:33:15
Mangeur de Lapins Crus
Avatar
Modérateurs
Un petit qui témoigne de mon assiduité en cours : Image utilisateur

Programmé en Ti-Basic sur ma Ti-84+, pour chaque point ça vérifie si le produit de l'abscisse et de l'ordonnée du point est un multiple d'un nombre donné. (Pour l'image que j'ai donné c'est 60)

J'ai séparé ça en plusieurs programme pour moins me prendre la tête :

(FILL est le point d'entrée du programme)
Code : Autre - FILL - Afficher / masquer les numéros de ligne
  1. prgmFILLINIT
  2. prgmFILLINPU
  3. prgmFILLMAIN
  4. prgmFILLFREE



(CLEAR est un petit programme qui se charge d'effacer l'écran, remplaçable par ClrDraw dans le contexte)
Code : Autre - FILLINIT - Afficher / masquer les numéros de ligne
  1. prgmCLEAR
  2. UnArchive X
  3. UnArchive Y
  4. UnArchive T
  5. UnArchive C
  6. 0->T:0->X:0->Y
  7. 0->C


Code : Autre - FILLINPU - Afficher / masquer les numéros de ligne
  1. Input "Nombre : ",C
  2. abs(iPart(C))->C
  3. If C=0
  4. 60->C


Code : Autre - FILLMAIN - Afficher / masquer les numéros de ligne
  1. While Y<=62
  2. While X<=94
  3. If X>C
  4. Then
  5. 0->X:0->T:Y+1->Y
  6. End
  7. If Y>C:Then
  8. 999->X:999->Y
  9. 0->T
  10. End
  11. prgmFILLALGO
  12. If T>0
  13. Pxl-On(Y,X)
  14. X+1->X:0->T
  15. End
  16. Y+1->Y:0->X:0->T
  17. End


Code : Autre - FILLFREE - Afficher / masquer les numéros de ligne
  1. DelVar X
  2. DelVar Y
  3. DelVar T
  4. DelVar C


Code : Autre - FILLALGO - Afficher / masquer les numéros de ligne
  1. real(28,XY,C)=0->T


La fonction real(28, correspond à l'opérateur modulo (implémenté par Omnicalc) en théorie c'est remplaçable par quelque chose de ce genre :
Code : Autre - Afficher / masquer les numéros de ligne
  1. fPart(XY/C)=0->T


EDIT : En C++ avec la SFML
Code : C++ - Afficher / masquer les numéros de ligne
  1. #include <SFML/Graphics.hpp>
  2. using namespace sf;
  3.  
  4. int main(void)
  5. {
  6.         const Uint32 nombre = 60;
  7.         Image image;
  8.         image.Create(nombre, nombre, Color(255, 255, 255));
  9.  
  10.         for(Uint32 y = 0; y < nombre; y++)
  11.         {
  12.                 for(Uint32 x = 0; x < nombre; x++)
  13.                 {
  14.                         if(((x*y) % nombre) == 0)
  15.                                 image.SetPixel(x, y, Color(0, 0, 0));
  16.                 }
  17.         }
  18.  
  19.         image.SaveToFile("image.png");
  20.         return 0;
  21. }

Édité le 09/03/2008 à 03:45:48 par Asi
 
Hors ligne aenario # Posté le 09/03/2008 à 21:35:25
Avatar
Groupe : Membres
Un petit truc fait au pifomètre et qui tend à donner des résultats amusant :

http://magwar.free.fr/1.php

Il s'agit en fait de 5 spirales de cercle : une au centre et une à chaque coin. On peut faire varier le nombre de cercle par spirale (par défaut : 950)

http://magwar.free.fr/1.php?k=125
http://magwar.free.fr/1.php?k=170

quand on commence à monter vers de grand nombres, on obtient des résultats étranges...

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $image = imagecreatetruecolor(500, 500);
  3. $k= isset($_GET['k']) ? $_GET['k'] : 913;
  4.  
  5.  
  6. for($i=0; $i<$k; $i++){
  7.         imageellipse($image, $i*cos(($i%13)*2*M_PI/13), $i*sin(($i%13)*2*M_PI/13), $i, $i, imagecolorallocate($image, $k-$i/2, $i, $k+$i/2));
  8.         imageellipse($image, 500+$i*cos(($i%13)*2*M_PI/13), $i*sin(($i%13)*2*M_PI/13), $i, $i, imagecolorallocate($image, $k-$i/2, $i, $k+$i/2));
  9.         imageellipse($image, 500+$i*cos(($i%13)*2*M_PI/13), 500+$i*sin(($i%13)*2*M_PI/13), $i, $i, imagecolorallocate($image, $k-$i/2, $i, $k+$i/2));
  10.         imageellipse($image, $i*cos(($i%13)*2*M_PI/13), 500+$i*sin(($i%13)*2*M_PI/13), $i, $i, imagecolorallocate($image, $k-$i/2, $i, $k+$i/2));
  11.         imageellipse($image, 250+$i*cos(($i%13)*2*M_PI/13), 250+$i*sin(($i%13)*2*M_PI/13), $i, $i, imagecolorallocate($image, $k-$i/2, $i, $k+$i/2));
  12. }
  13.  
  14. imagepng($image);

Moi élitiste ! o_O Et oui, j'aime pas les cons :colere2:
 
Hors ligne Knarf2 # Posté le 16/03/2008 à 08:11:17
Free the Lemmings
Avatar
Groupe : Membres
On peut, à l'aide du bruit de Perlin, générer des nuages :

- "basique" :
Image utilisateur
(Plus grosse résolution) - Source

Mais en bidouillant un peu on peut obtenir des résultats plus rigolos, la superposition d'un certain nombre d'octave peut aussi avoir des effets innatendus :
Image utilisateur

Image utilisateur


Image utilisateur

Image utilisateur

Image utilisateur



Image utilisateur
(Plus grosse résolution)

Image utilisateur
(Plus grosse résolution)

Édité le 16/03/2008 à 08:42:58 par Knarf2

< Absent pour un certain temps... Ou bien un temps incertain ? (étude, internat, toussa) >

< Image utilisateur >
< GU/MU/CS@ d- s: a--- C+++ U+ P++ L++ E>+ W++ N+ o? !K? w->-- !O? M- !V PS>+ !PE !Y? PGP- t 5- X R tv- b+ !DI--- D+ G e-? h!-- r--- y-- >
< site >

 
Hors ligne geenux # Posté le 16/03/2008 à 09:09:22
Vive Qt
Avatar
Groupe : Membres
Le code STP... C'est un peu le but du topic!
Hors ligne zulon # Posté le 16/03/2008 à 09:52:08
The shrieker shrieks.
Avatar
Groupe : Membres
Il a donné le code o_O : http://diobla.info/code/cloud_basic.c.txt
Sinon c'est rigolo knarf, le dernier et un autre on dirait des continents :p .

Image utilisateur
 
Hors ligne Artefact2 # Posté le 16/03/2008 à 11:29:46
Avatar
Groupe : Membres
Bravo, c'est très réussi. :D
 
Hors ligne ostream # Posté le 16/03/2008 à 11:43:57
Pas de commentaire
Avatar
Groupe : Membres
J' aime bien... J' essaierais de le refaire, pour voir.

Image utilisateur
 
Hors ligne iPoulet # Posté le 16/03/2008 à 12:06:52
Avatar
Groupe : Membres
Ça me disait quelque chose... C'était parce que l'ami lasts avait déjà parlé de ce truc :) .

En tout cas c'est du plus bel effet.

Étoilé
« Eĉ guto malgranda, konstante frapante, traboras la monton granitan »
 
Hors ligne geenux # Posté le 16/03/2008 à 12:13:38
Vive Qt
Avatar
Groupe : Membres
Désolé j'avais pas vu le code. Merci, très réussi.
Hors ligne ostream # Posté le 16/03/2008 à 13:56:07
Pas de commentaire
Avatar
Groupe : Membres
J' ai eu une idée...

Est-ce que ça s' est déja fait d' étendre le principe du Cod'art à la musique? Des programmes génerant à l' aide d' algo des rythmes, mélodies, ...

En gros, un programme peut-il composer de la musique? (Puisqu' il sait dessiner...)
Pour ma part, je ne voit rien qui pourrait l' empecher.
Édité le 16/03/2008 à 13:57:43 par ostream

Image utilisateur
 
Hors ligne Dark-Side # Posté le 16/03/2008 à 14:41:50
Groupe : Bannis
Rien ne t'empêche de creuser cette voie si tu crois que c'est faisable. :)
Tout le monde serait je crois intéressé par le résultat. :)
Hors ligne zulon # Posté le 16/03/2008 à 15:54:38
The shrieker shrieks.
Avatar
Groupe : Membres
À la base c'est des images, mais pourquoi pas ? La musique c'est de l'art après tout :p Et ça pourrait être marrant.

Image utilisateur
 
Hors ligne Dark-Side # Posté le 16/03/2008 à 15:58:26
Groupe : Bannis
Bah, si jamais ça aboutis il pourra toujours forker et faire un : [Cod`Zic] :-°
En tout cas c'est une assez bonne idée je trouve, je suis pressé de voir ce que ça va donner.

Retour au forum "Autres langages" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 464 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0683s (0.038s)