2016-09-20 4 views
0

J'essaie d'apprendre Cimg mais parfois la documentation est très vague. Je joue avec les fonctions de dessin et je veux tracer une ligne. la déclaration de functoon est très simple:définir le modèle de ligne en utilisant CIMG pour C++

CImg<T>& draw_line ( const int x0, 
     const int y0, 
     const int x1, 
     const int y1, 
     const tc *const  color, 
     const float  opacity = 1, 
     const unsigned int  pattern = ~0U, 
     const bool  init_hatch = true 
    ) 

x0 X-coordinate of the starting line point. 
y0 Y-coordinate of the starting line point. 
x1 X-coordinate of the ending line point. 
y1 Y-coordinate of the ending line point. 
color Pointer to spectrum() consecutive values of type T, defining the drawing color. 
opacity Drawing opacity. 
**pattern An integer whose bits describe the line pattern.** 
init_hatch Tells if a reinitialization of the hash state must be done. 

Ma question est avec le modèle, je n'ai pas pu trouver dans la documentation qui représentent des nombres entiers quel type de lignes. Est-ce que quelqu'un maintenant comment manipuler le modèle?

Nous vous remercions à l'avance

Répondre

1

Un des développeurs m'a répondu à cette question par e-mail, je poste ici pour toute personne qui a la même question.

Le motif est donné par la façon dont les bits de l'entier non signé sont des ensembles. Vous devez regarder votre entier non signé comme un motif de 32 pixels (c'est-à-dire 32 bits) qui peut être transparent (bit mis à 0) ou opaque (bit défini sur 1). Par exemple, un motif où tous les bits sont mis à 1 est complètement opaque, et correspond à la valeur de motif 0xFFFFFFFF. Un motif où 8 pixels sont transparents, puis 8 pixels sont opaques correspond au motif 0xFF00FF00. Un motif comme 0xCCCCCCCC signifie 1 pixel transparent, puis 1 pixel opaque, etc ...