[英]Plot sphere containing a 3d point cloud in Matlab
我有一個保存在PLY文件中的三維點雲。
以點(x,y,z)為球的中心,我想繪制整個點雲,但是半徑為R的球體包含點雲的幾個點,但不是所有的雲。
球體應該非常透明,以使其內部的點可見。
我試過以下但沒有成功:
% Read point cloud file
ptCloud = pcread('frame0000.ply');
% Show point cloud
pcshow(ptCloud);
hold on
% Sphere generation
[x, y, z] = sphere;
surf(x,y,z)
hold on
% Sphere centered at (3, -2, 0)
surf(x+3,y-2,z)
這樣做,我得到一個帶有以(3,-2,0)為中心的球體的圖,但它占據了球體內的所有點雲。 更重要的是,我看不到點雲,因為球體是不透明的。
如何給球體指定一個特定的半徑,使其僅取半徑R內的點? 而且,如何使球體透明但不可見,以便球體內的點可見?
我感謝所有答案! 😊
有兩件事:
創建球體 - 使用Matlab函數sphere
,可以創建單位球體。 如果要縮小/放大,可以將x,y和zs'與標量相乘。 確保在移動原點之前執行此操作。 在那之后,你可以改變原點。
繪制球體並繪制繪圖的屬性 - 在這里,您可以更改圖形的屬性以使其透明。 Surface Properties可以找到各種選項。
例:
[x, y, z] = sphere;
mesh(3*x+3,3*y-2,3*z, 'Marker', '.', 'EdgeColor', 'flat', 'FaceColor', 'none', 'LineStyle', ':')
hold on;
plot3(3, -2, 0, '+r', 'MarkerSize', 20)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.