c++ - 如何获得 2 CPoint 之间的距离?
问题描述
假设我在屏幕上有 2 个 CPoint 如下:
CPoint cp1 ;x-y (314;448)
CPoint cp2 ;x-y (802;448)
我试过了,但结果不正确
pixels = (cp2.x-cp1.x)*96/72
如何以像素为单位获得这些点之间的距离?
解决方案
使用此公式并轻松定义点类型:
#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;
}
推荐阅读
- oop - 为什么类 Money 通过示例扩展 Kent Beck 的 TDD 中的表达式?
- graphql-spqr - GraphQL SPQR - 如何获取客户端使用查询请求的字段列表
- python - 又一场无反向比赛
- swift - 如何防止其他应用程序在 macOS 中监听鼠标事件?
- linux - 如何使用单个 .sh 文件提交多个作业
- c# - LoadImage(byteArray) 在统一上不起作用
- python - Python 输出排序
- c - 从显示错误的文件中输入指针数组
- json - 从一个文本文件中提取两个不同的 JSON 字符串到一个 JSON 数组中
- c# - 'ObjectContent`1':无法序列化来自 DbSet 的响应