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

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 ответов

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

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

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

Читайте также:  внешний дизайн частного дома

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

6 ответов

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

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

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

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

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

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

Читайте также:  код по окз машинист по стирке и ремонту спецодежды детского сада

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

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

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

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

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

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

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

Источник

Creating 3-D Plots

This example shows how to create a variety of 3-D plots in MATLAB®.

Mesh Plot

The mesh function creates a wireframe mesh. By default, the color of the mesh is proportional to the surface height.

Surface Plot

The surf function is used to create a 3-D surface plot.

Surface Plot (with Shading)

Contour Plot

The contour function is used to create a plot with contour lines of constant value.

Quiver Plot

The quiver function plots 2-D vectors as arrows.

Slices through 3-D Volumes

The slice function displays data at planes that slice through volumetric data.

Open Example

You have a modified version of this example. Do you want to open this example with your edits?

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

You can also select a web site from the following list:

How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

Источник

Обучающий онлайн портал