1

2次元行列に基づいて有用なグラフを作成しようとしています。

ユーザーはマトリックスの交点をクリックし、いくつかの情報を入力して送信を押します。これが発生すると、イベントのタイムスタンプをログに記録します。

管理者がこの情報をグラフィカルに解釈できるようにしたいので、クリックしたタイミングに基づいて、マトリックスの各正方形にCSSの背景色を割り当てます。たとえば、最初にクリックされたアイテムの場合は淡い青、より正確にクリックされたアイテムの場合は濃い青。

私は頭を悩ませてきましたが、私の人生の間、それを行う方法を見つけることができません。問題は、クリックがいつでも任意の順序で発生する可能性があることです。

誰かが私を正しい方向に向けることができますか?

ここに画像の説明を入力してください

上記はImが達成しようとしていることであり、数字はタイムスタンプを表しています(1が最も早いタイムスタンプで、14が最も新しいタイムスタンプです)

4

2 に答える 2

3

CSS3 hsl はこれをとても簡単にします:
http://www.w3.org/TR/css3-color/#hsl-examples

于 2012-08-17T08:03:50.480 に答える
0

おきどけ、

これに対処するために私が選択した方法は、最初にグラデーション 16 進値のリストを生成することです。ここからグラデーションを生成しました。

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

次に、ここで開発した subval ソート関数を使用して、タイムスタンプで配列をソートしました

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

そして、位置に基づいて16進値を割り当てます...

これの簡単な表現はここにあります =>

<?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>"; 

?>

誰かがこれでひどく間違ったことを見ることができますか?

于 2012-08-17T09:24:21.983 に答える