MATLAB Answers

x=1,y=1の交点​を通り、z軸に平行な​直線を三次元表示で描​画したい

조회 수: 8(최근 30일)
virgo kk
virgo kk 2019년 8월 23일
댓글: Yoshio 2019년 9월 7일
初めまして、基礎的な質問で申し訳ありません、
質問通りですが、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);

채택된 답변

Yoshio
Yoshio 2019년 8월 23일
点群で表示するために、一様乱数を使ってデータを作成してみました。このような感じでしょうか?
なお、z軸方向の値の大きさで色づけされていますが、これがご希望ではないなら、ヘルプデキュメンでpcshowを見て、適宜ご変更ください。
n = 300;
V = [ones(n,2) rand(n,1)];
pcshow(pointCloud(V))
untitled.jpg
  댓글 수: 2
Yoshio
Yoshio 2019년 9월 7일
最初の解答例ですが、点群を乱数にする必要がなければ、
n = 300;
V = [ones(n,2) linspace(0,1,n)'];
pcshow(pointCloud(V))
でもよいですね。

댓글을 달려면 로그인하십시오.

추가 답변(1개)

virgo kk
virgo kk 2019년 8월 27일
お答え頂いて有難うございます。参考にさせていただきます。
一つ質問なのですが、pointCloudクラスにおいて、指定した各値Colorなどの値を入力したものを
二つ以上pcshowで表示することは可能でしょうか?
具体的にコードを下に示します。
V1=pointCloud([1 1 0],'Color',[0 0 255],'Normal',[1 1 0],'Intensity',[0.5]);
>> V2=pointCloud([2 2 0],'Color',[0 0 255],'Normal',[1 1 0],'Intensity',[0.5]);
>> pcshow(V1,V2)
% エラー: pcshow
パラメーター名には string スカラーまたは文字ベクトルが必要です。
エラー: pcshow>validateAndParseInputs (line 160)
parser.parse(pvpairs{:});
エラー: pcshow (line 99)
validateAndParseInputs(varargin{:});
これを入力しても、上のようなエラー文が出てしまいます。点が一点の場合は正しく表示されます。
簡単な解決法としては、hold on;を使うことなのですが、ここでは使わずに表示できるかをお答え頂きたいです。
宜しくお願い致します。
  댓글 수: 2
virgo kk
virgo kk 2019년 8월 27일
わかりました。
今回はお答え頂いて有難うございました。

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!