Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung PHP

aus Prozentwert Farbwert ermitteln

Mitglied: Closed

Closed (Level 1) - Jetzt verbinden

14.09.2008, aktualisiert 16.09.2008, 7141 Aufrufe, 6 Kommentare

Hallo,

ich möchte gerne aus einem übergebenen Prozentwert (o bis 100) einen Farbwert ermitteln. 0 sollte rot sein und 100 sollte grün sein. Ich weiß nicht genau, wie ich die Abstufungen hinbekomme. Ich kann ja unmöglich 100 switch case Anweisungen machen. Gibt es da einen anderen Weg? Google gibt leider auch nichts vernünftiges raus, oder ich suche falsch

danke schon mal
Mitglied: SarekHL
14.09.2008 um 18:21 Uhr
ich möchte gerne aus einem übergebenen Prozentwert
(o bis 100) einen Farbwert ermitteln. 0 sollte rot
sein und 100 sollte grün sein.

Und dazwischen? Willst du den Weg über blau und violett gehen oder über orange und gelb? Oder einen direkten Rot-zu-Grün-Farbverlauf? Du mußt ja erst mal einen Algorhythmus entwicklen, der die linearen Werte von 0 bis 100 in die dreidimensionale RGB-Farbskala umsetzt.
Bitte warten ..
Mitglied: Closed
14.09.2008 um 18:31 Uhr
naja genau darum geht es. gibt es da eventuelle standard-lösungen für? das kann ja kein an den haaren herbeigezogenes problem sein. denke das sollte sicherlich öfters auftauchen.
würde wahrscheinlich einen rot zu grün farbverlauf wählen. natürlich dann von dunkelrot bis hellgrün.

und ich habe bisher keinen wirklichen ansatz, wie ich die prozentwerte in rgb werte umwandeln kann
Bitte warten ..
Mitglied: filippg
14.09.2008 um 18:48 Uhr
Hallo,

ich weiß nicht, ob da etwas taugliches rauskommt. Aber versuchen würde ich mal folgendes:
Farbangaben können ja in RGB gemacht werden (Rot, Grün, Blau), damit bieten sich die von dir gewählten Farben ja an. Im allgemeinen kann jeder Farbwert von 0-255 annehmen. Blau ignorieren wir jetzt erstmal. Dann kannst du einfach rechnen:
0% sollen Rot entsprechen, also R:255, G:0
100%: R:0, G:255.
50%: von jeder Farbe 50% des Maximalwerts, also R:255*0,5, G:255*0,5.
30%: 70% Rot, also 255*0,7, 30% Grün, also 255*0,3
Blau würde dabei erstmal außer Acht gelassen. Das könnte man einfach auf etwa 126 setzen, damit die Farben nicht zu dunkel sind, evtl muss man da noch etwas mehr Berechnungen machen (z.B. für 50% etwa auf voll setzen, für 0% und 100% auf null setzen, dazwischen irgendeine Hüllkurve).

Gruß

Filipp

Edit: Nur um das deutlich zu machen: Das ist ein Ansatz ohne Switch, sondern zum Rechnen:
Rot = 255 * (1-Prozent)
Grün = 255 * Prozent
Prozent als Zahlenwert angegeben, also 100% = 1
Bitte warten ..
Mitglied: filippg
14.09.2008 um 18:58 Uhr
Hallo,

übrigens habe ich keine Ahnung, wie du auf die Idee kommst, eine Suchmaschine würde nichts vernünftiges liefern. "farbverlauf berechnen" ergibt auf der ersten Seite jede Menge. Z.B. ein PHP-Tutorial: http://www.sansiba.de/tut_farbverlauf.htm und auch jede Menge weitere Diskussionen und Tutorials dazu. Interessanter Ansatz über Farbkreise z.B. http://www.pepto.de/projects/colorvic/

Gruß

Filipp
Bitte warten ..
Mitglied: Closed
14.09.2008 um 19:23 Uhr
super. vielen dank filipp. werde mir das direkt mal anschauen. meldemich dann wieder

Nachtrag: leider hat das auch nicht viel geholfen. ich werde jetzt zuder unschönen switch case lösung übergehen, da ich das doch recht dringend benötige. falls es doch eine bessere variante gibt, werde ich es darauf umstellen, aber vorerst belasse ich es dabei.

danke für die hilfe
Bitte warten ..
Mitglied: Guenni
16.09.2008 um 20:26 Uhr
Hi Closed,

der Ansatz von filipp ist doch zum Probieren schon mal ganz gut:
Der hundertste Teil von 255 ist 2,55, also die Abstufung je Prozentpunkt.
Wenn du nun einen Prozentwert 75% übergibst, so erhält Grün die 75x2,55 und
Rot 25x2,55. Kommazahlen sind natürlich schlecht, die Ergebnisse werden mit
round gerundet. Aus den Ergebnissen läßt du dir mit der Funktion sprintf die
Hex-Schreibweise für die HTML-Ausgabe erstellen. Einfaches Beispiel:
01.
<form action="" method="post"
02.
<input type="text" name="input"/> 
03.
<input type="submit" name="cmd"/> 
04.
</form> 
05.
<? 
06.
$schritt=2.55; 
07.
if(isset($_POST['cmd'])){ 
08.
 $gruen=$_POST['input']; 
09.
 $rot=100-$gruen
10.
 $color=sprintf("#%02X%02X00",round($rot*$schritt),round($gruen*$schritt)); 
11.
 echo "<h3><font color=$color>Text</font></h3><br><br>"
12.
13.
//Gesamter Farbverlauf 
14.
$i=0; 
15.
for($rot=100,$gruen=0;$rot>=0,$gruen<=100;$rot--,$gruen++){ 
16.
 $fcolor=sprintf("#%02X%02X00",round($rot*$schritt),round($gruen*$schritt)); 
17.
 if($color==$fcolor){ 
18.
  echo "<font color=$fcolor; size=+2>-->Text  </font>"
19.
 }else
20.
 			 echo "---<font color=$fcolor size=+2>  Text  </font>"
21.
22.
 $i++; 
23.
 if($i%10==0)echo "<br>"
24.
25.
?>

Gruß
Günni
Bitte warten ..
Ähnliche Inhalte
Festplatten, SSD, Raid
Speicherverbrauch ermitteln
Frage von YannoschFestplatten, SSD, Raid8 Kommentare

Hallo zusammen, habe einen 2k8R2 hier mit einer D Part von 724 GB frei sind nurnoch knapp 70 GB ...

Router & Routing
Netzwerkbelastung ermitteln
gelöst Frage von AzubineRouter & Routing6 Kommentare

Guten Morgen, wir haben einen Kunden wo es Probleme mit der Geschwindigkeit gibt. Sobal meh wie 2 Mitarbeiter online ...

Windows 7
Benötigtes Recht ermitteln
gelöst Frage von SarekHLWindows 713 Kommentare

Hallo zusammen, gibt es unter Windows 7 Professional eine Möglichkeit, zu ermitteln, auf welche Rechte (nicht NTFS-Berechtigungen) ein Programm ...

Batch & Shell
PS Script zum Ermitteln der Ordnerbesitzer
gelöst Frage von Mars123Batch & Shell2 Kommentare

Hallo zusammen, ich suche nach einem Powershell Script mit dem ich den Owner von Verzeichnissen ermitteln kann. Dabei sollen ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...