Artists have proposed different proportions for the human body, throughout history. In ancient Egypt, the height of a human figure was set at 6.33 times the length of his foot [1]. For Michelangelo, as well as for Lisippo, the ideal height of a man was 8 times the head [1], [2]. In 1958, Burne Hogarth proposed as a reference for human proportions an imposing frame standing more than 190 cm tall, about 8.7 times the head [3].

But what do we know about human proportions, from an experimental point of view? I considered a 1972 paper by Renato Contini (destined for laboratories that manufacture prosthetic limbs) with several geometric and mechanic measures on the bodies of a group of US citizens, both males and females. In particular, I considered the measures reported in Figures 7 and 8 of the aforementioned paper [4], where the length of the segments of the body is expressed as a function of the height, H. The problem with the illustrations in the original paper is that they do not respect the proportions reported on the figures themselves (figure 1). Therefore, they are pretty confusing for the artist.

Figure 1. The original illustration of [4]. I used the proportions that refer to the US population. H: total height.

In order to generate an illustration that faithfully represented the proportions experimentally determined by Contini, I wrote an Octave script (reported at the end of this article) which generates Figure 2, where the proportions are indicated in a way that is probably more useful for the artist: I express the lengths of the limbs as a function of both H and of h. This same script can be used to compare a male and a female of the same height (figure 3). The female body is exactly 8 times the head, while the male body is only 7.69 times the head. The head of a male is bigger than the head of a female of the same height, the shoulders are wider, and the hips are tighter, as expected. The relative length of the torso is a bit longer in women than in men. A woman stands 6.62 times her foot, a man 6.58; therefore the Egyptian statues had longer feet, in proportion, than the average US citizen.

Figure 2. The proportions of the human body, according to Contini [4]. I considered a female of 161.3 cm (left) and a male of 175.3 cm (right). H: total height; h: head.

Figure 3. The proportions of the human body, according to Contini [4]. I considered a female (left) and a male (right) of the same height (170.0 cm). H: total height; h: head.

References

[1] De Simoni Luigi, De Simoni Piero, Anatomia Umana Artistica, Volume I, Bonacci Editore, Roma 1986

[2] Bridgman George B, Bridgman’s Life Drawing, Dover Publications, New York, 1924

[3] Hogarth Burne, Dynamic Anatomy, Watson-Guptill Publications, New York, 1958

[4] Contini Renato, Body Segment Parameters, Part II, 1972

The script

% file name = Contini
% date of creation = 23/05/2023
%
close all
clear all
%
%-------------------------------------------------------------------------------
% US population
%-------------------------------------------------------------------------------
%
height(1) = 161.3; % height of female (cm)
height(2) = 175.3; % height of male (cm)
width1 = [0.245*height(1),0.259*height(2)]; % from the tip of one clavicole to the tip of the other
width2 = [0.219*height(1),0.200*height(2)]; % from one head of one femur to the head of the other
width3 = [0.057*height(1),0.055*height(2)]; % width of the footh
Length1 = [0.938*height(1),0.936*height(2)];
Length2 = [0.875*height(1),0.870*height(2)];
Length3 = [0.825*height(1),0.819*height(2)];
Length4 = [0.632*height(1),0.630*height(2)];
Length5 = [0.480*height(1),0.485*height(2)];
Length6 = [0.370*height(1),0.357*height(2)];
Length7 = [0.524*height(1),0.530*height(2)];
Length8 = [0.282*height(1),0.285*height(2)];
Length9 = [0.048*height(1),0.043*height(2)];
js = 5 % joint size
shift = [0,100] % I use this to shift the second plot on the right
%
figure(1)
%
for (i=1:2)
  %
  H = height(i)
  w1 = width1(i)
  w2 = width2(i)
  w3 = width3(i)
  L1 = Length1(i)
  L2 = Length2(i)
  L3 = Length3(i)
  L4 = Length4(i)
  L5 = Length5(i)
  L6 = Length6(i)
  L7 = Length7(i)
  L8 = Length8(i)
  L9 = Length9(i)
  h = H - L2 % head height
  l = h/3 % head width divided by two
  %
  %-------------------------------------------------------------------------------
  % bones
  %-------------------------------------------------------------------------------
  %
  plot([0+shift(i),0+shift(i)],[H-h,L7],"-k","linewidth",1.5) % backbone
  hold on
  rectangle ("Position",[-l+shift(i),H-h,2*l,h],"linewidth",1.5) % head
  plot([-l+shift(i),l+shift(i)],[L1,L1],"-k","linewidth",1.5) % eyes
  %
  plot([-w1/2+shift(i),w1/2+shift(i)],[L3,L3],"-k","linewidth",1.5) % shoulders (tips of the clavicles)
  %
  plot([-w1/2+shift(i),-w1/2+shift(i)],[L3,L4],"-k","linewidth",1.5) % homerus, left
  plot([w1/2+shift(i),w1/2+shift(i)],[L3,L4],"-k","linewidth",1.5) % homerus, rigth
  %
  plot([-w1/2+shift(i),-w1/2+shift(i)],[L4,L5],"-k","linewidth",1.5) % radius, left
  plot([w1/2+shift(i),w1/2+shift(i)],[L4,L5],"-k","linewidth",1.5) % radius, rigth
  %
  rectangle ("Position",[-w1/2-(3/4)*l/2+shift(i),L6,(3/4)*l,L5-L6],"linewidth",1.5) % hand, left
  rectangle ("Position",[w1/2-(3/4)*l/2+shift(i),L6,(3/4)*l,L5-L6],"linewidth",1.5) % hand, rigth
  %
  plot([-w2/2+shift(i),w2/2+shift(i)],[L7,L7],"-k","linewidth",1.5) % hip
  %
  plot([-w3+shift(i),w3+shift(i)],[0,0],"-k","linewidth",1.5) % feet, plant
  %
  plot([-w3+shift(i),-w3/2+shift(i)],[0,L9],"-k","linewidth",1.5) % ankle, left
  plot([-w3/2+shift(i),0+shift(i)],[L9,0],"-k","linewidth",1.5) % ankle, left
  plot([0+shift(i),w3/2+shift(i)],[0,L9],"-k","linewidth",1.5) % ankle, rigth
  plot([w3/2+shift(i),w3+shift(i)],[L9,0],"-k","linewidth",1.5) % ankle, rigth
  %
  plot([-w3/2+shift(i),-w3+shift(i)],[L9,L8],"-k","linewidth",1.5) % tibia, left
  plot([w3/2+shift(i),w3+shift(i)],[L9,L8],"-k","linewidth",1.5) % tibia, rigth
  %
  plot([-w2/2+shift(i),-w3+shift(i)],[L7,L8],"-k","linewidth",1.5) % femur, left
  plot([w2/2+shift(i),w3+shift(i)],[L7,L8],"-k","linewidth",1.5) % femur, rigth
  %
  %-------------------------------------------------------------------------------
  % joints
  %-------------------------------------------------------------------------------
  %
  plot(-w1/2+shift(i),L3,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % shoulder, left
  plot(w1/2+shift(i),L3,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % shoulder, rigth
  %
  plot(-w1/2+shift(i),L4,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % elbow, left
  plot(w1/2+shift(i),L4,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % elbow, rigth
  %
  plot(-w1/2+shift(i),L5,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % wirst, left
  plot(w1/2+shift(i),L5,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % wirst, rigth
  %
  plot(-w2/2+shift(i),L7,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % hip, left
  plot(w2/2+shift(i),L7,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % hip, rigth
  %
  plot(-w3+shift(i),L8,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % knee, left
  plot(w3+shift(i),L8,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % knee, rigth
  %
  plot(-w3/2+shift(i),L9,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % ankle, left
  plot(w3/2+shift(i),L9,'o','markersize',js,'markerfacecolor','k','markeredgecolor','k') % ankle, rigth
  %
  %-------------------------------------------------------------------------------
  % measures
  %-------------------------------------------------------------------------------
  %
  L = H/3;
  % head
  plot([-L+shift(i),0+shift(i)],[H,H],"--k","linewidth",1.0)
  plot([-L+shift(i),0+shift(i)],[H-h,H-h],"--k","linewidth",1.0)
  quiver(-L+shift(i),H-h,0,h,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),H,0,-h,'-k',"maxheadsize",0.1)
  factorH = h/H;
  text (-L+l/2+shift(i),H-h/2,strcat("h=",num2str(factorH),"H"),"fontsize",15)
  % homer
  homer = L3 - L4;
  plot([-L+shift(i),-w1/2+shift(i)],[L3,L3],"--k","linewidth",1.0)
  plot([-L+shift(i),-w1/2+shift(i)],[L4,L4],"--k","linewidth",1.0)
  quiver(-L+shift(i),L4,0,homer,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),L3,0,-homer,'-k',"maxheadsize",0.1)
  factorH = homer/H;
  factorh = homer/h;
  text (-L+l/2+shift(i),L3-homer/2,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % radius
  radius = L4 - L5;
  plot([-L+shift(i),-w1/2+shift(i)],[L4,L4],"--k","linewidth",1.0)
  plot([-L+shift(i),-w1/2+shift(i)],[L5,L5],"--k","linewidth",1.0)
  quiver(-L+shift(i),L5,0,radius,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),L4,0,-radius,'-k',"maxheadsize",0.1)
  factorH = radius/H;
  factorh = radius/h;
  text (-L+l/2+shift(i),L4-radius/2,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % hand
  hand = L5 - L6;
  plot([-L+shift(i),-w1/2+shift(i)],[L5,L5],"--k","linewidth",1.0)
  plot([-L+shift(i),-w1/2+shift(i)],[L6,L6],"--k","linewidth",1.0)
  quiver(-L+shift(i),L6,0,hand,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),L5,0,-hand,'-k',"maxheadsize",0.1)
  factorH = hand/H;
  factorh = hand/h;
  text (-L+l/2+shift(i),L5-hand/2,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % femur
  femur = L7 - L8;
  plot([-1.1*L+shift(i),-w1/2+shift(i)],[L7,L7],"--k","linewidth",1.0)
  plot([-1.1*L+shift(i),-w3+shift(i)],[L8,L8],"--k","linewidth",1.0)
  quiver(-1.1*L+shift(i),L8,0,femur,'-k',"maxheadsize",0.1)
  quiver(-1.1*L+shift(i),L7,0,-femur,'-k',"maxheadsize",0.1)
  factorH = femur/H;
  factorh = femur/h;
  text (-1.1*L+l/2+shift(i),L7-homer,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % tibia
  tibia = L8 - L9;
  plot([-L+shift(i),-w3+shift(i)],[L8,L8],"--k","linewidth",1.0)
  plot([-L+shift(i),-w3/2+shift(i)],[L9,L9],"--k","linewidth",1.0)
  quiver(-L+shift(i),L8,0,-tibia,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),L9,0,tibia,'-k',"maxheadsize",0.1)
  factorH = tibia/H;
  factorh = tibia/h;
  text (-L+l/2+shift(i),L8-tibia/2,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % ankle
  ankle = L9;
  plot([-L+shift(i),-w3/2+shift(i)],[0,0],"--k","linewidth",1.0)
  quiver(-L+shift(i),L9,0,-ankle,'-k',"maxheadsize",0.1)
  quiver(-L+shift(i),0,0,ankle,'-k',"maxheadsize",0.1)
  factorH = ankle/H;
  factorh = ankle/h;
  text (-L+l/2+shift(i),L9-ankle/2,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15)
  % shoulders
  quiver(-w1/2+shift(i),L3-l,w1/2,0,'-k',"maxheadsize",0.1)
  quiver(0+shift(i),L3-l,-w1/2,0,'-k',"maxheadsize",0.1)
  factorH = w1/(2*H);
  factorh = w1/(2*h);
  text (-2*l+shift(i),L3-2*l,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15,"backgroundcolor","white")
  % hips
  plot([-w2/2+shift(i),-w2/2+shift(i)],[L7,L7+2*l],"--k","linewidth",1.0)
  quiver(-w2/2+shift(i),L4-l,w2/2,0,'-k',"maxheadsize",0.1)
  quiver(0+shift(i),L4-l,-w2/2,0,'-k',"maxheadsize",0.1)
  factorH = w2/(2*H);
  factorh = w2/(2*h);
  text (-2*l+shift(i),L4-1.7*l,strcat(num2str(factorH),"H=",strcat(num2str(factorh),"h")),"fontsize",15,"backgroundcolor","white")
  % heads
  plot([w2/2+1.5*l+shift(i),w2/2+1.5*l+shift(i)],[H,0],"-k","linewidth",1.0)
  temp=0;
  while (temp<=H)
    plot(w2/2+1.5*l+shift(i),H-temp,'^','markersize',js,'markerfacecolor','k','markeredgecolor','k')
    temp=temp+h;
  endwhile
endfor
%
%-------------------------------------------------------------------------------
% grid and axes
%-------------------------------------------------------------------------------
%
axis([-70,140,-l,H+l],"equal")
ylabel("cm","fontsize",15)
grid on
grid minor
Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s