Давайте схематизируем вложенный графический объект по его дочерним свойствам.
У нас есть
figure (f)
- axes (a)
- compound1 (c1)
- polyline (p1)
- compound2 (c2)
- polyline (p2)
- compound3 (c3)
- polyline (p3)
Поскольку gca является функцией, давайте сделаем a = gca()
, потому что gca().children
вызовет ошибку, потому что scilab не понимает, что вы пытаетесь получить доступ к полям его возвращаемого значения.
gca()
возвращает маркеры по осям текущего рисунка: a
.
a.children
возвращает массив дескрипторов всех дочерних элементов этих осей. : c1, c2, c3
a.children.children
возвращает массив дескрипторов всех дочерних элементов вышеуказанных объектов: p1, p2, p3
a.children.children(1)
возвращает первых детей c1, c2, c3
: p1
a.children(1).children
возвращает все дочерние элементы первых дочерних элементов текущих осей (c1). Так как там только один: p1
Чтобы получить доступ к стоимости ваших сущностей
Либо перейдите к временной переменной:
a = gca();
idcolor=a.children(1).children(1).foreground // gives the color of a.c1.p1
или используйте get
// idcolor is an array , with idcolor(i) the color of pi
idcolor = get(get(get(gca(),'children'),'children'),'foreground')
FYI
Команда
gce()
возвращает дескриптор последнего созданного объекта. С plot2d это соединение, поэтому нам нужно получить его детей.
вы можете переписать вашу программу как
clc
x = [1:1:10];
y1 = x;
y2 = 2*x;
y3 = 3*x;
plot2d(x,y1);
e1 = get(gce(),'children');
plot2d(x,y2);
e2 = get(gce(),'children');
plot2d(x,y3)
e3 = get(gce(),'children');
e1.thickness = 2
e2.thickness = 7
e3.thickness = 4