DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   Legacy and Other Languages (http://www.daniweb.com/forums/forum42.html)
-   -   Matlab Dataset (http://www.daniweb.com/forums/thread48976.html)

noobDesigner Jun 30th, 2006 8:49 am
Matlab Dataset
 
hello!!!

again i encounter a problem .........

I was wondering if anyone can point me in the right direction.

What i am trying to do is create a volume dataset. I have been aiming to create a coloured cube and put a cylindrical object inside it (of a different colour). once i have done this i am to take slices out of it and display it in two dimensions.

wonder if anyone can put me on the right path.......


Mins

b4codes Jul 13th, 2006 3:28 pm
Re: Matlab Dataset
 
You could have tried kluid (http://www.kluid.com) for this. Well the 2D slice will be either a square with a circle or a rectangle in it depending from which side you cut the volume. But in case you still want to draw the 3d volume here are the codes for cube (you can easily modify it for cylinder also):

function cube(i,d,c,alpha);
% function to draw a 3-D cube in a 3-D plot
%
%
% cube(start,size,color,alpha);
%
% will draw a cube at 'start' of size 'size' of color 'color' and
% transparency alpha (1 for opaque, 0 for transparent)
% Default size is 1
% Default color is blue
% Default alpha value is 1
%
% start is a three element vector [x,y,z]
% size the a three element vector [dx,dy,dz]
% color is a character string to specify color
% (type 'help plot' to see list of valid colors)
%
%
% cube([2 3 4],[1 2 3],'r',0.7);
% axis([0 10 0 10 0 10]);
%

switch(nargin),
case 0
disp('Too few arguements for cube');
return;
case 1
l=1; %default length of side of cube is 1
c='b'; %default color of cube is blue
case 2,
c='b';
case 3,
alpha=1;
case 4,
%do nothing
otherwise
disp('Too many arguements for cube');
end;
x=[i(1)+[0 0 0 0 d(1) d(1) d(1) d(1)]; ...
i(2)+[0 0 d(2) d(2) 0 0 d(2) d(2)]; ...
i(3)+[0 d(3) 0 d(3) 0 d(3) 0 d(3)]]';
for n=1:3,
if n==3,
x=sortrows(x,[n,1]);
else
x=sortrows(x,[n n+1]);
end;
temp=x(3,: );
x(3,: )=x(4,: );
x(4,: )=temp;
h=patch(x(1:4,1),x(1:4,2),x(1:4,3),c);
set(h,'FaceAlpha',alpha);
temp=x(7,: );
x(7,: )=x(8,: );
x(8,: )=temp;
h=patch(x(5:8,1),x(5:8,2),x(5:8,3),c);
set(h,'FaceAlpha',alpha);
end;


: ]

b4codes

*******************************************************

Quote:

Originally Posted by noobDesigner
hello!!!

again i encounter a problem .........

I was wondering if anyone can point me in the right direction.

What i am trying to do is create a volume dataset. I have been aiming to create a coloured cube and put a cylindrical object inside it (of a different colour). once i have done this i am to take slices out of it and display it in two dimensions.

wonder if anyone can put me on the right path.......


Mins



All times are GMT -4. The time now is 8:23 am.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC