IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

tige/aiguille qui tourne


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut tige/aiguille qui tourne
    Bonsoir,

    voila j'aimerais faire une sorte de jauge comme dans un tableau de bord.

    j'ai vu cette exemple avec une boussole ici

    qui prend en paramètre "cap". En fonction du résultat l'aiguille change, elle tourne.

    quelqu'un aurait-il une idée pour réaliser une fonction dans le meme style ?

    EDIT:


    j'ai trouve un script mais je n'arrive pas à l'implementer. Pourtant je lit bien les instructions dans les commentaires. mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <?
    /*
    	PHP5 Class - PHPDialGauge	(August 15th 2007)
    	Author: Stephen Powis (spowis@fightjudge.com)
    	Purpose: A class to display a simple dial gauge,
    			 I put this together quick n' dirty for a project I was working on,
    			 since I didn't see anything else out there freely like it, I decided
    			 to stick it up for public use.
    			 
    			 You are free to use this class for any purpose you desire, but if you do 
    			 decide to use it, please leave the credits, and shoot me an email to let me
    			 know I helped someone out :)
    	
    	How to Use:
    	1. Pass the construct the following Values
    	$value 			(Integer)		-	The Value to display on the gauge
    	$display_value	(Boolean)		-	Turns on/off displaying the value in the gauge
    	$range_bottom	(Integer)		-	Min Value displayed on the gauge
    	$range_top		(Integer)		-	Max Value displayed on the gauge
    	
    	2. Send the proper Headers for displaying an image ie: <?php header("Content-Type: image/png"); ?>
     
    	3. Call one of the two output methods, display_gif or display_png
     
    	Notes:  This only works properly in PHP5, as PHP4's imagerotate strips out the transparency info.
    */
     
    /* Config Section */
    // Define these to the local filesystem path to the following included image files
    define(BLANK_DIAL,"gauge_blank.png");	// A blank gauge Image
    define(BLANK_IMG,"blank.png");			// A blank PNG Image
    define(NEEDLE,"gauge_needle.png");		// Our Needle Image
    define(DISPLAY_RANGE_VALUES,true);		// Turns on/off displaying the min/max values on the gauge
    define(Y_VAL_POS,110);					// Defines the vertical position to display the value on the gauge
     
    /* Don't Edit Below */
     
    class dial_gauge{
    	/* Private Vars */
    	var $gaugeIMG;
     
    	function dial_gauge($value,$display_value = true,$range_bottom=0, $range_top=100)
    	{
    		// Basic check of input
    		if ($range_top == 0) {
    			$range_bottom = 0;
    			$range_top = 100;
    		}
    		if ($range_bottom > $range_top) {
    			$tmp = $range_bottom;
    			$range_top = $range_bottom;
    			$range_bottom = $tmp;
    			unset($tmp);
    		}
     
    		// Load Blank Gauge Image
    		$this->gaugeIMG = imagecreatefrompng(BLANK_DIAL);
    		imageAlphaBlending($this->gaugeIMG, true);
    		imageSaveAlpha($this->gaugeIMG, true);
     
    		// Determine where to position Value Number on Gauge based on the number of digits it has to keep it centered
    		// This only really works for Integer values (no decimal places)
    		if ($display_value)		
    		{
    			if ($value < 10)
    				$x_pos = 80;	// 1 Digit
    			elseif ($value < 100 && $value >= 10)
    				$x_pos = 76;	// 2 Digits
    			elseif ($value >= 100 && $value < 1000)
    				$x_pos = 73;	// 3 Digits
    			elseif ($value >= 1000 && $value < 10000)
    				$x_pos = 70;
     
    			// Write Value onto Gauge
    			imagestring($this->gaugeIMG,3,$x_pos,Y_VAL_POS,$value,imagecolorallocate($this->gaugeIMG,0,0,0));
    		}
     
    		if (DISPLAY_RANGE_VALUES == true)
    		{
    			// Write Min/Max Values onto Gauge
    			imagestring($this->gaugeIMG,1,44,117,$range_bottom,imagecolorallocate($this->gaugeIMG,0,0,0));
    			imagestring($this->gaugeIMG,1,105,117,$range_top,imagecolorallocate($this->gaugeIMG,0,0,0));
    		}
     
    		// Prevent Gauge from Looping
    		if ($value > $range_top)
    			$value = $range_top;	
     
    		if ($value < $range_bottom)
    			$value = $range_bottom;
     
    		// Determine angle to rotate the needle based on the range and value
    		$angle = (($value - $range_bottom) * 260)/($range_top - $range_bottom);
     
    		// Pull in the Needle Image, enabling
    		$needleIMG = imagecreatefrompng(NEEDLE);
    		imageAlphaBlending($needleIMG, true);
    		imageSaveAlpha($needleIMG, true);
     
    		// get original Width and Height
    		$needle_x = imagesx($needleIMG);
    		$needle_y = imagesy($needleIMG);
     
    		// Rotate the Needle as needed
    		$needleIMG = imagerotate($needleIMG,-$angle,-1);		// max range from 0 -> -260
     
    		// Get new width and height
    		$new_x = imagesx($needleIMG);
    		$new_y = imagesy($needleIMG);
     
    		// Create blank Image from png
    		$new_img = imagecreatefrompng(BLANK_IMG);
    		imageAlphaBlending($new_img, true);
    		imageSaveAlpha($new_img, true);
     
    		// Crop the image, just leaving the center of it.
    		imagecopy($new_img,$needleIMG,0,0,round(($new_x-$needle_x)/2)+33,round(($new_y-$needle_y)/2)+33,$needle_x,$needle_y);
     
    		// Position it over the proper 'Pin Point' for the needle
    		imagecopy($this->gaugeIMG,$new_img,0,0,0,0,165,165);
     
    		return(true);
    	}
     
    	function display_gif()
    	{
    		// Display Completed Gauge
    		imagecolortransparent($this->gaugeIMG,imagecolorat($this->gaugeIMG,1,1));
    		imagegif($this->gaugeIMG);
    	}
     
    	function display_png()
    	{
    		// Display Completed Gauge
    		imagepng($this->gaugeIMG);
    	}
    }
    ?>
    voici mon erreur:

    L'image “http://127.0.0.1/gauge/phpdial_gauge.php” ne peut être affichée car elle contient des erreurs.
    Par avance merci a tous.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà il y a des erreurs de syntaxe dans le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    define('BLANK_DIAL',"gauge_blank.png");	// A blank gauge Image
    define('BLANK_IMG',"blank.png");			// A blank PNG Image
    define('NEEDLE',"gauge_needle.png");		// Our Needle Image
    define('DISPLAY_RANGE_VALUES',true);		// Turns on/off displaying the min/max values on the gauge
    define('Y_VAL_POS',110);					// Defines the vertical position to display the value on the gauge
    Sinon, montres nous de quelle manière tu appelles la classe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    j'ai changer comme tu m'as indiquer et je l'appel comme ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    require("phpdial_gauge.php");	
    $my_gauge = new dial_gauge(35,true,0,100);
    $my_gauge->display_png();
    j'ai toujours la meme erreure:

    L'image “http://127.0.0.1/gauge/example.php” ne peut être affichée car elle contient des erreurs.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    si tu te connectes sur http://127.0.0.1/gauge/example.php directement tu obtiens quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    la meme erreur.

    j'ai telecharger aussi un script j'ai la meme erreur.

    de la je me suis dis "mince j'ai peux etre oublié un extension PHP comme GD" mais en faite elle et bien activée.

    j'ai telecharger un 3 script artichow qui me fait des camembert et la c'est bien passer.

    donc je ne sais toujours pas c'est quoi... mais l'hypothese de la librairie est a exclure.

    EDIT:
    il semble bien que ce soit un problème au niveau de wamp car sur un serveur online je n'est plus le problème.

    j'ai fais un phpinfo() pour voir les différences et je n'en vois pas...

    un pb avec un module apache peux etre...

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu nous as montré ton script exemple.php entier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    mon code en entier

    qui fonctionne pas sous wamp mais sur un serveur online.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    /*  
    	PHP5 Class - PHPDialGauge	(August 15th 2007)
    	Author: Stephen Powis (spowis@fightjudge.com)
    	Purpose: A class to display a simple dial gauge (Not much to explain here right?)
    	
    	Notes:  Edit the Config Section in phpdial_gauge.php to Suit your Environment
    */
     
    	header("Content-Type: image/png"); 
    	require("phpdial_gauge.php");
     
     
     
    	$my_gauge = new dial_gauge(65,true,0,100);
    	$my_gauge->display_png();
     
     
     
    ?>

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Retire le header et appelle ton script pour voir ce qu'il retourne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    j'ai des erreurs sur le serveur online
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ‰PNG  ��� IHDR���¦���¦���Pˆôw�� �IDATxœì½w”eW}çûÙ{Ÿps®[9vunu+„d8€08`0öؘ÷–s˜÷–ÇöØX¶×šËöøy<66 ™h‚’„H2 !©¥î–ºÕ¹«+Ç›Ó9gï÷ǹUÝ*`©•±õ[ëtuº÷Ü}öþž_üî߯^•Wå•&òåÀ«òª<•¼ ÌWå)¯óUyEÊ«À|U^‘ò*0_•W¤X/÷�^iòž÷¾ûõ‰d:±¸°¸ØjÖ
    et en localhost j'ai

    L'image http://127.0.0.1/test/example.php ne peut être affichée car elle contient des erreurs.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    essai avec un autre navigateur.
    il y a fort a parier que des erreurs se glissent avant le début du flux de l'image.
    il faudrait les voir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    sur ie et safari j'ai un tout petit carre. il n'arrive pas a charger l'image. mais je penche vraiment pour un problème sur wamp.

    Est-il possible de transférer mon problème dans le forum WAMP ?

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je t'ai dit : appelle directement le script qui construit l'image, pas la page avec le code HTML
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    j'ai 2 pages:

    phpdial_gauge.php
    example.php”

    si je lance phpdial_gauge.php sans rien toucher j'ai page blanche.

    si a la fin de la page phpdial_gauge.php j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $my_gauge = new dial_gauge(11,true,0,100);
    $my_gauge->display_png()
    j'ai plein de caractères bizarres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    �PNG  ��� IHDR���������

  14. #14
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Est-ce que le fait que le script phpdial_gauge.php commence par <?, au lieu de <?php ne pourrait pas poser problème ?
    Fred

  15. #15
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    en fait j'ai bien <?php (j'avais omis de la mettre au tout début)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
     
    /*
    	PHP5 Class - PHPDialGauge	(August 15th 2007)....

  16. #16
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Et les fichiers suivants ? gauge_blank.png, blank.png, gauge_needle.png.
    Tu as pu les récupérer et les placer au bon endroit dans tes répertoires ?
    Fred

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je me repete mais le test c'etait :
    Retire le header et appelle ton script pour voir ce qu'il retourne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    En fait tout est dans un seul repertoire.

    Mais ce qui est vraiment marquant c'est que sans rien toucher et j'ai uploader:

    sur un serveur chez OVH: fonctionne pas.
    sur un serveur infomaniak : fonctionne.

    Tout les 2 en php5.

    c'est pour cela que je disait à sabotage que je pencher vers une problème dans la conf apache.

    Mais peux être que je me trompe.

  19. #19
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je me repete mais le test c'etait :

    j'ai des caractères bizarres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ���3���3n�(��.� d

Discussions similaires

  1. AMD athlon 3200+ qui tourne a 1100 mhz au lieu de 2200 mhz
    Par phoenix440 dans le forum Composants
    Réponses: 7
    Dernier message: 09/03/2005, 15h38
  2. [VB6] Un prog. qui tourne en continu en parallèle d'autre appli?
    Par jackazerty dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/08/2004, 19h24
  3. Pb de rand() qui tourne en boucle
    Par MadChris dans le forum MFC
    Réponses: 3
    Dernier message: 26/06/2004, 16h24
  4. Réponses: 5
    Dernier message: 25/06/2004, 15h57
  5. Réponses: 19
    Dernier message: 07/11/2003, 08h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo