c# – 从角度A移动到B,找到最短的方向

我有一个角度A和一个目标角度B.

角度范围是-180到180

我希望角度A朝向角度B移动X度

我面临的问题是如果A是170并且B是-170,那么增加到180并且跳到-180显然会更快,但是在比较角度时我总是得到负X.因此,不是采取最快的方式,它将采取最长的方式.

我希望有人能理解我制定的问题:)

A = A + ((A-B) / Math.Abs(A-B)) * speed * -1;

编辑:添加代码

解决方法

计算两个角度之间的差异.如果得到的角度x大于180度,则使用该角度沿另一个方向行走:360-x.

如果使用0到360的范围,则可以更轻松地计算差异.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...