首页 > 解决方案 > 如何获得 2 CPoint 之间的距离?

问题描述

假设我在屏幕上有 2 个 CPoint 如下:

CPoint cp1 ;x-y (314;448)
CPoint cp2 ;x-y (802;448)

我试过了,但结果不正确

pixels = (cp2.x-cp1.x)*96/72

如何以像素为单位获得这些点之间的距离?

标签: c++

解决方案


在此处输入图像描述

使用此公式并轻松定义点类型:

#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
struct point
{
    int x;
    int y;
};
int main()
{
    point p1,p2;
    p1.x=2;
    p1.y=36;
    p2.x=6;
    p2.y=33;
    //=========
    int x1= p1.x -p2.x;
    x1 = abs(x1);
    x1 = x1*x1;
    
    int y1 = p1.y-p2.y;
    y1 = abs(y1);
    y1 = y1*y1;
    
    int res = sqrt(x1+y1);
    cout<<"Distance = "<<res<<endl;
    
    
}

推荐阅读