MATLAB Answers

Creating a rectangle with 4 points

22 views (last 30 days)
Umut Ege Ulucay
Umut Ege Ulucay on 1 May 2020
Edited: Adam Danz on 4 May 2020
Hello, I have 4 points with (x,y,z) and I want to have a closed shape which connects them.
I actually want to draw 4 lines between the 4 points and make them a rectangle.
Thank you for help.

  0 Comments

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 1 May 2020
Edited: Adam Danz on 4 May 2020
plot3([2 4 4 2 2],[1 1 5 5 1], [3 3 3 3 3], '-k') % for (x,y,z)
% plot([2 4 4 2 2],[1 1 5 5 1], '-k') % for (x,y)
grid on
axis equal

  2 Comments

Umut Ege Ulucay
Umut Ege Ulucay on 2 May 2020
This one works pretty well, thank you.
I want to ask one more question. What if I have couple of rectangles and I want to fill the inside of them according to some values and a colorbar to show the values. Thanks for your help so far.
edit: As I see, I can use fill3 function, am i right?
Adam Danz
Adam Danz on 2 May 2020
You can check out fill3(). There are examples toward the bottom of that page.
This page also shows you how to do it with patch().
To link the colors of the rectangles to a colobar, you can define a color map which will be a nx3 matrix of RGB values. Assign the colormap to your axes, and then use the rows of the colormap to assign color to each patch. If you get stuck, let me know where I can help.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 1 May 2020
Did you try rectangle()?
rectangle('Position', [x1, y1, x2-x1, y2-y1], 'FaceColor', 'r', 'EdgeColor', 'k');
or using line():
line([x1,x2], [y1, y1], 'Color', 'r', 'LineWidth', 2);
hold on;
line([x1,x2], [y2, y2], 'Color', 'r', 'LineWidth', 2);
line([x1,x1], [y1, y2], 'Color', 'r', 'LineWidth', 2);
line([x2,x2], [y1, y2], 'Color', 'r', 'LineWidth', 2);
hold off;

  1 Comment

Umut Ege Ulucay
Umut Ege Ulucay on 2 May 2020
Yes that works but I asked 3d with point z. Thank you anyways

Sign in to comment.

Tags


Translated by