打印

寻找最小角度程序设计思路,求大神

[复制链接]
1001|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ming月|  楼主 | 2017-8-31 16:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ming月 于 2017-8-31 16:33 编辑

如图,中间1、2、3、4、5、6、7、8是每个格子,格子都有唯一标号,圆的中心是个轴承,可以旋转。旋转到哪个格子的时候,门打开就可以取出其中的货物。比如,我要打开4号,我就顺时针方向旋转135度,把4号转过来然后开门。如果是7号格子我就逆时针旋转90度。
问题是,如果旋转了之后我就停在当前位置,下一次该怎么查找到最小的角度呢,如果是6号7号8号格子呢?如果有n个格子呢?

有没有什么算法?

L~(W5VI)$[W1IQ(T}$@{EIU.png (17.84 KB )

L~(W5VI)$[W1IQ(T}$@{EIU.png

相关帖子

沙发
lyncxy119| | 2017-9-2 14:54 | 只看该作者
算角度啊,既然知道有n个格子了,就能算出来每个格子的角度,算一下当前格子和需要打开格子之间的角度,判断下顺时针还是逆时针旋转就好了

使用特权

评论回复
板凳
suxindg| | 2017-9-4 13:54 | 只看该作者
对于n个格子,假设当前门的位置在x号格子,下一次要移到y号格子
(1)y>x,即从小号码格子移到大号码格子时,则需要旋转的角度就是(y-x)*360/n,如果计算结果小于180°,则就按照格子号码从小到大的方向旋转该角度,如果计算结果大于180°,则就按照格子号码从大到小的方向旋转(360°-该角度),如果计算结果等于180°,则无论往哪个方向都是旋转180°.
(2)x>y,即从大号码格子移到小号码格子时,则需要旋转的角度就是(x-y)*360/n,如果计算结果小于180°,则就按照格子号码从大到小的方向旋转该角度,如果计算结果大于180°,则就按照格子号码从小到大的方向旋转(360°-该角度),如果计算结果等于180°,则无论往哪个方向都是旋转180°.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

23

帖子

0

粉丝