[英]javascript to objective-c conversion
我对javascript一无所知,需要帮助解释以下内容:
{
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch(max){
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
case g: h = (b - r) / d + 2; break;
case b: h = (r - g) / d + 4; break;
}
}
有人可以解释这意味着什么,所以我可以编写Objective-C中的等价物?
谢谢!
或者让我的问题更加突出。 你能为我翻译(以人类语言)以下行吗?
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
expression ? value1 : value2
expression ? value1 : value2
运算符计算expression
,如果为true,则返回value1
,否则返回value2
。 因此,在该特定情况下,将评价l > 0.5
,如果这是真的,它会设置s
到d / (2 - max - min)
,否则将设置s
到d / (max + min)
编辑回应评论:
我根本不知道很多Javascript,但至于switch
语句,它似乎是使用变量的情况。 在Objective-C(或C,就此而言)中不允许这样做。 但它似乎试图找出哪个r
, g
或b
变量等于max
变量......
在Objective-C(或C或C ++)中, switch
语句只能使用常量大小写,如下所示:
switch (myVariable)
{
case 0:
//do something if myVariable == 0
break;
case 1:
//do something if myVariable == 1
break;
case 2:
//do something if myVariable == 2
break;
}
我会在这里猜一下,并说在带有可变情况的javascript中,它可能等同于类似的东西
if (max == r)
h = (g - b) / d + (g < b ? 6 : 0);
else if (max == g)
h = (b - r) / d + 2;
else if (max == b)
h = (r - g) / d + 4;
如果有更多了解javascript的人可以为我们确认,那就太棒了。
这实际上非常简单,您只需将var
更改为float
。
似乎是算法的一个片段,用于为某些东西分配新的RGB颜色。 没有关于值max,min的任何信息都无法分辨。 d可能是“距离”。
var s被分配了一个带有三元?:运算符的东西,但是在块中没有再使用s-
我要说这意味着你继承那些代码的人需要学习如何正确地命名变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.