-------------------Point类用法详解-----------------
(提示:这篇文章讲述的内容对所有编程语言都有用。)
Java和C#中都有一个Point类(可能其他编程语言也会有),这个类用于表示一个点。下面就来了解一下这个类的用法。
- 求出一个点到另一个点的角度
来看一张图:

需要求出的是”?”处的角度值。
下面是算式:
((double)(点②的y坐标-点①的y坐标))/((double)(点②的x坐标-点①的x坐标))*45
但是如果遇到这种情况:

算式就需要稍微改一下:
((double)(点②的y坐标-点①的y坐标))/((double)(点②的x坐标-点①的x坐标))*45-180
下面是结合后的通用程序(python除外):
double result=0;
//point1是点①,point2是点②
result=((double)(point2.y-point1.y))/((double)(point2.x-point1.x))*45; //计算角度
if (point2.x<point1.x){
result=result-180;
//如果点②在点①前面就调整角度
}
//result就是计算的结果
Python版:
result=0
# x1是点①的x坐标,y1是点①的y坐标,x2是点②的x坐标,y2是点②的y坐标。
result=(float(y2-y1))/(float(x2-x1))*45 # 计算角度
if (x2<x1)
result=result-180
# 如果点②在点①前面就调整角度
# result就是计算的结果
- 计算两点之间的距离
在这里只求两点之间的最短距离。

算式:
((点②的x坐标-点①的x坐标)*(点②的x坐标-点①的x坐标)+(点②的y坐标-点①的y坐标)*(点②的y坐标-点①的y坐标))
然后想办法求出上面算式结果的平方根就可以了。
在Java里解决这个问题可以很简单:
//x1是点①的x坐标,y1是点①的y坐标,x2是点②的x坐标,y2是点②的y坐标。
Point point1=new Point(x1,y1); //点①
Point point2=new Point(x2,y2); //点②
int result=point1.distance(point2); //最短距离
Python版:
# x1是点①的x坐标,y1是点①的y坐标,x2是点②的x坐标,y2是点②的y坐标。
import math
result=math.pow((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1),0.5)
# result就是计算结果
其他编程语言的版本需要读者自己想办法。
1万+

被折叠的 条评论
为什么被折叠?



