Three 颜色Color

构造器(Constructor)

Color( r : Color_Hex_or_String, g : Float, b : Float )

r - (可选参数) 如果参数g和b被定义,则r表示颜色中的红色分量。 如果未被定义,r可以是一个十六进制 hexadecimal triplet 颜色值或CSS样式的字符串或一个Color实例。
g - (可选参数) 如果被定义,表示颜色中的绿色分量。
b - (可选参数) 如果被定义,表示颜色中的蓝色分量。

注意使用十六进制 hexadecimal triplet 定义一个颜色在three.js中是标准的方法,而且其余 文档也将会使用这个方法。

当所有参数被定义时,r是红色分量,g是绿色分量,b是蓝色分量。

  • 它可用一个十六进制 hexadecimal triplet 值表示颜色(推荐)。
  • 它可以是一个另一个颜色实例。
  • 它可以是另外一个CSS样式。
  • 'rgb(250, 0,0)'
  • 'rgb(100%,0%,0%)'
  • 'hsl(0, 100%, 50%)'
  • '#ff0000'
  • '#f00'
  • 'red'
var color = new THREE.Color(); 
var color = new THREE.Color( 0xff0000 ); 
var color = new THREE.Color("rgb(255, 0, 0)"); 
var color = new THREE.Color("rgb(100%, 0%, 0%)");var color = new THREE.Color( 'skyblue' ); var color = new THREE.Color("hsl(0, 100%, 50%)"); var color = new THREE.Color( 1, 0, 0 );`

属性(Properties)

# .isColor : Boolean

用来检测此类或者派生类是否为颜色。默认值是 true

不应该去改变这个值,因为它在内部用于优化。

# .r : Float

红色通道的值在0到1之间。默认值为1。

# .g : Float

绿色通道的值在0到1之间。默认值为1。

# .b : Float

蓝色通道的值在0到1之间。默认值为1。

方法(Methods)

# .add ( color : Color ) : Color

将给定颜色的RGB值添加到此颜色的RGB值。

# .addColors ( color1 : Color, color2 : Color ) : Color

将此颜色的RGB值设置为 color1 和 color2 的RGB值之和。

# .addScalar ( s : Number ) : Color

给现有的RGB值都加上 s 。

# .clone () : Color

返回一个与当前颜色的 r, g 和 b 相同的颜色。

# .copy ( color : Color ) : Color

从 color 中拷贝 r, g 和 b 值到当前的颜色。

# .convertGammaToLinear ( gammaFactor : Float ) : Color

gammaFactor - (可选参数). 默认值 2.0.

通过取颜色 r, g and b 的 gammaFactor 次方将颜色从伽马空间转换成线性空间。

# .convertLinearToGamma ( gammaFactor : Float ) : Color

gammaFactor - (可选参数). 默认值 2.0.

通过取颜色 r, g and b 的 1/gammaFactor 次方将颜色从线性空间转换成伽马空间。

# .convertLinearToSRGB () : Color

将此颜色从线性空间转换成sRGB空间。

# .convertSRGBToLinear () : Color

将此颜色从sRGB空间转换成线性空间。

# .copyGammaToLinear ( color : Color, gammaFactor : Float ) : Color

color — 需要拷贝的颜色。
gammaFactor - (可选参数). 默认值为 2.0.

将传入的 color : Color 从伽马空间转换到线性空间然后复制给当前颜色。

# .copyLinearToGamma ( color : Color, gammaFactor : Float ) : Color

color — 需要拷贝的颜色。
gammaFactor - (可选参数). 默认值为 2.0.

将传入的 color : Color 从线性空间转换到伽马空间然后复制给当前颜色。

# .copyLinearToSRGB ( color : Color] ) : Color

color — 需要拷贝的颜色。
将传入的 color : Color 拷贝给当前颜色,然后将当前颜色从线性空间转换到sRGB空间。

# .copySRGBToLinear ( color : Color ) : Color

color — 需要拷贝的颜色。
将传入的 color : Color 拷贝给当前颜色,然后将当前颜色从sRGB空间转换到线性空间。

# .equals ( color : Color ) : Boolean

将 color : Color 的RGB值与该对象的RGB值进行比较。如果它们都是相同的,返回true,否则返回false。

# .fromArray ( array : Array, offset : Integer ) : Color

array - 格式为 [ r, g, b ] 的数组 Array。
offset - 数组中可选偏移量

从格式为[ r, g, b ]的数组数据中来创建Color对象。

# .getHex () : Integer

返回此颜色的十六进制值。

# .getHexString () : String

将此颜色的十六进制值作为字符串返回 (例如, 'FFFFFF')。

# .getHSL ( target : Object ) : Object

target — 结果将复制到这个对象中。向对象添加h、s和l键(如果不存在)。

将此颜色的 r, g 和 b 值转换为 HSL格式,然后返回一个格式如下的对象: { h: 0, s: 0, l: 0 }

# .getStyle () : String

以CSS样式字符串的形式返回该颜色的值。例如:“rgb(255,0,0)”。

convertGammaToLinear() 将当前颜色从伽马色彩空间转换到线性色彩空间。
convertLinearToGamma() 将当前颜色从线性色彩空间转换到伽马色彩空间。
getHex() 以十六进制值形式从颜色对象中获取颜色值:334555。
getHexString() 以十六进制字符串形式从颜色对象中获取颜色值:“1d02cc”。
getStyle() 以 css 值的形式从颜色对象中获取颜色值:“rgb(2, 0, 0)”。
getHSL(optionalTarget) 以 HSL 值的形式从颜色对象中获取颜色值。如果提供了 optionTarget 对象, Three.js 将把 h、s 和 l 属性设置到该对象。
offsetHSL(h, s, l) 将提供的 h、s 和 l 值添加到当前颜色的 h、s 和 l 值上。
add(color) 将 r、g 和 b 值添加到当前颜色。
addColors(color1, color2)

# .lerp ( color : Color, alpha : Float ) : Color

color - 用于收敛的颜色。
alpha - 介于0到1的数字。

将该颜色的RGB值线性插值到传入参数的RGB值。alpha参数可以被认为是两种颜色之间的比例值,其中0是当前颜色和1.0是第一个参数的颜色。

# .lerpHSL ( color : Color, alpha : Float ) : Color

color - 用于收敛的颜色。
alpha - 介于0到1的数字。

将该颜色的HSL值线性插值到传递参数的HSL值。它不同于上诉的lerp。通过不直接从一种颜色插入到另一种颜色, 而是通过插值这两种颜色之间的所有色相(H)、亮度(L)、饱和度(S)。alpha参数可以被认为是两种颜色之间的比例值, 其中0是当前颜色和1.0是第一个参数的颜色。

# .multiply ( color : Color ) : Color

将此颜色的RGB值乘以给定的[page: color color]的RGB值。

# .multiplyScalar ( s : Number ) : Color

将此颜色的RGB值乘以给定的s的值。

# .offsetHSL ( h : Float, s : Float, l : Float ) : Color

将给定的 h, s, 和 l值加到当前颜色值。 内部的机制为:先将该颜色的 r, g 和 b 值转换为HSL,然后与传入的h, s, 和 l 相加,最后再将结果转成RGB值。

# .set ( value : Color_Hex_or_String ) : Color

value - 用于设置该颜色的值。

有关 value 的详细信息,请参阅上面的构造函数。 根据输入类型,将会委托给 .copy, .setStyle, 或者 .setHex 函数处理。

# .setHex ( hex : Integer ) : Color

hex — hexadecimal triplet 格式。

采用十六进制值设置此颜色。

# .setHSL ( h : Float, s : Float, l : Float ) : Color

h — 色相值处于0到1之间。hue value between 0.0 and 1.0
s — 饱和度值处于0到1之间。
l — 亮度值处于0到1之间。

采用HLS值设置此颜色。

# .setRGB ( r : Float, g : Float, b : Float ) : Color

r — 红色通道的值在0到1之间。
g — 绿色通道的值在0到1之间。
b — 蓝色通道的值在0到1之间。

采用RGB值设置此颜色。

# .setScalar ( scalar : Float ) : Color

scalar — 处于0到1之间的值

将颜色的RGB值都设为该 scalar 的值。

# .setStyle ( style : String ) : Color

style — 颜色css样式的字符串

采用ccs样式的字符串设置此颜色。例如, "rgb(250, 0,0)", "rgb(100%, 0%, 0%)", "hsl(0, 100%, 50%)", "#ff0000", "#f00", 或者 "red" ( 或者任何 X11 color name - 所有140种颜色名称都支持 ).
半透明颜色例如 "rgba(255, 0, 0, 0.5)" and "hsla(0, 100%, 50%, 0.5)" 也能支持, 但是alpha通道的值将会被丢弃。

注意,对于X11颜色名称,多个单词(如暗橙色)变成字符串“darkorange”(全部是小写字母)。

函数名 描述
set(value) 将当前颜色设置为指定的十六进制值。这个值可以是字符串、数值或是已有的 THREE.Color 实例。
setHex(value) 将当前颜色设置为指定的十六进制数字值。
setRGB(r,g,b) 根据提供的 RGB 值设置颜色。参数范围从 0 到 1。
setHSL(h,s,l) 根据提供的 HSL 值设置颜色。参数范围从 0 到 1, 例如:可以使用 “rgb(25, 0, 0)”、"#ff0000"、"#ff" 或 “red”。
copy(color) 从提供的颜色对象复制颜色值到当前对象。
copyGammaToLinear(color)

# .sub ( color : Color ) : Color

从该颜色的RGB分量中减去传入颜色的RGB分量。如果分量结果是负,则该分量为零。

# .toArray ( array : Array, offset : Integer ) : Array

array - 存储颜色的可选数组
offset - 数组的可选偏移量

返回一个格式为[ r, g, b ] 数组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/41554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【国产开源可视化引擎Meta2d.js】图元

图元 又称画笔Pen。图形表达的基本元素,组成图像的基本单元。 构成 每一个图元由ID、名字、类型、属性(数据)组成。 ID 名为“id”的特殊属性,图元实例(画布上的图元对象)的唯一标识。拖拽到画布或创建…

【线性代数的本质】矩阵与线性变换

线性变化要满足两点性质: 直线(连续的点)在变换后还是直线。原点不变。 假设有坐标轴(基底) i ^ \widehat{i} i 和 j ^ \widehat{j} j ​: i ^ [ 1 0 ] , j ^ [ 0 1 ] \widehat{i}\begin{bmatrix} 1 \…

android Dialog沉浸式状态栏实现

在Android中,创建沉浸式状态栏通常意味着让状态栏背景与应用的主题颜色一致,并且让对话框在状态栏下面显示,而不是浮动。为了实现这一点,你可以使用以下代码片段: 首先,在你的Activity中设置状态栏为隐藏或…

SQL中字符串类型中char和varchar之间的区别是什么

在 MySQL 中,CHAR 和 VARCHAR 是两种常见的字符串数据类型,它们之间有以下主要区别: 存储方式 CHAR:固定长度存储。无论实际存储的字符数量多少,都会占用指定的固定字节数。VARCHAR:可变长度存储。只占用实…

《昇思25天学习打卡营第6天|网络构建》

文章目录 前言:今日所学:1. 定义模型类2. 模型层3. 模型参数 前言: 在第六节中我们学习了网络构建,了解了神经网络模型是由神经网络层和Tensor操作构成,我们使用的mindspore.nn中提供了常见的升级网络层的实现&#x…

在线图片转文字的软件,分享3种强大的软件!

在信息爆炸的时代,图片作为信息的重要载体之一,其内容往往蕴含着巨大的价值。然而,面对海量的图片信息,如何高效、准确地将其转化为文字,成为了许多人的迫切需求。今天,就为大家盘点几款功能强大的在线图片…

【python基础】—如何理解安装程序时要配置Widows和DOS操作系统中的path环境变量?

文章目录 前言一、环境变量是什么?二、为什么需要设置环境变量?三、配置anaconda的环境变量 前言 在安装一些程序的时候, 我们总是需要将安装路径配置到正在使用电脑的环境变量里。为什么要进行这一步呢?本文主要解释Widows和DOS…

特殊用途二极管+二极管故障检测+三极管(BJT)的工作原理+定时器的使用(小灯定时闪烁实现)

2024-7-5,星期五,17:27,天气:晴,心情:晴。今天没有什么特殊的事情发生,继续学习啦,加油加油!!! 今日完成模电自选教材第二章内容的学习&#xff…

1-4 NLP发展历史与我的工作感悟

1-4 NLP发展历史与我的工作感悟 主目录点这里 第一个重要节点:word2vec词嵌入 能够将无限的词句表示为有限的词向量空间,而且运算比较快,使得文本与文本间的运算有了可能。 第二个重要节点:Transformer和bert 为预训练语言模型发…

【ABB】原点设定

【ABB】原点设定 操作流程演示 操作流程 操作轴回原点编辑电机校准偏移更新转速计数器 1.首先得了解机器手的轴,这里以6轴作参考。 注意先回456轴,后回123轴。 2.然后需要了解机器人关节运动模式,即选择如下两个模式。 3.注意机器人各轴移动…

QT的编译过程(底层逻辑)

qmake -project 用于从源代码生成项目文件,qmake 用于从项目文件生成 Makefile,而 make 用于根据 Makefile 构建项目。 详细解释: qmake -project 这个命令用于从源代码目录生成一个初始的 Qt 项目文件(.pro 文件)。它…

奇异值分解求线性方程组的最小二乘解

线性方程组一般考虑两类: 非齐次线性方程组:Ax b齐次线性方程组:Ax 0 A 是 m * n 矩阵,x 是 n * 1 的向量,b 是 m * 1 的向量。此类问题可以很方便地采用SVD奇异值分解来求解。 一. 讨论基于线性代数的解析解 关…

吃顿饭的时间,用AI开发一个应用官网

最早接触开发时做的第一个项目就是企业官网,到后来自己开始走上独立开发者的道路时,哪怕是开发面向消费者的移动端产品,在产品上架时也需要提供应用官网。 感觉,编程这件事情和官网开发,紧密相连。 过往为了追求开发效…

个人微信 微信营销系统

个人微信 微信营销系统 CRM系统

Android TV跨平台开发心得

这半年来陆陆续续做了一堆poc,刚开始是flutter,结果领导叫停了,说有其他部门做一样的事,真不巧;后来是react native,开发了个demo,上报上去了已经;现在又要做android nativewebview …

Windows 玩转大模型第一天:大模型本地部署,调用大模型API可直接工程化应用(全部代码和详细部署流程)

Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 以下是其主要特点和功能概述: 1. 简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用…

ELK日志系统和Filebeat采集器的学习总结

ELK是ElasticSerach、Logstash、Kina Logstash负责采集数据,Logstash有三个插件,input、filter、output,filter插件作用是对采集的数据进行处理,过滤的,因此filter插件可以选,可以不用配置。 ElasticSear…

vulnhub靶场之DC-1

1 信息收集 1.1 主机发现 arp-scan -l 主机ip地址为:192.168.1.4 1.2 端口服务扫描 nmap -sS -sV -A -T5 -p- 192.168.1.4 开发22,80,111端口 1.3 目录扫描 dirsearch -u 192.168.1.4 2 渗透测试 2.1 先访问一下80端口 发现是一个…

万和-集训刷题1

leetcode 2 两数之和 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode p1l1;ListNode p2l2;int next0;ListNode headnew ListNode(-1);ListNode tailhead;while (p1!null||p2!null){int n1p1!null?p1.val:0;int n2p2!null?p2.val:0;i…

K8S 部署 EFK

安装说明 系统版本为 Centos7.9 内核版本为 6.3.5-1.el7 K8S版本为 v1.26.14 ES官网 开始安装 本次安装使用官方ECK方式部署 EFK,部署的是当前的最新版本。 在 Kubernetes 集群中部署 ECK 安装自定义资源 如果能打开这个网址的话直接用这个命令安装,打不开的话…