Выбор количества точек на трехмерной поверхности - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь выделить (щелчком мыши) количество точек на трехмерной сетке треугольной поверхности, используя matlab, и сохранить их координаты в матрице.

enter image description here Это доказанобыть намного более печально известным, чем я ожидал.

Кажется, что обратные вызовы - это то, что нужно делать здесь.Немного поэкспериментировав, я в итоге получил:

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; 

, что вполне логично, как у меняНе определены ни данные события, ни объект.Тем не менее, я не могу найти какой-либо серьезный пример, чтобы помочь в этом направлении.Кто-нибудь может помочь?

...