TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : Précédente 1 2 3 4 5 ... 11 12 13 14 Suivante | |
| Auteur | Message |
|---|---|
| 2 visiteurs sur ce sujet (2 anonymes) | |
| Page : Précédente 1 2 3 4 5 ... 11 12 13 14 Suivante | |
Knarf2
|
# Posté le 05/07/2007 à 14:21:50 |
|
Free the Lemmings Groupe : Membres |
Reprise du dernier message de la page précédente :
Alors moi j'ai tatonné pas mal, pour finalement arriver a un truc relativement simple, qui peut rendre pas mal et qui (je pense) est assez original (je sais pas ça a un nom, si quelqu'un l'as déjà "trouvé" , etc).
Voici le résultat "de base" : ![]() Ici la fonction qui dessine : Code : C void
draw(void) { int x,y; int nb = 0; int mult; /* les arguments de pixel() sont les coordonnés * puis la quantité de rouge/vert/bleu */ for(y=0; y<IMG_SIZE; y++) { for(x=0; x<IMG_SIZE; x++) { mult = x*y%256; pixel(x, y, mult, mult, mult); nb = (nb+2)*(nb+2)%256; } } return; } En coloriant (en faisant varier/ajouter des facteurs) on peut obtenir de joli chose (cliquez pour plus grand) : Je vais mettre des variantes de 256*256. Chaque image est cliquable pour une version plus grande (768*768 en mosaique). ![]()
![]()
wala :] < Absent pour un certain temps... Ou bien un temps incertain ? (étude, internat, toussa) > < >< 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 > |
Tix.
|
# Posté le 05/07/2007 à 14:50:26 |
For ever G33K![]() Groupe : Membres |
![]() ![]()
Mes trois derniers. ils sonts quasi similaires aux trois premiers, sauf qu'il y a utilisation du sin & cos ... ---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
myman
|
# Posté le 05/07/2007 à 15:09:45 |
ÉléPHPant o_0![]() Groupe : Membres |
C'est très beau tout ces dessins, mais je comprend rien du tout, vous pouriez pas expliquer comment on procede dans un tuto ou sur ce topic 6
GalaxieRPG Avancement : Code : ||||||||||||||||||||15% Scénario :|||||||||||||||||||| 0% |
Tix.
|
# Posté le 05/07/2007 à 15:12:51 |
For ever G33K![]() Groupe : Membres |
salut
bah, en ce qui me concerne, je fait ca pixel a pixel suivant des algos différents. pour une map logique par exemple, tu scanne toute la surface de travail et tu donne au pixel scanné la couleur résultante d'une opération logique entre x et y ... ++ ---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
ironzorg
|
# Posté le 05/07/2007 à 15:17:59 |
|
Groupe : Membres |
|
bluestorm
|
# Posté le 05/07/2007 à 15:19:02 |
dont ask to ask![]() Groupe : Membres |
Tix > tu pourrais fournir ton code ?
|
Tix.
|
# Posté le 05/07/2007 à 15:27:32 |
For ever G33K![]() Groupe : Membres |
Bluestorm, je l'ai déjà mis
(dailleur, je le met a jour, j'y ai fait une couille) ironzorg, merci
bah, non, il ne sont pas plus fait au hasard que ca, une spirale (intrepolation du cos(i)*i[*factopt] et du sin pareillement traités, et effet dessus (grossissement du point OpenGL, changement de parametres) ++ Tix.
Édité
le 05/07/2007 à 15:30:13
par Tix.
---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
Blackhole
|
# Posté le 05/07/2007 à 16:29:04 |
Bear, and forbear![]() Groupe : Membres |
C'est la formule de bluestorm qui m'a donné l'idée
Je peux obtenir plein d'image différente, mais il n'y a pas une goutte d'aléatoire.
Chaque image peut-être fait en couleur ou en noir et blanc. Ce ne sont QUE des pixels, entièrrement fait avec PHP. Voilà le coeur du script noir et blanc : Code : PHP $taille_image = 500; $nombre1 = 450; $nombre_additione = 150; $image = imageCreateTrueColor($taille_image, $taille_image); $blanc = imageColorAllocate($image, 255, 255, 255); $noir = imageColorAllocate($image, 0, 0, 0); imageFilledRectangle($image, 0, 0, $taille_image, $taille_image, $blanc); for ($x = 0; $x < $taille_image; $x++) { for ($y = 0; $y < $taille_image; $y++) { if (($x*$y)%$nombre1 == $nombre1%($x+$nombre_additione) OR ($x*$y)%$nombre1 == $nombre1%($y+$nombre_additione) OR (($taille_image-$x)*($taille_image-$y))%$nombre1 == $nombre1%($taille_image-$x+$nombre_additione) OR (($taille_image-$x)*($taille_image-$y))%$nombre1 == $nombre1%($taille_image-$y+$nombre_additione)) { imageSetPixel($image, $x, $y, $noir); } } } $nombre1 et $nombre_additionne permettent d'obtenir une infinité de forme !
Notez que c'est ma première réalisation en Cod'art, et pour une première, j'en suis assez satisfait !
- Le moteur de templates le plus rapide, le plus pratique et le plus effiace ? Par ici ! - N'oubliez pas le de marquer votre message comme résolu ! - Pour trouver une aiguille dans une botte de foin, on met le feu à la botte et on passe un aimant dans les cendres. |
Cygal
|
# Posté le 05/07/2007 à 16:30:05 |
Enfin Libre![]() Groupe : Membres |
|
Locke
|
# Posté le 05/07/2007 à 16:34:50 |
|
Groupe : Membres |
Dans le genre facile à faire pour les débutants, il y a des carrés imbriqués à l'infini, aussi :
(bon bien sûr c'est plus beau quand c'est plus grand et tout, enfin, bref) |
Blade-974
|
# Posté le 05/07/2007 à 16:45:48 |
|
J'adore les sushis Groupe : Membres |
Salut les zéros. Je voudrais juste avoir une explication sur quelquechose qui me paraît bizarre. bluestorm nous dit un peu plus haut que 2*4 = 1%7 et que 3*5 = 1%7. On a donc 2*4 = 3*5 ?? bizarre ...
euh non en fait, c'est sur la page précédente :X
Édité
le 05/07/2007 à 16:51:49
par Blade-974
God bless Feisty Fawn |
Nanoc
|
# Posté le 05/07/2007 à 16:53:28 |
Apprenez à utiliser la STL !!![]() Groupe : Membres |
hehe, il faut bien comprendre le sens du modulo (% en pHp, c++,...)
5 modulo 3 = 2 car le reste de la division de 5 par 3 est 2 8 modulo 11 = 8 car le reste de la division de 8 par 11 est 8 ainsi: 2*4 = 8 = 1 modulo 7 car la division de 8 par 7 donne 1 3*5 = 15 = 1 modulo 7 car la division de 15 par 7 donne 1 cependant 8 n'est pas égal à 15 Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
Furzel
|
# Posté le 05/07/2007 à 16:54:19 |
|
Vive open arena ! Groupe : Membres |
Voila mes créations :
Le code, il suffit de faire varier les opérations pour le choix des trois couleurs, par exemple x*y,x*y,x*y vous donneras la meme figure que knarf2, a vous d'experimenter
Code : Autre # include <stdio.h> # include <stdlib.h> # include <SDL/SDL.h> # include <math.h> void pause() { int continuer = 1; SDL_Event event; while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; } } } int main () { SDL_Surface *pixel=NULL, *ecran=NULL; SDL_Rect position; int x,y; position.x=0; position.y=0; if (SDL_Init(SDL_INIT_VIDEO)==-1) { fprintf(stderr,"Erreur d'initialisation de la SDL"); exit(EXIT_FAILURE); } ecran=SDL_SetVideoMode(510,510,32,SDL_HWSURFACE); if (ecran==NULL) { fprintf(stderr,"Erreur d'inialisation du mode vidéo %s",SDL_GetError()); exit(EXIT_FAILURE); } pixel=SDL_CreateRGBSurface(SDL_HWSURFACE,1,1,32,0,0,0,0); for (y=1;y<510;y++) for (x=0;x<510;x++) { position.x=x; position.y=y; SDL_FillRect(pixel,NULL,SDL_MapRGB(ecran->format,x%y,x%y,x%y)); SDL_BlitSurface(pixel,NULL,ecran,&position); } SDL_Flip(ecran); pause(); SDL_FreeSurface(pixel); SDL_Quit; return 0; } |
Nanoc
|
# Posté le 05/07/2007 à 17:18:37 |
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Post déplacé à l'endroit approrié: Topic dédié aux tiangles de Sierpinski
Édité
le 05/07/2007 à 18:09:21
par Nanoc
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
Furzel
|
# Posté le 05/07/2007 à 17:36:14 |
|
Vive open arena ! Groupe : Membres |
hop pour le carré => http://www.siteduzero.com/forum-83-164616-p1-cod-art-tapis-de-sierpinski.html
Édité
le 05/07/2007 à 18:24:47
par Furzel
|
Cygal
|
# Posté le 05/07/2007 à 17:54:22 |
Enfin Libre![]() Groupe : Membres |
Citation : Nanoc
Je vous propose un petit triangle de Sierpinski en SDL (C++) [...]
Nanoc, tu pourrais (re)poster sur le topic adapté, c'est-à-dire [Cod'Art] Triangle de Sierpinski ?
Édité
le 05/07/2007 à 18:15:03
par Cygal
|
bluestorm
|
# Posté le 05/07/2007 à 17:59:40 |
dont ask to ask![]() Groupe : Membres |
Ça marche pour Furzel aussi : pour les histoires de Sierpinski, allez dans le nouveau topic de Cygal, ça permettra d'organiser un peu mieux le truc.
Pour les fractales de Sierpinski, allez poster dans le topic dédié, cela facilitera l'organisation
Si vous voyez une autre catégorie qui mériterait une place à part, n'hésitez pas à le signaler.
Édité
le 05/07/2007 à 18:27:43
par bluestorm
|
Blade-974
|
# Posté le 05/07/2007 à 18:03:17 |
|
J'adore les sushis Groupe : Membres |
Citation : Nanoc
15 par 7 donne 1
15 par 7 ça fait 2 ... c'est 15%7 qui vaut 1. pour ce qui est de 8/7, aucun problème
God bless Feisty Fawn |
zulon
|
# Posté le 05/07/2007 à 18:04:45 |
The shrieker shrieks.![]() Groupe : Membres |
Mon ensemble de Mandelbrot, un peu basique aussi et sans couleurs:
Code : Ocaml open Graphics;; (* Dessine un ensemble de Mandelbrot *) (* Prend en paramètre la taille de l'écran et deux constantes (hyper sensibles) *) let mandelbrot taille a b = (* Définit si fait partie de l'ensemble ou pas, et choisit la couleur en conséquence *) let couleur x y = let norme x y = let rec norme acc x y = if x *. x +. y *. y > 1000. then acc else if acc > 256 then 0 else norme (acc+1) (x *. x -. y *. y +. a) (2. *. x *. y +. b) in norme 0 x y in let c = (norme x y) * 20 in rgb c c c in (* Vérifie tous les points, les colorie *) for x = 0 to taille - 1 do for y = 0 to taille - 1 do let x2 = 4. *. float_of_int (x - taille / 2) /. (float_of_int (taille))in let y2 = 4. *. float_of_int (y - taille / 2) /. (float_of_int (taille)) in set_color (couleur x2 y2); plot x y done done ;; auto_synchronize false; open_graph " 800x800"; mandelbrot 800 0.29 (-0.45); (* Sync l'affichage *) synchronize (); (* Pause *) ignore (read_key ());;
Amusez vous à modifier a et b (les deux constantes)
Édité
le 05/07/2007 à 18:13:11
par zulon
![]() |
Tix.
|
# Posté le 05/07/2007 à 18:13:57 |
For ever G33K![]() Groupe : Membres |
trois autres petits tests
![]() ![]()
ceux ci sont directements inspirés des premiers. seul les parametres d'interpollation des couleurs changent. ainsi, les deux premiers se sont vus ajoutés une opération logique, et le troisieme, une opération utilisant le cos& sin. voilà un mix que je trouve pas mal : ![]()
code : Code : C /*******************************************************************************
Titre : Effet graphique en C avec OpenGL Sous titre : BitMAP Logique By Tix. tixlegeek@gamil.com http://www.tixlegeek.sup.fr (c) TRANSISTERIX 2007 *******************************************************************************/ #include <SDL/SDL.h> #include <GL/gl.h> #include <GL/glu.h> #define pi 3.14159265358979323846 #include <math.h> typedef struct COLOR { GLbyte r; GLbyte v; GLbyte b; } COLOR ; /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*:: This function converts decimal degrees to radians :*/ /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ double deg2rad(double deg) { return (deg * pi / 180); } /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*:: This function converts radians to decimal degrees :*/ /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ double rad2deg(double rad) { return (rad * 180 / pi); } void assign(COLOR *variable, GLbyte r, GLbyte v, GLbyte b) { variable->r = r; variable->v = v; variable->b = b; } int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_WM_SetCaption("Fractal ?",NULL); SDL_SetVideoMode(255, 255, 32, SDL_OPENGL); // Definitions de l'environnement // gluOrtho2D(255,0,255,0); glPointSize(2); //********************************// bool continuer = true; SDL_Event event; double i; COLOR pixelcolor; int x,y; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); for(x=0; x<=255; x++) { for(y=0; y<=255; y++) { i++; assign(&pixelcolor,y|x&42,x|y&42,int(cos(deg2rad(x&y))*255)); glColor3ub(pixelcolor.r , pixelcolor.v, pixelcolor.b); glVertex2d(x,y); } } glEnd(); glFlush(); SDL_GL_SwapBuffers(); while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = false; } } SDL_Quit(); return 0; }
dont l'interpolation est la suivante : Code : C for(x=0; x<=255; x++)
{ for(y=0; y<=255; y++) { i++; assign(&pixelcolor,255-int(cos(deg2rad(x&y))*255),255-int(sin(deg2rad(x&y))*255),255-int(tan(deg2rad(x&y))*255)); glColor3ub(pixelcolor.r , pixelcolor.v, pixelcolor.b); glVertex2d(x,y); } } ++
Édité
le 05/07/2007 à 18:27:02
par Tix.
---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
Blackhole
|
# Posté le 05/07/2007 à 18:23:50 |
Bear, and forbear![]() Groupe : Membres |
Pas d'avis sur mes créations à moi ?
En voilà deux autre ... bien que plus petites, je trouve la dernière beaucoup plus jolies !
Notez que l'image est une symétrie ayant pour centre celui de l'image ! Ah, le mystère des mathématiques ... c'est toujours marrant d'écrire une opération au hasard et de voir ce que ca donne !
Édité
le 05/07/2007 à 18:25:59
par Blackhole
- Le moteur de templates le plus rapide, le plus pratique et le plus effiace ? Par ici ! - N'oubliez pas le de marquer votre message comme résolu ! - Pour trouver une aiguille dans une botte de foin, on met le feu à la botte et on passe un aimant dans les cendres. |
Tix.
|
# Posté le 05/07/2007 à 18:30:08 |
For ever G33K![]() Groupe : Membres |
blackhole, c'est un peu monochrome a mon goût, mais ton algo doit etre sympa, tu devrais essayer d'y bidouiller avec des couleurs et des interpollation rigolotes !
---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
cailleaze
|
# Posté le 05/07/2007 à 18:38:11 |
|
Groupe : Membres |
http://fractal.new.fr
http://cailleaze.free.fr/cailleazeDevelopment/Sierpinski.rar Le code n'est pas très intéressant vu que vous savez déjà afficher Mandelbrot et Sierpinski. |
bracor
|
# Posté le 05/07/2007 à 18:40:50 |
Ravioli.![]() Groupe : Membres |
Un truc vite fait :
Mon "code" no comporte ni algo ni formules, juste des conditions. Il est tout pouris, non optimisé, ça m'étonnerais qu'il intéresse quelqu'un, il ne s'inscrit pas dans les fractale, mais aprés tout on est sur le site du zéro hein
Code : PHP <?php
header ('Content-type: image/png'); $hauteur = 1000; $largeur = 1000; $R = 0; $V = 180; $B = 255; $image = imagecreatetruecolor($largeur,$hauteur); // Création de l'image vide ImageFilledRectangle($image, 0, 0, $hauteur, $largeur, imagecolorallocate($image, 255, 255, 255)); // On rempli l'arrière de blanc for($i=0;$i<($largeur);$i++) { // Ci desous le code pour larc en ciel if($R == 255) if($B >= 1) $B--; elseif($G == 255) $R--; else $G++; elseif($G == 255) if($B == 255) $G--; elseif($R == 0) $B++; else $R--; elseif($B == 255) if($R == 255) $B--; elseif($G == 0) $R++; else $G--; $coul = imagecolorallocate($image, $R, $G, $B); // Récupère la couleur ImageEllipse($image, $largeur/2, $largeur/2, $i, $i, $coul); // On fait notre piti rond =] } imagepng($image); ?> Vous pouvez changer la couleur de début (celle au centre) du moment que c'est une couleur simple, sans nuance. J'essayerais sûrement de faire quelquechose de vraiment "fractale" dès que j'en aurais le temps
|
asmanur
|
# Posté le 05/07/2007 à 18:41:59 |
![]() Groupe : Membres |
|
Zolix
|
# Posté le 05/07/2007 à 18:53:53 |
![]() Groupe : Membres |
Bonjour à tous
Vous avez tous fait des dessins supers sympas! Mais on a parler d'atelier, et comme déjà 2/3 ont demandé il me semble, j'ai regardé vite fait le topic et pourtant, je n'ai vu aucune explication ou tuto pour les personnes qui ne savent pas le faire! Merci d'avance au(x) sauveur(s) =)
|
tokita
|
# Posté le 05/07/2007 à 18:57:59 |
![]() Groupe : Membres |
|
Tix.
|
# Posté le 05/07/2007 à 18:58:24 |
For ever G33K![]() Groupe : Membres |
je veu bien expliquer un de mes code, mais, je ne sait pas si c'est bien intéressant. enfin bon.
j'édite quand j'ai commenté
Édité
le 05/07/2007 à 18:58:47
par Tix.
---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
Blackhole
|
# Posté le 05/07/2007 à 19:03:25 |
Bear, and forbear![]() Groupe : Membres |
Moi j'ai fait ca un peu au hasard, et ca marche plutôt pas mal
! J'ai une boucle de boucle pour tester chaque pixel de l'image, et selon une condition avec une formule mathématiques à l'intérieur, je dessine ( ou pas ) un pixel ...
Sur l'image suivante, je dessine plutôt des arc de cercle de rayon 10px. Un peu d'aléatoire par contre : le début et la fin de l'arc sont choisi au hasard. Mais on voit encore bien la symétrie, non ?
- Le moteur de templates le plus rapide, le plus pratique et le plus effiace ? Par ici ! - N'oubliez pas le de marquer votre message comme résolu ! - Pour trouver une aiguille dans une botte de foin, on met le feu à la botte et on passe un aimant dans les cendres. |
Tix.
|
# Posté le 05/07/2007 à 19:13:19 |
For ever G33K![]() Groupe : Membres |
blackhole, tu fais ca avec quoi ?
---------------------------------------------------------------> Tixlegeek (cc) Mon blog: www.tixlegeek.sup.fr Mon WebComic: www.geekstories.sup.fr Mon club-électronique online: www.e-generation.sup.fr |
Furzel
|
# Posté le 05/07/2007 à 19:29:59 |
|
Vive open arena ! Groupe : Membres |
Je vais expliquer vite fait le principe que j'ai utilisé pour mes 3-4 dessins :
_ tout d'abord le but va etre de remplir l'écran pixel par pixel d'ou l'utilisation des deux boucles for _ ensuite pour arriver a quelque chose de jolie on va jouer sur la couleur de chaque pixel en definissant la couleur en fonction des coordonée du pixel, par exemple le pixel situé aux cordonnées (42,42) donc x=42 et y=42 sera de couleur verte avec la definition de couleur qui suit en RGB : R = x-y G = x+y B = 0 en fait chaque opération formera une figure : exemple, l'image suivante a la configuration suivante : R = x+y G = x-y B = x*y Le resultat est le suivant :
Cet image est en fait le composé des trois couleurs : Rouge : x+y
Vert : x-y
Bleu : x*y
En esperant vous avoir éclairer
Sinon pour les fractales comme le triangle de Sierpinski, il faut reflechir a un algorythme capable d'afficher les bons triangles aux bons endroits, le tapis de Sierpinski est plus simple a réalisser pour commencer je pensse |
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.
832 Zéros connectés |
5 requêtes |
0.0501s (0.0182s)
