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)

 Respuesta aceptada

Jan
Jan el 27 de Abr. de 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 comentarios

Blake Steven Robers
Blake Steven Robers el 27 de Abr. de 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 el 27 de Abr. de 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 el 30 de Abr. de 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 el 1 de Mayo de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Productos

Versión

R2019a

Etiquetas

Preguntada:

el 27 de Abr. de 2021

Editada:

el 2 de Mayo de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by