papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Théorème de Pick Sam 11 Juil 2015 - 21:10 | |
| Salut tout le monde. Savez-vous comment calculer l’aire d’un polygone construit sur une grille de points équidistants (des points de coordonnées entières) tel que tous ses sommets soient des points de la grille ? Le théorème de Pick est là pour vous donnez la réponse. Soit I le nombre de points intérieurs du polygone Soit B le nombre de points du bord du polygone Le théorème de Pick pour calculer l'aire A de ce polygone : A = I + B/2 -1 Le théorème de Pick s'applique aussi bien sûr sur des polygones dont on connait la formule du calcul (un rectangle par exemple). - Code:
-
rem ============================================================================ rem Théorème de Pick rem ============================================================================ rem Soit un polygone construit sur une grille de points équidistants rem (des points de coordonnées entières) tel que tous ses sommets soient des rem points de la grille. rem Soit I le nombre de points intérieurs du polygone (en rouge sur la figure) rem Soit B le nombre de points du bord du polygone (en bleu sur la figure) rem Le théorème de Pick pour calculer l aire A de ce polygone : rem A = I + B/2 -1 rem ============================================================================ dim A,w : w = 20 dim bleu, rouge ,t$ width 0,800 : height 0,450 : caption 0,"Théorème de Pick" alpha 10 : top 10,050 : left 10,620 : font_bold 10 alpha 20 : top 20,250 : left 20,620 : font_bold 20 Grille() 2d_pen_width 2 Polygone_1() A = rouge + bleu/2 -1 t$ = "L'aire du polygone vaut "+chr$(13) + str$(A) + " unités de surface"+chr$(13) + "A = rouge + bleu/2 -1" t$ = t$ + chr$(13) + "A = 109 + 24/2 - 1 = 120" caption 20,t$ Polygone_2() A = rouge + bleu/2 -1 t$ = "L'aire du rectangle vaut "+chr$(13) + str$(A) + " unités de surface"+chr$(13) + "A = rouge + bleu/2 -1" t$ = t$ + chr$(13) + "A = 14 + 22/2 - 1 = 24" t$ = t$ + chr$(13) + "On peut vérifier que " + chr$(13) t$ = t$ + "les dimensions de" + chr$(13) +"ce rectangle sont :" +chr$(13) t$ = t$ + "8 cases * 3 cases" + chr$(13) t$ = t$ + "La surface est :" +chr$(13) t$ = t$ + "8*3 = 24 cases²" caption 10,t$ end rem ============================================================================ SUB Grille() dim_local i for i = 1 to 3*w/2 2d_line w,w*i,3*w*w/2,w*i 2d_line w*i,w,w*i,w*w next i END_SUB rem ============================================================================ SUB Polygone_1() dim_local i rouge = 0 : bleu = 0 2d_fill_on : 2d_fill_color 0,0,255 2d_poly_from 4*w,16*w : 2d_circle 4*w,16*w,4 : bleu = bleu + 1 2d_poly_to 8*w,4*w : 2d_circle 8*w,4*w,4 : bleu = bleu + 1 2d_circle 5*w,13*w,4 : 2d_circle 6*w,10*w,4 : 2d_circle 7*w,7*w,4 bleu = bleu + 3 2d_poly_to 14*w,10*w for i = 1 to 6 : 2d_circle (8+i)*w,(4+i)*w,4 : next i : bleu = bleu + 6 2d_poly_to 16*w,8*w : 2d_circle 16*w,8*w,4 : 2d_circle 15*w,9*w,4 bleu = bleu + 2 2d_poly_to 20*w,12*w for i = 1 to 4 : 2d_circle (16+i)*w,(8+i)*w,4 : next i : bleu = bleu + 4 2d_poly_to 14*w,18*w for i = 1 to 6 : 2d_circle (20-i)*w,(12+i)*w,4 : next i : bleu = bleu + 6 2d_poly_to 4*w,16*w : 2d_circle 9*w,17*w,4 : bleu = bleu + 1 2d_fill_color 255,0,0 for i = 1 to 3 : 2d_circle 5*w,(13+i)*w,4 : next i : rouge = rouge + 3 for i = 1 to 6 : 2d_circle 6*w,(10+i)*w,4 : next i : rouge = rouge + 6 for i = 1 to 9 : 2d_circle 7*w,(7+i)*w,4 : next i : rouge = rouge + 9 for i = 1 to 12 : 2d_circle 8*w,(4+i)*w,4 : next i : rouge = rouge + 12 for i = 1 to 11 : 2d_circle 9*w,(5+i)*w,4 : next i : rouge = rouge + 11 for i = 1 to 11 : 2d_circle 10*w,(6+i)*w,4 : next i : rouge = rouge + 11 for i = 1 to 10 : 2d_circle 11*w,(7+i)*w,4 : next i : rouge = rouge + 10 for i = 1 to 9 : 2d_circle 12*w,(8+i)*w,4 : next i : rouge = rouge + 9 for i = 1 to 8 : 2d_circle 13*w,(9+i)*w,4 : next i : rouge = rouge + 8 for i = 1 to 7 : 2d_circle 14*w,(10+i)*w,4: next i : rouge = rouge + 7 for i = 1 to 7 : 2d_circle 15*w,(9+i)*w,4 : next i : rouge = rouge + 7 for i = 1 to 7 : 2d_circle 16*w,(8+i)*w,4 : next i : rouge = rouge + 7 for i = 1 to 5 : 2d_circle 17*w,(9+i)*w,4 : next i : rouge = rouge + 5 for i = 1 to 3 : 2d_circle 18*w,(10+i)*w,4: next i : rouge = rouge + 3 2d_circle 19*w,12*w,4 : rouge = rouge + 1 END_SUB rem ============================================================================ SUB Polygone_2() dim_local i rouge = 0 : bleu = 0 2d_fill_on : 2d_fill_color 0,0,255 2d_poly_from 20*w,2*w : 2d_poly_to 28*w,2*w for i = 1 to 9 : 2d_circle (19+i)*w,2*w,4 : bleu = bleu + 1 : next i 2d_poly_to 28*w,5*w for i = 1 to 3 : 2d_circle 28*w,(2+i)*w,4 : bleu = bleu + 1 : next i 2d_poly_to 20*w,5*w for i = 1 to 8 : 2d_circle (28-i)*w,5*w,4 : bleu = bleu + 1 : next i 2d_poly_to 20*w,2*w for i = 1 to 2 : 2d_circle 20*w,(5-i)*w,4 : bleu = bleu + 1 : next i 2d_fill_color 255,0,0 for i = 1 to 7 : 2d_circle (20+i)*w,3*w,4 : rouge = rouge + 1 : next i for i = 1 to 7 : 2d_circle (20+i)*w,4*w,4 : rouge = rouge + 1 : next i
END_SUB rem ============================================================================
| |
|
mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Théorème de Pick Jeu 16 Juil 2015 - 17:21 | |
| bonsoir Papydall tu dit que les points doivent être équidistant . Peut ont considérer qu'ils le sont toujours si l'échelle est bien choisi? Ou peut être y a t il une limite | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Théorème de Pick Jeu 16 Juil 2015 - 18:28 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: Théorème de Pick | |
| |
|