颜色
绘制几何图形时,通过给几何对象的style属性设置color 或 fillColor 属性可指定几何图形边框效果和填充效果,而且这两个属性除了可以 使用颜色 外,还可以指定为 渐变对象 或 图案/纹理对象。
颜色格式
在图形开发中,色彩的运用是非常重要的,它能直接影响到图形的美观度和用户体验。 AnyGraph 采用 HTML颜色 作为颜色应用的基础。
HTML颜色 由红色、绿色、蓝色混合而成,其颜色值由一个十六进制符号来定义,这个符号由红色、绿色和蓝色的值组成(RGB)。各颜色的最小值是0(十六进制:#00)。最大值是255(十六进制:#FF)。三种颜色 红,绿,蓝的组合从0到255,一共可表达1600万种不同颜色(256 x 256 x 256)。除了颜色值之外,HTML颜色 还可通过 透明度 描述元素的可见程度,可以用来实现层次感、透视效果等。
在使用 HTML 颜色时可采用命名色、十六进制颜色、RGB颜色等几种格式,常见的16色颜色如下表所示:
| 颜色名称 | 效果 | Hex | RGB |
|---|---|---|---|
| black | #000000 | rgb(0,0,0) | |
| silver | #C0C0C0 | rgb(192,192,129) | |
| gray | #808080 | rgb(128,128,128) | |
| white | #FFFFFF | rgb(255,255,255) | |
| maroon | #800000 | rgb(128,0,0) | |
| red | #FF0000 | rgb(255,0,0) | |
| purple | #800080 | rgb(128,0,128) | |
| fuchsia | #FF00FF | rgb(255,0,255) | |
| green | #008000 | rgb(0,128,0) | |
| lime | #00FF00 | rgb(0,255,0) | |
| olive | #808000 | rgb(128,128,0) | |
| yellow | #FFFF00 | rgb(255,255,0) | |
| navy | #000080 | rgb(0,0,128) | |
| blue | #0000FF | rgb(0,0,255) | |
| teal | #008080 | rgb(0,128,128) | |
| aqua | #00FFFF | rgb(0,255,255) |
有关颜色的更多内容,请参见 图形开发实战课程进阶篇: 图形样式
颜色使用
下面这个示例展示了应用 “颜色” 进行描边和填充的效果:
源代码如下:
1 | <script type="module"> |
颜色工具类
AnyGraph 提供了一个通用的颜色工具类ColorUtil,提供了将上述各种颜色格式转换为Color类型格式的功能,也提供了将 Color类型格式转换为上述各种颜色格式的功能,还提供了生成随机色,生成色带等功能,所提供的方法如下表所示:
| 名称 | 说明 |
|---|---|
| toRgb() | 转换为rgb()字符串颜色值 |
| toHex() | 转换为16进制字符串颜色值 |
| toHSL() | 转换为HSL颜色对象 |
| toHSV() | 转换为HSV颜色对象 |
| toHSB() | 转换为HSB颜色对象 |
| static fromHex(hex) | 将16进制颜色字符串 转换为Color对象 |
| static fromString(str) | 将字符串颜色转换为Color对象 |
| static fromHSL(hslColor) | 将HSL的字符串颜色转换为Color对象 |
| static isValidColor(color) | 判断一个颜色值是否合法 |
| static random() | 生成随机色 |
| static band(color, count) | 生成色带 |
下面这些代码展示了 Color 类中的类型转换功能:
1 | console.info(Color.fromString("#FFF").toString()); |
Color 类中包含了一个静态方法 band(color, count),该方法可生成指定颜色的色带值。下图为生成的 deeppink 色带。

搜索