查看完整版本 : 【求助】三维数据点画图
一系列表示数据点的三维坐标,如果两点之间的距离小于某个值,两点之间就用线段连起来,否则就不连,怎么实现〉??谢谢!
fanxing39
2008-01-13, 22:40
发你的数据发上来,这样做起来才有意思!
我已经找出了两点之间距离距离满足条件的点,把它们列出来了,下面列出部分数据:
标号 x1 y1 z1 x2 y2 z2
1 -4.756 -0.999 -12.755 -2.451 0.875 -9.254
2 -4.756 -0.999 -12.755 -0.875 -2.992 -10.330
3 -4.756 -0.999 -12.755 -7.261 0.042 -9.960
4 -2.451 0.875 -9.254 -4.946 2.927 -6.200
5 -2.451 0.875 -9.254 -0.409 2.584 -8.520
6 -2.451 0.875 -9.254 -0.875 -2.992 -10.330
7 -2.451 0.875 -9.254 -7.261 0.042 -9.960
8 -4.946 2.927 -6.200 -1.416 5.567 -4.938
9 -4.946 2.927 -6.200 -8.278 0.311 -7.468
10 -4.946 2.927 -6.200 -8.970 2.943 -3.706
11 -4.946 2.927 -6.200 -4.783 3.330 -2.446
12 -1.416 5.567 -4.938 -3.220 6.401 -1.242
13 -1.416 5.567 -4.938 0.126 7.758 -4.451
14 -1.416 5.567 -4.938 1.630 6.708 -8.683
15 -1.416 5.567 -4.938 -0.409 2.584 -8.520
16 -1.416 5.567 -4.938 -4.783 3.330 -2.446
17 -3.220 6.401 -1.242 -0.704 10.187 -0.745
18 -3.220 6.401 -1.242 0.126 7.758 -4.451
19 -3.220 6.401 -1.242 -4.783 3.330 -2.446
20 -3.220 6.401 -1.242 -5.119 3.389 2.107
下一步就是把在同一行的两个点用线段连接起来形成最终的一个图,第一列是每个线段的标号,如果能加载到所得的图形中更好,不能就先不加载!谢谢帮忙的同志们!!
mathjiang
2008-02-20, 20:46
这难吗?楼主怎么想的?
mathjiang
2008-02-20, 21:14
clear all
coordi=[-4.756 -0.999 -12.755 -2.451 0.875 -9.254
-4.756 -0.999 -12.755 -0.875 -2.992 -10.330
-4.756 -0.999 -12.755 -7.261 0.042 -9.960
-2.451 0.875 -9.254 -4.946 2.927 -6.200
-2.451 0.875 -9.254 -0.409 2.584 -8.520
-2.451 0.875 -9.254 -0.875 -2.992 -10.330
-2.451 0.875 -9.254 -7.261 0.042 -9.960
-4.946 2.927 -6.200 -1.416 5.567 -4.938
-4.946 2.927 -6.200 -8.278 0.311 -7.468
-4.946 2.927 -6.200 -8.970 2.943 -3.706
-4.946 2.927 -6.200 -4.783 3.330 -2.446
-1.416 5.567 -4.938 -3.220 6.401 -1.242
-1.416 5.567 -4.938 0.126 7.758 -4.451
-1.416 5.567 -4.938 1.630 6.708 -8.683
-1.416 5.567 -4.938 -0.409 2.584 -8.520
-1.416 5.567 -4.938 -4.783 3.330 -2.446
-3.220 6.401 -1.242 -0.704 10.187 -0.745
-3.220 6.401 -1.242 0.126 7.758 -4.451
-3.220 6.401 -1.242 -4.783 3.330 -2.446
-3.220 6.401 -1.242 -5.119 3.389 2.107];
[rcoordi,ccoordi]=size(coordi);
xx=coordi(:,1:3:4);
yy=coordi(:,2:3:5);
zz=coordi(:,3:3:6);
for i=1:rcoordi
plot3(xx(i,:),yy(i,:),zz(i,:))
figure
end
mathjiang
2008-02-20, 21:15
楼主,试试下面程序(在matlab2007b下已运行通过):
clear all
coordi=[-4.756 -0.999 -12.755 -2.451 0.875 -9.254
-4.756 -0.999 -12.755 -0.875 -2.992 -10.330
-4.756 -0.999 -12.755 -7.261 0.042 -9.960
-2.451 0.875 -9.254 -4.946 2.927 -6.200
-2.451 0.875 -9.254 -0.409 2.584 -8.520
-2.451 0.875 -9.254 -0.875 -2.992 -10.330
-2.451 0.875 -9.254 -7.261 0.042 -9.960
-4.946 2.927 -6.200 -1.416 5.567 -4.938
-4.946 2.927 -6.200 -8.278 0.311 -7.468
-4.946 2.927 -6.200 -8.970 2.943 -3.706
-4.946 2.927 -6.200 -4.783 3.330 -2.446
-1.416 5.567 -4.938 -3.220 6.401 -1.242
-1.416 5.567 -4.938 0.126 7.758 -4.451
-1.416 5.567 -4.938 1.630 6.708 -8.683
-1.416 5.567 -4.938 -0.409 2.584 -8.520
-1.416 5.567 -4.938 -4.783 3.330 -2.446
-3.220 6.401 -1.242 -0.704 10.187 -0.745
-3.220 6.401 -1.242 0.126 7.758 -4.451
-3.220 6.401 -1.242 -4.783 3.330 -2.446
-3.220 6.401 -1.242 -5.119 3.389 2.107];
[rcoordi,ccoordi]=size(coordi);
xx=coordi(:,1:3:4);
yy=coordi(:,2:3:5);
zz=coordi(:,3:3:6);
for i=1:rcoordi
plot3(xx(i,:),yy(i,:),zz(i,:))
figure
end
quan1207
2008-02-22, 09:52
高手呀!怎么做到的
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.