C# 如何测量对角线距离点?
我可以计算水平点和垂直点,但我不知道如何使用对角点计算距离。有人能帮我吗 以下是我的水平和垂直测量代码:C# 如何测量对角线距离点?,c#,winforms,gdi,distance,measurement,C#,Winforms,Gdi,Distance,Measurement,我可以计算水平点和垂直点,但我不知道如何使用对角点计算距离。有人能帮我吗 以下是我的水平和垂直测量代码: private float ComputeDistance(float point1, float point2) { float sol1 = point1 - point2; float sol2 = (float)Math.Abs(Math.Sqrt(sol1 * sol1)); return sol2; } protected o
private float ComputeDistance(float point1, float point2)
{
float sol1 = point1 - point2;
float sol2 = (float)Math.Abs(Math.Sqrt(sol1 * sol1));
return sol2;
}
protected override void OnMouseMove(MouseEventArgs e)
{
_endPoint.X = e.X;
_endPoint.Y = e.Y;
if (ComputeDistance(_startPoint.X, _endPoint.X) <= 10)
{
str = ComputeDistance(_startPoint.Y, _endPoint.Y).ToString();
}
else
{
if (ComputeDistance(_startPoint.Y, _endPoint.Y) <= 10)
{
str = ComputeDistance(_startPoint.X, _endPoint.X).ToString();
}
}
}
专用浮点计算距离(浮点1、浮点2)
{
float sol1=点1-点2;
float-sol2=(float)Math.Abs(Math.Sqrt(sol1*sol1));
返回sol2;
}
MouseMove上的受保护覆盖无效(MouseEventArgs e)
{
_终点X=e.X;
_终点Y=e.Y;
如果(计算距离(_startPoint.X,_endPoint.X)那么你可以看看:我想你在寻找公式
在数学中,欧几里德距离或欧几里德度量是用尺子测量的两点之间的“普通”距离,由毕达哥拉斯公式给出
你需要使用毕达哥拉斯定理
d = Math.Sqrt(Math.Pow(end.x - start.x, 2) + Math.Pow(end.y - start.y, 2))
很久以后……我想补充一点,您可以使用.NET的一些内置功能:
using System.Windows;
Point p1 = new Point(x1, y1);
Point p2 = new Point(x2, y2);
Vector v = p1 - p2;
double distance = v.Length;
或者简单地说:
static double Distance(double x1, double x2, double y1, double y2)
{
return (new Point(x1, y1) - new Point(x2, y2)).Length;
}
Math.Sqrt(sol1*sol1)==Math.Abs(sol1)这个是毕达哥拉斯的,等等,我会试试这个。+1指出实际上有很多方法可以计算距离,欧几里德距离可能就是这里想要的。