PureBasic

Forums PureBasic
Nous sommes le Ven 24/Mai/2013 19:38

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 43 messages ]  Aller à la page 1, 2, 3  Suivante
Auteur Message
 Sujet du message: une montre... special
MessagePosté: Lun 27/Fév/2012 2:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
en surfant, je suis tombé sur ce site , et sur cette montre :

http://www.tokyoflash.com/fr/watches/ki ... _illusion/

Image

je me suis dit comment pourrai-je reproduire cette effet ?

en regardant cette image de la montre :
Image

on peut lire 03 51 :) (les chiffres l'un au dessus de l'autre 03/ 51)
un effet de moirage fait apparaitre l'heure lorsqu'on fixe suffisamment l'image
(troublez votre vue)
voila c'est le principe de cette montre :)

j'ai fait une approximation en Purebasic dont voici le code :
(un click sur la fenêtre fait apparaitre l'heure en clair .. comme la montre qui fait la même chose, car elle est tactile ;) )

Voir code plus bas ;)

_________________
Image


Dernière édition par Dobro le Lun 27/Fév/2012 13:26, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 9:52 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Mai/2007 15:21
Messages: 488
Mon ophtalmologue te remercie. :wink:
(ça tue les yeux, ton truc. C'est réussi, mais ça tue les yeux.)

_________________
Les idées sont le souvenir de choses qui ne se sont pas encore produites.


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 10:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
:lol:

une autre version en utilisant 2 sprites images

voici les images a inclures dans le code
voir code plus bas ;)

_________________
Image


Dernière édition par Dobro le Lun 27/Fév/2012 13:27, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 11:59 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
²nouvel version avec ces images de sprites

Block:

Image

block2:

Image

le code :

Code:

UsePNGImageDecoder()
global flag_heure=0,flag_min=0
Enumeration
   #window
   #block
   #block2
   #timer
   #timer2
EndEnumeration

InitSprite() : InitSprite3D()
Declare  WindowCallback(WindowID,message,wParam,lParam)
Declare  animation()




if FileSize("illusion.inf")<>-1
   openfile(1,"illusion.inf")
   global xw=readLong(1)
   global yw=readLong(1)
   CloseFile(1)
   Else
   xw=1
   yw=1
endif
global taillex=150
global tailley=221
OpenWindow(#window,xw,yw,taillex,tailley,"Illusion",#PB_Window_BorderLess ) ;#PB_Window_SizeGadget
AddWindowTimer(#window,#timer,1000)
AddWindowTimer(#window,#timer2,2000)
OpenWindowedScreen(windowid(#window),1,1,256,440,1,0,0)

SetWindowCallback(@WindowCallback())


;{ ********** dessin du block de base ************

LoadSprite(#block,"C:\Dobro\PureBasic\dobro\Dobro_creation\Illusion_montre\blockA.png",#PB_Sprite_Texture)

CreateSprite3D(#block,#block)

; lettre
LoadSprite(#block2,"C:\Dobro\PureBasic\dobro\Dobro_creation\Illusion_montre\blockA2.png",#PB_Sprite_Texture)
CreateSprite3D(#block2,#block2)

;} *********************************************

dim heure(25,18)
dim minut(25,18)


repeat
   
   StartDrawing(ScreenOutput())
      if Hour(Date()) <10
         DrawText(1,1,"0"+str(Hour(Date())),#green)
         else
         DrawText(1,1,str(Hour(Date())),#green)
      endif
      if minute(Date())<10
         DrawText(20,1,"0"+str(minute(Date())),#green)
         else
         DrawText(20,1,str(minute(Date())),#green)
      endif
     
      :L=0
      for y=0 to 16
         for x=1 to 16
            heure(x,y)=point(x,y)
            minut(x,y)=point(x+20,y)
         next x
      next y
   StopDrawing()
   ClearScreen(0)
   
   ;{ *********** Affichage *******************   ²
   L=0
   Start3D()
   for y=2 to 16
      for x=0 to 16
         if heure(x,y)>0
            DisplaySprite3D(#block2,(x*16),(y*16)-32)
           
            else
            if  flag_heure =0
               DisplaySprite3D(#block,(x*16),(y*16)-32)
            endif
         endif
         
         if minut(x,y)>0
           
            DisplaySprite3D(#block2,(x*16),(y*16)+192)
           
            Else
            if  flag_min=0
               DisplaySprite3D(#block,(x*16),(y*16)+192)
            endif
         endif
      next x
   next y
   Stop3D()
   
   FlipBuffers()
   ClearScreen(0)
   ;} ***************************************²
   event= WaitWindowEvent(20)
   select event
      ;case #PB_Event_Timer
     
      case #WM_LBUTTONdown
      SendMessage_(WindowID(#Window), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
     
      flag_min=1
      flag_heure=1
      openfile(1,"illusion.inf")
      WriteLong(1,WindowX(#window))
      WriteLong(1,Windowy(#window))
      CloseFile(1)
     
      case #WM_RBUTTONdown
      event=#PB_Event_CloseWindow
   endselect
   
until event=#PB_Event_CloseWindow
end

;
Procedure WindowCallback(WinID,message,wParam,lParam)
   ; by Dobro
   res=#PB_ProcessPureBasicEvents
   Select message
      case #WM_LBUTTONUP
      ;
      flag_min=0
      flag_heure=0
      Case #WM_PAINT
      flag_min=0
      flag_heure=0
     
      Case #WM_TIMER
     
      if EventTimer() = #timer
         flag_min=0
         flag_heure=0
         animation()
         
      endif
      if EventTimer() = #timer2
         ; rafraichi l'affichage
         flag_min=0
         flag_heure=0
         ResizeWindow(#window,#pb_ignore,#pb_ignore,taillex,tailley)
      endif
      ;EndSelect
   EndSelect
   ProcedureReturn res ; important , laissez passer les autres evenements !!!
EndProcedure




procedure animation()
   
   static pos_block
   static pos_block2
   
   pos_block=pos_block-1
   pos_block2=pos_block2+1
   if  pos_block<0 : pos_block=3:endif
   if  pos_block2>3
      pos_block2=0
      RemoveWindowTimer(#Window,#timer)
      AddWindowTimer(#window,#timer,random(60000)+10000)
   endif
   select pos_block
      case 0
      RotateSprite3D(#block,0,1)
      case 1
      RotateSprite3D(#block,90,1)
      case 2
      RotateSprite3D(#block,180,1)
      case 3
      RotateSprite3D(#block,270,1)
   endselect
   
   select pos_block2
      case 0
      RotateSprite3D(#block2,0,1)
      case 1
      RotateSprite3D(#block2,90,1)
      case 2
      RotateSprite3D(#block2,180,1)
      case 3
      RotateSprite3D(#block2,270,1)
   endselect
   
   
   
EndProcedure

;
;
; EPb







capture de ce que ça donne :

Image
a 13:02 :)


ps: réedition du code , j'ai viré les bordures de la fenetre , ajouté le déplacement avec le bouton gauche, enregistrement de la position de la fenetre
et callback de rafraichissement de la fenêtre , puisque le bouton gauche permet de lire l'heure en clair
:)

_________________
Image


Dernière édition par Dobro le Jeu 01/Mar/2012 1:23, édité 4 fois.

Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 13:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 2589
J'ai beau me concentrer, je ne vois rien

_________________
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!

http://xmas.free.fr/


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 13:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5226
Il faut que l'image générée soit plus petite, avec un simple 22 pouces en 1680x1050 je suis obligé de reculer à au moins 1m20 :D
Mais excellent ce code. Par contre je n'achèterai jamais cette montre de ma vie ^^

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 13:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
SPH a écrit:
J'ai beau me concentrer, je ne vois rien


:lol:

regarde cette image :
Image -------->image guide Image

plisse les yeux ou éloigne toi de l'ecran en regardant ;)

tu verra :

13
02
essaye le code ou telecharge le prg ici :
http://michel.dobro.free.fr/download.php?view.37

en cliquant dessus tu peux deplacer la fenetre mais aussi faire apparaitre l'heure en clair :)

_________________
Image


Dernière édition par Dobro le Lun 27/Fév/2012 14:25, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 14:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
Ar-S a écrit:
Il faut que l'image générée soit plus petite, avec un simple 22 pouces en 1680x1050 je suis obligé de reculer à au moins 1m20 :D
Mais excellent ce code. Par contre je n'achèterai jamais cette montre de ma vie ^^


j'ai modifié le code en ajoutant 2 variables
taillex=150
tailley=221

tu regle la taille que tu veux ( la deja c'est réduit :) )

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 14:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5226
J'ai pas testé le code en live mais je vais le faire, pour le moment je viens de monter une tour, j'ai installé W7, j'installe maintenant mises à jours et logiciels (libres). J'aime vraiment mon boulot quand tout roule comme aujourd'hui.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 14:27 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
faut reconnaitre que depuis win98 les installes se sont bien arrangé :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 14:49 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5226
C'est sûr. :P
Mais je pensais plus au montage qui parfois est délicat. Mais comme c'est aussi moi qui ai choisis les pièces ^^
Une petite Antec Three Hundred, pas très haute mais tout de même spacieuse, accueillant sans soucis une HD6xxx et toute la connectique de base sans avoir à se tordre ou se couper les doigts ;)
D'ailleurs les tours aussi se sont améliorées. Alim en position basse, bord moins tranchant, passe cables..
Je me souviens d'un temps pas si reculé ou monter un PC sans se couper était casi impossible :mrgreen:

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 17:15 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
j'ai fais une petite modif sur le code

j'ai viré le callback et ajouté 2 timer

un pour une petite animation de temps en temps ( aleatoire )
et l'autre pour le redessin apres click gauche pour voir l'heure qui ne fonctionnait pas trop :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 17:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 2589
Non, ce n'est pas pour moi, je ne vois rien de probant...

_________________
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!

http://xmas.free.fr/


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 17:49 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3069
Le concept semble intéressant malheureusement c'est au dépit d'un effort surhumain pour deviner l'heure, c'est dommage!


Haut
 Profil  
 
 Sujet du message: Re: une montre... special
MessagePosté: Lun 27/Fév/2012 18:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
c'est curieux , moi ça ne me pose aucun soucis ! 8O
je lis instantanément l'heure ...
auriez vous des problemes de vue ?

_________________
Image


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 43 messages ]  Aller à la page 1, 2, 3  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye