Dégradé aniné ! rectangulaire, polaire, ou linéaire. multi speed, et plus fluide

Soyez le premier à donner votre avis sur cette source.

Vue 6 292 fois - Téléchargée 395 fois

Description

Open Souce crée par ARNAL69130 et moi meme.

NB : La bibliothèque GD2 est nécessaire
pour utiliser les fonctions php de gestions
d'images, donc, dans php.ini,
décommenter la ligne extension=php_gd2.dll
  • Choix des deux couleurs par differentes methodes :

- entrer en hexa ou rvb
( si on en rentre qu'une, la 2eme sera l'inverse de la 1er )
- choix dans une liste, celle-ci modifiable avec .txt ( idem )
- alleatoire ( idem )
-plus abccamaieu
  • Choix de la taille
  • conservation des données du formulaire
  • Affichage :

- horizontal vertical diagonal
- animé en 5 images seconde et plus avec les fleches !!!
- polaire et le meme animé (dézoom)
- rectangle et le meme animé (zoom et dezoom)

Source / Exemple :


partie de polaire.php :

$dia=($l+$h)/2; //moyenne de la largeur et de la hauteur.
$t=pow($l, 2) +pow($h, 2);
$t=sqrt($t); // longueur de la diagonnal

//on dessine une ellipse pour chaque pixel entre 0 et $t, du centre vers l'exterieur.
for ($i=0; $i<$t; $i++)
	{
	   for ($j=0; $j<8; $j++) { // pour les 8 premiers cas, on decale les couleurs au un 8eme toujours du centre vers l'ext.
	   $cas = $j+1;
	   switch ($sens)
	   {
	   	   case $cas :
		   if ( $i < $j*$t/8 ) {
		   $k = -$i+$j*$t/8;  // on fait repartir le degrade dans l'autre sens pour ls zone plus proches du centre
		   } else {
		   $k = $i-$j*$t/8; // on decale de $j 8eme pour les zones exterieurs superieur à $j/8
		   } break;
	   }
	   }
	   for ($j=0; $j<8; $j++) { // pour les 8 cas suivants, on fait de meme mais en inversant les 2 couleurs ($t-$kprecedent).
	   $cas = $j+9;
	   switch ($sens)
	   {
	   	   case $cas :
		   if ( $i < $j*$t/8 ) {
		   $k = $t+$i-$j*$t/8;
		   } else {
		   $k = $t-$i+$j*$t/8;
		   } break;
	   }
	   }
	   $r = $c1['r'] + $k*($c2['r']-$c1['r'])/$t;
	   $v = $c1['v'] + $k*($c2['v']-$c1['v'])/$t;
	   $b = $c1['b'] + $k*($c2['b']-$c1['b'])/$t;
	   $c=imagecolorallocate($im,$r,$v,$b);
	
	imageellipse ($im, $l/2, $h/2, ($i*$l/$dia)+1, ($i*$h/$dia)+1,$c); // on dessine enfin
	}

Conclusion :


j'attends vos notes ou comms :

-les images sont calculés qu'une fois, puis enregistrés sur serveur,
et finalement affichés.

-mise en place assez longue pour les grandes images.

-mais utilisation du cpu assez faible environ 5% apres chargement.

-les images sont effacés à chaque execution de la page.

une version flash serait peu etre plus adapté, avis aux amateurs.

une evolution concernant la getion des utilisateurs sera faite :
-plusieurs utilisateurs sont permis grace au cache mais
-limiter à un utilisateur (compteur de connéctés) serait mieux pour le cpu

Merci de vos comms et notes. Bonne prog ! :]

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Ah ? vl'a qu'il cherche toutes les sources de stepibou pour se rattraper ^^
Messages postés
164
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
25 août 2008

Très bien. 9/10

Cordialement,
Kevin (kegi@hotmail.com)
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
N'hésitez pas à essayer d'accélérez un peu le timer, dans la fonction javascript :

function wait(temprestant,act){
...
setTimeout(act, 10); //par exemple
}
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Après l'avoir testé, je confirme qu'en créant les images dans des fichiers png ce script gagne beaucoup de fluidité, même avec des grandes dimensions !
Stepibou, je t'envoie ce que j'ai fait.
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Salut,
Bien trouvé le dégradé en polaire et l'animation.

Attention, il n'y a pas de 's' dans getElementById('texte1'). En effet, il n'y a qu'un seul élément pour un seul id ;o)

Sinon dans les fonctions js de index.php, je n'ai pas compris pourquoi tu as mis des '[0]' derrière les 'oSelects' ? Chez moi il faut que je les enlève pour que ça fonctionne.

Pour gagner en fluidité, peut-être que tu peux essayer de créer toutes les images qui vont servir pour un dégradé animé, par exemple en png, et ensuite tu les appelles en js. Ainsi tu évites de re-créer les mêmes images à chaque passage de la boucle. C'est juste une idée comme ça ;o)

A+
Arnaud
Afficher les 21 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.