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 ExchangeProgramming についてさらに検索

製品

リリース

R2019a

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by