Problem Plotting 4D data
이전 댓글 표시
Hello everyone,
I have a dataset that is result of a 3D Scanner and it's in the format (x,y,z,value) for each point. The value of each point represents the strength of signal received by the antennas. The data is scanned in regular grid, but the values of the points with no signal received from are zero or very small.
Right now I am representing these points with "*" as follows:
for k=1:91
for j=1:101
for i=1:101
if 50<dbstolt(i,j,k)
plot3(i,j,k,'-r*');hold on
end
end
end
end
My original dataset is called dbstolt, I attached a photo for better understanding. http://tinypic.com/r/sawaxt/7
Now I would like to connect these points and make a 3D Surface from them, but I don't know how. Maybe using the function patch? but how do I determine the relation between the points?
Thanks in advance
댓글 수: 2
Sean de Wolski
2011년 4월 13일
Is that a gun? If so, you have my attention.
Andrew Newell
2011년 4월 13일
Good use for a scanner!
채택된 답변
추가 답변 (2개)
Sean de Wolski
2011년 4월 14일
The problem you're seeing is that the area of the edges is significant compared to the area of the faces. You could try either lowering the edgealpha or setting the edgecolor to none:
patch(fv,'edgecolor','none');%no edges
patch(fv,'edgealpha',0.2); %20% transparency in the edges.
댓글 수: 2
Saeed68gm
2011년 4월 14일
Sean de Wolski
2011년 4월 14일
It uses a marching cubesesque approach. Marching cubes as an algorithm was proprietary until 2006ish so Mathworks developed something similar for the isosurface function. I don't if they've since changed it and I don't know the details about its mechanisms. Steve Eddins would be the one to ask about that. See his blog here:
http://blogs.mathworks.com/steve/
As far as the colors. If you want the edges to show but not be black, you could set them to a slightly darker shade of the facecolor so they're still noticeable but don't interfere as much.
Ps. I'm also interested in the workings of the isosurface function, but I haven't delved into it.
Saeed68gm
2011년 5월 18일
0 개 추천
댓글 수: 3
Andrew Newell
2011년 5월 18일
Can you post a separate question on this, please?
Asadullah
2012년 7월 17일
Hey Saeed,
If you are interested to apply marching cubes algorithm to your data set then pls visit http://www.mathworks.com/matlabcentral/fileexchange/32506-marching-cubes
Sagar
2015년 3월 9일
I am having a similar issue, I have similar scanner data and all I want is to show all the values in 3d space using the isosurface. How can I do? If I don't specify ISO value what exactly does it give? Do I need to use other 3d plot functions? Please suggest what is the best way to plot my x,y,z,value data in 3d space in a nice way. Thanks, -Sagar
-Sagar
카테고리
도움말 센터 및 File Exchange에서 Polygons에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!