x=1,y=1の交点を通り、z軸に平行な直線を三次元表示で描画したい
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
初めまして、基礎的な質問で申し訳ありません、
質問通りですが、x=1,y=1を通るかつ、z軸に平行な直線を三次元の点群表示で描画したいと考えています。
自分ができる範囲でプログラムを構築した現在のコードと結果を示します。
下の図の結果で言うと、一番奥のベクトルが表示したいものです。
実行不可の部分での改善手法やアドバイスを頂けると幸いです。
宜しくお願い致します。
p0 = [0,0,0; 1,0,0; 0,1,0; 1,1,0]; % 始点の座標
p1 = [0,0,1; 1,0,1; 0,1,1; 1,1,1]; % 終点の座標
v = p1 - p0; % ベクトル
figure;
quiver3(p0(:,1),p0(:,2),p0(:,3),v(:,1),v(:,2),v(:,3),0)
figure; %%以下3行実行不可
pcshow(pointCloud((v(:,3)))) %三次元表示
ptCloud = pointCloud(v(:,3),0);
0 commentaires
Réponse acceptée
Yoshio
le 23 Août 2019
点群で表示するために、一様乱数を使ってデータを作成してみました。このような感じでしょうか?
なお、z軸方向の値の大きさで色づけされていますが、これがご希望ではないなら、ヘルプデキュメンでpcshowを見て、適宜ご変更ください。
n = 300;
V = [ones(n,2) rand(n,1)];
pcshow(pointCloud(V))
2 commentaires
Yoshio
le 26 Août 2019
「三次元の点群表示で」の意味ですが、単に直線上に並んだ点を結ぶということでしたら、pointCloudを使わずに、plot3を使って以下のようにできます。
x = ones(10,1);
y = x;
z = linspace(0,1,10);
plot3(x,y,z)
grid on
または、lineを使っても同様にできます。
figure
line(x,y,z)
view(3)
grid on
Yoshio
le 7 Sep 2019
最初の解答例ですが、点群を乱数にする必要がなければ、
n = 300;
V = [ones(n,2) linspace(0,1,n)'];
pcshow(pointCloud(V))
でもよいですね。
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur LIDAR および点群の処理 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!