Если у вас нет способа восстановить данные фигуры, но у вас есть фигура MATLAB с данными внутри нее, вы можете их восстановить.
я сначала создать образец графического объекта (patch
, возвращенное функцией вы связаны):
R = 3 ; nFaces = 5 ;
tt = linspace(0,2*pi,nFaces+1).' ; tt(end) = [] ;
[x,y] = pol2cart(tt,zeros(nFaces,1)+R) ;
hp = patch(x,y,'b') ;
axis equal
Теперь, при условии, что рисунок является активным деятелем (нажмите на рисунке, чтобы дать ему фокус, если вы хотите быть уверенным), вы можете запросить данные, нанесенные внутри.
Во-первых, мы должны получить ручку всех графических объектов, отображаемых в axes
текущей фигуры:
% get handle of all graphic objects in the current axes
hlist = get(gca,'Children')
hlist =
Patch with properties:
FaceColor: [0 0 1]
FaceAlpha: 1
EdgeColor: [0 0 0]
LineStyle: '-'
Faces: [1 2 3 4 5]
Vertices: [5x2 double]
В моем случае есть только один объект, поэтому нет двусмысленности. Если было возвращено несколько дескрипторов, выберите один из объектов patch
(поиграйте с каждым и узнайте, что это такое).
После того, как объект, который вы хотите получить доступ идентифицирован, он легко проворачиваться:
% only one object in this case but if there was several in the list I
% would isolate the object I want to manipulate.
hp = hlist(1) ;
% to rotate the graphic object "hp", around axis Z ([0 0 1]), by 90 degrees.
rotate(hp ,[0 0 1] , 90)
или получить координаты точек:
% to get the points coordinates:
pc = get(hp,'Vertices')
pc =
0.286474508437579 2.713525491562421 0
-2.566695040447882 0.640576474687264 0
-1.476881248439841 -2.713525491562421 0
2.049830265314998 -2.713525491562421 0
3.139644057323040 0.640576474687263 0
Просто аккуратно, полученные координаты, 5 точек (линий) с X
, Y
и Z
координаты (colum ns) - координаты после поворот. Если вы хотите, чтобы исходные координаты вы запрашивали, прежде чем применять поворот к объекту.
Больше чтение:
Это зависит полностью от формата. Вы должны дать нам больше, чем я боюсь. – patrik
У меня есть траектория, чтобы следовать в формате .stl, и я преобразовал ее в файл matlab, используя код в https://de.mathworks.com/matlabcentral/fileexchange/3642-cad2matdemo-m – user70299
Хорошо, попробуйте поместить это в вопрос. Кроме того, я не хочу следовать ссылке на обмен файлами MATLAB, чтобы знать, что вы пытаетесь сделать, и поэтому никто больше не хочет. Вот почему вы получаете три голоса, чтобы закрыть. – patrik