给定两点坐标(x,y),返回两点间距离.用C#写。谢谢帮帮忙,急
展开全部
是像素距离吗?
private double GetDistance(Point p1, Point p2)
{
return Math.Sqrt(Math.Pow(Math.Max(p1.X, p2.X) - Math.Min(p1.X, p2.X), 2) + Math.Pow(Math.Max(p1.Y, p2.Y) - Math.Min(p1.Y, p2.Y), 2));
}
举个例子吧:
假如求点(100,50)和点(123,75)的距离,就直接GetDistance(new Point(100, 50), new Point(123, 75)),最后返回33.9705755029261
楼上那位的方法遇到p1比p2大可能就不会算了
觉得好就多给点分吧
private double GetDistance(Point p1, Point p2)
{
return Math.Sqrt(Math.Pow(Math.Max(p1.X, p2.X) - Math.Min(p1.X, p2.X), 2) + Math.Pow(Math.Max(p1.Y, p2.Y) - Math.Min(p1.Y, p2.Y), 2));
}
举个例子吧:
假如求点(100,50)和点(123,75)的距离,就直接GetDistance(new Point(100, 50), new Point(123, 75)),最后返回33.9705755029261
楼上那位的方法遇到p1比p2大可能就不会算了
觉得好就多给点分吧
追问
呵呵,弄错了,不要调用函数,直接用算法解决
展开全部
看在0分的面子上 我告诉你怎么算好了
A点坐标 X_A, Y_A
B点坐标X_B Y_B
根据勾股定理 斜边 C^2 = A^2 + B^2 那么
一条直角边side_a = Math.abs(X_A - X_B )
另外一条直角边 side_b = Math.abs(Y_A - Y-B)
那么 斜边C = math.sqrt( side_a * side_a + side_b * side_b)
所有变量用long型
A点坐标 X_A, Y_A
B点坐标X_B Y_B
根据勾股定理 斜边 C^2 = A^2 + B^2 那么
一条直角边side_a = Math.abs(X_A - X_B )
另外一条直角边 side_b = Math.abs(Y_A - Y-B)
那么 斜边C = math.sqrt( side_a * side_a + side_b * side_b)
所有变量用long型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询