2016-05-26 5 views
-1

Wie kann ich eine 3D-Begrenzungsbox um einen 3D-Punkt in Matlab zeichnen? z.B. Zeichnen eines Würfels (15 × 15 × 15) um einen 3D-Punkt (20, 3, 10); Der Punkt sollte innerhalb und in der Mitte des Würfels sein.Wie zeichne ich einen Würfel (3D-Box) um einen Punkt in MATLAB?

+0

Bitte einen Codeblock ? – Rudra

+0

Ich habe keine Ahnung, wie das geht .... – Xio

+0

Immer ein Stück Code hinzufügen !! – Marco

Antwort

0

Möchten Sie, dass die sechs Seiten der Box halbtransparent sind? Wenn ja, wird die folgende verwenden:

% Center point is at coordinate [ax ay az]. 
ax = 20; ay = 3; az = 10; 

% Full-width of each side of cube. 
w = 15; 

% For readability. 
h = w/2; 

patch_args = { 'FaceColor', 'b', 'FaceAlpha', 0.3 }; 

% Side #1 of 6. 
patch('XData', ax+[-h -h h h], 'YData', ay+[-h h h -h], 'ZData', az+[-h -h -h -h], patch_args{:}) 
daspect([1 1 1]) % 1:1:1 aspect ratio. 
hold on 
% Side #2 of 6. 
patch('XData', ax+[-h -h h h], 'YData', ay+[-h h h -h], 'ZData', az+[ h h h h], patch_args{:}) 
% Side #3 of 6. 
patch('XData', ax+[-h -h h h], 'YData', ay+[ h h h h], 'ZData', az+[-h h h -h], patch_args{:}) 
% Side #4 of 6. 
patch('XData', ax+[-h -h h h], 'YData', ay+[-h -h -h -h], 'ZData', az+[-h h h -h], patch_args{:}) 
% Side #5 of 6. 
patch('XData', ax+[ h h h h], 'YData', ay+[-h -h h h], 'ZData', az+[-h h h -h], patch_args{:}) 
% Side #6 of 6. 
patch('XData', ax+[-h -h -h -h], 'YData', ay+[-h -h h h], 'ZData', az+[-h h h -h], patch_args{:}) 

% Red dot in middle. 
scatter3(ax, ay, az, 'or', 'filled', 'SizeData', 150) 

hold off 

Wenn Sie stattdessen die sechs Seiten vollständig transparent sein wollen, können Sie den angezeigten Code wiederholen könnte aber eingestellt FaceAlpha zu 0.0 statt 0.3

+0

Danke, wie soll ich XData, YData und ZData angeben? Ich habe den Mittelpunkt (z. B. Punkt A) Koordinaten und die Größe der Box. Ich muss eine Box um den Punkt A zeichnen, so wie A in der Mitte des Würfels ist. – Xio

+0

Ich habe gerade die Antwort bearbeitet, um zu zeigen, wie man die Box an einem beliebigen 3d-Koordinatenpunkt zentriert. Haben Sie danach gefragt? –

+0

Danke, ja. Nun, wie kann ich eine beliebige Boxgröße definieren? z.B. 20x20x20 oder 10x10x10 oder was auch immer ... – Xio

Verwandte Themen