I would like to make a triangle like this one using these source codes that I made already:
function pyramid(a)
for b = 1:a
base = (sqrt(3)*b)/2;
height = 1 - (b * 3/2)
c = [-base base 0 -base];
d = [height height 1 height];
plot(c,d); hold on
end
this only plots the structure of the triangle
how do i make it plot like that? (with inner triangles)

 採用された回答

Jan
Jan 2021 年 4 月 27 日

0 投票

a = 5;
base = sqrt(3) / 2;
height = 1 - 3/2;
c = [-base, base, 0, -base];
d = [height, height, 1, height];
figure;
axes('NextPlot', 'add'); % As: hold on
for ia = 1:a
for ib = 1:ia
plot(c + (2 * ib - ia) * base, d + 3 * ia * height);
end
end

4 件のコメント

Blake Steven Robers
Blake Steven Robers 2021 年 4 月 27 日
I can't seem to squeeze the plot between y = 1 and y = 1 - height, how can i change it that way
Jan
Jan 2021 年 4 月 27 日
I do not understand, what you want. What should be "squeezed"? You can scale the variables base and hight however you like.
Blake Steven Robers
Blake Steven Robers 2021 年 4 月 30 日
The y-axis of the plot should be betwwen 1 and [ 1 - height ]. While its x axis is between [ - base ] and [ + base ]. So the triangle will be just be "squeezed" between those coordinates. Sorry for asking again.
Jan
Jan 2021 年 5 月 1 日
There is no need to say "sorry", because questions about Matlab are the purpose of this forum. Let me mention, that you did not aks a question in your last comment.
According to your description you have to divide the positions by a sacalar factor and shift the y positions by a scalar constant. This is simple maths.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で 2-D and 3-D Plots についてさらに検索

製品

リリース

R2019a

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by