Subversion Repositories Sites.tela-botanica.org

Rev

Rev 149 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 149 Rev 392
Line 845... Line 845...
845
    //------------------------------------------------------------------------------
845
    //------------------------------------------------------------------------------
Line 846... Line 846...
846
    
846
    
847
    function _donnerCouleur ($miniR, $miniV, $miniB, $mediumR, $mediumV, $mediumB, $maxiR, 
847
    function _donnerCouleur ($miniR, $miniV, $miniB, $mediumR, $mediumV, $mediumB, $maxiR, 
848
                            $maxiV, $maxiB, $mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs, $tablo_frequences, $nbre_frequences, $val, $formuleColoriage) 
848
                            $maxiV, $maxiB, $mini, $medium, $maxi, $nbre_valeurs, $ecart_type, $moyenne, $tablo_valeurs, $tablo_frequences, $nbre_frequences, $val, $formuleColoriage) 
849
    {
-
 
850
        if ($formuleColoriage == 'defaut'){
-
 
851
            if ($val == $maxi) {
-
 
852
                $couleur['R'] = $maxiR;
-
 
853
                $couleur['V'] = $maxiV;
-
 
854
                $couleur['B'] = $maxiB;
-
 
855
            }
-
 
856
            if ($val == $mini && $val != $maxi) {
-
 
857
                $couleur['R'] = $miniR;
-
 
858
                $couleur['V'] = $miniV;
-
 
859
                $couleur['B'] = $miniB;
-
 
860
            }
-
 
861
            if ($maxi/10 > $medium && $maxi/40 < $medium) {
-
 
862
                $diff = $medium - $mini;
-
 
863
                if ($diff > 0 && $val != $medium && $val != $maxi) {
-
 
864
                    $diffR   = $mediumR - $miniR;
-
 
865
                    $diffV   = $mediumV - $miniV;
-
 
866
                    $diffB   = $mediumB - $miniB;
-
 
867
                    $variationR =  round ( ($diffR/$diff ), 0 );
-
 
868
                    $variationV =  round ( ($diffV/$diff ), 0 );
-
 
869
                    $variationB =  round ( ($diffB/$diff ), 0 );
-
 
870
                    $couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
-
 
871
                    $couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
-
 
872
                    $couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
-
 
873
                }
-
 
874
                else if ($val == $medium) {
-
 
875
                    $couleur['R'] = $mediumR;
-
 
876
                    $couleur['V'] = $mediumV;
-
 
877
                    $couleur['B'] = $mediumB;
-
 
878
                }
-
 
879
            }
-
 
880
            else {
-
 
881
                $diff = $maxi - $mini;
-
 
882
                if ($diff > 0 && $val != $maxi && $val != $mini) {
-
 
883
                    $diffR = $maxiR - $miniR;
-
 
884
                    $diffV = $maxiV - $miniV;
-
 
885
                    $diffB = $maxiB - $miniB;
-
 
886
                    $variationR =  round ( ($diffR/$diff ), 0 );
-
 
887
                    $variationV =  round ( ($diffV/$diff ), 0 );
-
 
888
                    $variationB =  round ( ($diffB/$diff ), 0 );
-
 
889
                    $couleur['R'] = couleur_bornerNbre(($miniR + ($val * $variationR)), 0, 255);
-
 
890
                    $couleur['V'] = couleur_bornerNbre(($miniV + ($val * $variationV)), 0, 255);
-
 
891
                    $couleur['B'] = couleur_bornerNbre(($miniB + ($val * $variationB)), 0, 255);
-
 
892
                }
-
 
893
                else if ($diff == 0){
-
 
894
                    $couleur['R'] = $mediumR;
-
 
895
                    $couleur['V'] = $mediumV;
-
 
896
                    $couleur['B'] = $mediumB;
-
 
897
                }
-
 
898
            }
-
 
899
        }
-
 
900
        elseif ($formuleColoriage == 'ecart_type') {
-
 
901
            if ($ecart_type == 0) {
-
 
902
                    $couleur['R'] = $maxiR;
-
 
903
                    $couleur['V'] = $maxiV;
-
 
904
                    $couleur['B'] = $maxiB;
-
 
905
            }
-
 
906
            elseif ($ecart_type >= 1 && $ecart_type <= 15) {
-
 
907
                if ($val == $mini) {
-
 
908
                    $couleur['R'] = $miniR;
-
 
909
                    $couleur['V'] = $miniV;
-
 
910
                    $couleur['B'] = $miniB;
-
 
911
                }
-
 
912
                elseif ($val == $medium) {
-
 
913
                    $couleur['R'] = $mediumR;
-
 
914
                    $couleur['V'] = $mediumV;
-
 
915
                    $couleur['B'] = $mediumB;
-
 
916
                }
-
 
917
                elseif ($val == $maxi) {
-
 
918
                    $couleur['R'] = $maxiR;
-
 
919
                    $couleur['V'] = $maxiV;
-
 
920
                    $couleur['B'] = $maxiB;
-
 
921
                }
-
 
922
                else {
-
 
923
                    $dif_valeur_maxi_mini = $maxi - $mini;
-
 
924
                    $diffR = $maxiR - $miniR;
-
 
925
                    $diffV = $maxiV - $miniV;
-
 
926
                    $diffB = $maxiB - $miniB;
-
 
927
                    $variationR =  round ( ($diffR/$dif_valeur_maxi_mini ), 0 );
-
 
928
                    $variationV =  round ( ($diffV/$dif_valeur_maxi_mini ), 0 );
-
 
929
                    $variationB =  round ( ($diffB/$dif_valeur_maxi_mini ), 0 );
-
 
930
                    $couleur['R']=$miniR + ($val * $variationR);
-
 
931
                    $couleur['V']=$miniV + ($val * $variationV);
-
 
932
                    $couleur['B']=$miniB + ($val * $variationB);
-
 
933
                }
-
 
934
            }
-
 
935
            elseif ($ecart_type > 15) {
849
    {
936
                //Le tableau est trié de la plus petite à la plus grande clé.
850
	    //Le tableau est trié de la plus petite à la plus grande clé.
937
                ksort($tablo_frequences);
851
	    ksort($tablo_frequences);
938
                $i = 0;
852
	    $i = 0;
939
                foreach ($tablo_frequences as $cle => $valeur){
853
	    foreach ($tablo_frequences as $cle => $valeur){
940
                    //Nous cherchons la correspondance entre la valeur et la clé.
854
	        //Nous cherchons la correspondance entre la valeur et la clé.
941
                    if ($cle == $val) {
855
	        if ($cle == $val) {
942
                        //Pour faire le Rouge, Vert, Bleu
856
	            //Pour faire le Rouge, Vert, Bleu
943
                        $couleur['R'] = $miniR + ($i/$nbre_frequences) * ($maxiR - $miniR);
857
				$couleur['R'] = $miniR - round(($i * abs(($miniR - $maxiR)/$nbre_frequences)), 0);
944
                        $couleur['V'] = $miniV + ($i/$nbre_frequences) * ($maxiV - $miniV);
858
				$couleur['V'] = $miniV - round(($i * abs(($miniV - $maxiV)/$nbre_frequences)), 0);
945
                        $couleur['B'] = $miniB + ($i/$nbre_frequences) * ($maxiB - $miniB);
-
 
946
                    }
-
 
947
                    $i++;
859
				$couleur['B'] = $miniB - round(($i * abs(($miniB - $maxiB)/$nbre_frequences)), 0);
948
                }
860
			}
949
            }
861
	        $i++;
Line 950... Line 862...
950
        }
862
	    }
Line 951... Line 863...
951
        
863