c++ - 计算一点到另一点的距离

标签 c++ math

<分区>

所以我有计算距离的替身

    double calculate2DDistance(int x1, int y1, int x2, int y2)
{
    return sqrt((x2 - x1)^2 + (y2 - y1)^2);
}

请注意,我正在从名为 math.h 的 header 调用此方法到我的 main

我在main.h中的测试行

cout << calculate2DDistance(2.0, 4.0, 3.0, 1.0) << endl;

它要么打印出完全错误的答案,要么打印出 -1.#IND

这是怎么回事?

最佳答案

在 C++ 中,^ 运算符表示按位异或。

要将数字提升为幂,请使用 std::pow :

return sqrt(std::pow(x2 - x1, 2) + std::pow(y2 - y1, 2));

或者,在您的情况下(仅仅是平方),只使用乘法会更有效:

const int dx = x2 - x1;
const int dy = y2 - y1;
return sqrt((dx * dx) + (dy * dy));

关于c++ - 计算一点到另一点的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423568/

相关文章:

c++ - SFML OpenGL 绘图文本

c++ - 一个有效的 std::copy 示例——打印一个数组

c++ - 如果队列为空,dequeue 应该返回什么

python - 将 Python 更改为 C++ : how to eliminate zeros that are keep appearing in vectors

c++ - 整数的乘法和除法分成几部分

C++:ReadProcessMemory() 导致崩溃

java - 无法从 long 转换为 int,为什么我不能使用 Math.round 将此 double 舍入到最接近的 int

algorithm - 给定一个数字,找到通过用 2 个中较高的数字替换任何 2 个连续数字而形成的所有数字中的最小值

jquery - 如何在确保总数加起来为 1 的同时舍入一组数字

c# - 最小二乘 C# 库