Matlab 找到直线与凸面外壳接触的第一个点

Matlab 找到直线与凸面外壳接触的第一个点,matlab,line,convex-hull,Matlab,Line,Convex Hull,首先,我使用Matlab函数绘制了给定点的凸包: x = [4*rand(10,1)-2]; y = [rand(10,1)+5]; DT = delaunayTriangulation(x,y); C = convexHull(DT); plot(DT.Points(:,1),DT.Points(:,2),'.','MarkerSize',10) hold on plot(DT.Points(C,1),DT.Points(C,2),'r') 这个凸包只是一个例子,它可以是任何其他凸包。我们假

首先,我使用Matlab函数绘制了给定点的凸包:

x = [4*rand(10,1)-2];
y = [rand(10,1)+5];
DT = delaunayTriangulation(x,y);
C = convexHull(DT);
plot(DT.Points(:,1),DT.Points(:,2),'.','MarkerSize',10)
hold on
plot(DT.Points(C,1),DT.Points(C,2),'r')
这个凸包只是一个例子,它可以是任何其他凸包。我们假设凸包在抛物线
y=x^2

然后我想找到凸壳上的第一个点,当我们从
a=1
开始时,它接触到线
y=[(a^2+1)/a]x-1
,如果不接触凸壳(当凸壳在LHS上时),它可以一直到
a=+\infty

如何做到这一点?我的最终目标是在图上找到
a

对于多边形的每个角
(x\u i,y\u i)
求解
a\u i的二次方程

y_i*a_i=(a_i^2+1)*x_i-1

可以通过将点坐标放入直线方程中来获得方程。接下来,放弃与您无关的解决方案(
a)