Borrar filtros
Borrar filtros

How to resize (shrink) 3d surface ?

8 visualizaciones (últimos 30 días)
Teerapong Poltue
Teerapong Poltue el 21 de Nov. de 2020
Comentada: Image Analyst el 21 de Nov. de 2020
syms x y z
f = @(x,y,z) cos(x) + cos(y) + cos(z) ;
interval = [-pi:0.1:pi];
a= interval ;
b= interval;
c= interval;
[X,Y,Z] = meshgrid(a,b,c);
data = f(X,Y,Z);
p = patch(isosurface(a,b,c,data,0));
cdata = smooth3(rand(size(data)),'box',7);
isonormals(X,Y,Z,data,p)
isocolors(X,Y,Z,cdata,p)
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30)
daspect([1 1 1])
colorbar
axis tight
camlight
lighting gouraud
Now I have plot a unit cell with domension of -pi to pi
I would like to have the same shape but shrink to a smaller size let say 1*1*1
how can I do that

Respuestas (1)

Image Analyst
Image Analyst el 21 de Nov. de 2020
1*1*1 would be a single 1*1*1 would be a single element, right? What sense does that make?element, right? What sense does that make? You can vary the number of elements in the grid by adjusting the starting, step, and stopping parameters in this line:
interval = [-pi:0.1:pi];
Just look at the length of interval. Alternatively you could use linspace() to more directly specify how many elements there should be:
interval = linspace(-pi, pi, numElements);
  2 comentarios
Teerapong Poltue
Teerapong Poltue el 21 de Nov. de 2020
I mean now I have 1 element size of -pi to pi in 3D.
But I want 1 element size of -0.5 to 0.5 (with full element so interval have to remain -pi to pi)
Image Analyst
Image Analyst el 21 de Nov. de 2020
2 pi is not even divisible by 0.5 so you have to decide what's more important: the spacing per element, or the ending values of the range.
>> 2*pi/0.5
ans =
12.5663706143592
You can't have 12.566 elements. You can have either 13 or 14 with a spacing of 0.5 but then the ending value won't be pi:
>> interval = -pi : 0.5 : pi
interval =
Columns 1 through 11
-3.1416 -2.6416 -2.1416 -1.6416 -1.1416 -0.64159 -0.14159 0.35841 0.85841 1.3584 1.8584
Columns 12 through 13
2.3584 2.8584
Or you can have exactly 13 elements with the starting point = -pi and the ending point = pi, but the spacing (step) won't be exactly 0.5:
>> interval = linspace(-pi, pi, 13)
interval =
Columns 1 through 11
-3.1416 -2.618 -2.0944 -1.5708 -1.0472 -0.5236 0 0.5236 1.0472 1.5708 2.0944
Columns 12 through 13
2.618 3.1416

Iniciar sesión para comentar.

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by