gpt4 book ai didi

c - 为什么这一行什么都不做

转载 作者:行者123 更新时间:2023-11-30 20:10:32 26 4
gpt4 key购买 nike

我正在尝试一些三角函数,代码编译良好,我想看到一个在 360 度上移动的正方形,但是当我运行代码时,我看到正方形仅在 x 轴上移动,除了我的函数上的行。

void mvdr(int* x, int* y, float d, float sp)
{
if(d != 0)
d = (d / 360.0) / 6.283185307179586;

*x += cos(d)*sp;
*y += sin(d)*sp; // here's the error
}

我在 gdb 中看到:y 没有改变。

(gdb) n
11 *y += sin(d)*sp; // here's the error
(gdb) p d
$4 = 0.000442097051
(gdb) p sin(d)*sp
$5 = 6.44245094e+09
(gdb) p *y
$6 = 256
(gdb) n
12 }
(gdb) p *y
$7 = 256

我不明白发生了什么,或者如果我做错了什么,我希望你能帮助我。

最佳答案

要将度数转换为弧度,您应该:

d = (d / 360.0) * 6.283185307179586;

您的转换函数会产生非常小的值,对于 sin() 可能不会改变 y 的整数值,而对于 cos() 会产生较大的 x 值

关于c - 为什么这一行什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44915225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com