如何理解 SciLab 中的 "children"?

How to unterstand "children" in SciLab?

clc
 x = [1:1:10];
 y1 = x;
 y2 = 2*x;
 y3 = 3*x;
 plot2d(x,y1);
 plot2d(x,y2);
 plot2d(x,y3)


gca().children(1).children(1).thickness = 2
gca().children(2).children(1).thickness = 7
gca().children(3).children(1).thickness = 4

我是从 Matlab 到 Scilab 的新手

谁能告诉我,如何理解children?

什么意思

gca().children ?

gca().children.children ?

gca().children.children(1) ?

gca().children(1).children ?

我们怎么知道哪个属性属于children?

e.g gca().children(1).children(1).color = ... // not exist

我现在很困惑.. 在此先感谢

让我们通过 children 属性对嵌套图形 object 进行图解。

我们有

figure (f)
- axes (a)
  - compound1 (c1)
    - polyline (p1)
  - compound2 (c2)
    - polyline (p2)
  - compound3 (c3)
    - polyline (p3)

因为 gca 是一个函数,所以让我们做 a = gca() 因为 gca().children 会引发错误,因为 scilab 不理解您正在尝试访问其 return 的字段值。

  1. gca() returns 当前图形轴的句柄:a.
  2. a.children returns 所有children 轴的句柄数组。 : c1, c2, c3
  3. a.children.children returns 上面object的所有children的句柄数组:p1, p2, p3
  4. a.children.children(1) returns c1, c2, c3 的第一个 children : p1
  5. a.children(1).children return 是当前轴 (c1) 的第一个 children 的所有 children。因为只有一个: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') 

仅供参考

gce() 命令 returns 最后 object 创建的句柄。 plot2d 是一个化合物,所以我们需要得到它的 children.

您可以将程序重写为

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