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 |
|
|
| Encore un petit programme de tracé a compiler | |
| | Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Encore un petit programme de tracé a compiler Sam 7 Juin 2014 - 18:54 | |
| Petit code pour le compilateur: - Code:
-
' Tracé d'un cercle un peu spécial ...
Width 0,600 : Height 0, 600
' Définition des 'constantes' Dim Colorisation% : ' Boucle pour changer le type colorisation Dim Pi : Pi = 355/113 : ' On utilise une valeur approchée de Pi suffisante pour notre programme Dim N% : N% = 30 : ' N est le nombre d'occurance pour le tracé Dim Marge% : Marge% = 30 : ' Espace entre le dessin et le bord de la fenêtre Dim X0 : X0 = Width(0) / 2 - Marge% : ' Le centre de notre tracé à pour coordonnées X0,Y0 Dim Y0 : Y0 = Height(0) / 2 - Marge% : ' Dim R : R = X0 - 2*Marge% : ' Le rayon du cercle tracé
' Définition des variables Dim i%,j% : ' Compteur des 2 boucles Dim Ti, Tj : ' Angles Dim A,B,C,D : ' Points pour le tracé des ségments
' Programme principal For Colorisation% = 1 To 4 For i% = 0 To N%-2 Ti = (2*i%*Pi)/N% : A = X0 + R * Cos(Ti) : B = Y0 + R * Sin(Ti) For j% = i% + 1 To N% - 1 Tj = (2*j%*Pi)/N% : C = X0 + R * Cos(Tj) : D = Y0 + R * Sin(Tj) If Colorisation% = 1 Then 2D_pen_color i%*8,j%*8,(i%+j%)*4 If Colorisation% = 2 Then 2D_pen_color Abs(i% - ((N%-1) / 2)) * 16,Abs(j% - (N%/2))*16,Abs((i%+j%)-(N%/2))*6 If Colorisation% = 3 Then 2D_pen_color A/3+20,B/3+20,100 If Colorisation% = 4 Then 2D_pen_color C/3,100,(i%+j%)*4 2D_Line A,B,C,D Next j% Next i% Wait 2000 Next Colorisation% | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Encore un petit programme de tracé a compiler Sam 7 Juin 2014 - 20:23 | |
| Pour taquiner Jicehel par plaisanterie et sans méchanceté - Code:
-
' Tracé d'un cercle un peu spécial ...
Width 0,600 : Height 0, 600
' Définition des 'constantes' Dim Colorisation% : ' Boucle pour changer le type colorisation Dim Pi : Pi = 355/113 : ' On utilise une valeur approchée de Pi suffisante pour notre programme Dim N% : N% = 30 : ' N est le nombre d'occurance pour le tracé Dim Marge% : Marge% = 30 : ' Espace entre le dessin et le bord de la fenêtre Dim X0 : X0 = Width(0) / 2 - Marge% : ' Le centre de notre tracé à pour coordonnées X0,Y0 Dim Y0 : Y0 = Height(0) / 2 - Marge% : ' Dim R : R = X0 - 2*Marge% : ' Le rayon du cercle tracé
' Définition des variables Dim i%,j% : ' Compteur des 2 boucles Dim Ti, Tj : ' Angles Dim A,B,C,D : ' Points pour le tracé des ségments
' Programme principal For Colorisation% = 1 To 4 For i% = 0 To N%-2 Ti = (2*i%*Pi)/N% : A = X0 + R * Cos(Ti) : B = Y0 + R * Sin(Ti) For j% = i% + 1 To N% - 1 Tj = (2*j%*Pi)/N% : C = X0 + R * Cos(Tj) : D = Y0 + R * Sin(Tj) rem =========================================================================== ' Pour taquiner Jicehel select colorisation% case 1 : 2D_pen_color i%*8,j%*8,(i%+j%)*4 case 2 : 2D_pen_color Abs(i% - ((N%-1) / 2)) * 16,Abs(j% - (N%/2))*16,Abs((i%+j%)-(N%/2))*6 case 3 : 2D_pen_color A/3+20,B/3+20,100 case 4 : 2D_pen_color C/3,100,(i%+j%)*4 end_select ' Fin pour taquiner ... rem =========================================================================== ' If Colorisation% = 1 Then 2D_pen_color i%*8,j%*8,(i%+j%)*4 ' If Colorisation% = 2 Then 2D_pen_color Abs(i% - ((N%-1) / 2)) * 16,Abs(j% - (N%/2))*16,Abs((i%+j%)-(N%/2))*6 ' If Colorisation% = 3 Then 2D_pen_color A/3+20,B/3+20,100 ' If Colorisation% = 4 Then 2D_pen_color C/3,100,(i%+j%)*4 rem ========================================================================== 2D_Line A,B,C,D : wait 10 Next j% Next i% Wait 2000 Next Colorisation%
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un petit programme de tracé a compiler Dim 8 Juin 2014 - 0:27 | |
| C'est vrai Papydall, mais bon, j'ai hésité à utiliser le select case bon du coup, je ne fais qu'une colorisation mais il y a des tas de possibilité qui peuvent donner des visuels assez sympas: - Code:
-
' Tracé d'un carré un peu spécial ...
Width 0,600 : Height 0, 600
' Définition des 'constantes' Dim N% : N% = 50 : ' N est le nombre d'occurance pour le tracé Dim Marge% : Marge% = 30 : ' Espace entre le dessin et le bord de la fenêtre Dim X1 : X1 = Marge% : ' Le point en haut à gauche a pour coordonnées X1,Y1 Dim Y1 : Y1 = Marge% : ' Dim X2 : X2 = Width(0)-2*Marge% : ' Le point en bas à droite a pour coordonnées X2,Y2 Dim Y2 : Y2 = Height(0) - 2*Marge% : ' Dim Dx : Dx = (X2 - X1)/ N% : ' Déplacement en x à chaque itération Dim Dy : Dy = (Y2 - Y1)/ N% : ' Déplacement en y
' Définition des variables Dim k% : ' Compteur de la boucle
' Programme principal For k% = 0 To N% 2D_pen_color k%*5,255 - (k%*5),k%*5 2D_Line X1,Y1+k%*Dy,X1+k%*Dx,Y2 2D_Line X1+k%*Dx,Y2,X2,Y2-k%*Dy 2D_Line X2,Y2-k%*Dy,X2-k%*Dx,Y1 2D_Line X2-k%*Dx,Y1,X1,Y1+k%*Dy Next k% Pareil, le code est prévu pour le compilateur même si bien sûr il fonctionne bien sous l'éditeur standard D'ailleurs on peut s'en rendre compte en modifiant très légèrement le programme. On pourrait aussi faire légèrement tourner les carrés à chaque itération etc ... Bref on est juste limité par son imagination. - Code:
-
' Tracé d'un carré un peu spécial ...
Width 0,600 : Height 0, 600
' Définition des 'constantes' Dim N% : N% = 50 : ' N est le nombre d'occurance pour le tracé Dim Marge% : Marge% = 30 : ' Espace entre le dessin et le bord de la fenêtre Dim X1 : X1 = Marge% : ' Le point en haut à gauche a pour coordonnées X1,Y1 Dim Y1 : Y1 = Marge% : ' Dim X2 : X2 = Width(0)-2*Marge% : ' Le point en bas à droite a pour coordonnées X2,Y2 Dim Y2 : Y2 = Height(0) - 2*Marge% : ' Dim Dx, Dy : ' Déplacement en x et y à chaque itération
' Définition des variables Dim j,k : ' Compteur des 2 boucles
' Programme principal For j = 1 to 12 Dx = (X2 - X1)/ N% : Dy = (Y2 - Y1)/ N% For k = 0 To N% step 0.07 2D_pen_color k*5,255 - (k*5),k*5 2D_Line X1,Y1+k*Dy,X1+k*Dx,Y2 : 2D_Line X1+k*Dx,Y2,X2,Y2-k*Dy 2D_Line X2,Y2-k*Dy,X2-k*Dx,Y1 : 2D_Line X2-k*Dx,Y1,X1,Y1+k*Dy Next k X1 = X1 + Dx * 8 : Y1 = Y1 + Dy * 8 X2 = X2 - Dx * 8 : Y2 = Y2 - Dy * 8 Next j | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Encore un petit programme de tracé a compiler Dim 8 Juin 2014 - 16:26 | |
| ouh là là, les belles couleurs ! Vous pourriez même faire tout le système solaire avec les planètes en train de tourner... Ouoh, je dis ça comme ça ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un petit programme de tracé a compiler Dim 8 Juin 2014 - 17:51 | |
| C'est vrai mais moi, je ne le ferais pas pour 2 raisons: D'une part par ce qu'il y a des matheux qui le feraient mieux que moi D'autre part par ce qu'avec une représentation 3D du système solaire, on pourrait voir débarquer les martiens demain ... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un petit programme de tracé a compiler Dim 8 Juin 2014 - 18:08 | |
| Tiens par contre, pour la 3D avec le compilateur, j'ai fais un petit programme de test pour voir et pour vérifier que ça marchait bien. Toujours dans les petits programmes de tracé, mais en 3D cette fois: - Code:
-
Label Stopper
Dim X, Y, Z, u, v, pt, DepCam
Scene3D 1 : Height 1,Height(0) : Width 1,Width(0) : Height 0,Height(0)+80 Button 2: Top 2, Height(0) - 70: Left 2,Width(0)/2 - 50 : Caption 2,"Stop" : On_click 2,Stopper Cam_position 0, -50, 50
Caption 0,"Courbe 3D - Traçage en cours, merci de patienter ou d'appuyer sur <Stop> pour terminer" For u = -13 To -7.7 Step 0.05 For v = -5 to -2 step 0.1 X=v*Cos(u) : Y=v*Sin(u) : Z=v*v*Cos(2*u) pt = pt+1 : 3D_sphere pt,0.5 : 3D_Position pt, X, Y, Z : 3D_color pt, abs(x*20), 50, abs(y*20) If u < (0-9.7) DepCam = DepCam + 0.03 : Cam_position DepCam, DepCam-50, 50-DepCam Else DepCam = DepCam - 0.03 : Cam_position DepCam, DepCam-50, 50-DepCam End_if Next v Next u Caption 0,"Courbe 3D - Programme terminé" End
Stopper: Caption 0,"Courbe 3D - Programme terminé par l'appui sur <Stop>" Beep : Wait 2000 : Terminate Return | |
| | | Contenu sponsorisé
| Sujet: Re: Encore un petit programme de tracé a compiler | |
| |
| | | | Encore un petit programme de tracé a compiler | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |