2009-07-24 4 views
0

Ich habe eine XML-Datei, die ich analysiert habe und habe die gewünschte Information in mehrere NSArray-Objekte. Ich möchte in der Lage sein, sie in einem QuartzView (alles besser?) Zu zeichnen, um die Daten zu visualisieren. Die Arrays sollten alle hypothetisch die gleiche Menge an Informationen enthalten. Ich möchte, dass ein Array die x-Achse und ein anderes das y darstellt. Es dauerte lange genug, um den Quarz-Composer an meinen Array-Code zu binden, aber ich kann nur erreichen, dass entweder eine Kugel mit eindeutigen Koordinaten oder eine Kugel für jeden Index mit demselben gezeichnet wird. Also im Grunde brauche ich Hilfe bei der Erstellung eines Plots in QC basierend auf Array-Daten. Der Code sieht in etwa so aus:Wie zeichne ich eine Form in Quartz Composer für jedes Element in einem NSArray?

- (IBAction) setup:(id)sender { 
    BlastParser *bp = [[BlastParser alloc] init]; 
    NSString *hit_idString = @".//hit_id"; 
    NSString *evalueString = @".//Hsp_evalue"; 
    NSString *hsp_align_lenString = @".//Hsp_align-len"; 

    NSArray *hit_id = [bp getArrayForNode:hit_idString]; 
    NSArray *evalue = [bp getArrayForNode:evalueString]; 
    NSArray *hsp_align_len = [bp getArrayForNode:hsp_align_lenString]; 

    NSLog(@"nodes: %@", Hsp_align_len); 
    int i; 
    for (i = 0; i < [evalue count]; ++i){ 
     [qcView setValue:[NSNumber numberWithInt:i] forInputKey:@"iter"]; 
    } 
} 

Vielen Dank im Voraus.

Antwort

0

Es klingt wie es einfacher sein könnte, nur eine regelmäßige NSView zu verwenden und Ihre Formen zeichnen (in der drawRect: Methode Sicht) mit so etwas wie:

int radius = 4; 
NSBezierPath *circle = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(xPos-radius, yPos-radius, 2*radius, 2*radius)]; 
[circle fill]; 

Wo xPos und yPos die Koordinaten des Punktes sind Sie möchte zeichnen.

Vielleicht gibt es jedoch einen anderen Grund, warum Sie Quartz Composer verwenden möchten?

+0

Danke Dan. Ich habe diesen Vorschlag angenommen und obwohl ich noch nicht ganz da bin, scheint es ein viel einfacherer Weg zu sein. –

Verwandte Themen