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 ... 11 12 13 14 | |||||
| Auteur | Message | ||||
|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||||
| Page : Précédente 1 2 3 ... 11 12 13 14 | |||||
lastsseldon
|
# Posté le 02/06/2008 à 01:34:47 | ||||
![]() Groupe : Membres |
Reprise du dernier message de la page précédente :
Très bonne idée ![]() Une implémentation naïve en Forth (pour changer un peu) reposant sur le triangle de Pascal : Code : Autre
Code : Console
|
||||
diacred
|
# Posté le 02/06/2008 à 06:37:32 | ||||
Pastafarianism rules.![]() Groupe : Membres |
![]() En remplacant le contenu des prints (en rajoutant des espaces), on arrive aussi a trouver des triangles equilibres niveau hauteur largeur. Par contre arrive pas a depasser 128 comme puissance de deux, mon ecran suis pas ![]() Edit : Ca a l'air assez complexe d'un point de vue syntaxique le Forth.
Édité
le 02/06/2008 à 06:39:29
par diacred
Clavier Qwerty, pas d'accents. Donc... Désolé pour les fautes. Capoeira... is life :), site de l'assoc' ©Diacred ... L'amour est la principale cause de l'achat d'alcool ... Et s'il t'arrive de croiser Alice, Agnès ou Cassandra; rappelle leur que leur nom rime avec syphilis, herpès et sida. |
||||
lastsseldon
|
# Posté le 22/07/2008 à 22:50:43 | ||||
![]() Groupe : Membres |
Bonsoir,
Un petite expérience avec le dithering : Le principe est de représenter une image en niveau gris en utilisant uniquement deux couleurs, le noir et le blanc (la nuance se fait donc grâce à la juxtaposition des pixels). ![]() ![]() Code : OCaml
|
||||
zulon
|
# Posté le 23/07/2008 à 08:52:17 | ||||
The shrieker shrieks.![]() Groupe : Membres |
Wow, c'est vachement bien réussi
. La deuxième image n'utilise vraiment que du noir et du blanc ? C'est assez impressionnant.Mais comment as-tu trouvé les bonnes valeurs pour points ? Par l'expérimentation, ou via des calcules compliqués ? (heureusement que tout le monde n'oublie pas Cod'Art, je trouve vraiment rien à montrer moi ).
|
||||
lastsseldon
|
# Posté le 23/07/2008 à 13:57:07 | ||||
![]() Groupe : Membres |
|||||
lastsseldon
|
# Posté le 24/07/2008 à 14:37:20 | ||||
![]() Groupe : Membres |
Je viens de réécrire mon code Forth précédent pour qu'il soit moins naif :
Code : Autre
Et de coder une variante du dithering : Cette fois, le principe consiste à utiliser des cercles plus ou moins grand pour représenter les nuances de gris. Le résultat est intéressant, surtout si on se place à une certaine distance de l'image (ou si on la redimmensionne pour qu'elle soit plus petite) : les cercles disparaissent ! ![]() Halftone Code : OCaml
|
||||
Krankkatze
|
# Posté le 16/09/2008 à 20:43:12 | ||||
Ob-la-di, Ob-la-da![]() Groupe : Membres |
J'ai pour ma part codé un flocon de Koch avec Tkinter (trois semaines après mon arrivée, ma famille d'accueil cède et passe le vieil ordinateur familial sous Linux. J'étais tout heureux de retrouver Python et puis j'avais trouvé mon algo en bio alors je l'ai implémenté avec la première lib que j'ai installée). Deux choses : d'abord c'est très chiant, le truc est hyper long. J'ai pompé le truc de Last avec t.speed('fastest') mais il faut quand même attendre et c'est pas marrant donc si quelqu'un a une idée de comment pas attendre du tout ca serait cool. Et deuxièmement je sais pas comment redimentionner cette stupide fenêtre, mais comme ca me désole de faire un truc tout riquiqui et ben je fais quand même mon truc sur 729 pixels de large. Il faut donc agrandir la fenêtre, si quelqu'un sait comment pas avoir à le faire pareil je serais heureux de tirer un enseignement de son savoir.
Mon algo est un peu bizarre je suppose, étant donné que je pars de l'élément de base (un segment de longueur 729/(iterations*3) que j'écris "F" (pour t.forward() ) dans une chaîne, et ensuite à chaque itération je fais "a = a+"L"+a+"R"+a+"L"+a", c'est à dire qu'en gros, la nouvelle chaine est l'ancienne chaine, tourner à gauche (t.left() ), l'ancienne chaîne, tourner à droite (t.right() ), l'ancienne chaîne, tourner à gauche, l'ancienne chaîne. Ensuite j'interprête ma chaîne. Voilà le rendu avec 6 itérations (c'est le max que je peux faire vu que ca me fait 1 pixel par segment. Sinon il faut que vous ayez un écran de plus 2147 pixels de large, chaud) : ![]() Et voilà le code : Code : Python
Vous pouvez le télécharger en version user-friendly (c'est à dire avec "Drucken Sie auf Enter um das Programm zu beenden. " à la fin au lieu d'un raw_input() vide, c'était pour faire genre auprès de ma famille d'accueil et tout) ici. |
||||
wgmpgp
|
# Posté le 16/09/2008 à 20:58:28 | ||||
|
Rotoclap true fan Groupe : Membres |
Tu devrais tenter de faire pareil avec une lib genre Cairo qui supporte des tailles de lignes < 1px (vectoriel, toussa). En plus turtle (et pas Tkinter), c'est moche.
Membre de l'association Prologin - Contributeur à Pygments - Administrateur des serveurs Noobulous - Auteur de news - Un projet intéressant La saucisse orange de rotoclap coûte 5900 euros. 흣 ![]() |
||||
Krankkatze
|
# Posté le 17/09/2008 à 18:56:12 | ||||
Ob-la-di, Ob-la-da![]() Groupe : Membres |
Comment on peut supporter des tailles de lignes < 1 px ? enfin aucun intérêt vu qu'on peut pas l'afficher de toute manière, si ? :-'
|
||||
coucou747
|
# Posté le 17/09/2008 à 19:03:18 | ||||
![]() Groupe : Membres |
krankkatze, tu peux zoomer dessus ?
|
||||
Krankkatze
|
# Posté le 17/09/2008 à 20:48:55 | ||||
Ob-la-di, Ob-la-da![]() Groupe : Membres |
Bah, avec une fractale ...
Je suis en train d'installer la lib, je vais voir ce que je peux faire. Edit : j'ai pas trouvé de document sur comment utiliser Cairo comme une tortue ![]() Y'a moyen de faire ou pas ? Parce que sinon ca va etre galere vu que mon algo est basé sur le fait qu'on dessine des traits et des angles :S Sinon le pere de ma corres' m'a déniché le bouquin de Mandelbrot en allemand J'ai trouvé une fractale qui a l'air chouette mais je sais pas comment ca s'appelle et comment trouver des infos dessus (du genre si y'a des trucs a respecter pour que ca marche). C'est genre a la base on a un rectangle vertical, et à son sommet y'en a deux (dont j'arrive pas a savoir s'ils sont identiques ou pas, puisque leur extremité se fond dans le premier rectangle, et en plus y'en a un qui est plus grand que l'autre), qui partent a gauche et à droite, et ainsi de suite. Ca finit par faire un arbre qui est assez joli. Je ne l'ai pas trouvée dans la liste de fractales par dimension de Hausdorff de Wikipédia. Quelqu'un a une idée ?
Édité
le 17/09/2008 à 21:04:11
par Krankkatze
|
||||
wgmpgp
|
# Posté le 17/09/2008 à 21:43:22 | ||||
|
Rotoclap true fan Groupe : Membres |
C'est une variante de l'arbre de Pythagore, déja traité dans ce topic (notamment par moi en Ocaml en changeant les rectangles par des vecteurs, ça rendait plutôt pas mal).
Pour Cairo à utiliser comme une tortue... t'as des méthodes moveto ou des trucs du genre (ou ptet lineto) qui te permettent de te déplacer en fonction de ta position actuelle. 'fin j'ai pas utilisé depuis longtemps. J'ai des codes Ocaml qui utilisent Cairo sur http://ln-s.net/2EEN si tu veux t'inspirer (c'est les .html). Membre de l'association Prologin - Contributeur à Pygments - Administrateur des serveurs Noobulous - Auteur de news - Un projet intéressant La saucisse orange de rotoclap coûte 5900 euros. 흣 ![]() |
||||
Krankkatze
|
# Posté le 17/09/2008 à 22:15:16 | ||||
Ob-la-di, Ob-la-da![]() Groupe : Membres |
Hmmm en fait spas tout à fait comme ton truc avec les vecteurs, parce que les rectangles partent à la perpendiculaire du rectangle de l'itération d'avant. Demain je ferai peut-être un scan pour être plus explicite
|
||||
XT95
|
# Posté le 29/09/2008 à 21:48:17 | ||||
|
Groupe : Membres |
Allez hop, j'apporte ma pierre a l'édifice
![]() Technique : - raycasting - objet 3d procedural - brouillard lineaire - rendu basique d'éclairage ( produit scalaire ) EDIT : si certains s'amusent à trouver de jolies formes mathématiques, n'hésitez pas a poster un screen et la formule .![]() main.cpp Code : C++
tooh.h Code : C++
Édité
le 30/09/2008 à 18:58:08
par XT95
|
||||
wgmpgp
|
# Posté le 29/09/2008 à 22:02:37 | ||||
|
Rotoclap true fan Groupe : Membres |
Rien à dire, tout simplement superbe. Ah si, ça manque d'antialiasing.
|
||||
XT95
|
# Posté le 29/09/2008 à 22:07:01 | ||||
|
Groupe : Membres |
Effectivement, un ptit peu d'antialiasing ne ferrait pas de mal =) !
Je rajouterais ca demain ! |
||||
zulon
|
# Posté le 30/09/2008 à 12:07:13 | ||||
The shrieker shrieks.![]() Groupe : Membres |
Le rendu est beau, surtout pour un code aussi court
. Bien que je ne comprenne pas très bien comment tu as fait. C'est quoi du "raycasting" ? Il me semblait que le but de ce topic était aussi d'expliquer comment on arrivait à faire des trucs cools .Le code en lui-même, par contre, est assez imbuvable. 5 lignes de commentaires pour annoncer une fonction, je trouve ça excessif :/ . Surtout quand ces mêmes commentaires ne donnent aucune indication supplémentaire sur ladite fonction. Que fait la obj par exemple ? Ça a l'air d'être le cœur du programme (elle est souvent appelée), et il n'y a pas vraiment d'explications. Et en plus, les fonctions sont définies dans le header, et ça c'est moche. Au passage, fabs, fmax et fmin sont déclarées dans math.h (cmath ici), pourquoi les réécrire ?
|
||||
XT95
|
# Posté le 30/09/2008 à 19:23:24 | ||||
|
Groupe : Membres |
Citation : zulon
Le rendu est beau, surtout pour un code aussi court . Bien que je ne comprenne pas très bien comment tu as fait. C'est quoi du "raycasting" ? Il me semblait que le but de ce topic était aussi d'expliquer comment on arrivait à faire des trucs cools .En fait, je viens de vérifier sur le wiki, ca s'appelerait plutot du rendu par voxel .. Explication : Code : Autre
Citation : zulon Le code en lui-même, par contre, est assez imbuvable. 5 lignes de commentaires pour annoncer une fonction, je trouve ça excessif :/ . Surtout quand ces mêmes commentaires ne donnent aucune indication supplémentaire sur ladite fonction. Il n'y a en fait que 3 lignes, c'est lors du paste avec le zcode que ce "bug" est apparu.. Lorsque l'on a de nombreuses fonctions dans un fichier, ces 3 lignes font bien "ressortir chaque fonction", chacun ses habitudes =) Citation : zulon Que fait la obj par exemple ? Ça a l'air d'être le cœur du programme (elle est souvent appelée), et il n'y a pas vraiment d'explications. La fonction obj est l'objet 3D que l'on veut afficher, elle prend en argument une position dans l'espace et renvoit une intensité entre 0 et 1. Si l'intensité est superieur a 0.5 par exemple (dans le cas de mon code 0.6), il y a présence de l'objet (et donc on calcul l'intensité lumineuse de ce point toussa). Elle est appelé souvent : pour connaitre si le point testé fait partit de l'objet ou non, et pour le calcul de la normal de ce point. Citation : zulon Et en plus, les fonctions sont définies dans le header, et ça c'est moche. En meme temps vu la taille du projet j'ai pas trouvé l'utilité de faire un .cpp en plus .. Surtout que c'est juste 2,3 fonctions "outil" pas vraiment le code en lui meme. Citation : zulon Au passage, fabs, fmax et fmin sont déclarées dans math.h (cmath ici), pourquoi les réécrire ?Effectivement, j'ai tenté abs (sans le f)et ca m'avait rien donné, alors j'en ai écrit une vite fait =]. C'est corrigé.
Édité
le 30/09/2008 à 19:29:19
par XT95
|
||||
nax
|
# Posté le 11/11/2008 à 13:14:02 | ||||
![]() Groupe : Membres |
Bon je remonte un peu le sujet j'ai découvert hier et voilà mes premiers résultats :
Du classique mais je passerait à plus élaboré / original quand je serais plus à l'aise avec Ocaml ![]() ![]() Sierpinski : Secret (cliquez pour afficher) Code : OCaml
Mandelbrot : ![]() Code : Secret (cliquez pour afficher) Code : OCaml
XT95 : Comment as tu écrit la fonction obj() ?
Édité
le 11/11/2008 à 17:28:51
par nax
|
||||
bluestorm
|
# Posté le 11/11/2008 à 15:40:55 | ||||
dont ask to ask![]() Groupe : Membres |
Code : OCaml
Code : OCaml
Et il sert à quoi ce truc, vu que t'as le fill_poly ensuite ? |
||||
nax
|
# Posté le 11/11/2008 à 15:43:54 | ||||
![]() Groupe : Membres |
J'ai rajouté fill_poly après et j'ai pas enlevé les lignes. J'ai transposé le code de XT95 en Ocaml et s'obtient des dessins étranges :D, ce doit être amusant de modifier la fonction obj pour varier les formes. ![]() Secret (cliquez pour afficher) Code : OCaml
| ||||
