Plot 倍频程:在drawArrow中更改颜色

Plot 倍频程:在drawArrow中更改颜色,plot,octave,Plot,Octave,我找到了这个答案 [ 如何在drawRect中更改颜色 当我对drawArrow尝试同样的方法时,我得到: h=图纸箭头(0,0,3,1,1,1,1,1) 集合(h,'color','r') 我在这里做错了什么?对我来说看起来是一样的 谢谢 Karl您真的应该提到您正在使用octave forge geometry软件包。drawArrow返回一个带有箭头体和箭头头句柄的结构(如代码所示),因此您可以并且必须单独设置它们: pkg load geometry h = drawArrow (0,0

我找到了这个答案

[

如何在drawRect中更改颜色

当我对drawArrow尝试同样的方法时,我得到:

h=图纸箭头(0,0,3,1,1,1,1,1)

集合(h,'color','r')

我在这里做错了什么?对我来说看起来是一样的

谢谢
Karl

您真的应该提到您正在使用octave forge geometry软件包。drawArrow返回一个带有箭头体和箭头头句柄的结构(如代码所示),因此您可以并且必须单独设置它们:

pkg load geometry
h = drawArrow (0,0,3,1,1,1,1,1);
set (h.body, "color", "r")
set (h.head, "facecolor", get(h.body, "color"))


您还可以使用“edgecolor”在头部周围设置边框

这的确是一个奇怪的返回对象选择……我想知道为什么他们不选择专门设计用于保存图形对象的hggroup。顺便说一句,既然您也指出应该在这些代码段中明确说明几何体包的使用,我可能也会将其添加到回答中的代码段中:p
error: octave_base_value::array_value(): 
wrong type argument 'scalar struct'
error: set: H must be a graphics handle
pkg load geometry
h = drawArrow (0,0,3,1,1,1,1,1);
set (h.body, "color", "r")
set (h.head, "facecolor", get(h.body, "color"))