提前为难以解释的问题道歉,答案可能只是" 不" ...
我有一个值 .CoursesCard {
width 32%
margin 10px 1%
float left
padding-top 20%
display inline-block
background white
box-shadow 0px 3px 20px #555
background-repeat no-repeat
background-size cover
cursor pointer
&.hover{
box-shadow 0px 3px 22px #333
}
.CardOverlay {
width 100%
height auto
padding 10px 0
background rgba(33,51,66,0.8)
color #fff
background-repeat no-repeat
background-size cover
cursor pointer
&.hover {
box-shadow 0px 3px 22px #333
}
h3{
font-size 18px
font-weight 500
margin-bottom 5px
margin-left 10px
}
p.lastChecked{
font-size 13px
font-weight 100
margin-bottom 5px
margin-left 10px
}
p.onlineUsers{
font-size 14px
font-weight 400
margin-left 10px
display block
}
}
我希望增加幅度,比如2:-1 >= n <= 1
我也想调整它的阶段,比如.5:2*n
我怎样才能这样做,当n增加到1时,它会翻转符号并减少自身,例如:当n增加到1.1时,结果实际上是.9。
我知道这可以用trig来完成,但是我很难增加它的幅度并改变它的相位 - 当我做完两件事时我得到了这个表达式:
2*n + .5
对于那个表达式,我仍然需要执行额外的计算/舍入来获得我的最终值;表达变得复杂臃肿。
我想知道是否有更简单的方法来获得所需的范围/值,完全避免触发?我想象一个类似于模数的运算符,除了&#而不是# 34;复位&#34;到0,它的价值降低......
答案 0 :(得分:1)
您可以在一个句点的情况下明确写出公式,并对基本周期之外的值使用递归。
E.g。
function notTrig(x) {
switch (true) {
case (x >= 0 && x < 1):
return x
case (x >= 1 && x < 2):
return 2 - x
default:
notTrig(x - 2)
}
}
这应该给你一个平均1/2,幅度1/2和2期的锯齿信号。你还需要处理负片:左边的问题练习; - )
编辑:在我滥用术语&#34;锯齿波&#34;之后,我发生了这种情况。以上。我所描述的功能是连续的,我应该使用的术语是&#34;三角波。&#34;也就是说,我对@ calipoop的答案非常满意。
答案 1 :(得分:1)
事实证明,三角波解决了我的问题。它提供类似于正弦的振荡值(不容易),它避免了Math.trig并简化了我的公式。我扩展了this SO答案以及wikipedia formulas中给出的公式。
Fried Brice的回答表明锯齿在正确的轨道上 - 但是三角波更适合我,而单线公式让我的眼睛感觉更好。