首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将360角映射为255的公式,但弦x->y被翻转。

将360角映射为255的公式,但弦x->y被翻转。
EN

Stack Overflow用户
提问于 2020-06-12 23:04:06
回答 1查看 153关注 0票数 1

我数学不好,觉得这应该很容易,但我希望它是优雅的,而不是一个黑客。

我有一个360度的角度,需要计算到255度的旋转自由度。人进入角度,精确输出至255度圆。

代码语言:javascript
复制
int north = 90;
float outputNorth = north/360f * 255f; //Results: 90 angle-> 63 angle

但它必须是:

代码语言:javascript
复制
int north = 90;
float outputNorth = north/xf* yf; //Results: 90 angle -> 128 angle

问题:对于255度的旋转,和弦有点奇怪。不知道怎么翻译。

代码语言:javascript
复制
Should be the following:
//90 -> 128

//0 -> 192

//270 -> 0

//180 -> 64

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-13 07:41:45

你的数学有一些四舍五入的问题。我将使用不同的映射,其中360 deg将是256 -> 0而不是255。否则,您的8位值将有相同的角度0存储两次,这很可能会导致其他问题后。

这里使用线性插值对deg/8位进行转换

代码语言:javascript
复制
int i;     // angle [deg int]
int o;     // 0..255 [8bit uint]

o=(192-((i<<8)/360))&255;

i=((192-o)*360)>>8;

在这里,值:

代码语言:javascript
复制
  i   o
  0 192
 90 128
180  64
270   0
360 192

i可以是任何甚至是负的或大于360度的转换将仍然工作.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62353643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档