Graphiques de construction avec la programmation de cacao
Pour ce faire tout type de programmation graphique en Cocoa, de vous familiariser avec quelques structures de données de cacao importante: NSPoint, NSRect, NSSize et NSColor. Vous aurez besoin d'eux afin qu'ils constituent un bon point de départ.
Sommaire
Points
Cocoa utilise des points de désigner position sur une grille carrée. Pour travailler avec des points à Cocoa, vous utilisez une structure NSPoint. NSPoint est une structure composée de deux flotteurs (de x et y nommé, respectivement). Cocoa graphiques définit le coin en bas à gauche comme origine (0,0). Les x valeur augmente lorsque vous vous déplacez vers la droite. La valeur y augmente à mesure que vous avancez vers le haut. Ceci est un arrangement différent de la plupart Macintosh et Windows programmation, dont l'origine est dans le coin supérieur gauche.
typedef struct {_NSPoint
flotter x
flotter y-
} NSPoint;
La partie de X et Y de la structure sont les coordonnées du point que vous voulez représenter. Pour utiliser une variable NSPoint, vous devez d'abord le définir:
NSPoint aubut;
Ensuite, pour attribuer des valeurs aux x et y membres d'une structure NSPoint, vous utilisez la fonction NSMakePoint. Cet exemple crée un NSPoint à l'emplacement (100 100):
aubut = NSMakePoint (100, 100);
Rects et tailles
Étroitement liée à la structure NSPoint est la structure NSRect. Un NSRect (Rect est l'abréviation de rectangle) Est une structure composée d'un NSPoint et une NSSize:
typedef struct {_NSRect
NSPoint origine-
NSSize Taille-
} NSRect;
Pour comprendre ce que cela signifie, vous avez aussi besoin de savoir à propos de la structure NSSize:
typedef struct {_NSSize
flotter Largeur-
flotter en hauteur
} NSSize;
Ainsi, un NSRect est vraiment une structure de quatre valeurs flottantes: deux pour le NSPoint et deux pour la NSSize. La partie NSPoint décrit où le NSRect commence et la variable NSSize décrit les dimensions de la NSRect. Pour les programmeurs Mac qui sont nouveaux à Cocoa, cela peut prendre un peu de temps pour s'y habituer parce que la structure Rect utilisé dans QuickDraw diffère légèrement de la structure NSRect. (A Rect se compose de deux points.)
Pour créer un NSRect, d'abord déclarer la variable NSRect:
NSRect theRect;
Puis initialiser cette variable en utilisant la fonction NSMakeRect. NSMakeRect prend quatre paramètres: x, y, la largeur et la hauteur. Par exemple, cette ligne de code crée un NSRect avec une origine à (100 100) et les dimensions de 50 x 50:
theRect = NSMakeRect (100, 100, 50, 50);
Plus tard, si vous voulez trouver l'origine ou la taille des theRect, utiliser le code comme ceci:
flotter theOriginX, theOriginY-
flotter theSizeW, theSizeH-
theOriginX = theRect.origin.x-
theOriginY = theRect.origin.y-
theSizeW = theRect.size.width-
theSizeH = theRect.size.height;
Couleurs
AppKit de cacao comprend le type de données NSColor pour vous aider à travailler avec la couleur dans vos projets graphiques. La meilleure façon de créer et de définir un objet NSColor est d'utiliser l'une des couleurs prédéfinis composants intégrés. Vous serez immédiatement reconnaître ce que chacun crée, parce qu'ils ont des noms plain-anglais.
Par exemple, pour créer un objet NSColor qui stocke la couleur noire, utiliser le code comme ceci:
// Déclare un pointeur vers un objet NSColor
NSColor * theColor-
// créer l'objet
// et assigner la couleur noire à elle
theColor = [NSColor BlackColor];
Comme vous l'aurez deviné, ce code fonctionne pour beaucoup d'autres couleurs aussi (blueColor, redColor, et ainsi de suite). Tableau 1 répertorie toute la collection de composants prédéfinis que vous pouvez utiliser pour créer beaucoup de couleurs communes.
Tableau 1: Preset Composants Couleur
Composant Preset | Colorer Produit |
couleur noire | Noir |
couleur bleue | Bleu brillant |
marron | marron |
la couleur cyan | Bleu clair |
darkGrayColor | Gris foncé |
grayColor | Gris moyen |
couleur verte | Vert clair |
lightGrayColor | Gris clair |
magentaColor | Pourpre rosé |
couleur orange | Orange |
purpleColor | Violet |
couleur rouge | Rouge vif |
couleur blanche | blanc |
couleur jaune | Lumineux et ensoleillé jaune |
Finalement, vous voulez des couleurs que les composants prédéfinis ne couvrent pas. Dans ce cas, vous devez recourir à certaines méthodes de couleurs plus sophistiquées dans le AppKit. Le AppKit dispose de trois types d'espaces de couleurs (les moyens de créer la couleur) que vous pouvez utiliser pour créer des couleurs:
- Dépendante (ou dispositif) dispositif
- Dispositif indépendant (ou calibré)
- Nommé
Lorsque vous utilisez couleurs du dispositif, vous ne pouvez pas être sûr que vous verrez toujours la même couleur à travers les dispositifs. Vous êtes probablement plus familier avec ce genre de couleur, parce que la plupart des moniteurs d'ordinateurs à domicile et les imprimantes afficher. Il est pas si bon, mais, pour l'impression professionnelle, la correction des couleurs, et les tâches de couleurs similaires.
Pour contourner ce problème de couleur, les fabricants d'ordinateurs et d'imprimantes ont commencé à créer des solutions matérielles et logicielles pour étalonner leur équipement. L'idée était que vous devriez être en mesure de voir le même genre de sortie, peu importe quel appareil vous avez utilisé. L'étalonnage est censé tenir compte des particularités de votre dispositif particulier et de l'ajuster pour produire des couleurs précises.
La dépendent du périphérique type d'espace de couleur a trois espaces de couleurs. Normalement, vous créez des couleurs en mélangeant différentes quantités de couleurs de base spécifiques. Les trois régimes de mélange que vous pouvez utiliser dans la couleur dépendant du dispositif sont
- DeviceRGB: rouge, vert, bleu, et les composants alpha
- DeviceCMYK: cyan, magenta, jaune, noir, et les composants alpha
- DeviceWhite: Blanc et les composants alpha
Pour le reste de cet article, vous avez à vous soucier de ne DeviceRGB, car il est le meilleur choix pour l'affichage de graphiques sur un moniteur. Une fois que vous obtenez le coup de l'espace de couleur DeviceRGB, il est facile d'utiliser les espaces de couleurs DeviceCMYK et DeviceWhite.
Maintenant, il est temps pour obtenir le code. Au lieu d'utiliser les couleurs des composants prédéfinis, vous pouvez définir vos propres couleurs RVB en utilisant la fonction colorWithDeviceRed. La fonction prend quatre flotteurs en tant que paramètres. Ces quatre chiffres correspondent aux trois canaux de couleur (rouge, vert et bleu) et le canal alpha. Chaque paramètre peut avoir une valeur comprise entre 0.0 et 1.0- 1.0 est complet sur. Le paramètre alpha dicte la façon dont la couleur est opaque. Une valeur de 1.0 est complètement opaque, et une valeur de 0,0 est totalement transparent.
Ce système de numérotation contraste avec les couleurs utilisées dans des applications familières telles que des pages Web et des documents Photoshop, où la numérotation a habituellement une fourchette comprise entre 0 et 255. Pour en corrélation avec la façon dont le cacao de faire les choses, ajouter 1 à la valeur de chaque composante de couleur et diviser par 256. Par exemple, si vous voulez convertir une couleur Photoshop avec des valeurs RVB de (127,63,255) aux valeurs RVB pour une NSColor, effectuer ce calcul simple:
127 + 1 = 128/256 = 0,5
1 = 63 + 64/256 = 0,25
+ 1 = 255 256/256 = 1,0
Pour créer un objet NSColor dans l'espace de couleur DeviceRGB, utiliser le code comme ceci:
// Déclare un pointeur vers un objet NSColor
NSColor * theColor-
// créer l'objet
// et assigner la couleur noire à elle
theColor = [NSColor colorWithDeviceRed: (float) 0.0
vert: (float) 0.0 bleu: (float) 0.0 alpha: (float) 1,0];
Notez que les paramètres rouge, vert et bleu sont tous mis à 0.0. Si vous voulez créer un objet de couleur rouge, vous devriez utiliser le code suivant:
// créer l'objet
// et attribuer la couleur rouge à elle
theColor = [NSColor colorWithDeviceRed: (float) 1.0
vert: (float) 0.0 bleu: (float) 0.0 alpha: (float) 1,0];
Le paramètre rouge a une valeur de 1,0, et les composantes verte et bleue a une valeur de 0,0. En ajustant la valeur alpha, vous pouvez créer différentes nuances de la même couleur.
Après avoir créé un objet de couleur, la seule autre chose que vous devez faire avant de travailler avec elle est d'utiliser la fonction de jeu. Ceci définit le stylo graphique à votre couleur souhaitée:
[jeu de couleurs];
Oui, il est aussi facile que ça!