Я пытаюсь выделить (щелчком мыши) количество точек на трехмерной сетке треугольной поверхности, используя matlab, и сохранить их координаты в матрице.
Это доказанобыть намного более печально известным, чем я ожидал.
Кажется, что обратные вызовы - это то, что нужно делать здесь.Немного поэкспериментировав, я в итоге получил:
global allPoints;
allPoints = [];
patch('Faces',T,'Vertices',V,'FaceColor','white','ButtonDownFcn',@lineCallback)
axis equal;
allPoints
function lineCallback(src,eventData)
global allPoints;
p = eventData.IntersectionPoint;
allPoints = [allPoints;p];
end
Попытка 1:
Хотя это и не элегантно, приведенное выше позволяет пользователям нажимать на кролика и получатьточки.Проблема возникает, когда я хочу выбрать точку, которая не видна.В таком случае по какой-то причине фигура не позволяет мне вращать кролика.(Я полагаю, потому что я уже нажимаю кнопку мыши, чтобы сделать это).
Попытка 2:
Когда я пытался заменить ButtonDownFcn на CreateFnc, я получаю ошибку:
Not enough input arguments.
Error in tzs>lineCallback (line 14)
p = eventData.IntersectionPoint;
, что вполне логично, как у меняНе определены ни данные события, ни объект.Тем не менее, я не могу найти какой-либо серьезный пример, чтобы помочь в этом направлении.Кто-нибудь может помочь?