![]() |
1
31
我知道这是2年前的事,但我最近一直在寻找同样的问题,如果没有在这里发布IFS,我看不到一个优雅的解决方案,所以这里是:
就是这样 PS:当然,%是模,最短角是保持整个内插角的变量。 |
![]() |
2
13
抱歉,这有点复杂,这里有一个更简洁的版本:
有人有更优化的版本吗? |
![]() |
3
7
我认为更好的方法是插入sin和cos,因为它们不受形式被乘法定义的影响。设w=“amount”使w=0为角度a,w=1为角度b。然后
一个人必须根据需要转换成弧度和度数。还必须调整分支。对于atan2,c返回到范围-pi到pi。如果你想要0到2pi,那就把pi加到c上。 |
![]() |
4
3
注意:使用C代码 在我脑子里翻找了一番之后,我想到的就是这个。 基本上,前提是在最后一分钟进行0-360包裹。在内部处理0-360以外的值,然后在函数请求值时将其包装在0-360内。 在选择起点和终点的点上,执行以下操作:
这将为您提供实际的开始和结束值,可能在0-360之外… 我们有一个wrap函数来确保值在0到360之间…
然后,此时您从函数请求当前值:
这几乎肯定不是解决这个问题的最佳方案,但是它看起来确实能始终如一地工作。如果有人有更好的方法来做这件事,那就太好了。 |
![]() |
5
1
我处理角度的首选方法是使用每转2次的单位。例如,它使用16位有符号整数来表示-180到+180度,您可以简单地(从到)/num_步骤来进行插值。当二进制值从360到0溢出时,加和减角度总是有效的。 在这种情况下,您可能想做的是数学模块360。所以角度差计算为(从到)%360。在其他问题中,仍然存在一些符号问题。 |
![]() |
6
1
我想重写我的答案,以便更好地解释回答问题。我用Excel计算公式,用学位计算单位。
为简单起见,
第一部分-去哪条路?
我们首先要做的是计算出我们要在哪个方向进行计算,顺时针或逆时针。我们使用
上面的公式检查是否从
为了检查这项工作:90-45=45(小于或等于180)使if语句为真,因此顺时针方向较短,而315-45=270(大于180)使if语句为假,因此逆时针公式较短。 第2部分-顺时针公式
现在你要插入
在哪里?
例子:
第3部分-逆时针公式
逆时针公式会更复杂一点,因为我们需要逆时针穿过360度角。我能想到的最简单的方法是在
你还得换衣服
例子:
第4部分-将答案限制在0到360之间
看看有时候(但并非总是)答案会超过360吗?这就是把逆时针的公式包装在
调制第3部分中使用的示例将为您提供:
第5部分-整合 将第1-4部分的所有元素组合在一起,答案是:
哪里:
|
![]() |
7
0
我对学位问题的解决方案。在我的vartracker类中
|
|
Niko · 边框css更改速度快于变换旋转 7 年前 |
![]() |
NOOBAF · 将数组传递给函数(C) 7 年前 |
![]() |
Nikolay Baranenko · Kafka循环垃圾收集日志 7 年前 |
|
user9187461 · 管线旋转30度 7 年前 |