Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kolor cyfry w zależnośći od jej wartośći
xamrex
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Szukam skryptu który w zależności od wielkości/wartośći liczby koloruje ją na dany kolor.
np jeśli cyfra wynosi od 0 - 5 to kolor czerwony, jeśli powyżej 5 to niebieski
Chciałbym żeby kolor czerwony stopniowo stawał się coraz ciemniejszy (0 czerwony jasny 3 czerwony 5 czerwony ciemny)
Czy da się to napisać nie robiąc warunków?

Ten post edytował xamrex 7.06.2010, 14:27:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie podałeś języka... Ale w każdym jest to bardzo proste.
Go to the top of the page
+Quote Post
Van Pytel
post
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

Ostrzeżenie: (0%)
-----


Praktycznie w kazdym jezyku musisz uzyc wyrazen warunkowych- if

Ten post edytował Van Pytel 7.06.2010, 14:48:04
Go to the top of the page
+Quote Post
zend
post
Post #4





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


Pewnie chodzi Ci o to żeby nie trzeba było robić masy if'ow dla tych warunków, jest to proste, oprzyj to o tablice
Go to the top of the page
+Quote Post
xamrex
post
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


oczywiście chodzi o php
Napisałem coś takiego:


  1. $cyfra = 7;
  2. switch ($cyfra)
  3. {
  4. case ($cyfra)>5:
  5. echo "<font color='#000000'>$cyfra</font>";
  6. break;
  7.  
  8.  
  9. case ($cyfra)>1:
  10. echo <font color='#FF0000'>$cyfra</font>";
  11. break;
  12. }


Cytat
Pewnie chodzi Ci o to żeby nie trzeba było robić masy if'ow dla tych warunków, jest to proste, oprzyj to o tablice

Nie potrafię

Ten post edytował xamrex 7.06.2010, 15:11:08
Go to the top of the page
+Quote Post
zend
post
Post #6





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


  1. $data = array(0 => 'green' , 5 => 'more green' , 10 => 'more and more green');
  2.  
  3. function getColor($value , array $data)
  4. {
  5. $value = (int)$value;
  6. if(isset($data[$value]))
  7. return $data[$value];
  8.  
  9. $lastValue = null;
  10. foreach($data as $index => $color)
  11. {
  12. if((int)$index > $value)
  13. return $lastValue;
  14.  
  15. $lastValue = $color;
  16. }
  17.  
  18. return $lastValue;
  19. }
  20.  
  21. echo getColor(11 , $data);

Proszę

Ten post edytował zend 7.06.2010, 15:20:05
Go to the top of the page
+Quote Post
xamrex
post
Post #7





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


dostaję błąd
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in c:\usr\krasnal\www\public_html\color.php on line 4
4 linijka u mnie to
  1. function getColor($value , array $data)

Jednak z tego co tu widzę kolor nie będzie stopniowo przechodził (jeśli nie zrobi się założeń)
Czy jest sposób żeby kolor powoli się przemieniał w następny?
Go to the top of the page
+Quote Post
zend
post
Post #8





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


Kolorów to ja nie mam zamiaru za Ciebie wstawiać, google colors. Jeśli edytowałeś tablice to tam szukaj błędu
Go to the top of the page
+Quote Post
xamrex
post
Post #9





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Czyli ciężko zrobić tak by nie pisać odpowiednich założeń do tablic a kolory same płynnie przechodziły w inny ?
Go to the top of the page
+Quote Post
zend
post
Post #10





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


Cytat
Czyli ciężko zrobić tak by nie pisać odpowiednich założeń do tablic a kolory same płynnie przechodziły w inny ?
Ciężko ruszyć głową i kliknąć w link który podałem a potem znaleźć sobie jak przechodzą kolory w html'u i dodać? rgb
Go to the top of the page
+Quote Post
xamrex
post
Post #11





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $data = array(0 => '#000000' , 5 => '#FFFFFF' , 10 => '#FF0000');
  3.  
  4. function getColor($value , array $data)
  5. {
  6. $value = (int)$value;
  7. if(isset($data[$value]))
  8. return $data[$value];
  9.  
  10. $lastValue = null;
  11. foreach($data as $index => $color)
  12. {
  13. if((int)$index > $value)
  14. return $lastValue;
  15.  
  16. $lastValue = $color;
  17. }
  18.  
  19. return $lastValue;
  20. }
  21.  
  22. echo getColor(11 , $data);
  23. ?>

dostaje błąd
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in c:\usr\krasnal\www\public_html\color.php on line 4
My się chyba nie rozumiemy.
Jeśli chciałbym, zrobić 100 różnych odcieni to prawdopodobnie musiałbym definiować 100 wartości w $data. Chciałbym definiować TYLKO skrajne wartości.
np dla 1 i dla 100(50 np to będzie kolor między 1 a 100)

Ten post edytował xamrex 7.06.2010, 16:23:34
Go to the top of the page
+Quote Post
zend
post
Post #12





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


Cytat(xamrex @ 7.06.2010, 15:23:49 ) *
Szukam skryptu który w zależności od wielkości/wartośći liczby koloruje ją na dany kolor.
np jeśli cyfra wynosi od 0 - 5 to kolor czerwony, jeśli powyżej 5 to niebieski
Chciałbym żeby kolor czerwony stopniowo stawał się coraz ciemniejszy (0 czerwony jasny 3 czerwony 5 czerwony ciemny)
Czy da się to napisać nie robiąc warunków?

Trzeba było pisać odrazu o co chodzi, bo ja nie mam zamiaru pisać od nowa kodu tylko dlatego że nie potrafiłeś napisać co chcesz osiągnąć w pierwszym poscie. Dostałeś kod w którym podajesz zakres i od 0 do 5 masz jeden kolor, od 5 do 10 inny itd. Przedziały itak będziesz musiał zdefiniować

Tak wogóle to nie mam pojęcia skąd ten błąd, ja dałem sprawdzoną wersję, poza tym forum to nie parser

Ten post edytował zend 7.06.2010, 16:13:45
Go to the top of the page
+Quote Post
xamrex
post
Post #13





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Pierwszy post
Cytat
Szukam skryptu który w zależności od wielkości/wartośći liczby koloruje ją na dany kolor.
np jeśli cyfra wynosi od 0 - 5 to kolor czerwony, jeśli powyżej 5 to niebieski
Chciałbym żeby kolor czerwony stopniowo stawał się coraz ciemniejszy (0 czerwony jasny 3 czerwony 5 czerwony ciemny)
Czy da się to napisać nie robiąc warunków?

Możliwe że troszkę źle sprecyzowane
Czy jest jakaś istotna różnica między wsadzaniem tego do tabeli a robienie z tego z case?

Ten post edytował xamrex 7.06.2010, 16:14:39
Go to the top of the page
+Quote Post
zend
post
Post #14





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

Ostrzeżenie: (0%)
-----


W tablicy mniej się opiszesz, co znaczy też że kod jest lepiej napisany, szybszy, elastyczniejszy i prostszy w utrzymaniu
Go to the top of the page
+Quote Post
xamrex
post
Post #15





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

Ostrzeżenie: (0%)
-----


Jednak mi wyskakuje ten błąd.
Go to the top of the page
+Quote Post
z4jc3v
post
Post #16





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 22.06.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


niestety bez warunków sie nie obejdziesz (IMG:style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
misiek08
post
Post #17





Grupa: Zarejestrowani
Postów: 91
Pomógł: 6
Dołączył: 2.02.2008

Ostrzeżenie: (10%)
X----


Oj ludzie. Nie chcę mi się pisać takiego kodu, bo jest on bardzo prosty nawet dla początkującego, ale postaram się go dość mocno opisać.

Tworzysz tablicę, w której każda wartość to kolejna tablica, która ma 2 pola (klucze definiują przedział liczbowy, wartości - przedział kolorów).
Potem zamieniasz kolor html na RGB bądź HSV i na podstawie skrajnych kolorów i wielkości przedziału stopniujesz. Robiłem takie coś pół roku temu i najwięcej problemu było ze znajdowaniem przedziału, ale 2-3 dni i zrobisz.
Go to the top of the page
+Quote Post
beamer
post
Post #18





Grupa: Zarejestrowani
Postów: 9
Pomógł: 4
Dołączył: 31.07.2010

Ostrzeżenie: (0%)
-----


Po pierwsze, ponieważ to mój pierwszy post to siemka, mam na imię Marcin (IMG:style_emoticons/default/winksmiley.jpg)

Po drugie - nie róbcie jaj (IMG:style_emoticons/default/laugh.gif) nie wiem czy to taki banał czy coś źle zrozumiałem...

Czerwony ciemny->jasny:
  1. for ($a=0;$a<=100;$a++) echo '<a style="color:rgb('.($a*2+50).', 0, 0)">'.$a.'</a>';

Czerwony->niebieski:
  1. for ($a=0;$a<=100;$a++) echo '<a style="color:rgb('.(255-($a*2+27)).',0,'.($a*2+27).')">'.$a.'</a>';

...raptem cała linijka kodu.. z pętlą sprawdzającą.


Pozdrawiam

P.S. Mam nadzieję, że nie przekroczyłem czasu odkopywania tematów... (IMG:style_emoticons/default/winksmiley.jpg) może się komuś przyda.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 20:36