Простая функция для рисования серых трубок может быть, например,
function drawGrayTube (x, w, h)
rectangle ('Position',[x,0,w,h], 'FaceColor',[0.7,0.7,0.7]);
rectangle ('Position',[x,h,w,100-h], 'FaceColor',[0.3,0.3,0.3]);
end
При этом x
обозначает положение трубки x, w
обозначает ширину, а h
между 0
и 100
высотой светло-серой части трубки.
Теперь вы можете использовать его в своем примере, позвонив
drawGrayTube (x, r, 100*constant/r)
где вы должны адаптировать константу так, чтобы constant/r
было не более 1
.
Вы можете написать аналогичную функцию для белых промежутков.
Предположим, что вы задали вектор радиусов (уже масштабированный таким образом, что значения находятся в диапазоне от 0 до 1), например, r=[0.5, 0.7, 0.9, 0.1, 0.5, 0.01]
, тогда при возможности рисования трубок
interspace = 0.5;
for i=1:length(r)
drawGrayTube(sum(r(1:i-1))+i*interspace, 100*r(i)+1e-10, r(i)+1e-10);
end