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)

 Réponse acceptée

Jan
Jan le 27 Avr 2021
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 commentaires

Blake Steven Robers
Blake Steven Robers le 27 Avr 2021
I can't seem to squeeze the plot between y = 1 and y = 1 - height, how can i change it that way
Jan
Jan le 27 Avr 2021
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 le 30 Avr 2021
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 le 1 Mai 2021
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Programming dans Centre d'aide et File Exchange

Produits

Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by