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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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, 16h38
  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, 20h24
  3. Pb de rand() qui tourne en boucle
    Par MadChris dans le forum MFC
    Réponses: 3
    Dernier message: 26/06/2004, 17h24
  4. Réponses: 5
    Dernier message: 25/06/2004, 16h57
  5. Réponses: 19
    Dernier message: 07/11/2003, 09h10

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