x=1,y=1の交点を通り、z軸に平行な直線を三次元表示で描画したい
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
初めまして、基礎的な質問で申し訳ありません、
質問通りですが、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 Kommentare
Akzeptierte Antwort
Yoshio
am 23 Aug. 2019
点群で表示するために、一様乱数を使ってデータを作成してみました。このような感じでしょうか?
なお、z軸方向の値の大きさで色づけされていますが、これがご希望ではないなら、ヘルプデキュメンでpcshowを見て、適宜ご変更ください。
n = 300;
V = [ones(n,2) rand(n,1)];
pcshow(pointCloud(V))
2 Kommentare
Yoshio
am 26 Aug. 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
am 7 Sep. 2019
最初の解答例ですが、点群を乱数にする必要がなければ、
n = 300;
V = [ones(n,2) linspace(0,1,n)'];
pcshow(pointCloud(V))
でもよいですね。
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu LIDAR および点群の処理 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!