Как построить куб в матлаб

Как построить 3D сетку (куб) в Matlab

Привет, я хотел бы построить прозрачную сетку в форме куба с линиями внутри. Что-то вроде этого:

Однако мне удалось нарисовать только 2D сетку:

Использую Matlab R2009b. Если невозможно построить это в Matlab, не могли бы вы порекомендовать мне программное обеспечение, которое я мог бы использовать.

6 ответов

Если вы не возражаете против нескольких циклов for, сработает что-то вроде этого:

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

Вы можете сделать внутреннюю линию прозрачной, установив color = [0,65, 0,65, 0,65]. И вы можете использовать стиль пунктирной линии для внутренних линий и сплошных линий для границ, чтобы сделать его более похожим на трехмерный объект.

В моем программном пакете я кодирую функцию mesh3 для построения трехмерных сеток тензорного произведения.

Я понимаю, что это запоздалый ответ, но он все еще действителен на тот случай, если кто-то еще хочет сделать то же самое.

Предполагая, что вы рисуете кубы (/ их края), альтернативой уже предоставленным ответам является использование кода «plotcube» от Оливера: plotcube

Преимущество этого решения в том, что вы можете:

Все они могут быть константами или переменными. (например, фиксированный цвет края или цвет, который изменяется в зависимости от значения Z и т. д.)

Дополнительную информацию о «патче» см. В документации по патчу.

Надеюсь, это кому-то поможет.

Вот код ‘plotcube’ на тот случай, если ссылка на исходный код Оливера когда-нибудь сломается:

Более векторизованная версия ответа Стивена может быть следующей:

К сожалению, MATLAB в настоящее время не поддерживает прозрачные линии (насколько мне известно). Если вам действительно нужно, чтобы они были прозрачными, я бы предложил использовать «патч».

Рассмотрим это векторизованное решение. У него есть преимущество в том, что он создает единый графический объект:

Источник

How to plot 3D grid (cube) in Matlab

Hi I would like to plot transparent cube-shaped grid with lines in it. Something like this: Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

However, I managed only to draw a 2D grid:

I use Matlab R2009b. If it is impossible to plot this in matlab could you recommend me a software I could use.

6 Answers 6

Consider this vectorized solution. It has the advantage that it creates a single graphic object:

Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

If you don’t mind a few for loops, something like this will work:

You will just need to make the grid transparent by probably changing line properties, I don’t think you can change alpha values to accomplish this. Hope that is helpful.

A more vectorized version of Stephen’s answer might be the following:

Unfortunately, MATLAB does not currently support transparent lines (to my knowledge). If you really need them to be transparent I’d suggest using ‘patch’.

I understand this is a late reply but it is still valid in case anyone else is looking at doing the same thing.

Assuming you are plotting cubes (/their edges), an alternative to the answers already provided is to use the ‘plotcube’ code from Oliver: plotcube

The advantage of this solution is that you can:

All of these can be constants, or variables. (e.g. fixed edge colour, or a colour that changes with Z-value etc.)

To add in functionality of 2. and 3. (above) change the ‘cellfun(@patch. ‘ section in Olivers code, adding in the four extra lines of code as follows: (replace the whole cellfun section with this; including the new ‘EdgeAlpha’ and ‘EdgeColor’ lines):

For more info on ‘patch’ please see patch documentation.

I hope that helps someone.

Here is the ‘plotcube’ code in case the link to the original code by Oliver breaks someday:

Источник

Как построить 3D сетку (куб) в Matlab

Привет я хотел бы построить прозрачную кубовидную сетку с линиями в нем. Что-то вроде этого:Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Однако мне удалось нарисовать только 2D-сетку:

Если вы не возражаете против нескольких циклов, что-то вроде этого будет работать:

Вам просто нужно сделать сетку прозрачной, возможно, изменив свойства линии, я не думаю, что вы можете изменить альфа-значения для достижения этой цели. Надеюсь, что это полезно.

Рассмотрим это векторизованное решение. У него есть преимущество в том, что он создает один графический объект:

Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Более векторизованная версия ответа Стивена может быть следующей:

К сожалению, в настоящее время MATLAB не поддерживает прозрачные линии (насколько мне известно). Если вам действительно нужно, чтобы они были прозрачными, я бы предложил использовать ‘patch’.

Я понимаю, что это поздний ответ, но он все еще действителен в случае, если кто-то еще пытается сделать то же самое.

Предполагая, что вы строите кубы (/ их ребра), альтернативой уже предоставленным ответам является использование кода plotcube от Оливера: plotcube

Преимущество этого решения заключается в том, что вы можете:

Для получения дополнительной информации о ‘patch’ см. patch документацию.

Я надеюсь, что это помогает кому-то.

Вот код ‘plotcube’ в случае, если ссылка на оригинальный код, сделанная Оливером, когда-нибудь прекратится:

вы можете сделать внутреннюю линию прозрачной, установив цвет = [0,65, 0,65, 0,65]. И вы можете использовать стиль штриховых линий для внутренних линий и сплошные линии для границ, чтобы сделать его более похожим на трехмерный объект.

В моем программном пакете я кодирую функцию mesh3 для построения трехмерных сеток тензорных произведений.

Источник

Как построить 3D сетку (куб) в Matlab

Привет я хотел бы построить прозрачную кубовидную сетку с линиями в нем. Что-то вроде этого:Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Однако мне удалось нарисовать только 2D-сетку:

Я использую Matlab R2009b. Если это невозможно изобразить в Matlab, не могли бы вы порекомендовать мне программу, которую я мог бы использовать.

6 ответов

Если вы не возражаете против нескольких циклов, что-то вроде этого будет работать:

Вам просто нужно сделать сетку прозрачной, возможно, изменив свойства линии, я не думаю, что вы можете изменить альфа-значения для достижения этой цели. Надеюсь, что это полезно.

Рассмотрим это векторизованное решение. Преимущество в том, что он создает один графический объект:

Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Более векторизованная версия ответа Стивена может быть следующей:

К сожалению, в настоящее время MATLAB не поддерживает прозрачные линии (насколько мне известно). Если вам действительно нужно, чтобы они были прозрачными, я бы предложил использовать ‘patch’.

Я понимаю, что это запоздалый ответ, но он все еще действителен, если кто-то еще пытается сделать то же самое.

Предполагая, что вы строите кубы (/ их ребра), альтернативой уже предоставленным ответам является использование кода plotcube от Оливера: plotcube.

Преимущество этого решения в том, что вы можете:

Все они могут быть константами или переменными. (например, фиксированный цвет края или цвет, который изменяется в зависимости от значения Z и т. д.)

Чтобы добавить функциональность 2. и 3. (выше), измените раздел ‘cellfun(@patch. ‘) в коде Оливера, добавив в четыре дополнительные строки кода: (заменить целое cellfun раздел с этим; включая новые строки ‘EdgeAlpha’ и ‘EdgeColor’):

Для получения дополнительной информации о ‘patch’, пожалуйста, смотрите документацию к патчу.

Я надеюсь, что это помогает кому-то.

Вот код ‘plotcube’ в случае, если ссылка на оригинальный код, сделанная Оливером, когда-нибудь прекратится:

Источник

Как построить куб в матлаб

Обычная графика MATLAB

Построение графиков точками и отрезками прямых

Графики в логарифмическоми полулогарифмическом масштабе

Гистограммы и диаграммы

Графики специальных типов

Создание массивов данных для трехмерной графики

Построение графиков трехмерных поверхностей, сечений и контуров

Средства управления подсветкой и обзором фигур

Средства оформления графиков

Одновременный вывод нескольких графиков

Управление цветовой палитрой

Окраска трехмерных поверхностей

Двумерные и трехмерные графические объекты

Одно из достоинств системы MATLAB — обилие средств графики, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI). Особое внимание в системе уделено трехмерной графике с функциональной окраской отображаемых фигур и имитацией различных световых эффектов.

Описанию графических функций и команд посвящена обширная электронная книга в формате PDF. Объем материала по графике настолько велик, что помимо вводного описания графики в уроке 3 в этой книге даются еще два урока по средствам обычной и специальной графики. Они намеренно предшествуют систематизированному описанию большинства функций системы MATLAB, поскольку графическая визуализация вычислений довольно широко используется в последующих материалах книги. При этом графические средства системы доступны как в командном режиме вычислений, так и в программах. Этот урок рекомендуется изучать выборочно или выделить на него не менее 4 часов.

Построение графиков отрезками прямых

Функции одной переменной у(х) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного математического моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси — горизонтальная X и вертикальная Y, и задаются координаты х и у, определяющие узловые точки функции у(х). Эти точки соединяются друг с другом отрезками прямых, т. е. при построении графика осуществляется линейная интерполяция для промежуточных точек. Поскольку MATLAB — матричная система, совокупность точек у(х) задается векторами X и Y одинакового размера.

Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.

plot (X, Y) — строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y — матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.

Приведенный ниже пример иллюстрирует построение графиков двух функций — sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:

На рис. 6.1 показан график функций из этого примера. В данном случае отчетливо видно, что график состоит из отрезков, и если вам нужно, чтобы отображаемая функция имела вид гладкой кривой, необходимо увеличить количество узловых точек. Расположение их может быть произвольным.

Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Рис. 6.1. Графики двух функций в декартовой системе координат

plot(Y) — строит график у(г), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y). imag(Y)). Во всех других случаях мнимая часть данных игнорируется.

Вот пример использования команды plot(Y):

Соответствующий график показан на рис. 6.2.

Как построить куб в матлаб. Смотреть фото Как построить куб в матлаб. Смотреть картинку Как построить куб в матлаб. Картинка про Как построить куб в матлаб. Фото Как построить куб в матлаб

Рис. 6.2. График функции, представляющей вектор Y с комплексными элементами

plot(X.Y.S) — аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.

Значениями константы S могут быть следующие символы.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *