2016-02-19 1 views
0
NSBezierPath *angle = [NSBezierPath bezierPath]; 
[angle moveToPoint: NSMakePoint(100, 50)]; 
[angle lineToPoint: NSMakePoint(125, 100)]; 
[angle lineToPoint: NSMakePoint(100, 150)]; 
[angle stroke]; 

En utilisant ce code simple de 3 points, je peux les relier tous. Le produit de ce code ressemble à ceci ...Lisser la courbe à travers 3 NSPoints

enter image description here

Ceci est la seule façon de dessin que je sais avec NSBezierPath (Au lieu de dessiner un cercle).

Je me demandais comment dessiner une courbe lisse jeter 3 points différents. De telle sorte que cela ressemblerait à ceci. (RED)

enter image description here

Je ne pouvais pas trouver sur le web. Je vous remercie.

Répondre

1

Cela devrait faire l'affaire, bien sûr, vous devriez jouer avec les valeurs pour obtenir l'apparence désirée.

NSBezierPath* bezierPath = [NSBezierPath bezierPath]; 
[bezierPath moveToPoint: NSMakePoint(32.5, 16.5)]; 
[bezierPath curveToPoint: NSMakePoint(60.5, 47.5) controlPoint1: NSMakePoint(32.5, 16.5) controlPoint2: NSMakePoint(57.5, 15.5)]; 
[bezierPath curveToPoint: NSMakePoint(35.5, 78.5) controlPoint1: NSMakePoint(63.5, 79.5) controlPoint2: NSMakePoint(35.5, 78.5)]; 
[[NSColor blackColor]setStroke]; 
bezierPath.lineWidth = 1; 
[bezierPath stroke]; 
+0

La question concerne 'NSBezierPath'. – thxou

+0

J'ai simplement changé tous les codes de la vôtre en NS. Bien que pas une courbe lisse parfaite (en raison de la CGPoint), cela devrait fonctionner. Remercier. Si vous le pouvez, (Serait très utile) dites-moi ce que controlPoint1 et controlPoint2 est? – 31i45

+0

Le point de contrôle est le point qui détermine la forme de la courbe à proximité du point actuel. –