Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 709
1
Matlab 2015

Как можно получить доступ к координатам модели в графическом окне (STL и матлаб)

03.05.2019, 16:17. Показов 2325. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!
В solidworks 2015 sp5 я создал STL модель, чтобы импортировать её в графическое окно матлаба и совершать манипуляции над ней; если конкретнее, то модель - это спутник, который должен летать вокруг планеты ( sphere(50) ).
Но воспользовавшись кодом из примеров mathworks (а также изучив весь представленный ими материал полностью), я так и не понял, как же переместить эту модель в пространстве (а ещё лучше - повернуть, хотя, это частности перемещения).
Иными словами, не могли бы вы подсказать, как можно получить доступ к координатам модели в графическом окне?
Код вызова приведён ниже (всё работает):
Matlab M
1
2
3
model = createpde;
gd = importGeometry(model,'C:\Users\Ро\Desktop\sputnikTipa.stl');
plo = pdegplot(model,'FaceLabels','off')
Добавлено через 5 минут
P.S. манипуляции типа:
Matlab M
1
set(plo, 'XData', "чиселка");
не проходят - модель просто исчезает и вылазит предупреждение:
Matlab M
1
2
3
4
Warning: Error creating or updating Line
 Error in value of one or more of the following properties:  XData
 YData
 Array is wrong shape or size
Получить доступ к содержимому объекта plo также не выходит - окно variables просто открывается пустым.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2019, 16:17
Ответы с готовыми решениями:

Как можно зафиксировать в графическом окне figure диалоговое окно выбора файла
Может быть каким-то образом можно зафиксировать в графическом окне figure диалоговое окно выбора...

Как получить доступ к объектам set-множества? (STL)
Помогите, пожалуйста: запихал в контейнер set объекты класса, а как потом получить доступ к...

Как получить доступ к данным в новом окне excel?
Добрый день, форумчане! Возникла следующая проблема. Имеется 1 запущенный файл с макросом. Далее...

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

4
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
03.05.2019, 16:46 2
Я в хелпе матлаба нашел такое
Matlab M
1
2
3
4
5
6
7
figure
[x,y,z] = sphere;
surf(x,y,z)  % sphere centered at origin
hold on
surf(x+3,y-2,z)  % sphere centered at (3,-2,0)
surf(x,y+1,z-3)  % sphere centered at (0,1,-3)
daspect([1 1 1])
1
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 709
03.05.2019, 16:50  [ТС] 3
nuHrBuH, спасибо, конечно, но нужно было совершенно другое - нужно перемещать импортированную STL модель, а не сферу (как я, в общем-то, и написал ранее).
0
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
03.05.2019, 17:16 4
Лучший ответ Сообщение было отмечено Ромуальд_7 как решение

Решение

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function main
% Import an STL mesh, returning a PATCH-compatible face-vertex structure
fv = stlread('files\QuadraTresHelicesRndCrnr.stl');
 
disp_stl(fv)
 
% Извлекаем данные
x = fv.vertices(:,1);
y = fv.vertices(:,2);
z = fv.vertices(:,3);
 
fv1 = struct('faces',fv.faces,'vertices',[x+50 y z]);    % смещение X+50
 
% поворот модели относительно оси Y на 25 градусов
theta = 25;
x1 = x.*cosd(theta) + z.*sind(theta);
z1 = -x.*sind(theta) + z.*cosd(theta);
fv2 = struct('faces',fv.faces,'vertices',[x1 y+50 z1]);    % и местим Y+50
 
disp_stl(fv1)
disp_stl(fv2)
 
camlight('headlight');
material('dull');
end    
 
function disp_stl(fv)
patch(fv,'FaceColor',       [0.8 0.8 1.0], ...
     'EdgeColor',       'none',        ...
     'FaceLighting',    'gouraud',     ...
     'AmbientStrength', 0.15);
end
функция для чтения .STL взята ОТСЮДА
1
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 709
03.05.2019, 18:46  [ТС] 5
nuHrBuH, к сожалению, в матлабе 2015 года нет функции "stlread", или я не знаю какой именно пакет конкретно у меня не подключен.

Добавлено через 5 минут
Аааа, так функцию можно скопировать с их сайта и создать как свою отдельную! Большое Вам спасибо!
0
03.05.2019, 18:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2019, 18:46
Помогаю со студенческими работами здесь

Как получить доступ к субкомпоненту компонента которое расположено на чужом окне
Здравствуйте. Есть библиотека dll которая подключена к главной програми.На главном окне программы...

Как в yii получить доступ высланной контроллером модели из layouts/column2.php?
Можете подсказать, как получить доступ к модели, отправленной в шаблон отображения из контроллера в...

Как можно получить итератор на элемент обрабатываемый в лямбде в функции for_each?STL
Как можно получить итератор на элемент обрабатываемый в лямбде? for_each(arr.begin(), arr.end(),...

Как можно программно открыть ссылку и получить в окне броузера открытый файл?
Добрый день! Как можно программно открыть ссылку и получить в окне броузера открытый файл? ...

Как можно получить доступ к файлу по FTP
Например есть сайт типо name.narod.ru. Пароль известен. Как получить доступ к файлу на сайте?

Можно ли как-то из XAML получить доступ к Resources.resx
Собственно название темы и есть вопрос. На картинке показан файл, про который я говорю.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru