我想在C#中添加项目的其他功能,我已经可以在我的程序中绘制线条,但我想检测一行绘制的交叉线并显示它们相交的点。可能吗?谢谢
我的程序还包括计算垂直距离,下面是示例代码:
public static Double PerpendicularDistance(Point Point1, Point Point2, Point Point)
{
Double area = Math.Abs(.5 * (Point1.X * Point2.Y + Point2.X * Point.Y + Point.X * Point1.Y - Point2.X * Point1.Y - Point.X * Point2.Y - Point1.X * Point.Y));
Double bottom = Math.Sqrt(Math.Pow(Point1.X - Point2.X, 2) + Math.Pow(Point1.Y - Point2.Y, 2));
Double height = area / bottom * 2;
return height;
}
}
这里的POINT是我的X和Y坐标的一个类。
答案 0 :(得分:0)
如果你试图找到两条线的交集,那么解决方案是相当简单的。
如果两条线的形式为Ax + By = C:
float delta = a1*b2 - a2*b1;
if(delta == 0)
throw new ArgumentException("Lines are parallel");
float x = (b2*c1 - b1*c2)/delta;
float y = (a1*c2 - a2*c1)/delta;
我担心的是上面的评论说只有一条画线。我不确定你是什么意思。这是否意味着应用程序提供了一条线,而另一条用户提供了用户,或者我们是否在线条与自身相交的曲线处理?