Autore Topic: [RISOLTO] progetto di disegno nella guida per principianti  (Letto 5714 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.394
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #45 il: 18 Maggio 2015, 20:24:57 »
Credo che la mia stampante non funzioni bene con Linux Mint perché, pur essendo riconosciuta, non ha un driver installato.


E' probabile.   :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Cocirio

  • Grande Gambero
  • ***
  • Post: 126
  • Sba(di)gliando s'impapera :-).
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #46 il: 21 Maggio 2015, 11:11:49 »
Chiedo scusa, ma devo tornare sulla mia difficoltà di leggere la documentazione.
Quando ho davanti la Ide di Gambas con un form contenente una DrawingArea, se seleziono la DrawingArea, sulla parte destra appaiono le relative proprietà e, più sotto tutta la documentazione della classe/controllo intitolata "DrawingArea gb.qt4". Suppongo che, come in altri casi già visti, ci sia un modo per ingrandire questo tipo di documento o per leggerlo da qualche altra parte. Mi è parso che nel Wiki non ci sia. Spero di sbagliarmi. Grazie.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #47 il: 21 Maggio 2015, 13:47:58 »
Chiedo scusa, ma devo tornare sulla mia difficoltà di leggere la documentazione.
Quando ho davanti la Ide di Gambas con un form contenente una DrawingArea, se seleziono la DrawingArea, sulla parte destra appaiono le relative proprietà e, più sotto tutta la documentazione della classe/controllo intitolata "DrawingArea gb.qt4". Suppongo che, come in altri casi già visti, ci sia un modo per ingrandire questo tipo di documento o per leggerlo da qualche altra parte. Mi è parso che nel Wiki non ci sia. Spero di sbagliarmi. Grazie.

Per fare come da immagine allegata devi agire sul tasto funzione F1 quindi evidenzia gb.qt4 dal menu di sinistra dell'aiuto e cliccare sulla voce desiderata nella parte destra in questo caso DravingArea.
Puoi anche ingrandire l'aiuto che appare a destra trascinando i bordi...
« Ultima modifica: 21 Maggio 2015, 13:50:53 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Cocirio

  • Grande Gambero
  • ***
  • Post: 126
  • Sba(di)gliando s'impapera :-).
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #48 il: 21 Maggio 2015, 15:11:14 »
Grazie mille. Non so come farei senza di te. :D

Offline Cocirio

  • Grande Gambero
  • ***
  • Post: 126
  • Sba(di)gliando s'impapera :-).
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #49 il: 22 Maggio 2015, 10:54:17 »
Eccomi di nuovo. Sto ripassando tutto sulla DrawingArea. Ho riguardato "Disegnare un cerchio con la classe Draw" e ho visto che la Draw non è più consigliata dalla versione 3.4 di Gambas. Quindi ho riguardato anche l'esempio con la classe Paint. Allora sull'esempio con Draw ho cambiato gli angoli start e stop credendo di poter vedere solo un settore del cerchio, invece ho visto solo cambiare il raggio (credo iniziale), ma il cercho è rimasto sempre intero.
Ho fatto poi lo stesso esperimento con la Paint aggiungendo nel metodo .Ellipse l'angolo di partenza e la lunghezza in radianti, e anche qui non ho visto nessun cambiamento. Come si spiega? Grazie.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.394
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #50 il: 22 Maggio 2015, 11:22:34 »
Allora sull'esempio con Draw ho cambiato gli angoli start e stop credendo di poter vedere solo un settore del cerchio, invece ho visto solo cambiare il raggio (credo iniziale), ma il cercho è rimasto sempre intero.
Ho fatto poi lo stesso esperimento con la Paint aggiungendo nel metodo .Ellipse l'angolo di partenza e la lunghezza in radianti, e anche qui non ho visto nessun cambiamento. Come si spiega?

Ti ringrazio della segnalazione... nell'esempio con Draw avevo dimenticato  :mad: di convertire il valore inserito nell'esempio da gradi in radianti.  

Conseguentemente, per ottenere una parte di cerchio o di una ellisse, devi inserire in radianti gli altri parametri previsti allo scopo. Se inserisci il valore in gradi puoi convertirlo in radianti con la funzione Rad().
« Ultima modifica: 22 Maggio 2015, 11:28:55 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #51 il: 22 Maggio 2015, 13:46:02 »
hummm
io proverei così :

Codice: gambas [Seleziona]
Public Sub Button1_Click()
  
  Dim xc, yc, radius, fR, fD As Float
  
  DrawingArea1.Cached = True
  DrawingArea1.Clear
  With Paint
    .Begin(DrawingArea1)
     xc = DrawingArea1.W / 2
     yc = DrawingArea1.H / 2
     radius = DrawingArea1.W / 3
    .LineWidth = 0.5  
    .Brush = Paint.Color(8421504)      
    fR = Rad(270)
    fD = -1
    .Arc(xc, yc, radius, fR, fD, True)
    .Stroke(True)
    .Background = Color.RGB(255, 220, 0)
    .Fill    
    .End    
  End With

End
« Ultima modifica: 22 Maggio 2015, 13:47:40 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Cocirio

  • Grande Gambero
  • ***
  • Post: 126
  • Sba(di)gliando s'impapera :-).
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #52 il: 23 Maggio 2015, 09:19:28 »
Grazie. Ho provato come sempre l'esempio di .Arc in un progetto nuovo con un Form, una DrawingArea e un pulsante. L'esempio funziona perfettamente.
Ma ho voluto provare a:
1) togliere .Stroke: sembra ininfluente
2) togliere .Background:  quando non c'è il colore inserito con .Brush diventa grigio scuro. Quindi il giallo è una mescolanza tra i due colori?
3) togliere .LineWidth: quando non c'è sembra schiarire il colore!?
4) togliere il Pie True: viene fuori una corda invece che un settore

Poi sono tornato all'esempio di disegno di un cerchio pieno con il metodo Ellipse().
Qui siamo direttamente nella subroutine dell'evento Draw della DrawingArea dove ho modificato la linea ".Ellipse(100, 10, 100, 100)" in
".Ellipse(10, 10, 180, 180, Rad(0), Rad(150), True)" ed è venuto fuori un settore, che diventa una corda, senza il True. All'interno della subroutine si può anche togliere il Begin() senza cambiare il risultato. Scrivere 0 o Rad(0) è la stessa cosa :).

Ho aggiornato Gambas 3 alla versione 3.7.90 "a mio rischio e pericolo" ;D
Si vede qualche cambiamento nell'editor, precisamente nel copia e incolla. Ho imparato il Ctrl,Shift,v. Ciao

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #53 il: 23 Maggio 2015, 14:27:11 »
Grazie. Ho provato come sempre l'esempio di .Arc in un progetto nuovo con un Form, una DrawingArea e un pulsante. L'esempio funziona perfettamente.
Ma ho voluto provare a:
1) togliere .Stroke: sembra ininfluente
2) togliere .Background:  quando non c'è il colore inserito con .Brush diventa grigio scuro. Quindi il giallo è una mescolanza tra i due colori?
3) togliere .LineWidth: quando non c'è sembra schiarire il colore!?
4) togliere il Pie True: viene fuori una corda invece che un settore

Poi sono tornato all'esempio di disegno di un cerchio pieno con il metodo Ellipse().
Qui siamo direttamente nella subroutine dell'evento Draw della DrawingArea dove ho modificato la linea ".Ellipse(100, 10, 100, 100)" in
".Ellipse(10, 10, 180, 180, Rad(0), Rad(150), True)" ed è venuto fuori un settore, che diventa una corda, senza il True. All'interno della subroutine si può anche togliere il Begin() senza cambiare il risultato. Scrivere 0 o Rad(0) è la stessa cosa :).
Ehi non so perché ma leggendoti mi è venuta in mente quella barzelletta che vede uno scienziato dedurre che le pulci da lui ammaestrate a saltare al suo comando sonoro, una volta private delle gambe diventano sorde.
 :violent:
Stroke serve a disegnare i contorni che in questo caso sono di spessore 0,5 (linewidth) e di colore grigio scuro (vedi brush), backgound così come brush assegnano il colore a quello che vai a dipingere se usi stroke contorni e se usi fill riempi (il colore di fill è dato da background con RGB).
Ho usato più metodi per farti vedere (capire?) i vari modi di paint.
Arc, xc e yc rappresentano il fulcro del cerchio, radius il raggio sono indispensabili e se ti limiti a questi tre ottieni un cerchio che puoi contornare oppure riempire (vedi sopra).
FR è il punto di partenza dello spicchio di cerchio fD ne è la dimensione o ampiezza.
True è il booleano che ti disegna la fetta di torta oppure se lasciato a false ti disegna lo spicchio
Sia fR che fD vanno espressi in radianti, prova a contornare solo (escludendo background e fill) e poi a riempire (escludendo brush e stoke) questi quattro spicchi in contrapposizione tra loro usando Rad() di partenza a 180 e 360 (o 0) e ampiezza A 90 e -90.
 :violent:
Citazione
Ho aggiornato Gambas 3 alla versione 3.7.90 "a mio rischio e pericolo" ;D
Si vede qualche cambiamento nell'editor, precisamente nel copia e incolla. Ho imparato il Ctrl,Shift,v. Ciao
:hatecomputer:

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.394
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #54 il: 23 Maggio 2015, 14:51:06 »
Ma ho voluto provare a:

Io lo dico sempre: può sembrare stupido, ma il comportamento con i giocattoli tipico dei bambini più piccoli, ossia quello di smontare per vedere come e è fatto, applicato allo studio di un linguaggio di programmazione (e non solo), può ritenersi un ottimo metodo per impare a programmare.



All'interno della subroutine si può anche togliere il Begin() senza cambiare il risultato.
Sì.


Scrivere 0 o Rad(0) è la stessa cosa :).

Sì, l'ho messo per ragioni didattiche, per simmetria con il successivo argomento del metodo.



Si vede qualche cambiamento nell'editor, precisamente nel copia e incolla. Ho imparato il Ctrl,Shift,v. Ciao
A me non piace assolutamente:    :hatecomputer:
1) prima potevi servirti della virgola per dare maggiore spazio tra una parola e l'altra nel caso facessi scrivere con Print qualcosa nella console dell'IDE.
2) prima era sufficiente, per copiare ed inserire un testo, la consueta modalità di evidenziare con il mouse il testo da copiare, e poi inserirlo cliccando con la rotellina del mouse. Adesso è tutto più complesso.
Uno schifo.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #55 il: 23 Maggio 2015, 15:46:29 »
Se vuoi prova a cambiare il codice che ho postato prima così:
Sotto ' Gambas class file scrivi
Codice: gambas [Seleziona]
Private $fRad As Float
poi cambia fR e fD così
Codice: gambas [Seleziona]
fR = Rad($fRad)
fD = Rad(-90)
e infine sotto End With metti
Codice: gambas [Seleziona]
$fRad += 90
If $fRad = 360 Then $fRad = 0


Devo dare ragione a vuott è giusto provare, fai bene a provare occorre provare e io ho fatto male a “rimproverarti” (quello sotto sei tu che mi pesti a dovere)
 :violent:

 :ciao:
P.S. spero tu non ti riferisca al mio di Begin perché senza non può funzionare...
« Ultima modifica: 23 Maggio 2015, 15:57:29 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.394
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #56 il: 23 Maggio 2015, 16:55:59 »
.... Begin perché senza non può funzionare...
Una volta era necessario, devono nel frattempo essere state effettuate delle modifiche... suppongo.

Ad ogni modo quando viene sollevato l'evento _Draw() della DrawingArea, non è necessario impostare il metodo .Begin(DrawingArea1) .
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #57 il: 23 Maggio 2015, 17:50:22 »
Sarà come dite voi a me non risulta se ad esempio nel codice per la rotazione del testo commento begin mi va in crash.
E a proposito dell'evento Draw che come si sa insieme a tutta la classe è deprecato dalla 3.4 ora se lo provate con la trunk il testo appare sfasato.
Pertanto seguendo i nuovi canoni di programmazione che deprecano Draw ho cambiato il codice e per brevità allego il programmino completo fatto con la 3.7 stabile ma che dovrebbe andare bene con tutti i Gambas vecchi e nuovi (spero).
 :ciao:
« Ultima modifica: 23 Maggio 2015, 20:53:17 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Cocirio

  • Grande Gambero
  • ***
  • Post: 126
  • Sba(di)gliando s'impapera :-).
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #58 il: 25 Maggio 2015, 10:38:54 »
Gran Gianluigi fustigatore (e martellatore), che dici mai? A me, il tuo progetto, ben commentato, che mi ha fatto vedere la luce, funziona anche se ometto il metodo Begin così:
    ...With Paint  
     ' .Begin(da)  
      .Font.Size = ridimensiona(22) ...
A sproposito, ricordi che io ho aggiunto sul form due Frame intorno alle due serie di pulsanti ("Posiziona il testo" e "Ruota di 45°")?
Non so se ti interessa, ma vorrei comunicare a te e ad altri che prima di poterle utilizzare ho dovuto arretrarle rispetto ai pulsanti che, altrimenti, non riuscivo più a utilizzare.
Ti ringrazio di avermi chiarito la funzione del metodo .Stroke, che non mi era del tutto chiara, e della sua relazione con .LineWidth (se ci avessi messo 2 o 3 invece di 0.5, l'avrei visto, forse). Mi pare di aver chiarito anche la relazione tra il colore di 'Brush e quello di .Background.

L'evento _Draw (da non confondere con l'omonima classe "esecrata" ;)) a me sembra un po' anomalo, forse paragonabile a quello che viene chiamato "costruttore" (Public Sub _new()). Insomma mi pare che venga eseguito automaticamente dopo l'apertura del form. Mi sbaglio?

Cari bambini, noi che siamo appassionati di questo giocattolo a forma di gambero blu dall'andamento, direi, retrogrado e, a volte, un po' disordinato, nel bene e nel male, abbiamo tutti qualità bambinesche. Questa sentenza mi è venuta nel dormiveglia  :D.

Riguardo ai difetti delle ultime modifiche di Gambas3, sono d'accordo con Vuott (ma queste modifiche sono sempre e unicamente opera di Misinini?). A me che vengo da una lunga consuetudine con Windows dà molto fastidio l'impossibilità di usare lo Shift-Clic per completare una selezione nel codice.

 violent

Non capisco come ha fatto Pierluigi a prendere a martellate prima me e poi se stesso. Spiegami anche questo, Pierluigiaccio.



 

« Ultima modifica: 25 Maggio 2015, 10:47:58 da Cocirio »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.161
  • Tonno verde
    • Mostra profilo
Re: progetto di disegno nella guida per principianti
« Risposta #59 il: 25 Maggio 2015, 13:43:29 »
Gran Gianluigi fustigatore (e martellatore), che dici mai? A me, il tuo progetto, ben commentato, che mi ha fatto vedere la luce, funziona anche se ometto il metodo Begin così:
    ...With Paint  
     ' .Begin(da)  
      .Font.Size = ridimensiona(22) ...
A sproposito, ricordi che io ho aggiunto sul form due Frame intorno alle due serie di pulsanti ("Posiziona il testo" e "Ruota di 45°")?
Non so se ti interessa, ma vorrei comunicare a te e ad altri che prima di poterle utilizzare ho dovuto arretrarle rispetto ai pulsanti che, altrimenti, non riuscivo più a utilizzare.
Ti ringrazio di avermi chiarito la funzione del metodo .Stroke, che non mi era del tutto chiara, e della sua relazione con .LineWidth (se ci avessi messo 2 o 3 invece di 0.5, l'avrei visto, forse). Mi pare di aver chiarito anche la relazione tra il colore di 'Brush e quello di .Background.

L'evento _Draw (da non confondere con l'omonima classe "esecrata" ;)) a me sembra un po' anomalo, forse paragonabile a quello che viene chiamato "costruttore" (Public Sub _new()). Insomma mi pare che venga eseguito automaticamente dopo l'apertura del form. Mi sbaglio?

Cari bambini, noi che siamo appassionati di questo giocattolo a forma di gambero blu dall'andamento, direi, retrogrado e, a volte, un po' disordinato, nel bene e nel male, abbiamo tutti qualità bambinesche. Questa sentenza mi è venuta nel dormiveglia  :D.

Riguardo ai difetti delle ultime modifiche di Gambas3, sono d'accordo con Vuott (ma queste modifiche sono sempre e unicamente opera di Misinini?). A me che vengo da una lunga consuetudine con Windows dà molto fastidio l'impossibilità di usare lo Shift-Clic per completare una selezione nel codice.

 violent

Come puoi vedere dall'immagine allegata se commento Begin mi da errore sia su Gambas compilato che da PPA che su Trunk.
Ne deduco che è comunque buona norma usare begin anche perché lo dice la documentazione.

Si sull'evento Draw hai ragione non va confuso con la classe, il problema è che con la Trunk il programma in questione appare così come da immagine ma se sposto il codice dall'evento Draw ritorna a funzionare correttamente, potrebbe anche trattarsi di bug, naturalmente io ho solo Ubuntu 14.04 non so se su ambienti QT cambiano le cose. Potrebbe essere causato da altro...
Violent? Molto usato da vuott come metodo educativo...  ;D

Citazione
Non capisco come ha fatto Pierluigi a prendere a martellate prima me e poi se stesso. Spiegami anche questo, Pierluigiaccio.

Pierluigi ??? ah si lui!


... forse a scelto fra ALTRI
« Ultima modifica: 25 Maggio 2015, 13:48:25 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro