Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Schemi Tris - schema.cpp

schema.cpp

Caricato da: AldoBaldo
Scarica il programma completo

  1. #include "schema.h"
  2. #include <stdio.h>
  3.  
  4.  
  5. static char gBuff[512];
  6.  
  7.  
  8. SCHEMA::SCHEMA() {
  9.     imposta( 0.0, 0.0, 0.0, 0.0, 1.0 );
  10.     includi_tratto( 1 );
  11. }
  12.  
  13. SCHEMA::SCHEMA( int X, int Y, int W, int H, int T ) {
  14.     imposta( X, Y, W, H, T );
  15.     includi_tratto( 1 );
  16. }
  17.  
  18. SCHEMA::~SCHEMA() {
  19.     // niente da distruggere
  20. }
  21.  
  22.  
  23. void SCHEMA::imposta( int X, int Y, int W, int H, int T ) {
  24.     posiziona( X, Y );
  25.     dimensiona( W, H );
  26.     set_tratto( T );
  27. }
  28.  
  29.  
  30. void SCHEMA::posiziona( int X, int Y ) {
  31.     x = X; y = Y;
  32. }
  33.  
  34.  
  35. void SCHEMA::sposta( int dX, int dY ) {
  36.     x += dX; y += dY;
  37. }
  38.  
  39.  
  40. void SCHEMA::dimensiona( int W, int H ) {
  41.     w = W; h = H;
  42. }
  43.  
  44.  
  45. void SCHEMA::gonfia( int dW, int dH ) {
  46.     w += dW; h += dH;
  47. }
  48.  
  49.  
  50. void SCHEMA::set_tratto( int T ) {
  51.     tratto = T;
  52. }
  53.  
  54.  
  55. void SCHEMA::includi_tratto( int includi ) {
  56.     includiTratto = includi != 0;
  57. }
  58.  
  59.  
  60. char *SCHEMA::compila( bool aCapoFinale ) {
  61.     char *p = gBuff;
  62.  
  63.     p += sprintf( p, "<path id=\"schema_tris\" d=\"" );
  64.     p += sprintf( p, "M%d,%d v%d", x+w/3, y, h );
  65.     p += sprintf( p, " M%d,%d v%d", x+w*2/3, y, h );
  66.     p += sprintf( p, " M%d,%d h%d", x, y+h/3, w );
  67.     p += sprintf( p, " M%d,%d h%d\"", x, y+h*2/3, w );
  68.  
  69.     if( includiTratto )
  70.         p += sprintf( p, " style=\"stroke: #000; stroke-width: %d;\"", tratto );
  71.  
  72.     p += sprintf( p, " />" );
  73.  
  74.     if( aCapoFinale )
  75.         p += sprintf( p, "\n" );
  76.  
  77.     return gBuff;
  78. }