相关疑难解决方法(0)

Star BV颜色指数与明显的RGB颜色

我正在尝试将明星的BV颜色索引转换为明显的RGB颜色.除了查找表格和颜色渐变之外,似乎没有众所周知的算法可以做到这一点.

什么是BV颜色指数?

这是天文学家为一颗恒星指定其明显颜色的数字.热星(低BV)是蓝色/紫色,冷色星(高BV)是红色的,其间有白色/橙色星.

初始算法

BV到开尔文

在此输入图像描述

var t = 4600 * ((1 / ((0.92 * bv) + 1.7)) +(1 / ((0.92 * bv) + 0.62)) );
Run Code Online (Sandbox Code Playgroud)

开尔文到xyY

如果将星型建模为黑体,则可以使用普朗克轨迹的数值近似来计算xy坐标(CIE色度)

在此输入图像描述

在此输入图像描述

在此输入图像描述

// t to xyY
var x, y = 0;

if (t>=1667 && t<=4000) {
  x = ((-0.2661239 * Math.pow(10,9)) / Math.pow(t,3)) + ((-0.2343580 * Math.pow(10,6)) / Math.pow(t,2)) + ((0.8776956 * Math.pow(10,3)) / t) + 0.179910;
} else if (t > 4000 && t <= 25000) {
  x = ((-3.0258469 …
Run Code Online (Sandbox Code Playgroud)

rgb colors astronomy dart

22
推荐指数
4
解决办法
7186
查看次数

如何在 UIColor 中获得随机的暖色/冷色?

我想randomly选择2种颜色。但它必须是随机cold颜色和随机warm颜色。

我正在使用它extension来获取随机颜色:

extension UIColor {

    static var random: UIColor {
        return UIColor(red: .random(in: 0...1),
                       green: .random(in: 0...1),
                       blue: .random(in: 0...1),
                       alpha: 1.0)
    }
}
Run Code Online (Sandbox Code Playgroud)

根据这篇文章,我们可以假设:

if (B > R) { 
    color = cool
} else { 
    color = warm
}
Run Code Online (Sandbox Code Playgroud)

如何修改我的随机扩展以能够选择随机暖色或随机冷色。

有什么建议吗?

uikit uicolor ios swift

1
推荐指数
1
解决办法
109
查看次数

标签 统计

astronomy ×1

colors ×1

dart ×1

ios ×1

rgb ×1

swift ×1

uicolor ×1

uikit ×1