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!


» » » » Graphiques de construction avec la programmation de cacao