【问题标题】:Assigning color values in a range based on numberic values根据数值分配范围内的颜色值
【发布时间】:2014-01-01 23:31:38
【问题描述】:

Here's a link 对上一个问题的回答是我认为与我的问题有很大关系。我只是需要一些额外的说明。

我正在创建一个元素周期表,我想做的是设置一个颜色渐变,然后根据某个属性让各个方块在该渐变中具有一种颜色。例如,如果我的颜色渐变是从浅红色变为深红色(实际颜色现在不重要),并且我在表格中显示元素的熔点,我希望那些具有较低 bp 的较浅的红色,bp 较高的为较深的红色;换句话说,我需要将我的 bp 范围(大约 -400 到 +1500)映射到渐变范围内的颜色值。我不希望颜色均匀分布......如果两个元素的熔点接近相同,我希望它们几乎相同。这是一对一的通信。

在引用的问题中,我了解渐变是如何创建的,但我不明白的是如何获得熔点的值并使用函数生成该值落在渐变上的位置。我不明白这是在哪里完成的,或者我如何将我的值数组链接到颜色数组。

目前,我正在使用the function provided in the link,然后尝试获取输出并使用它来生成我的 div 的背景颜色。我使用的输入与最后一行中定义的“$Variable”相同。

<div id="Helium" style="background-color:<?php echo $color; ?>;" class="element group18 period1">
  <span class="number"> <?php echo $row[2]['atomicNumber']; ?> </span><br>
  <span class="symbol"><?php echo $row[2]['symbol']; ?></span><br>
  <span class="name"><?php echo $row[2]["$NameLanguage"]; ?></span><br>
  <span class="molmass"><?php echo $row[2]["$Variable"]; ?></span></div>

感谢您的所有帮助。我很感激时间。

【问题讨论】:

  • 只是一个有用的提示:&lt;br&gt; 已被弃用。为此使用 CSS。

标签: php css


【解决方案1】:

让我们设置一些任意的开始和结束值,比如纯红色 (#FF0000) 表示高熔点,纯蓝色 (#00FF00) 表示低熔点。

为简单起见,假设元素周期表的熔点值仅在 10 到 500 之间(我知道没有,但应该不会有很大的变化)。

我们可以通过这样做来绘制熔点的位置:

$mp=440;
$max=500;
$min=10;
$position=($mp-$min)/($max-$min);
$highColor=hexdec("FF0000"); //converts to decimal for multiplication
$lowColor=hexdec("00FF00");
$newColor=intval($position*($highColor-$lowColor)+$lowColor);
$newColorStr=dechex($newColor);

【讨论】:

  • 这对我来说是可以理解的。谢谢你。我想我知道我现在需要做什么。我很感激帮助。我想我需要做的就是把它放到一个函数中并输出值。
  • 嘿,我刚刚试了一下,我得到了结果!!!我需要自己弄清楚细节,但再次感谢您朝正确方向轻推!!!我欠你一个披萨!!
  • 披萨会很棒。如果有一天我带你去做,请不要感到惊讶!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 2016-09-18
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多