基于自定义范围的色标?以十六进制表示?

发布于 2024-09-16 03:08:37 字数 452 浏览 5 评论 0原文

如何以十六进制理想方式创建自定义色标?比如说从黄色到红色,取决于物体的高度?这是实现此目的的正确方法还是有更好的方法而无需最后进行转换?:

var r:int = 255;
var b:int = 0;
var maxHeight:int = 52;
var minHeight:int = 21;

var scale:int = 255 / (maxHeight-minHeight);

var g:int = 255 - ((object.height-minHeight) * scale);

var hexColor:uint = RGBtoHEX(r,g,b);

private function RGBtoHEX(r:int, g:int, b:int) :uint
{
return r << 16 | g << 8 | b;
}

How do I create a custom colour scale ideally in Hex? say from yellow to red, depending on the height of an object? is this a correct way to achieve this or is there a better way without having to convert it at the end?:

var r:int = 255;
var b:int = 0;
var maxHeight:int = 52;
var minHeight:int = 21;

var scale:int = 255 / (maxHeight-minHeight);

var g:int = 255 - ((object.height-minHeight) * scale);

var hexColor:uint = RGBtoHEX(r,g,b);

private function RGBtoHEX(r:int, g:int, b:int) :uint
{
return r << 16 | g << 8 | b;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我三岁 2024-09-23 03:08:37

这是一个函数,可让您根据 0-1 范围查找其他两个颜色值之间的颜色值。我认为它会满足你的需求

private function getBetweenColourByPercent(value:Number = 0.5 /* 0-1 */, highColor:uint = 0xFFFFFF, lowColor:uint = 0x000000):uint {
    var r:uint = highColor >> 16;
    var g:uint = highColor >> 8 & 0xFF;
    var b:uint = highColor & 0xFF;

    r += ((lowColor >> 16) - r) * value;
    g += ((lowColor >> 8 & 0xFF) - g) * value;
    b += ((lowColor & 0xFF) - b) * value;

    return (r << 16 | g << 8 | b);
}

Here is a function that allows you to find a colour value between two others based on a range of 0-1. I think it will meet your needs

private function getBetweenColourByPercent(value:Number = 0.5 /* 0-1 */, highColor:uint = 0xFFFFFF, lowColor:uint = 0x000000):uint {
    var r:uint = highColor >> 16;
    var g:uint = highColor >> 8 & 0xFF;
    var b:uint = highColor & 0xFF;

    r += ((lowColor >> 16) - r) * value;
    g += ((lowColor >> 8 & 0xFF) - g) * value;
    b += ((lowColor & 0xFF) - b) * value;

    return (r << 16 | g << 8 | b);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文