Autore Topic: [RISOLTO] Linegraf  (Letto 957 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
[RISOLTO] Linegraf
« il: 02 Maggio 2011, 23:11:51 »
Continuo ad usare con soddisfazione la classe creata da fsurfing (grafici a go...go  :D), ho apportato anche delle piccole modifiche
per adattarla alle mie esigenze, ma alcune cose non riesco proprio a modificarle (fsurfing è....avaro  ;) di descrizioni sulle righe di codice),
comunque se passi da queste parti mi servirebbe una modifica tipo quella che hai apportato ai grafici a "torta" nell'ultima versione che hai
rilasciato, praticamente sui grafici a "barre" far apparire il valore della barra, ti allego uno screenshot dove ho disegnato ciò che intendo.
« Ultima modifica: 04 Maggio 2011, 00:24:15 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Linegraf
« Risposta #1 il: 03 Maggio 2011, 20:56:20 »
be sai io uso un alicenza diversa da gpl per i miei software : SICSQVMNCNETC

traduzione:

scrivi incasinato cosi se qualcuno vuole modificare non ci capisce nulla e ti chiede

 :hatecomputer: :rotfl:

scherzi a parte , spesso qundo scrivo codice lo scrivo di getto e non mi viene da commentare :(

vedo cosa riesco a fare

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Linegraf
« Risposta #2 il: 03 Maggio 2011, 21:49:11 »
sul mio sito trovi la versione 0.018 di linegraf che implementa la tua richiesta.

se hai modificato linegraf e non vuoi perdere le tue modifiche puoi aggiungere una sola riga per fare ciò che desideri nella classe linegraf all' interno della funzione  writebar.

(ti metto anche altre righe cosi dovresti trovare facilmente la portzione di codice interessata.

Codice: gambas [Seleziona]

  IF ombra = TRUE THEN
                              Draw.Foreground = Color.Gray
                              Draw.LineWidth = 1
                              Draw.FillStyle = 1
                              Draw.FillColor = color.Gray
                              'Draw.Rect(bl + (dx1 / 10) + (dx1 * i) + (dx * i5), $h - ba, (dx1 - dx) - (dx1 / 10 * obj1.Count), - (Dato * dy) + (dx1 / 10))
                              Draw.Rect(bl + (dx1 / 10) + (dx1 * i) + (dx * i5), zero, (dx1 - dx) - (dx1 / 10 * obj1.Count), - (Dato * dy) + (dx1 / 10))
                          ENDIF
                          Draw.Foreground = color.Black
                          Draw.LineWidth = 1
                          Draw.FillStyle = 1
                          Draw.FillColor = obj1[id].$colore
                          '###prova correzzione bug
                          'Draw.Rect(bl + (dx1 * i) + (dx * i5), $h - ba, (dx1 - dx) - (dx1 / 10 * obj1.Count), - (Dato * dy))
                          Draw.Rect(bl + (dx1 * i) + (dx * i5), zero, (dx1 - dx) - (dx1 / 10 * obj1.Count), - (Dato * dy))
                          '################riga di codice per inserire il valore sopra ogni barra###############à
                          Draw.Text(dato, bl + ((dx1 * i) + (dx * i5)) + ((dx1 - dx) - ((dx1 / 10 * obj1.Count)) - Draw.TextWidth(dato)) / 2, zero - (Dato * dy) - 2 - Draw.TextHeight("H"))
                          '#########################################################################################
                          
                          'Draw.Rect(bl + (dx1 * i) +
                          id = dati1.Find(dato)
                          INC i5
                          dati1.Remove(id)


Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Linegraf
« Risposta #3 il: 04 Maggio 2011, 00:23:41 »
Ti capisco, effettivamente è un pò..... una rottura commentare il codice, io me lo sono imposto (oltre al fatto che mi hanno sempre consigliato essere una buona norma) altrimenti nel tempo non ci capisco più niente.

Grazie fsurfing.   :ok: :ciao:
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: [RISOLTO] Linegraf
« Risposta #4 il: 23 Maggio 2011, 22:36:38 »
Ciao fsurfing,
continuo a usare la tua libreria per produrre grafici (...è diventata quasi una mania  ;D), è sorta una esigenza e mi seve il tuo aiuto.
Ti chiedo cortesemente se mi puoi indicare la porzione di codice che disegna le linee e scrive le percentuali sulle "fette" del grafico a torta in modo
da poterlo adattare alle mie esigenze, in quanto secondo i dati che si vogliono rappresentare si sovrappongono e le linee vanno a finire sulla legenda, quindi nel mio caso vanno accorciate. Ti allego uno screenshot per farti capire cosa intendo..
Grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Linegraf
« Risposta #5 il: 25 Maggio 2011, 19:24:35 »
be non posso che essere soddisfatto della tua maia :)!

per accorciare la linea obliqua dovresti modificare i moltiplicatori alle linee   783 e 784 che adesso sono impostati a 1,5  se utilizzi la torta con l' ombra o a 1,7 se la usi senza ombra (righe 862 e 863)

Codice: gambas [Seleziona]

   x2 = (dx / 1.5) * Cos(Rad(- parcov))
   y2 = (dy / 1.5) * Sin(Rad(- parcov))


potresti anche considerare di ridurre la dimensione della torta  variando la proporzione di dx e dy (righe 729 e 730) spostandone poi il centro di conseguenza tramite le proporzioni  cx e cy (righe 731 e 732)
ricordati di non impostare valori vissi ma di usare sempre delle proporzioni in modo da avere grafici proporzionati e validi con qualsiasi dimensione della picture che vuoi ottenere.

per il problema dell' accavallamento su percentuali molto piccole , la risoluzione non è affatto semplice, bisognerebbe impostare un controllo che in caso che l' arco della fetta sia troppo piccolo sposti il testo e la riga in un altra posizione , naturalmente poi in base al quadrante in cui ci si trova l' operazione di spostamento deve essere diversa .

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: [RISOLTO] Linegraf
« Risposta #6 il: 01 Giugno 2011, 23:04:49 »
Grazie fsurfing,
con i suggerimenti che mi hai dato comincio a capire meglio il tuo codice, vedo un po' cosa riesco a fare.  :ciao:
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Linegraf
« Risposta #7 il: 02 Giugno 2011, 18:18:29 »
mi raccomando se modifichi e crei qualche nuova funzione o miglioria non tenertela per te! :)