EsseEmmeErre

Registrato: 08/05/06 19:56 Messaggi: 148 Residenza: Italia
|
| Oggetto: B3D-Quadretto Grigio Sfumato |
|
|
Anno Del Signore 2009, settembre 19, sabato
Ciao a tutti, sono sempre io, EsseEmmeErre!
Ho passato la mattina a perfezionare un mio nuovo programma che genera un quadrato grigio con bordi sfumati; praticamente dovrebbe somigliare ad un tasto grigio di una tastiera per computer senza la lettera; per ottenere il massimo della perfezione vi suggerisco di inserire una grandezza del lato maggiore di venti (ovviamente) e multipla di quattro.
Ecco qui il programmino:
| Codice: |
;-> Quadretto grigio sfumato by EsseEmmeErre
;i> Sat 19 Sep 2009
;-------------------
AppTitle("Quadretto by EsseEmmeErre","Vuoi uscire?")
Const ASCIITastoS=115
Const FormaPiena=1
Const FormaVuota=0
Const NumeroZeroASCII=48
Const YPosQuadretto=26
Print("Grandezza del quadretto in punti (20-261)?")
Repeat
Locate(0,FontHeight()):Color(255,255,255)
Write("Digita:"):Color(0,0,0):Write(ValoreDigitato$)
Locate(0,FontHeight()):Color(255,255,255)
ValoreDigitato$=Input$("Digita:")
GrandezzaQuadretto=ControlloNumero(ValoreDigitato$)
If GrandezzaQuadretto<20 Or GrandezzaQuadretto>261 Then GrandezzaQuadretto=0
Until GrandezzaQuadretto>0
Color(127,127,127):Rect(0,YPosQuadretto,GrandezzaQuadretto,GrandezzaQuadretto,FormaPiena)
For YPunto=0 To GrandezzaQuadretto-1
For XPunto=0 To GrandezzaQuadretto-1
DisegnaIlPunto=False
If YPunto<GrandezzaQuadretto/4-1 Or YPunto>GrandezzaQuadretto*3/4
DisegnaIlPunto=True
Else
If XPunto<GrandezzaQuadretto/4-1 Or XPunto>GrandezzaQuadretto*3/4
DisegnaIlPunto=True
EndIf
EndIf
If DisegnaIlPunto=True Then
Grigio=255-255*(XPunto+YPunto)/(GrandezzaQuadretto+GrandezzaQuadretto)
Color(Grigio,Grigio,Grigio):Plot(XPunto,YPosQuadretto+YPunto)
EndIf
Next
Next
Color(255,255,255)
Locate(0,GraphicsHeight()-FontHeight()):Write("Vuoi salvare il quadretto (s/n)?")
TastoPremuto=WaitKey()
If TastoPremuto=ASCIITastoS Then
ImmagineQuadretto=CreateImage(GrandezzaQuadretto,GrandezzaQuadretto)
GrabImage(ImmagineQuadretto,0,YPosQuadretto)
NomeImmagineQuadretto$="QuadrettoGrigioSfumato"+Str(GrandezzaQuadretto)+".BMP"
SaveImage(ImmagineQuadretto,NomeImmagineQuadretto$)
FreeImage(ImmagineQuadretto)
Color(0,0,0):Locate(0,GraphicsHeight()-FontHeight()):Write("Vuoi salvare il quadretto (s/n)?")
Color(255,255,255):Locate(0,GraphicsHeight()-FontHeight())
Write(NomeImmagineQuadretto$):Write(" salvato...")
Delay(2000)
EndIf
Color(0,0,0)
Locate(0,GraphicsHeight()-FontHeight()):Write("Vuoi salvare il quadretto (s/n)?")
Locate(0,GraphicsHeight()-FontHeight()):Write(NomeImmagineQuadretto$):Write(" salvato...")
Color(255,255,255)
Locate(0,GraphicsHeight()-FontHeight()):Write("Premi un tasto per uscire...")
WaitKey()
End
Function ControlloNumero(ValoreDigitato$)
If Len(ValoreDigitato$)>0 Then
For Carattere=Len(ValoreDigitato$) To 1 Step -1
Cifra=Asc(Mid$(ValoreDigitato$,Len(ValoreDigitato$)-Carattere+1,1))-NumeroZeroASCII
If Cifra>=0 And Cifra<10 Then
MultiploDiDieci=0:ContoDeiMultipli=0
Repeat
MultiploDiDieci=MultiploDiDieci*10
If MultiploDiDieci=0 Then MultiploDiDieci=1
ContoDeiMultipli=ContoDeiMultipli+1
Until ContoDeiMultipli=Carattere
Numero=Numero+Cifra*MultiploDiDieci
Else
If Cifra=Asc("-")-NumeroZeroASCII And Carattere=Len(ValoreDigitato$) Then
NumeroNegativo=True
Else
Numero=0
EndIf
EndIf
Next
If NumeroNegativo=True Then Numero=-Numero
EndIf
Return Numero
End Function
|
Sembra una scemata ma forse non lo è; ciao ed alla prossima!  _________________ Ciao a tutti da EsseEmmeErre! |
|