使用php创建基于时间戳的渐变映射

时间:2012-08-17 07:11:34

标签: php background-color

我正在尝试基于二维矩阵创建有用的图形。

用户将点击矩阵的交叉点,填写一些信息并点击提交。发生这种情况时,我会记录事件的时间戳。

我希望管理员能够以图形方式解释这些信息,所以我想要做的是根据点击时间为矩阵的每个方块分配CSS背景颜色。例如,首先点击的项目为淡蓝色,深蓝色为蓝色。对于更方便点击的项目。

我一直绞尽脑汁,但对于我的生活,我无法想办法。问题是点击可能随时以任何顺序发生。

有人能指出我正确的方向吗?

enter image description here

以上就是我试图抓住的数字,数字代表时间戳(1是最早的时间戳,14是最近的时间戳)

2 个答案:

答案 0 :(得分:3)

CSS3 hsl使这非常简单:
http://www.w3.org/TR/css3-color/#hsl-examples

答案 1 :(得分:0)

Oki doke,

我选择处理这个问题的方法是首先生成一个渐变十六进制值列表,我从这里生成了渐变:

http://www.herethere.net/~samson/php/color_gradient/?cbegin=B5E1FF&cend=00092E&steps=6

然后,我使用此处开发的子级排序函数按时间戳对数组进行排序

http://www.firsttube.com/read/sorting-a-multi-dimensional-array-with-php/

然后我根据位置分配十六进制值...

这里的简单表示是=>

<?php
$test = array(
            array("test", 1),
            array("test2", 2),
            array("test4", 4),
            array("test5", 5),
            array("test3", 3),
            array("test6", 6)
            );


function subval_sort($a,$subkey) {
foreach($a as $k=>$v) {
    $b[$k] = strtolower($v[$subkey]);
}
asort($b);
foreach($b as $key=>$val) {
    $c[] = $a[$key];
}
return $c;
}

$test2 = subval_sort($test,'1'); 

foreach($test2 as &$t) {
if($t[1]==1){
    array_push($t, "B5E1FF");
    }
elseif($t[1]==2){$t[2]="96BDDC";}
elseif($t[1]==3){$t[2]="7899B9";}
elseif($t[1]==4){$t[2]="5A7596";}
elseif($t[1]==5){$t[2]="3C5173";}
elseif($t[1]==6){$t[2]="1E2C50";}
}

echo "<pre>";
print_r($test2);
echo"</pre>"; 

?>

任何人都可以看到任何可怕的错误吗?