繁体   English   中英

javascript到objective-c转换

[英]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 ,如果这是真的,它会设置sd / (2 - max - min) ,否则将设置sd / (max + min)


编辑回应评论:

我根本不知道很多Javascript,但至于switch语句,它似乎是使用变量的情况。 在Objective-C(或C,就此而言)中不允许这样做。 但它似乎试图找出哪个rgb变量等于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM