簡體   English   中英

在Matlab中繪制包含3d點雲的球體

[英]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內的點? 而且,如何使球體透明但不可見,以便球體內的點可見?

我感謝所有答案! 😊

有兩件事:

  1. 創建球體 - 使用Matlab函數sphere ,可以創建單位球體。 如果要縮小/放大,可以將x,y和zs'與標量相乘。 確保在移動原點之前執行此操作。 在那之后,你可以改變原點。

  2. 繪制球體並繪制繪圖的屬性 - 在這里,您可以更改圖形的屬性以使其透明。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM