有人可以通过为不连续的函数指定事件来为我指明正确的方向吗?例如,假设我有一个沿 x 轴移动的 Object1,我还有另一个在 x=100 处垂直移动的 Object2。
我希望每当 Object1 通过 x=100 并且两个对象之间的距离为 10 时触发事件函数。问题是当事件触发时,距离必须从 d=10 跳到 -1,而我这对我不起作用,因为该功能不连续。
function [value, isTerminal, direction] = myEvent(t, z)
distBetweenObj = z(1)-z(2)
if abs(distBetweenObj) < tol && objectsCollider(z(1),z(2))
value = -1;
isTerminal = 1; % the event should be triggered at this point
direction = -1; % but for some reason it doesn't
else
value = distBetweenObj;
isTerminal = 0;
direction = -1;
end
end
任何人都知道如何指定此功能?