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 petit "coucou" à tous les Panoramiciens !
par Yannick Aujourd'hui à 23:06

» mise a jour calculatrice
par joeeee2017 Aujourd'hui à 22:44

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Aujourd'hui à 16:52

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:16

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 rectangle à coins arrondis

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: rectangle à coins arrondis   Sam 15 Aoû 2015 - 17:04

J'avais envie de demander de l'aide pour faire des rectangles à coins arrondis. Je ne sais plus si cela a déjà été développé, à part le rectangle à partir d'une hyperbole je crois de Papydall. Finalement j'ai trouvé cette solution. Je crois que Klaus a fait aussi une commande, mais là la dll est interdite pour mon programme.

J'ai été au plus simple selon mes connaissances.

Code:

' teste de bouton arrondis (cosmos70)
label fin  : width 0,1000 : height 0,700 : top 0,100 : on_close 0,fin
picture 2:full_space 2

' left,top,width,height, rayon des angles , picture de destination
  ' margeGauche,margeHaut,  larg , haut, rayon , picture
  teste(  20  ,  10    ,  300  , 250 ,  20  , 2)

  teste(30,20,100,30,5,2)
  teste(150,300,200,100,4,2)
' wait 2000 : 2d_fill_off : 2d_rectangle 30,20,130,50  :' contrôle
end
===================================================
sub teste(mg,mh,w,h,r,p)
  w = w-r+r/2 : h = h-r+r/2
  dim_local a,i
  for a = 1 to 2000 : if object_exists(a) = 0 then exit_for
  next a
  picture a : left a,520:width a,100:height a,100  : hide a
  2d_target_is a : 2d_pen_color 0,0,255 : 2d_pen_width 1 : 2d_fill_color 230,230,255
  for i = a to 2000: if object_exists(i) = 0 then exit_for
  next i
  image i
 
  2d_target_is a : 2d_fill_off
  2d_circle 50,50,r
  2d_image_copy i,50-r,50-r,50,50  :' haut gauche

  2d_target_is p : 2d_fill_off
  2d_image_paste i,mg,mh
 
  2d_pen_color 0,0,255 : 2d_pen_width 1 : 2d_fill_color 230,230,255
  2d_line mg+r,mh, mg+w -r ,mh  :' haut
 
  2d_target_is a : 2d_image_copy i,50,50-r,50+r,50      : ' haut droite
  2d_target_is p : 2d_image_paste i,mg+w-r,mh
  2d_line mg,mh+r,mg,mh+h-r      :' gauche
 
  2d_target_is a : 2d_image_copy i,50-r , 50 , 50, 50+r  :' bas gauche
  2d_target_is p : 2d_image_paste i,mg,mh+h -r

  2d_line mg+w,mh+r,mg+w,mh+h-r  :' droit

  2d_line mg+r,mh+h,mg+w -r,mh+h :' bas
  2d_target_is a : 2d_image_copy i,50  ,50, 50+r , 50+r
  2d_target_is p : 2d_image_paste i,mg + w-r,mh+h-r
  2d_flood mg+w/2,mh+h/2, 240,240,255
  delete a : delete i
end_sub

fin:
terminate

Reste plus que mettre des paramètres pour les couleurs des cadres, du fond, et largeur du trait, mais cela commence à faire.
Revenir en haut Aller en bas
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 18:42

Salut Cosmos70 et bonsoir a tous !

J'ai modifié un peu ton code en essayant de le simplifier.
J'ai utilisé par exemple la commande 2D_RECTANGLE. Ensuite j'ai inclus dans les paramètres la couleur de l'objet.
Cela rends le code un peu plus simple, bien qu'il ne soit pas très compliqué !  Wink

Code:
' teste de bouton arrondis (cosmos70 modifié par minibug)
width 0,1000 : height 0,700 : top 0,100
picture 1 : full_space 1

' left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
teste(20,10,300,250,20,255,0,0,0,0,0)
teste(30,20,100,30,5,0,255,0,255,255,255)
teste(150,300,200,100,4,0,0,0,0,0,255)

end

sub teste(mg,mh,w,h,r,cbr,cbv,cbb,cr,cv,cb)
  w=w-r : h=h-r
  dim_local a,i

  ' on determine la couleur de bordure et la largeur du trait par defaut
  2d_pen_color cbr,cbv,cbb : 2d_pen_width 1

  ' on determine les valeurs de a et i
  a=1 : REPEAT : a=a+1 : UNTIL object_exists(a)=0 : picture a : hide a
  i=a : REPEAT : i=i+1 : UNTIL object_exists(i)=0 : image i

  ' Determine la couleur de fond du cercle selon la couleur de fond du rectangle en left-1,top-1
  COLOR a,COLOR_PIXEL_BLUE(1,mg-1,mh-1),COLOR_PIXEL_GREEN(1,mg-1,mh-1),COLOR_PIXEL_RED(1,mg-1,mh-1)
 
  ' on  trace le rectangle et le cercle
  2d_target_is 1 : 2d_fill_color cr,cv,cb : 2D_RECTANGLE mg,mh,w+mg,h+mh
  2d_target_is a : 2d_fill_color cr,cv,cb : 2d_circle 50,50,r

  ' On ajoute ensuite les 4 quarts de cercle aux 4 coins du rectangle
  2d_target_is a : 2d_image_copy i,50-r,50-r,50,50 : 2d_target_is 1 : 2d_image_paste i,mg,mh : ' haut gauche
  2d_target_is a : 2d_image_copy i,50,50-r,50+r,50 : 2d_target_is 1 : 2d_image_paste i,mg+w-r,mh : ' haut droite
  2d_target_is a : 2d_image_copy i,50-r , 50 , 50, 50+r : 2d_target_is 1 : 2d_image_paste i,mg,mh+h -r :' bas gauche
  2d_target_is a : 2d_image_copy i,50  ,50, 50+r , 50+r : 2d_target_is 1 : 2d_image_paste i,mg + w-r,mh+h-r : ' bas droit

  ' On supprime le picture a et l'image i
  delete a : delete i
end_sub


Dernière édition par Minibug le Sam 15 Aoû 2015 - 19:16, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 19:01

A mon avis, le début de la SUB devrait être:
Code:
sub teste(mg,mh,w,h,r,rr,vv,bb)
  w=w-r : ' +r/2
  h=h-r : ' +r/2
Je pense que le "+r/2" gêne plus qu'autre chose, car le rayon de courbure souhaitée ne peut plus s'exprimer normalement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 19:06

Bonsoir klaus !

Je viens de mettre a jour en tenant compte de ta remarque et effectivement les angle 'collent' mieux au rectangle.
Merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 19:18

Bien ! Et voici une version sans IMAGE auxiliaire, encore plus simple:
Code:
' teste de bouton arrondis (cosmos70 modifié par minibug)
label fin  : width 0,1000 : height 0,700 : top 0,100 : on_close 0,fin
picture 1:full_space 1

' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
teste(1,20,10,300,250,20,0,0,0)
teste(1,30,20,100,30,5,255,255,255)
teste(1,150,300,200,100,10,0,0,255)

end

===================================================

sub teste(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : ' +r/2
  h=h-r : ' +r/2
  dim_local a,i

  2d_target_is pic
  ' on determine la couleur de bordure et la largeur du trait par defaut
  2d_pen_color 0,0,0 : 2d_pen_width 1 : 2d_fill_color rr,vv,bb
  
  ' on trace 2 rectangles "en croix"
  2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb
  2d_rectangle mg+r,mh  ,mg+w-r,mh+h
  2d_rectangle mg  ,mh+r,mg+w  ,mh+h-r
  ' on trace les 4 cercles
  2d_circle    mg+r  ,mh+r  ,r
  2d_circle    mg+w-r,mh+r  ,r
  2d_circle    mg+r  ,mh+h-r,r
  2d_circle    mg+w-r,mh+h-r,r
end_sub

fin:
terminate
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 19:33

Et en simplifiant encore un peu, on arrive a ça :

Code:
' teste de bouton arrondis (cosmos70 modifié par minibug et klaus)
width 0,1000 : height 0,700 : top 0,100
picture 1:full_space 1 : 2d_target_is 1

' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
teste(1,20,10,300,250,20,0,0,0)
teste(1,30,20,100,30,5,255,255,255)
teste(1,150,300,200,100,10,0,0,255)

end

sub teste(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : h=h-r

  ' on determine la couleur de bordure et la largeur du trait par defaut
  2d_pen_width 1 : 2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb

  ' on trace 2 rectangles "en croix"
  2d_rectangle mg+r,mh  ,mg+w-r,mh+h : 2d_rectangle mg  ,mh+r,mg+w  ,mh+h-r

  ' on trace 4 cercles
  2d_circle  mg+r ,mh+r ,r : 2d_circle mg+w-r,mh+r ,r : 2d_circle  mg+r ,mh+h-r,r : 2d_circle  mg+w-r,mh+h-r,r
end_sub


Dernière édition par Minibug le Sam 15 Aoû 2015 - 21:09, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 19:53

J'ai des problèmes avec le forum, impossible de cliquer sur réponse, il n'y a pas de bouton ( et d'autre choses aussi)

Voila qui est bien. Je n'aurai pas eu de meilleurs réponses si j'avais demandé de l'aide pour faire cela. Pour ce qui est du rayon, j'avais modifié, car un rectangle  à la place des tracés, n'avait pas les mêmes proportions, et j'avoue avoir été au plus rapide, pour passer à autre chose.

Merci de vos interventions.

(apparemment l'affichage se fait au bon endroit, car j'ai pas de référence pour cet envoi).
Revenir en haut Aller en bas
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Sam 15 Aoû 2015 - 22:05

Et tant qu'on y est on pourrait faire des fenêtres, des boutons, etc...

Code:
' teste de bouton arrondis (cosmos70 modifié par minibug et klaus)
width 0,1000 : height 0,700 : top 0,100 : BORDER_HIDE 0 : FULL_SPACE 0
picture 1 : full_space 1 : 2d_target_is 1 : print_target_is 1 : FONT_SIZE 1,10

fenetre(20,10,300,250,"fenêtre 1")
fenetre(300,50,400,300,"fenêtre 2")
fenetre(50,200,500,500,"fenêtre 3")
fenetre(700,30,350,700,"fenêtre 4")

bouton(500,600,150,50,"Bouton 1")

end

sub fenetre(mg,mh,w,h,t$)
  box(mg,mh,w,h,200,200,200)
  box(mg+5,mh+5,w-10,25,220,220,220)
  PRINT_LOCATE mg+10,mh+5 : PRINT t$
  box(mg+5,mh+30,w-10,h-35,150,150,150)
end_sub

sub bouton(mg,mh,w,h,t$)
  box(mg,mh,w,h,200,200,200)
  box(mg+5,mh+5,w-10,h-10,220,220,220)
  PRINT_LOCATE mg+(w/2)-(TEXT_WIDTH(t$,1)/2)-3,mh+(h/2)-TEXT_HEIGHT(t$,1)+7 : PRINT t$
end_sub

sub box(mg,mh,w,h,rr,vv,bb)
  w=w-5 : h=h-5
  2d_pen_width 1 : 2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb
  2d_rectangle mg+5,mh  ,mg+w-5,mh+h : 2d_rectangle mg  ,mh+5,mg+w  ,mh+h-5
  2d_circle  mg+5 ,mh+5 ,5 : 2d_circle mg+w-5,mh+5 ,5 : 2d_circle  mg+5 ,mh+h-5,5 : 2d_circle  mg+w-5,mh+h-5,5
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 0:10

En fin de soirée, impossible de communiquer.

Vous avez revu les calculs, mais les votres sont aussi fausses.. J'ai repris le code de Minibus, pas le dernier, mais celui de 18:33. Voici le résultat si je remplace par un rectangle aux dimensions voulus (comme width et height)



Il faut rajouter un rayon.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 0:45

Désolé, Cosmos70: le mien est bon ! J'ai ajouté un rectangle encadrant légèrement grisé, et voici ce que ça donne:

et voici le code:
Code:
' teste de bouton arrondis (cosmos70 modifié par minibug)
label fin  : width 0,1000 : height 0,700 : top 0,100 : on_close 0,fin
picture 1:full_space 1

' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
teste(1,20,10,300,250,20,0,0,0)
teste(1,30,20,100,30,5,255,255,255)
teste(1,150,300,200,100,10,0,0,255)

end

===================================================

sub teste(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : ' +r/2
  h=h-r : ' +r/2
  dim_local a,i

  2d_target_is pic

  ' on determine la couleur de bordure et la largeur du trait par defaut
  2d_pen_color 0,0,0 : 2d_pen_width 1 : 2d_fill_color 220,220,220
  2d_rectangle mg,mh,mg+w,mh+h
 
  ' on trace 2 rectangles "en croix"
  2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb
  2d_rectangle mg+r,mh  ,mg+w-r,mh+h
  2d_rectangle mg  ,mh+r,mg+w  ,mh+h-r
  ' on trace les 4 cercles
  2d_circle    mg+r  ,mh+r  ,r
  2d_circle    mg+w-r,mh+r  ,r
  2d_circle    mg+r  ,mh+h-r,r
  2d_circle    mg+w-r,mh+h-r,r
end_sub

fin:
terminate
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 1:39

Pour ton code je ne dis pas le contraire. J'ai essayé au moment où j'ai pu me brancher, le code de Minibug de 18:33 je crois.
Voici le code avec les rectangles, et il y a problème:
Code:
' teste de bouton arrondis (cosmos70 modifié par minibug)
width 0,1000 : height 0,700 : top 0,100
picture 1:full_space 1 : 2d_target_is 1

' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
teste(1,20,10,300,250,20,100,0,20)
teste(1,30,20,100,30,5,25,255,255)
teste(1,150,300,200,100,10,0,0,255)

' contrôle
2d_fill_off : 2d_pen_color 255,0,0
2d_rectangle 20,10,320,260
2d_rectangle 30,20,130,50
2d_rectangle 150,300,350,400

end

===================================================

sub teste(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : h=h-r :' cette ligne est de trop. Si on la retire, les rectangles coïncident.

  ' on détermine la couleur de bordure et la largeur du trait par defaut
  2d_pen_width 1 : 2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb

  ' on trace 2 rectangles "en croix"
  2d_rectangle mg+r,mh  ,mg+w-r,mh+h : 2d_rectangle mg  ,mh+r,mg+w  ,mh+h-r

  ' on trace 4 cercles
  2d_circle  mg+r ,mh+r ,r : 2d_circle mg+w-r,mh+r ,r : 2d_circle  mg+r ,mh+h-r,r : 2d_circle  mg+w-r,mh+h-r,r
end_sub

@Minibug: J'ai réalisé les boutons et ceux d'autres objets selon un principe similaire, mais qui ne me plaisais pas dans la méthode. C'est le but de cette recherche.
Revenir en haut Aller en bas
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 10:20

J'ai surement fait une erreur quelque pars !

C'est pas grave, maître Klaus veille... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 12:18

Dans le même état d'esprit, j'ai ajouté le rectangle à coins "grignotés":
Code:
' teste de bouton arrondis (cosmos70 modifié par minibug)
label fin  : width 0,1000 : height 0,700 : top 0,100 : on_close 0,fin
picture 1:full_space 1

' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
RectangleArrondi(1,20,10,300,250,20,0,0,0)
RectangleArrondi(1,30,20,100,30,5,255,255,255)
RectangleArrondi(1,150,300,200,100,10,0,0,255)
' no_pic, left , top , width , height , rayon_angles , couleur_rouge , couleur_vert , couleur_bleu
RectangleArrondiInverse(1,400,20,300,250,20,255,0,0)

end

===================================================

sub RectangleArrondi(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : ' +r/2
  h=h-r : ' +r/2
  dim_local a,i

  2d_target_is pic

  ' on determine la couleur de bordure et la largeur du trait par defaut
'  2d_pen_color 0,0,0 : 2d_pen_width 1 : 2d_fill_color 220,220,220
'  2d_rectangle mg,mh,mg+w,mh+h
 
  ' on trace 2 rectangles "en croix"
  2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb
  2d_rectangle mg+r,mh  ,mg+w-r,mh+h
  2d_rectangle mg  ,mh+r,mg+w  ,mh+h-r
  ' on trace les 4 cercles
  2d_circle    mg+r  ,mh+r  ,r
  2d_circle    mg+w-r,mh+r  ,r
  2d_circle    mg+r  ,mh+h-r,r
  2d_circle    mg+w-r,mh+h-r,r
end_sub

sub RectangleArrondiInverse(pic,mg,mh,w,h,r,rr,vv,bb)
  w=w-r : ' +r/2
  h=h-r : ' +r/2
  dim_local a,i

  2d_target_is pic

  ' on trace le rectangle
  2d_pen_color rr,vv,bb : 2d_fill_color rr,vv,bb
  2d_rectangle mg  ,mh  ,mg+w  ,mh+h
  ' on trace les 4 cercles
  2d_pen_color 255,255,255 : 2d_fill_color 255,255,255
  2d_circle    mg  ,mh  ,r
  2d_circle    mg+w,mh  ,r
  2d_circle    mg  ,mh+h,r
  2d_circle    mg+w,mh+h,r
end_sub


fin:
terminate

Voici ce que ça donne:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7998
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 16 Aoû 2015 - 13:12

Heu...Klaus...il faut manger le matin...
...c' est pas bon les angles, ca irrite...
lol!

c' est bon, je l' ai faite, je sors...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 13:59

Salut tout le monde
Un rectangle à coins arrondis peut être obtenu en traçant une super_ellipse.
Equation paramétrique de la super_ellipse :
x = power(abs(cos(t)),2/n) * a * sgn(cos(t))
y = power(abs(sin(t)),2/n) * b * sgn(sin(t))
avec t variant de 0 à 2*pi avec un pas de pi/180


Code:

rem ============================================================================
rem      Super ellipse ou rectangle à coins arrondis
rem                  par papydall
rem ============================================================================
dim titre$
titre$ = "***** ***** SALUT TOUT LE MONDE ***** *****" + chr$(13) + "VOICI UN RECTANGLE A COINS ARRONDIS"
Super_ellipse(150,50,10,100,50,titre$)

end
rem ============================================================================
' Paramètres :
' a : demi-diamètre horizontal
' b : demi-diamètre vertical
' n : détermine la nature de la super-ellipse(hypo ou hyper-ellipse) et sa forme
' Plus la valeur de n augmente, plus la courbe obtenue tend vers un rectangle.
' x1,y1 : position du rectangle
' t$ : texte à afficher
SUB Super_ellipse(a,b,n,x1,y1,t$)
    dim_local pi,p,t,x,y,xc,yc,w,h
    dim_local cr,cg,cb
    cr = color_pixel_red(0,0,0)
    cg = color_pixel_green(0,0,0)
    cb = color_pixel_blue(0,0,0)
    pi = acos(-1) : p = pi/180
    w = width(0) : h = height(0) : xc = w/2 : yc = h/2
    x1 = x1-8 : y1 = y1-8

    picture 9999
    top 9999,y1 : left 9999,x1 : width 9999,2*(a+10) : height 9999,2*(b+10)
    xc = width(9999)/2 : yc = height(9999)/2 : color 9999,cr,cg,cb
'  color 9999,255,0,0
    2d_target_is 9999 : 2d_poly_from xc + a,yc
    2d_pen_width 4    : ' Vous pouvez REMer cette ligne
    for t = 0 to 2*pi step p
        x = power(abs(cos(t)),2/n) * a * sgn(cos(t))
        y = power(abs(sin(t)),2/n) * b * sgn(sin(t))
        2d_poly_to xc+x,yc+y
    next t
    2d_flood xc-a+10,yc,255,255,0
    alpha 9998 :top 9998, top(9999)+b :left 9998,left(9999)+a/4
    color 9998,255,255,255 : font_color 9998,0,0,255 : font_bold 9998
    caption 9998,t$
END_SUB
rem ============================================================================


Dernière édition par papydall le Dim 16 Aoû 2015 - 14:05, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



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

MessageSujet: Re: rectangle à coins arrondis   Dim 16 Aoû 2015 - 13:59

Je préfère la méthode classique qui permet de faire des rectangles VIDES (ou pleins):
Code:
SUB Rectar(obj%,x%,y%,w%,h%,r%,et%,ct%,cf%)
' Tracé d'un rectangle à coins arrondis dans l'objet obj%
' en x%, y%, de largeur w%, hauteur h%, rayon de l'arrondi r%
' épaisseur trait et%, couleur trait ct%, couleur remplissage cf%
' (couleurs de la forme R*256*256 + G*256 + B)
' si cf% = -1: pas de remplissage
DIM_LOCAL a,cr%,cg%,cb%,xc%,yc%,ps,pi: pi = 4*ATN(1)
2D_TARGET_IS obj%
cr% = INT(ct%/65536): cg% = BIN_AND(ct%,65280)/256: cb% = BIN_AND(ct%,255)
2D_PEN_COLOR cr%,cg%,cb%: 2D_PEN_WIDTH et%: ' trait
cr% = INT(cf%/65536): cg% = BIN_AND(cf%,65280)/256: cb% = BIN_AND(cf%,255)
IF r% = 0
    IF cf% >= 0
        2D_FILL_COLOR cr%,cg%,cb%: 2D_RECTANGLE x%,y%,x%+w%,y%+h%: ' plein
    ELSE
        2D_LINE x%,y%,x%+w%,y%: 2D_POLY_TO x%+w%,y%+h%: ' vide
        2D_POLY_TO x%,y%+h%: 2D_POLY_TO x%,y%
    END_IF
ELSE
    ps = pi/r%
    xc% = x%+r%: yc% = y%+r%
    2D_LINE x%+w%-r%,y%,xc%,y%
    FOR a = pi/2 TO pi STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    yc% = y%+h%-r%
    2D_POLY_TO x%,yc%
    FOR a = pi TO 3*pi/2 STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    xc% = x%+w%-r%
    2D_POLY_TO xc%,y%+h%
    FOR a = 3*pi/2 TO 2*pi STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    yc% = y%+r%
    2D_POLY_TO x%+w%,yc%
    FOR a = 0 TO pi/2+ps STEP ps
        2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a)
    NEXT a
    IF cf%>=0 THEN 2D_FLOOD xc%,yc%,cr%,cg%,cb%
END_IF
END_SUB
Salut papydall, on vient juste de se croiser !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Lun 17 Aoû 2015 - 13:18

Merci à vous tous. Je viens de rentrer. Là-bas j'avais des problèmes avec internet, d'ailleurs je n'avais qu'une partie du forum ??? J'ai voulu poster à un moment, mais c'est resté bloqué.

Là j'ai le choix et pour l'instant je ne sais pas encore quel code je vais adopté. J'ai voulu testé une idée sur la copie de portion de cercle, et cela semblait meilleurs que le code que j'avais fait il y a un certain temps. C'était sur le principe de celui de Klaus, mais je m'étais "mal compris", et j'avais compliqué le principe. Çà ne me plaisais pas.
Revenir en haut Aller en bas
Jicehel

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Lun 17 Aoû 2015 - 22:11

Du coup, je pense que l'on peu change le titre du post en "rectangle à coins arrondis [résolu]" ... Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Lun 17 Aoû 2015 - 23:56

Bonsoir.
Jicehel a écrit:
Du coup, je pense que l'on peu change le titre du post en "rectangle à coins arrondis [résolu]"

Je veux bien mettre résolu, mais au départ ce n'était pas une demande d'aide. J'ai proposé un code pour faire des rectangles avec des coins arrondis. On m'en a proposé d'autre qui sont mieux que ma proposition, mais ici c'est dans les utilitaires à partager. bounce

Il y a mon code, celui de Klaus (celui de Minibug a une erreur), celui de Papydall et de JL35. Manque Jicehel Jean-Claude , et bien d'autres! Very Happy (et Jack aussi, mais en natif bom )
Revenir en haut Aller en bas
papydall

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 0:13

Très bien dit Idea
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 0:20

C'est pas faux ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 0:50

Citation :
Minibug a une erreur

C'est marrant ça !! lol!

Désolé je n'ai pas fais de correction, entre temps, il y a eu d'autres versions...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

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

MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 3:44

Disons que le code de Minibug comporte une Maxibug !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 7:45

Oui j'aurai pas du ajouter cette remarque. Il y a juste une ligne à supprimer pour faire la correction. Il a bien volontairement participé,et je l'en remercie.
Revenir en haut Aller en bas
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: rectangle à coins arrondis   Mar 18 Aoû 2015 - 9:38

Mais si Cosmos tu as bien fais !

C'est moi qui ai déformé tes propos en ne prenant qu'une partie de la phrase et s'était volontaire ! Laughing
Un peu d'humour ne fait pas de mal... Wink

Bonne journée a tous sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: rectangle à coins arrondis   

Revenir en haut Aller en bas
 
rectangle à coins arrondis
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» rectangle à coins arrondis
» ordinateur portable qui se bloque
» Coin escalier
» Y a comme qui dirait un probleme
» tracer un rectangle de travers

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: