use*_*033 1 c# geometry distance
我有这个方法:
private static List<Point> ExtendPoints(Point pt1, Point pt2)
{
List<Point> ExtendedPoints = new List<Point>();
decimal i = (Math.Sqrt(Math.Pow(Math.Abs(pt1.X - pt2.X), 2) + Math.Pow(Math.Abs(pt1.Y - pt2.Y), 2) + Math.Pow(Math.Abs(z1 - z2), 2)));
return ExtendedPoints;
}
Run Code Online (Sandbox Code Playgroud)
我需要找到两点pt1和pt2之间的精确x和y坐标.结果应该是例如:12,13,这个坐标恰好位于两点之间的中间位置.
我现在使用小数和数学计算的方式不是正确的方法.
只需添加组件的值并除以2:
private static Point MidPoint(Point pt1, Point pt2)
{
var midX = (pt1.X + pt2.X) / 2;
var midY = (pt1.Y + pt2.Y) / 2;
return new Point(midX, midY);
}
Run Code Online (Sandbox Code Playgroud)
请注意,不确定Point您正在使用哪个班级.如果是,System.Drawing.Point您可能会遇到整数截断问题.
另外,我不确定你要用List<Point> ExtendedPointsas 做什么,据我所知,两点之间只有1个中点.我也不能确定你用做什么z1和z2.如果您使用3维点,则可以扩展我的答案并轻松添加第三维.