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
» Panoramic et ses curiosités
par Klaus Aujourd'hui à 2:20

» Synedit Parameters
par Klaus Aujourd'hui à 1:33

» Utilitaire de suppression de fichiers
par Yannick Hier à 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» Concours de Morpions
par jjn4 Jeu 22 Juin 2017 - 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 TRIGONOMETRIE CIRCULAIRE

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

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mar 7 Juil 2015 - 15:06

Les outils sont là; je n'ai plus qu'a m'en servir et sortir mon application.
Si j'y parviendrais c'est que j'aurais tout compris
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
papydall

avatar

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

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mar 7 Juil 2015 - 15:11

Tu parviendras! Avec un peu (beaucoup) de persévérance tu parviendras!
Et puis, tout le monde est là pour t'épauler.
Heu! c'est au sens figuré car moi, mes épaules sont assez fragiles. Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
mindstorm

avatar

Nombre de messages : 530
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mar 7 Juil 2015 - 21:26

bonjour a tous
je prends en cour de route et j'espère ne pas être hors sujet
@ sergeauze
tu ne donne pas beaucoup d'indication sur l'usage de la rotation de ton image
cela dit et si cela peut t'être utile, j'ai déjà réalisé la rotation d'une image suivant les trois axes de rotation en utilisant les capacités de Panoramic 3D.
il suffit de faire un cube et de lui appliquer l'image !
après, rotation , zoom... tout est ouvert.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 530
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mar 7 Juil 2015 - 21:27

bonjour a tous
je prends en cour de route et j'espère ne pas être hors sujet
@ sergeauze
tu ne donne pas beaucoup d'indication sur l'usage de la rotation de ton image
cela dit et si cela peut t'être utile, j'ai déjà réalisé la rotation d'une image suivant les trois axes de rotation en utilisant les capacités de Panoramic 3D.
il suffit de faire un cube et de lui appliquer l'image !
après, rotation , zoom... tout est ouvert.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mer 8 Juil 2015 - 13:43

Salut
le but c'est de travailler en 2d
je  veux me familiariser avec les coordonnées polaires  , la trigo, les coordonnées cartésiennes
Le  prétexte : balayage  d'une photo
pour la manipuler   en rotation autour d'un coin; autour de son centre
Pour l’instant  je tâtonne  et met en pratique la doc fournie par papydall
Ce qui est intéressant c'est que de mes erreurs peuvent naitre des choses improbables
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
mindstorm

avatar

Nombre de messages : 530
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Mer 8 Juil 2015 - 19:51

Salut
veux tu décaler pixel par pixel?
il me semble que tu vas trouver le temps long Sleep
n'hésite pas a demander nous sommes là
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Ven 10 Juil 2015 - 16:32

salut pas tant que ça!
Voila mon essai
charger une photo d'un des membres par exemple et la passer au tourniqué

Code:
rem  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
rem  x        Essai SERGEAUZE                    x
rem  x                                            x
rem  x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

dim x,y, L,H,R,angle,Rayon, pi,angleplus ,a, vv,rot
  rot=  50  :' angle de rotation en  degres  au choix
    pi = 4* ATN(1)

 picture 1
  width 1,100
  height 1,100
  angleplus=0/(180/pi)

 color 0,150,50,50
 width 0,1000
 height 0,500
  2d_pen_width 2
 wait 20
  file_load 1,"C:\Users\babou\Desktop\221-94.jpg"
    rayon= sqr ((power(100,2 ))+ power(100,2) )
      2d_circle  500,160,rayon
     
for vv= 1 to 10
  for y= 1 to 99 step 2
    for x=1 to 99 step 2
        display
        2d_pen_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        2d_fill_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
            if scancode =27 then end
           
            ' calcul du rayon
    rayon =sqr ((power(x,2 )+ power(y,2) ) )
   
              ' calcul de l'angle du rayon
            angle=atn (y/x)      :  ' ok
          ' angle= asin (y/rayon ):'180/pi    0k ?
          ' angle=  '    acos(x/rayon ) :'  0k
         
          2d_circle ( rayon*cos(angle+angleplus))+500,(rayon*sin(angle+angleplus))+ 160,2
      ' 2d_point ( rayon*cos(angle+angleplus))+500,(rayon*sin(angle+angleplus))+ 160
        next x
          next y
      angleplus= angleplus +(rot/(180/pi))  :' angle de depart de la rotation
      next vv
    '
        end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
papydall

avatar

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

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Ven 10 Juil 2015 - 18:22

Salut Sergeauze.
Ton essai est réussi, bravo !
Tu as su comment calculer le rayon et l’angle en fonction des coordonnées x et y et l’image a bien tourné.

Au début du code, tu déclares
Code:
  rot=  50  :' angle de rotation en  degres  au choix

Puis
Code:
 for vv= 1 to 10

Cette ligne sera exécutée 10 fois quelque soit l’angle de rotation choisi au départ.
Pour l’esthétique, on doit exécuter la boucle un nombre de fois en rapport avec l’angle de rotation choisi.
Code:
 for vv = 0 to 360/rot
J’ai choisis que la variable VV commence à 0 pour ajouter une fois au nombre de la boucle car le quotient 360/rot peut être non entier.
Il est peut-être aussi intéressant d’ajouter tout juste après la commande CLS.

J’ai choisi ta photo. Transformée en .jpg,

Code:

rem  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
rem  x        Essai SERGEAUZE                      x
rem  x                                             x
rem  x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

dim x,y, L,H,R,angle,Rayon, pi,angleplus ,a, vv,rot
rot =  20  :' angle de rotation en  degres  au choix
pi  = 4* ATN(1) : angleplus = 0/(180/pi)
picture 1 : width 1,100 : height 1,100
color 0,150,50,50 :  width 0,1000 : height 0,500 : 2d_pen_width 2 : wait 20
file_load 1,"C:\Users\acer\Desktop\Sergeause.jpg"
rayon = sqr((power(100,2))+ power(100,2)): 2d_circle  500,160,rayon

for vv = 0 to 360/rot
 ' cls
  for y = 1 to 99 step 2
     for x = 1 to 99 step 2
        display
        2d_pen_color  color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        2d_fill_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        if scancode = 27 then end
        rayon = sqr((power(x,2)+ power(y,2))) : ' calcul du rayon
        angle = atn(y/x) : ' calcul de l'angle du rayon
        2d_circle (rayon*cos(angle+angleplus))+500,(rayon*sin(angle+angleplus))+ 160,2
    next x
  next y
  angleplus = angleplus + (rot/(180/pi))  :' angle de depart de la rotation
next vv

end
rem ============================================================================

Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Ven 10 Juil 2015 - 19:11

salut

La valeur " angle = atn(y/x) " est-elle en radians ou en degres ?
Lors de mes essais si  je transforme en degrés avec'( *180/pi) et ça ne marche plus

On va essayer maintenant la rotation par le  centre de  l'image si c'est possible Arrow

un lien que je suis en train d'etudier
https://fr.khanacademy.org/math/trigonometry/less-basic-trigonometry/trig-symmetry-periodicity/v/trigonometry-unit-circle-symmetry
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
papydall

avatar

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

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Ven 10 Juil 2015 - 23:55

Toutes les fonctions trigonométriques directes SIN(a), COS(a) et TAN(a) doivent avoir a en radians.
Toutes les fonctions trigonométriques réciproques  ASIN(x), ACOS(x) et ATN(x) retournent une valeur en radians.

Si tu n’es pas à l’aise avec les radians et que tu veux utiliser les degrés, tu dois convertir les degrés en radians.
Le facteur multiplicatif est P = PI/180.

Tu déclares au début du programme  P = PI/180 et à chaque fois où tu utilises des angles en degrés, tu les multiplies par le facteur P.

Code:

rem  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
rem  x        Essai SERGEAUZE                      x
rem  x                                             x
rem  x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

dim x,y, L,H,R,angle,Rayon, pi,angleplus ,a, vv,rot,rotrad,p
rot =  90  :' angle de rotation en  degres  au choix
pi  = 4* ATN(1)
p = pi/180  : ' facteur de transformation de dégrés en radians
rotrad = rot*p : ' angle de rotation en radians
picture 1 : width 1,100 : height 1,100
color 0,150,50,50 :  width 0,1000 : height 0,500 : 2d_pen_width 2 : wait 20
file_load 1,"C:\Users\acer\Desktop\Sergeause.jpg"
rayon = sqr((power(100,2))+ power(100,2)): 2d_circle  500,160,rayon

for vv = 0 to 360/rot
 ' cls
  for y = 1 to 99 step 2
     for x = 1 to 99 step 2
        display
        2d_pen_color  color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        2d_fill_color color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        if scancode = 27 then end
        rayon = sqr((power(x,2)+ power(y,2))) : ' calcul du rayon
        angle = atn(y/x) : ' angle est en radians
        2d_circle (rayon*cos(angle+angleplus))+500,(rayon*sin(angle+angleplus))+ 160,2
    next x
  next y
  angleplus = angleplus + rotrad
next vv

end
rem ============================================================================


Dernière édition par papydall le Sam 11 Juil 2015 - 5:06, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 0:30

@sergeauze,
c'est peut-être ce que tu cherches, la rotation d'une image d'un angle quelconque autour de son centre (ici une rotation de 60°):

Code:
DIM f$,rot%,t1$,wi%,hi%,w2%
f$ = "Z:\Goldgate.jpg": ' image de 320x240
rot% = 60  :' angle de rotation en degrés

WIDTH 0,800: HEIGHT 0,500
wi% = 320: hi% = 240
PICTURE 1: WIDTH 1,wi%: HEIGHT 1,hi%
w2% = INT(SQR(wi%*wi%+hi%*hi%)): ' diagonale (dimensions maxi du résultat)
PICTURE 2: LEFT 2,WIDTH(1): WIDTH 2,w2%: HEIGHT 2,w2%: color 2,200,255,255
ALPHA 3: TOP 3,TOP(1)+HEIGHT(1): FONT_BOLD 3
FILE_LOAD 1,f$
t1$=TIME$: CAPTION 3,"Rotation de "+STR$(rot%)+"°, début: "+t1$
ImgRotate(1,2,rot%)
CAPTION 3,"Rotation de "+STR$(rot%)+"°, Début: "+t1$+" Fin: "+TIME$
END

SUB ImgRotate(p1%,p2%,rot%)
' Pivoter l'image du picture p1% d'un angle de rot% degrés, dans le picture p2%
DIM_LOCAL ra,wi%,hi%,xc%,yc%,w2%,xc1%,yc1%,x%,y%,x1%,y1%
wi% = WIDTH(p1%): hi% = HEIGHT(p1%)
ra = rot%*4*ATN(1)/180: ' angle de rotation, en radians
xc% = wi%/2: yc% = hi%/2: ' pivot de rotation (centre de l'image)
w2% = INT(SQR(wi%*wi%+hi%*hi%)): ' diagonale (dimensions maxi du résultat)
xc1% = w2%/2: yc1% = xc1%: ' centre du résultat
2D_TARGET_IS p2%
FOR y% = 0 TO hi%-1
   FOR x% = 0 TO wi%-1
       x1% = COS(ra)*(x%-xc%)-SIN(ra)*(y%-yc%)+xc1%
       y1% = SIN(ra)*(x%-xc%)+COS(ra)*(y%-yc%)+yc1%
       2D_PEN_COLOR COLOR_PIXEL_RED(p1%,x%,y%),COLOR_PIXEL_GREEN(p1%,x%,y%),COLOR_PIXEL_BLUE(p1%,x%,y%)
       ' 2D_POINT x1%,y1%
        2D_CIRCLE x1%,y1%,1
   NEXT x%
   display
NEXT y%
END_SUB
Dans l'exemple ci-dessus, la rotation prend 30 secondes pour une image de 640x480 pixels.
On remarque l'apparition d'artefacts bizarres (des pixels blancs), inévitables sans doute, dans le cas de rotations quelconques, différentes de 90, 180 ou 270°.
Je remarque également que le display de la fin (exécuté à chaque ligne de pixels) ne change absolument rien à la durée du processus.

NB: Intéressant: si je remplace le 2D_POINT qui dessine chaque pixel résultant par un 2D_CIRCLE de rayon 1, ça fait disparaître les artefacts et il n'y a plus de pixels blancs ! et ça n'allonge pas le temps de traitement (si, apparemment environ 10%).
J'ai remplacé dans le code ci-dessus.
Je ne pense pas qu'on y perde en définition, et le résultat est incomparablement meilleur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 1:00

Bravo, c'est très chouette. J'ai modifié un tout petit peu pour faciliter le paramétrage et avoir moins de déformations mai du coup c'est aussi un peu moins rapide
Code:
rem  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
rem  x        Essai SERGEAUZE                      x
rem  x                                            x
rem  x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

dim x,y, L,H,R,angle,Rayon, pi,angleplus, vv,rot,rotrad,p,CentreX, CentreY
rot =  30  :' angle de rotation en  degres  au choix
pi  = 4* ATN(1)
p = pi/180  : ' facteur de transformation de dégrés en radians
rotrad = rot*p : ' angle de rotation en radians
L=100 : H = 100 : CentreX = 500 : CentreY = 160
picture 1 : width 1,L : height 1,H
color 0,150,50,50 :  width 0,2*CentreX : height 0,2.5 * CentreY: 2d_pen_width 1
file_load 1,"papydall.jpg"
rayon = sqr((power(L,2))+ power(H,2)): 2d_circle  CentreX,CentreY,rayon

for vv = 0 to 360/rot
 ' cls
  for y = 1 to H
    for x = 1 to L
        display
        2d_pen_color  color_pixel_red(1,x,y),color_pixel_green(1,x,y),color_pixel_blue(1,x,y)
        if scancode = 27 then end
        rayon = sqr((power(x,2)+ power(y,2))) : ' calcul du rayon
        angle = atn(y/x) : ' angle est en radians
        2d_circle (rayon*cos(angle+angleplus))+CentreX,(rayon*sin(angle+angleplus))+ CentreY,2
    next x
  next y
  angleplus = angleplus + rotrad
next vv

end
rem ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 1:00

Merci à vous deux vous me  mâchez  le travail  Very Happy
Pour accélérer le processus ?
on peut  réduire la taille de l’image
N e prendre en compte qu'un pixel sur 2 et utiliser des cercles pour chaque pixel

Quand  à l’utilité ? la rotation   à 360 degrés !  sunny  pour la 2d
   j'ai croisé vos réponses Embarassed !!
6 secondes pour une image de 90 pixels d par 90 !!


Dernière édition par sergeauze le Sam 11 Juil 2015 - 1:12, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 1:07

C'est sûr que si on réduit la taille de l'image on réduit proportionnellement le temps de traitement ! mais ce n'est pas toujours possible, ça dépend de ce qu'on veut comme résultat.
Quant à la rotation de 360°... autant ne rien faire ? Very Happy

Et remarque: le cercle de rayon 1 a un diamètre de 2 (eh oui), donc ça suffit pour boucher les trous.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 1:16

Je voulais dire un degré a la fois confused
le travail étant fait je n'ai plus qu' à chercher un autre sujet Crying or Very sad
merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
papydall

avatar

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

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 1:33

JL35 a écrit:
Et remarque: le cercle de rayon 1 a un diamètre de 2 (eh oui)

Monsieur de Lapalisse  ne pouvait pas dire mieux !


Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/ En ligne
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 12:01

Tu peux rigoler mon ami papydall, mais est-ce que en l'occurence, concernant des pixels,  c'est aussi évident que ça en a l'air ?
Comment fait le système pour tracer un cercle de rayon 1 ? est-ce qu'il trace deux pixels côte à côte ? ou bien un pixel central et un pixel de chaque côté, ce qui ferait un rayon de 1 et un diamètre de 3  (et un total de 5 pixels dessinés) ?
Tiens il faut que je fasse un petit programme de zoom pour vérifier ça...

NB: vérification faite, le pseudo-cercle fait bien 2 pixels de diamètre.
Il y a deux pixels colorés: le pixel centre, et celui immédiatement dessous.
Et je remarque à cette occasion que le comptage des pixels ne commence pas à zéro, comme c'est l'usage, mais à 1 ?
Si la largeur du picture est de 100, les abscisses vont de 1 à 100 (et non de 0 à 99 comme on pourrait s'y attendre, ça trompe...)
Code:
DIM p,r,c,x,y,pp(10,10),rr,gg,bb

PICTURE 500: WIDTH 500,50: HEIGHT 500,50
p = 1
y = 0
FOR r = 0 TO 9
  x = 60
  FOR c = 0 TO 9
      PICTURE p: TOP p,y: LEFT p,x: WIDTH p,10: HEIGHT p,10: COLOR p,190,190,0
      pp(r,c) = p
      p = p + 1
      x = x+15
  NEXT c
  y = y+15
NEXT r
2D_TARGET_IS 500
2D_CIRCLE 5,5,1
FOR y = 0 TO 9
    FOR x = 0 TO 9
        p = pp(y,x)
        rr=COLOR_PIXEL_RED(500,x,y): IF rr=0 THEN COLOR p,0,0,0
    NEXT x
NEXT y
END
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 4933
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 14:01

Je confirme JL35,
un rayon de 1 Px ne dessine pas un cercle. Ça confirme que le comptage des pixels ne commence pas à zéro.

Voir code ci-dessous.
Code:
color 0,0,0,0
2d_pen_color 255,255,255
dim x,y,r
x=100 : y=100
' choisir une des 3 lignes ci-dessous
' r=0
 r=1
' r=2
2d_circle x,y,r
end



JL35 a écrit:
Et je remarque à cette occasion que le comptage des pixels ne commence pas à zéro, comme c'est l'usage, mais à 1 ?
Si la largeur du picture est de 100, les abscisses vont de 1 à 100 (et non de 0 à 99 comme on pourrait s'y attendre, ça trompe...)

Wouais, mais là c'est des Pixels éléphants, donc ça se voit, mais pour un pixel normal ça passe... Very Happy
lol!
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 17:26

salut à tous
de jl 35
"c'est peut-être ce que tu cherches, la rotation d'une image d'un angle quelconque autour de son centre (ici une rotation de 60°)"
OUI c'est bien ça"
A l’époque j'avais zappé le code
Aujourd'hui    j'allais réinventer le fil  à couper le beurre !
je vais étudier ton code avec attention et le mettre dans mes préférées
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 17:51

Bonjour sergeauze,
Avec le même code on peut faire pivoter l'image autour de n'importe quel point, mais à part le centre je ne vois pas trop l'intérêt.
Et puis c'est valable pour une image, imagine avec une photo le temps que ça prend (des minutes), alors c'est impensable dans un jeu par exemple, ou alors pour une figure de quelques pixels.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Sam 11 Juil 2015 - 19:40

Tu peux l'imaginer dans un jeu si tu fais du pré calcul pendant que le programme affiche autre chose et tu utilise après les images pré calculées mais on est d'accord c'est qu'en même beaucoup plus simple de faire autrement Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sergeauze

avatar

Nombre de messages : 391
Age : 64
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Dim 12 Juil 2015 - 1:24

Pourtant .....
Pour les rotations d'images j'utilise un logiciel
PhotoFiltre 7 ou une suite bureautique
C'est instantané alors qu'avec panoramic pour un format de 120 par 120 pixel s
ij faut entre 7 et 10 secondes en 2d
La 3d est plus efficace
Comment expliquer ces performances qui diffèrent
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://sergeauze.blog-video.tv/
Klaus

avatar

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

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Dim 12 Juil 2015 - 9:35

Cela dépend des moyens techniques mis en oeuvre. Il y a des API pus puissants que d'autres. La pire des méthodes (en termes de performance, j'entends) est la méthode pixel par pixel en Panoramic pur. Tu peux essayer les fonctions de rotation d'image (90°, 180°, -90°) de KGF.dll, pour avoir une comparaison. Mais je n'ai pas fait la rotation par un angle quelconque, à cause de la perte potentielle d'information.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Dim 12 Juil 2015 - 15:25

Il est bien évident qu'il y a des moyens beaucoup plus rapides et rationnels avec des ressources externes, là le défi était de le faire en pur Panoramic.
C'est juste un exercice de style, mais c'est hors de prix en temps.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 444
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   Dim 12 Juil 2015 - 16:11

Un détail très important, panoramic est très lent:
(de 0 à 1048575=1048576 données, soit l'équivalent d'un bout d'écran de 1024*1024 pixels)
Code:


dim x,y,result,start_time,end_time,final_time,max_test
dll_on "kernel32"



max_test=10

'
dim tmp1,tmp2,tmp3
dim rt,vt,bt,rtt,vtt,btt
'
print "Test(s) en cours..."
for x=1 to max_test
   '
   get_time() : start_time=result
   for y=0 to 1048575
      rem
   next y
   get_time() : end_time=result
   '
   print end_time-start_time
   final_time=final_time+(end_time-start_time)
next x
cls
print
print final_time/max_test



END
sub get_time()
' mesure en milliseconde, le temps écoulé depuis l'allumage du PC
   result=dll_call0("GetTickCount")
end_sub
résultat, 2325 ms pour compter de 0 à 1048575

Le même code en darkbasic classic(également en langage interprété)
résultat, 78.1 ms pour compter de 0 à 1048575

et pour le fun, en darkbasic pro(langage compilé)
résultat, 1.5 ms pour compter de 0 à 1048575

Panoramic n'a pas été conçu pour être rapide, et ne peut donc pas traiter de grosse masse de données en temps raisonnable. Dans certains cas, il est important d'optimiser ses sources au maximum si l'on veut une vitesse d'exécution optimale.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: TRIGONOMETRIE CIRCULAIRE   

Revenir en haut Aller en bas
 
TRIGONOMETRIE CIRCULAIRE
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» [script] => Trajectoire Circulaire autour d'un point
» envoyer un message circulaire
» Script: Mouvement circulaire parfait GM5-GM6
» relooker les menu déroulant,est-ce possible?
» IPOD TOUCH... EN SPÉCIAL quelque part ? Vous le savez ou l'avez vue en spécial ? Merci bcp :)

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 :: Vos sources, vos utilitaires à partager-
Sauter vers: