NSView et BezierPath

LeLaidLeLaid Membre
06:25 modifié dans API AppKit #1
Salut à  tous,

Je suis un débutant (un vrai); tennez-en compte dans vos réponses  :P

J'essaye de produire un dessin constitué de lignes simples. Il s'agit en fait pour moi de faire un premier test (comme je vous l'ai dit, je commence...).

J'ai donc créé un projet Cocoa-document based.
J'ai créé un classe (que j'appelle PBDragon) qui ne fait pas grand chose.
J'ai ajouté une custom view dans la fenêtre principale (avec IB).
  • Dans l'identity inspector j'ai précisé que la "class indentity" est PBDragon.
  • Les dimensions de ma vue sont 600 x 400


Dans la methode - (void) drawRect: (NSRect) rect de ma classe PBDragon j'ai ajouté quelques lignes afin d'essayer de tracer quelques lignes  ;D.

NSBezierPath* aPath = [NSBezierPath bezierPath];<br />	[[NSColor blackColor] set];<br />	[aPath setLineWidth: 0.5];<br />	[aPath moveToPoint:NSMakePoint(10, 10)]; <br />	[aPath lineToPoint:NSMakePoint(400.0, 400.0)]; <br />	[aPath	curveToPoint:NSMakePoint(200.0, 100.0) <br />			controlPoint1:NSMakePoint(6.0, 2.0) <br />			controlPoint2:NSMakePoint(28.0, 10.0)]; <br />	[aPath appendBezierPathWithRect: NSMakeRect(0, 0, 600, 400)];


Mais je n'obtient rien.....  :(

PBDragon.h
#import &lt;Cocoa/Cocoa.h&gt;<br />#import &lt;Foundation/Foundation.h&gt;<br /><br /><br />@interface PBDragon : NSView <br />{<br />	NSBezierPath* boundingFrame;<br />}<br /><br />- (NSBezierPath *) boundingFrame;<br />- (void) setBoundingFrame: (NSBezierPath *) value;<br /><br />@end


PBDragon.m
#import &quot;PBDragon.h&quot;<br />@implementation PBDragon<br /><br />- (NSBezierPath *)boundingFrame {<br />&nbsp; &nbsp; return [[boundingFrame retain] autorelease];<br />}<br /><br />- (void)setBoundingFrame:(NSBezierPath *)value {<br />&nbsp; &nbsp; if (boundingFrame != value) {<br />&nbsp; &nbsp; &nbsp; &nbsp; [boundingFrame release];<br />&nbsp; &nbsp; &nbsp; &nbsp; boundingFrame = [value copy];<br />&nbsp; &nbsp; }<br />}<br /><br /><br />- (id)initWithFrame:(NSRect)frame <br />{<br />&nbsp; &nbsp; self = [super initWithFrame:frame];<br />&nbsp; &nbsp; if (self) {<br />&nbsp; &nbsp; &nbsp; &nbsp; // Initialization code here.<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return self;<br />}<br /><br />- (void) drawRect: (NSRect) rect <br />{<br />	NSBezierPath* aPath = [NSBezierPath bezierPath];<br />	[[NSColor blackColor] set];<br />	[aPath setLineWidth: 0.5];<br />	[aPath moveToPoint:NSMakePoint(10, 10)]; <br />	[aPath lineToPoint:NSMakePoint(400.0, 400.0)]; <br />	[aPath	curveToPoint:NSMakePoint(200.0, 100.0) <br />			controlPoint1:NSMakePoint(6.0, 2.0) <br />			controlPoint2:NSMakePoint(28.0, 10.0)]; <br />	[aPath appendBezierPathWithRect: NSMakeRect(0, 0, 600, 400)]; <br />}<br /><br />@end<br />


Merci d'avance pour toute aide :)

Réponses

  • CéroceCéroce Membre, Modérateur
    06:25 modifié #2
    Tu as construit ton bezier path en mémoire, ne reste plus qu'à  le tracer:

    [aPath stroke];
    
  • schlumschlum Membre
    06:25 modifié #3
    Ou fill...
  • LeLaidLeLaid Membre
    06:25 modifié #4
    Comme je vous l'avais dit... Je suis un débutant  :(renaud):

    Merci beaucoup pour cette réponse rapide.
Connectez-vous ou Inscrivez-vous pour répondre.