gpt4 book ai didi

c - 方程返回 1.#QO

转载 作者:行者123 更新时间:2023-11-30 17:31:30 25 4
gpt4 key购买 nike

我尝试在多个网站(包括这个网站)上搜索与我的问题类似的内容,但到目前为止我还没有发现类似的内容。在搜索术语 1.#QO 后,我发现了一些有关安静 NaN 的内容,但总的来说我对 C 很陌生,所以我不太理解这个问题。

我试图获取操纵杆的 x 和 y 值,然后使用距离公式来查找操纵杆位置与操纵杆自然静止位置 (0,0) 之间的距离。

如果重要的话,我正在尝试在 RobotC 中执行此操作。

#pragma config(Hubs,  S1, HTMotor,  none,     none,     none)
#pragma config(Sensor, S1, , sensorI2CMuxController)
#pragma config(Motor, mtr_S1_C1_1, DriveMotor, tmotorTetrix, openLoop)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//

#include "JoystickDriver.c"

int calculateDrivePower(int joyStickX, int joyStickY)
{
if (joyStickX != 0 & joyStickY != 0)
{
int joyDistance = (sqrt(pow((joyStickX - 0),2)+ pow((-joyStickY - 0),2)));
joyDistance = ((joyDistance/127)*100);
return (joyDistance);
}
else
{
return 0;
}
}

task main()
{
int previousJoySlope = 0;
int TurnSpeed = 70;
while (true)
{
getJoystickSettings(joystick);
if (abs(joystick.joy1_x1) > 10 || abs(joystick.joy1_y1) > 10)
{
writeDebugStreamLine("Test successful.");
motor[DriveMotor] = calculateDrivePower(joystick.joy1_x1,joystick.joy1_y1);
}
}
}

如果有人能够提供任何见解,那就太好了,谢谢。

最佳答案

if (joyStickX != 0 & joyStickY != 0)
{
int joyDistance = (sqrt(pow((joyStickX - 0),2)+ pow((-joyStickY - 0),2)));
joyDistance = ((joyDistance/127)*100);
return (joyDistance);
}

出现的第一个问题是 if 语句中的条件。您有一个&最有可能应该是 && :

if (joyStickX != 0 && joyStickY != 0)

(注意:上面使用了可能应该,因为您可以使用测试 & 的逻辑 joystickx != 0 提供条件,但在本例中它提供相同的结果。情况下,我建议使用更具可读性的&&)

代码的下一部分只是 0,0 之间的 vector 距离和 present position操纵杆的。一般形式dist^2 =(x2-x1)^2 + (y2-y1)^2在你的情况下x1,y1 =0,0 。两边取平方根可得到 dist =sqrt((x2-x1)^2 + (y2-y1)^2) ,或用 C 表示法:

dist = (sqrt(pow((joyStickX - 0),2)+ pow((-joyStickY - 0),2)));

接下来,您将应用 dist 的缩放比例。 =dist * 100/127它提供了返回的最终距离。希望这将帮助您理解代码的作用。

关于c - 方程返回 1.#QO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24591780/

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