Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Des rectangles... | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Des rectangles... Lun 6 Aoû 2018 - 22:04 | |
| Juste pour s'amuser (c'est les vacances !), une petite sub pour tracer des rectangles avec des coins un peu fantaisie: - Code:
-
LABEL Carac DIM x%,y%,w%,h%,c%,i%,xf%(20),yf%(20) WIDTH 0,900: HEIGHT 0,700 PICTURE 1: FULL_SPACE 1: 2D_TARGET_IS 1: 2D_PEN_WIDTH 2 PRINT_TARGET_IS 1: FONT_SIZE 1,14 x% = 10: y% = 30: w% = 200: h% = 150
c% = 0 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 1 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 2 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 3 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac
x% = 10: y% = y%+h%+40: c% = 4 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 5 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 6 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 7 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac
x% = 10: y% = y%+h%+40: c% = 8 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 9 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac x% = x%+w%+20: c% = 10 Rectangle(x%,y%,w%,h%,c%): GOSUB Carac
FOR c% = 0 TO 10: 2D_FLOOD xf%(c%),yf%(c%),255,255,128: NEXT c% END
Carac: PRINT_LOCATE x%+w%/2,y%+h%+2: PRINT STR$(c%): xf%(c%)=x%+w%/2: yf%(c%)=y%+h%/2 RETURN ' ============================================================================== SUB Rectangle(x%,y%,w%,h%,coins%) ' Tracé d'un rectangle vide en x%,y%, dimensions w%,h%, sur la cible 2D ' Paramètres de trait courants (épaisseur, couleur) ' coins%: = 0: coins normaux = 6: angles = cercles complets ' = 1: arrondis externes = 7: angles = 2 demi-cercles ' = 2: arrondis internes = 8: dentelé (timbre-poste) ' = 3: coins en carrés = 9: côtés ondulés ' = 4: en biseau à 45° =10: côtés petits cercles ' = 5: angles droits internes DIM_LOCAL r%,r1%,r2%,r3%,d%,xc%,yc%,x1%,y1%,a,i%,stp% DIM_LOCAL n%,dh,dv r% = h%/10: IF h%>w% THEN r% = w%/10 ' r% = r%*2: ' rayon du motif d'angle, à moduler stp% = 15: ' pas (degrés) de tracé des courbes SELECT coins% CASE 0: ' coins normaux (angle droit externe) 2D_LINE x%,y%,x%+w%,y%: 2D_POLY_TO x%+w%,y%+h%: 2D_POLY_TO x%,y%+h% 2D_POLY_TO x%,y% CASE 1: ' coins arrondis vers l'extérieur DEGREES 2D_LINE x%,y%+r%,x%,y%+h%-r%: xc% = x%+r%: yc% = y%+h%-r%: ' vertical gauche FOR a = 180 TO 270 step stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+w%-r%,y%+h%: xc% = x%+w%-r%: ' horizontal bas FOR a = 270 TO 360 step stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+w%,y%+r%: yc% = y%+r%: ' vertical droite FOR a = 0 TO 90 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+r%,y%: xc% = x%+r%: ' horizontal haut FOR a = 90 TO 180 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%,y%+r% CASE 2: ' coins arrondis vers l'intérieur DEGREES 2D_LINE x%+r%,y%,x%+w%-r%,y%: xc% = x%+w%: yc% = y%: ' horizontal haut FOR a = 180 TO 270 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+w%,y%+h%-r%: yc% = y%+h%: ' vertical droite FOR a = 90 TO 180 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+r%,y%+h%: xc% = x%: ' horizontal bas FOR a = 0 TO 90 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%,y%+r%: yc% = y%: ' vertical gauche FOR a = 270 TO 360 STEP stp% 2D_POLY_TO xc%+r%*COS(a),yc%-r%*SIN(a) NEXT a 2D_POLY_TO x%+r%,y% CASE 3: ' coins en carrés r2% = r%: r1% = r2%/2: r3% = r1%+r2% 2D_LINE x%+r1%,y%,x%+w%-r1%,y% 2D_POLY_TO x%+w%-r1%,y%+r3%: 2D_POLY_TO x%+w%-r3%,y%+r3% 2D_POLY_TO x%+w%-r3%,y%+r1%: 2D_POLY_TO x%+w%,y%+r1% 2D_POLY_TO x%+w%,y%+h%-r1% 2D_POLY_TO x%+w%-r3%,y%+h%-r1%: 2D_POLY_TO x%+w%-r3%,y%+h%-r3% 2D_POLY_TO x%+w%-r1%,y%+h%-r3%: 2D_POLY_TO x%+w%-r1%,y%+h% 2D_POLY_TO x%+r1%,y%+h% 2D_POLY_TO x%+r1%,y%+h%-r3%: 2D_POLY_TO x%+r3%,y%+h%-r3% 2D_POLY_TO x%+r3%,y%+h%-r1%: 2D_POLY_TO x%,y%+h%-r1% 2D_POLY_TO x%,y%+r1% 2D_POLY_TO x%+r3%,y%+r1%: 2D_POLY_TO x%+r3%,y%+r3% 2D_POLY_TO x%+r1%,y%+r3%: 2D_POLY_TO x%+r1%,y% CASE 4: ' coins en biseaux à 45° 2D_LINE x%+r%,y%,x%+w%-r%,y%: 2D_POLY_TO x%+w%,y%+r% 2D_POLY_TO x%+w%,y%+h%-r%: 2D_POLY_TO x%+w%-r%,y%+h% 2D_POLY_TO x%+r%,y%+h%: 2D_POLY_TO x%,y%+h%-r% 2D_POLY_TO x%,y%+r%: 2D_POLY_TO x%+r%,y% CASE 5: ' coins angle droit vers l'intérieur 2D_LINE x%+r%,y%,x%+w%-r%,y%: 2D_POLY_TO x%+w%-r%,y%+r%: 2D_POLY_TO x%+w%,y%+r% 2D_POLY_TO x%+w%,y%+h%-r%: 2D_POLY_TO x%+w%-r%,y%+h%-r%: 2D_POLY_TO x%+w%-r%,y%+h% 2D_POLY_TO x%+r%,y%+h%: 2D_POLY_TO x%+r%,y%+h%-r%: 2D_POLY_TO x%,y%+h%-r% 2D_POLY_TO x%,y%+r%: 2D_POLY_TO x%+r%,y%+r%: 2D_POLY_TO x%+r%,y% CASE 6: ' coins en cercles fermés 2D_FILL_OFF 2D_LINE x%+r%,y%,x%+w%-r%,y%: ' horizontal haut xc% = x%+w%-r%: yc% = y%+r%: 2D_CIRCLE xc%,yc%,r% 2D_LINE x%+w%,y%+r%,x%+w%,y%+h%-r%: ' vertical droite yc% = y%+h%-r%: 2D_CIRCLE xc%,yc%,r% 2D_LINE x%+w%-r%,y%+h%,x%+r%,y%+h%: ' horizontal bas xc% = x%+r%: 2D_CIRCLE xc%,yc%,r% 2D_LINE x%,y%+h%-r%,x%,y%+r%: ' vertical gauche yc% = y%+r%: 2D_CIRCLE xc%,yc%,r% CASE 7: ' angles = deux demi-cercles DEGREES x1% = x%+w%: y1% = y%+h% r1% = r%/2: ' rayon des 1/2 cercles ' r1% = 4*r1%/3 r2% = 3*r%/4: ' distance des 1/2 cercles aux coins d% = 2*r1%: ' diamètre 2D_LINE x%,y%,x%+r2%,y%: xc% = x%+r2%+r1% FOR a = 180 TO 360 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y%-r1%*SIN(a): NEXT a 2D_POLY_TO x1%-r2%-d%,y%: xc% = x1%-r2%-r1% FOR a = 180 TO 360 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y%-r1%*SIN(a): NEXT a 2D_POLY_TO x1%,y% 2D_POLY_TO x1%,y%+r2%: yc% = y%+r2%+r1% FOR a = 90 TO 270 STEP stp%: 2D_POLY_TO x1%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a 2D_POLY_TO x1%,y1%-r2%-d%: yc% = y1%-r2%-r1% FOR a = 90 TO 270 STEP stp%: 2D_POLY_TO x1%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a 2D_POLY_TO x1%,y1% 2D_POLY_TO x1%-r2%,y1%: xc% = x1%-r2%-r1% FOR a = 0 TO 180 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y1%-r1%*SIN(a): NEXT a 2D_POLY_TO x%+r2%+d%,y1%: xc% = x%+r2%+r1% FOR a = 0 TO 180 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y1%-r1%*SIN(a): NEXT a 2D_POLY_TO x%,y1% 2D_POLY_TO x%,y1%-r2%: yc% = y1%-r2%-r1% FOR a = 270 TO 450 STEP stp%: 2D_POLY_TO x%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a 2D_POLY_TO x%,y%+r2%+d%: yc% = y%+r2%+r1% FOR a = 270 TO 450 STEP stp%: 2D_POLY_TO x%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a 2D_POLY_TO x%,y% CASE 8: ' dentelure (timbre-poste) DEGREES x1% = x%+w%: y1% = y%+h% r1% = r%/2: ' rayon des 1/2 cercles ' r1% = 4*r1%/3 r2% = 3*r%/4: ' distance des 1/2 cercles aux coins ' r2% = r1%/2 d% = 2*r1%: ' diamètre x1% = x%+r2%: 2D_LINE x%,y%,x1%,y% FOR i% = 1 TO 100 xc% = x1%+r1% FOR a = 180 TO 360 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y%-r1%*SIN(a): NEXT a x1% = xc%+r1%+r2%: 2D_POLY_TO x1%,y%: IF x1%>=(x%+w%) THEN EXIT_FOR NEXT i% y1% = y%+r2%: 2D_POLY_TO x1%,y1% FOR i% = 1 TO 100 yc% = y1%+r1% FOR a = 90 TO 270 STEP stp%: 2D_POLY_TO x1%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a y1% = yc%+r1%+r2%: 2D_POLY_TO x1%,y1%: IF (y1%+r1%)>=(y%+h%) THEN EXIT_FOR NEXT i% x1% = x1%-r2%: 2D_POLY_TO x1%,y1% FOR i% = 1 TO 100 xc% = x1%-r1% FOR a = 0 TO 180 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y1%-r1%*SIN(a): NEXT a x1% = xc%-r1%-r2%: 2D_POLY_TO x1%,y1%: IF x1%<=x% THEN EXIT_FOR NEXT i% y1% = y1%-r2%: 2D_POLY_TO x%,y1% FOR i% = 1 TO 100 yc% = y1%-r1%: IF (yc%-r1%)<=y% THEN EXIT_FOR FOR a = 270 TO 450 STEP stp%: 2D_POLY_TO x%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a y1% = yc%-r1%-r2%: 2D_POLY_TO x%,y1% NEXT i% 2D_POLY_TO x%,y% CASE 9 DEGREES n% = 30: ' nombre d'ondulations sens horizontal dh = w%/n%: dv = h%/n% r1% = dh/4: 2D_POLY_FROM x%,y%: x1% = x% FOR i% = 1 TO 100 xc% = x1%+r1%: IF xc%>=(x%+w%-r1%) THEN EXIT_FOR FOR a = 180 TO 0 STEP -1*stp%: 2D_POLY_TO xc%+r1%*COS(a),y%-r1%*SIN(a): NEXT a xc% = xc%+2*r1%: IF xc%>=(x%+w%-r1%) THEN EXIT_FOR FOR a = 180 TO 360 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y%-r1%*SIN(a): NEXT a x1% = x1%+4*r1% NEXT i% 2D_POLY_TO x%+w%,y% yc% = y%+r1% FOR i% = 1 TO 100 FOR a = 450 TO 270 STEP -1*stp%: 2D_POLY_TO x%+w%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a yc% = yc%+2*r1%: IF yc%>=(y%+h%-r1%) THEN EXIT_FOR FOR a = 90 TO 270 STEP stp%: 2D_POLY_TO x%+w%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a yc% = yc%+2*r1%: IF yc%>=(y%+h%-r1%) THEN EXIT_FOR NEXT i% 2D_POLY_TO x%+w%,y%+h% dh = w%/n%: x1% = x%+w% FOR i% = 1 TO 100 xc% = x1%-r1%: IF xc%<=x% THEN EXIT_FOR FOR a = 360 TO 180 STEP -1*stp%: 2D_POLY_TO xc%+r1%*COS(a),y%+h%-r1%*SIN(a): NEXT a xc% = xc%-dh/2: IF xc%<=x% THEN EXIT_FOR FOR a = 0 TO 180 STEP stp%: 2D_POLY_TO xc%+r1%*COS(a),y%+h%-r1%*SIN(a): NEXT a x1% = x1%-dh NEXT i% 2D_POLY_TO x%,y%+h% yc% = y%+h%-r1% FOR i% = 1 TO 100 FOR a = 270 TO 90 STEP -1*stp%: 2D_POLY_TO x%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a yc% = yc%-dh/2: IF yc%<=y% THEN EXIT_FOR FOR a = 270 TO 450 STEP stp%: 2D_POLY_TO x%+r1%*COS(a),yc%-r1%*SIN(a): NEXT a yc% = yc%-2*r1%: IF yc%<=y% THEN EXIT_FOR NEXT i% 2D_POLY_TO x%,y% CASE 10 n% = 20 r1% = w%/(2*n%) FOR xc% = x% TO x%+w% STEP 2*r1% 2D_CIRCLE xc%,y%,r1% NEXT xc% FOR yc% = y%+2*r1% TO y%+h%-r1% STEP 2*r1% 2D_CIRCLE x%+w%,yc%,r1% NEXT yc% FOR xc% = x%+w% TO x% STEP -2*r1% 2D_CIRCLE xc%,y%+h%,r1% NEXT xc% FOR yc% = y%+h%-2*r1% TO y%+r1% STEP -2*r1% 2D_CIRCLE x%,yc%,r1% NEXT yc% END_SELECT END_SUB ' ============================================================================== Pour faire par exemple des étiquettes, ou autres. Edit 20/08: ajouté deux autres formats ( 7 et 8 ) Edit 25/08: ajouté 9 et 10
Dernière édition par JL35 le Sam 25 Aoû 2018 - 15:51, édité 5 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Des rectangles... Lun 6 Aoû 2018 - 22:46 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 8:50 | |
| Çà m'en bouche un coin ou plutôt 6 au total. C'est à garder sous le coude, ça peut servir. Bravo JL35 ! A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 12:42 | |
| Merci Jean Claude ! @Minibug - Citation :
- Voila de biens jolis coins à visiter pour les vacances !!!
Pour rester dans le bucolique, j'aurais pu mettre un joli coin de verdure: Ou remplacer carrément deux coins par un seul objet: | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 13:04 | |
| Voilà un sujet qui fait appel à notre imagination, Si le canard dit "Coin Coin Coin Coin !" ça veut dire quoi ? réponse 1: supprime tous les coins. réponse 2 : affiche les quatre coins. A moins qu'il n'ai aperçu une canne au loin..... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 14:42 | |
| Un canard normal ça fait coin coin, le tien doit être bègue ! et ça ne réagit pas en voyant une canne, mais une cane, peut-être, si elle est bien roulée ... , | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 19:33 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 20:08 | |
| Justement, un canard fait des ronds dans l'eau, et dans un rond il n'y a pas de coin (coin). Je me demande si on n'est pas en train de s'éloigner du sujet... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 20:10 | |
| Ben en théorie, il y en a deux, si on suit la règle évoquée par JL35 ! Mais tout dépend du genre des canards, suivant ma théorie, si c'est 2 mâles alors chacun ses 2 coins. Mais si c'est un mâle et une femelle, il est probable que la règle soit perturbée. Bon j'arrête là, ça risque de déraper. Un peu d'humour, mais pas trop. A+ PS: - Jl35 a écrit:
- Justement, un canard fait des ronds dans l'eau, et dans un rond il n'y a pas de coin (coin). Je me demande si on n'est pas en train de s'éloigner du sujet..
Ben... heu.. vu le titre de ton topic "Rectangle" c'est toi qui est hors sujet | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Des rectangles... Mar 7 Aoû 2018 - 20:16 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Dim 12 Aoû 2018 - 10:53 | |
| D'accord d'accord tous les deux, le hs c'est de ma faute ! Alors il vaut mieux en rester là avant que ça ne parte en déconfiture (de coins). | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Lun 20 Aoû 2018 - 15:14 | |
| Ajouté deux formats de rectangles/étiquettes. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Des rectangles... Lun 20 Aoû 2018 - 15:55 | |
| Salut JL35, Heu... tu n'aurais pas oublié de changer le code, là haut, car je n'obtiens que 6 rectangles à la place de 8. La confiture de coings, c'est bon pour la santé.... A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Lun 20 Aoû 2018 - 16:56 | |
| Salut Jean Claude,
Pour la confiture, c'était bien dans cet esprit... Là-haut j'ai bien changé la sub, mais pas le code d'appel, mais bon, puisque tu insistes et que c'est toi, je le change aussi. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Des rectangles... Ven 24 Aoû 2018 - 9:11 | |
| Bonjour à tous !
Bravo ! Très astucieux tous ces rectangles.
Merci JL35 ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Des rectangles... Sam 25 Aoû 2018 - 15:57 | |
| Merci Marc, c'était juste un petit devoir de vacances. Tiens, pour la peine j'en ai rajouté deux (9 et 10). Libre à chacun de moduler à son goût (dans la sub) la dimension relative des figures d'angles, la profondeur du relief périphérique (ondulations, etc.). Comme c'est symétrique, les jonctions dans les angles sont parfois un peu acrobatiques, mais c'est un petit détail. En tout cas les figures sont bien fermées, ce qui est nécessaire pour la coloration éventuelle.
On pourrait même superposer deux rectangles (de tailles différentes), pour des effets de cadre... ouais, bof. | |
| | | Contenu sponsorisé
| Sujet: Re: Des rectangles... | |
| |
| | | | Des rectangles... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |