FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» un nouveau editeur panobasic
par pascal10000 Hier à 21:52

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Jack Hier à 20:23

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Hier à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Hier à 19:58

» Compilateur FBPano
par jean_debord Hier à 8:49

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 En jouant avec des cercles j’obtiens … des sphères.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 2:48

La classe Klaus ... Superbe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 2:58

C'est le "remplissage radial" selon un point d'impact, réalisé ligne par ligne (méthode scanline).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 5:16

Coloristes à vos pinceaux.

Code:

rem ============================================================================
rem     Méridiens de la surface de Werner Boy
rem ============================================================================

dim p3,p6,p8 : p3 = pi/3 : p6 = pi/6 : p8 = pi/8
dim m,p,a,b,d,e,sa,c2,c3,cm,sm,tc,ts,x1,z1,x,y,t
picture 10 : width 10,width(0)-60 : height 10,height(0)-60
2d_target_is 10
caption 0,"<ESC> pour arrêter"
for m = 0 to 2*pi step 0.1
    p = p + 1
    d = 34+4.794*sin(6*m-p3)
    e = 6.732*sin(3*m-p6)
    a = d+e
    b = d-e
    sa = sin(p8*sin(3*m))
    c2 = sqr(a*a+b*b)
    c3 = (4*d*e)/c2
    cm = cos(m)
    sm = sin(m)
    for t = 0 to 2*pi step .01
        tc = a*cos(t)
        ts = b*sin(t)
        x1 = c3+tc-ts
        z1 = c2+tc+ts
        x = x1*cm - z1*sa*sm
        y = x1*sm + z1*sa*cm
        2d_point 300+3*x,200-3*y
        display
        if scancode = 27 then end
    next t
next m
caption 0,"Terminé"
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 9:08

ok, c'est chouette. Très chouette. Voici une colorisation rapide avant d'y aller:
Code:
rem ============================================================================
rem    Méridiens de la surface de Werner Boy
rem ============================================================================

dim p3,p6,p8 : p3 = pi/3 : p6 = pi/6 : p8 = pi/8
dim m,p,a,b,d,e,sa,c2,c3,cm,sm,tc,ts,x1,z1,x,y,t
picture 10 : width 10,width(0)-60 : height 10,height(0)-60
2d_target_is 10
caption 0,"<ESC> pour arrêter"
for m = 0 to 2*pi step 0.1
    p = p + 1
    d = 34+4.794*sin(6*m-p3)
    e = 6.732*sin(3*m-p6)
    a = d+e
    b = d-e
    sa = sin(p8*sin(3*m))
    c2 = sqr(a*a+b*b)
    c3 = (4*d*e)/c2
    cm = cos(m)
    sm = sin(m)
    for t = 0 to 2*pi step .01
        tc = a*cos(t)
        ts = b*sin(t)
        x1 = c3+tc-ts
        z1 = c2+tc+ts
        x = x1*cm - z1*sa*sm
        y = x1*sm + z1*sa*cm
        2d_pen_color abs(3 * x),abs(3*y), t*40
        2d_point 300+3*x,200-3*y
        display
        if scancode = 27 then end
    next t
next m
caption 0,"Terminé"
rem ============================================================================

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 12:32

Effet de lumière encore plus réaliste!
Code:

label centre, abort

dim w%, h%, x0%, y0%, r%, xc%, yc%, l%, c%, d, Rouge%, d1, mx, abort%
picture 1 : full_space 1 : color 1,255,255,255
2d_target_is 1
w% = width(1) : h% = height(1)

x0% = w%/2 : y0% = h%/2
r% = min(w%,h%)*0.4

2d_pen_color 255,0,0
2d_circle x0%,y0%,r%

on_click 1,centre
caption 0,"Clic pour déterminer le point d'éclairage"
button 2 : caption 2,"Arrêter" : on_click 2,abort

end

centre:
  xc% = mouse_x_left_down(1)
  yc% = mouse_y_left_down(1)
  if ((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))>(r%*r%)
    message "Il faut cliquer DANS le cercle !"
    return
  end_if
  mx = sqr((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))+r%
  for l%=(y0%-r%) to (y0%+r%)
    for c%=(x0%-r%) to (x0%+r%)
      d = sqr((c%-x0%)*(c%-x0%)+ (l%-y0%)*(l%-y0%))
      if d<r%
        d1 = sqr((c%-xc%)*(c%-xc%)+ (l%-yc%)*(l%-yc%))
        Rouge% = 255 - (255 * sqr(d1/mx))
        2d_pen_color 255,Rouge%,Rouge%  : ' pour NB, remplacer 255 par Rouge%
        2d_point c%,l%
      end_if
    next c%
    display
    if abort%=1
      color 1,255,255,255
      2d_pen_color 255,0,0
      2d_circle x0%,y0%,r%
      abort% = 0
      return
    end_if
  next l%
  return

abort:
  abort% = 1
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 13:27

Et voilà l'effet d'éclairage le plus réaliste que j'aie pu trouver:
Code:

label centre, abort

dim w%, h%, x0%, y0%, r%, xc%, yc%, l%, c%, d, Rouge%, d1, mx, abort%
picture 1 : full_space 1 : color 1,255,255,255
2d_target_is 1
w% = width(1) : h% = height(1)

x0% = w%/2 : y0% = h%/2
r% = min(w%,h%)*0.4

2d_pen_color 255,0,0
2d_circle x0%,y0%,r%

on_click 1,centre
caption 0,"Clic pour déterminer le point d'éclairage"
button 2 : caption 2,"Arrêter" : on_click 2,abort

end

centre:
  xc% = mouse_x_left_down(1)
  yc% = mouse_y_left_down(1)
  if ((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))>(r%*r%)
    message "Il faut cliquer DANS le cercle !"
    return
  end_if
  mx = sqr((xc%-x0%)*(xc%-x0%)+ (yc%-y0%)*(yc%-y0%))+r%
  for l%=(y0%-r%) to (y0%+r%)
    for c%=(x0%-r%) to (x0%+r%)
      d = sqr((c%-x0%)*(c%-x0%)+ (l%-y0%)*(l%-y0%))
      if d<r%
        d1 = sqr((c%-xc%)*(c%-xc%)+ (l%-yc%)*(l%-yc%))
'        Rouge% = 255 - (255 * sqr(d1/mx))
        Rouge% = 255 - (255 * sin((pi/2)*(d1/mx)))
        2d_pen_color 255,Rouge%,Rouge%    : ' pour NB, remplacer 255 par Rouge%
        2d_point c%,l%
      end_if
    next c%
    display
    if abort%=1
      color 1,255,255,255
      2d_pen_color 255,0,0
      2d_circle x0%,y0%,r%
      abort% = 0
      return
    end_if
  next l%
  return

abort:
  abort% = 1
  return
Le commentaire indique comment faire une image en nuances de gris.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 16:39

Je testerais ça ce soir comme je suis au boulot, mais j'ai hâte de voir ce que ça donne.
Attention Klaus, j'attend un truc aussi génial que l'éclairage de la sphère ... Pas moins ... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 16:41

@Jicehel
C'est beau, Jean-Charles LEBEAU!  tongue

@Klaus
Oui c’est du bel effet.

Comme sin(pi/2) est une constante qui vaut 1, remplacer
Code:

Rouge% = 255 - (255 * sin((pi/2)*(d1/mx)))

Par

Code:

Rouge% = 255 - (255 * (d1/mx))

Et puis, pour accélérer le tracé on peut aussi remplacer

Code:

2d_point c%,l%
par
Code:

2d_circle c%,l% ,4

Avec un STEP 2 dans les boucles FOR l% et FOR c%
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 19:33

@Papydall:
Tu dis:
Code:
Comme sin(pi/2) est une constante qui vaut 1, remplacer
Certes... mais tu n'as pas regardé les parenthèses ! Ma formule est plus complexe que ça. Compare les deux versions, et tu verras la différence !

Ma formule est:
Code:
Rouge% = 255 - (255 * sin((pi/2)*(d1/mx)))
et donc l'argument de sin() est (pi/2)*(d1/mx) et non (pi/2) !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5501
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mar 8 Mar 2016 - 20:22

Tu as raison Klaus comme d’habitude !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   Mer 9 Mar 2016 - 11:05

C'est très réussi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: En jouant avec des cercles j’obtiens … des sphères.   

Revenir en haut Aller en bas
 
En jouant avec des cercles j’obtiens … des sphères.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» j ai des souci , je debute depuis ce jour avec linux fedora
» Lecture video interrompue avec mise en tampon
» probleme avec les cellules d'excel sur la mise en forme
» [Résolu]Mis a jour impossible avec Antivir
» [Résolu] Problème avec psg tv

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Les inutilitaires-
Sauter vers: