彩色规模的基础上定制的范围是多少?十六进制? [英] Colour scale based on custom range? in HEX?
本文介绍了彩色规模的基础上定制的范围是多少?十六进制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在十六进制创建一个自定义色阶理想?说由黄变红,这取决于一个对象的高度?这是实现这一正确的方式还是有,而无需将其转换在最后一个更好的方法:
变种R:INT = 255;
变种B:INT = 0;
VAR了maxHeight:INT = 52;
VAR了minHeight:INT = 21;
VAR规模:INT = 255 /(了maxHeight-了minHeight);
VAR G:INT = 255 - ((object.height-了minHeight)*等级);
VAR hexColor:UINT = RGBtoHEX(R,G,B);
私有函数RGBtoHEX(R:INT,G:INT,B:INT):UINT
{
返回为r< 16 | G<< 8 | B:
}
解决方案
下面是一个可以让你找到两个人基于一系列的0-1之间的颜色值。我认为这将满足您的需求。
私有函数getBetweenColourByPercent(价值:数= 0.5 / * 0-1 * /,增强色:UINT = 0XFFFFFF,lowColor:UINT = 0x000000处):UINT {
变种R:UINT =增强色>> 16;
VAR G:UINT =增强色>> 8安培; 0xFF的;
变种B:UINT =增强色和放大器; 0xFF的;
R + =((lowColor>> 16) - R)*值;
克+ =((lowColor>→8&安培;为0xFF) - 克)*值;
B + =((lowColor&安培; 0xFF的) - B)*值;
返回(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;
}
解决方案
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);
}
这篇关于彩色规模的基础上定制的范围是多少?十六进制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文