2017-07-13 2 views
1

Ich fand diese AntwortOctave: Farbe ändern in drawArrow

[Octave : How to change line color and width in drawRect

wie die Farbe in drawRect ändern.

Wenn ich das gleiche für drawArrow versuchen, erhalte ich:

h = drawArrow (0,0,3,1,1,1,1,1);

h = 

scalar structure containing the fields: 

body = -12.469 
head = -11.925 

Satz (h, 'Farbe', 'R');

error: octave_base_value::array_value(): 
wrong type argument 'scalar struct' 
error: set: H must be a graphics handle 

Was ist hier falsch mache ich? Für mich sieht es genauso aus.

Dank Karl

Antwort

1

Sie sollten wirklich erwähnen, dass Sie die Oktav-Schmiede Geometrie-Paket verwenden. drawArrow gibt eine Struktur mit Griffen für den Pfeil Körper und Kopf (wie von Ihrem Code dargestellt), so dass Sie können und sie separat setzen:

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")) 

red arrow

Sie können auch einen Rahmen um den Kopf gesetzt mit "edgecolor"

+0

das ist sicher eine seltsame Wahl der Rückkehr Objekt obwohl ... Ich frage mich, warum sie nicht für eine hggroup gehen, die absichtlich entworfen wurde, um Grafikobjekte zu halten. –

+0

Übrigens, da Sie auch darauf hinweisen, dass die Verwendung des Geometrie-Pakets explizit in Schnipsel wie diesen angegeben werden sollte, würde ich es wahrscheinlich auch in das Snippet in der Antwort einfügen: p –