【问题标题】:Trigonometry & Sunset三角学和日落
【发布时间】:2013-12-07 11:06:44
【问题描述】:

不确定这个问题在这个论坛上是否合适,但很确定有人可以回答这个问题。 我问这个的原因是,我在学校没有注意任何处理正弦和余弦的东西,不知何故,我认为这是我必须寻找的方向。 所以,我正在制作这个小时钟应用程序,我想将背景颜色设置为或多或少与给定时间的阳光量相对应。它不需要非常准确,所以我不需要实时的太阳位置。简单的推理是:午夜,据说是最黑暗的时刻(黑色背景,0% 白色),中午,太阳最亮(白色背景,100% 白色),中间的一切都应该设置背景采用适当的灰色调。

算法的输入只是小时,范围从 0 到 24。

提前致谢。

PS,我正在用 Objective-C 编写应用程序,但我认为等式会很简单,以至于无关紧要。

【问题讨论】:

    标签: trigonometry


    【解决方案1】:

    我想这是这个问题的错误位置(就像你对数学一样,而不是编程)。

    但无论如何,这是您可以做的(因为您似乎希望使用正弦/余弦): 做一小时 *7,5 所以 0->0, 12->90, 24->180

    由于 sin(0)=0, sine(90)=1 和 sine(180) = 0,(值 0,90,180 是度数,而不是弧度)。您将获得一个 0-1 范围内的值,最大值在 12 点钟,最小值在 0h 和 24h。

    我不知道 Objective-C,但我猜它看起来像这样:

    hourdegrees = 7.5 * Input(hour);
    hourradians = M_PI * hourdegrees / 180;
    density = sin(hour);
    

    M_PI 是 Objective C 中 Pi(3.14...) 的调用函数 将度数转换为弧度:知道 360 度 = 2*Pi 弧度(参见此处:Sine to radians Objective-C

    希望你对此有所了解

    【讨论】:

    • 谢谢,看起来很简单。我会试一试,给你一张绿色支票!
    • 你可能需要检查如何调用 sin 函数。因此你可以使用这个话题stackoverflow.com/questions/2018081/…
    • 完美:在我的应用程序中,我使用了以下代码:CGFloat hourdegrees = 7.5 * [hourDisplay.text intValue]; CGFloat hourradians = M_PI * hoursdegrees / 180; CGFloat 密度 = sin(hourradians); self.view.backgroundColor= [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:density];
    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多