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 |
|
|
| Dessin de VU-metre analogique | |
| | Auteur | Message |
---|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Dessin de VU-metre analogique Mar 26 Juin 2018 - 9:00 | |
| Suite à la discussion sur les VU-metres ( https://panoramic.1fr1.net/t4189-realiser-un-vue-metre), voici un programme pour FBPano qui dessine un de ces appareils dans sa version analogique. Ici l'aiguille parcourt tout le cadran puis revient à son point de départ et recommence. Ce programme requiert la dernière version (0.34) de FBPano. - Code:
-
' VU-metre analogique ' L'echelle va de 30° à 150° et correspond à des intensités de 0 à 1.5 ' --------------------------------------------------------------------
' Definition d'un type "Graduation" : ' dB : niveau en decibels ' a : angle en degrés sur l'échelle ' x1, y1 : origine du trait de graduation ' x2, y2 : extrémité du trait de graduation ' x3, y3 : position du label
type t_grad = (dB, a%, x1%, y1%, x2%, y2%, x3%, y3%)
const N = 11 ' Nb de graduations
dim grad<t_grad>(N) ' Graduations
data -20, -10, -7, -5, -3, -2, -1, 0, 1, 2, 3 ' Labels
dim xc%, yc%, r% ' Centre et rayon du cercle
dim font% = FL_TIMES ' Police de caractères dim size% = 20 ' Taille des caractères
const WCAN = 400, HCAN = 300 ' Taille du CANVAS
form 0, 100, 100, WCAN + 20, HCAN + 20, "VU-mètre"
xcanvas 1, 10, 10, WCAN, HCAN
on_canvas_draw 1, draw1
on_timer 1, timer1
init() start 0
sub init() ' Initialise les variables globales
dim i%, z, ar, dx%, dy%, xt%, yt%, wt%, ht%, r1%, da
xc = WCAN \ 2 yc = 0.8 * HCAN r = 0.6 * HCAN
2d_font font, size
for i = 1 to N with grad(i) read .dB z = 10^(.dB / 20) ' Intensité .a = 30 + 120 * (1 - z / 1.5) ar = .a * 0.01745 ' Radians
dx = r * cos(ar) dy = r * sin(ar)
.x1 = xc + dx .y1 = yc - dy
.x2 = xc + 1.1 * dx .y2 = yc - 1.1 * dy
2d_text_extension str(.dB), xt, yt, wt, ht
r1 = 1.05 * r + ht da = wt / (2 * r1) ar = ar + da
.x3 = xc + r1 * cos(ar) .y3 = yc - r1 * sin(ar) end_with next i end_sub
sub draw_vu(angle%) ' Dessine le VU-mètre pour une position donnée de l'aiguille en degrés
dim i%, ar
2d_box 0, 0, WCAN, HCAN, FL_BORDER_BOX, &hFFFFCC00
2d_pen_color_fl FL_BLACK 2d_pen_style 0, 2 2d_pie xc, yc, 15
2d_pen_color_fl FL_RED 2d_pen_style 0, 10 2d_arc xc, yc, r, r, 30, 70
2d_pen_color_fl FL_GREEN 2d_pen_style 0, 10 2d_arc xc, yc, r, r, 70, 150
2d_pen_color_fl FL_BLACK 2d_pen_style 0, 2 2d_arc xc, yc, r, r, 30, 150
2d_font font, size + 10 2d_print_box "dB", 50, 0.3 * HCAN, WCAN - 100, 100
' Dessin des graduations
2d_font font, size
for i = 1 to N with grad(i) 2d_line .x1, .y1, .x2, .y2 2d_print str(.dB), .x3, .y3, .a + 270 end_with next i
' Dessin de l'aiguille
ar = angle * 0.01745 2d_pen_style 0, 2 2d_line xc, yc, xc + r * cos(ar), yc - r * sin(ar) end_sub
sub draw1() ' Parcourt toute l'échelle (30° - 150°)
dim_static angle% = 150
draw_vu angle
angle = angle - 1 if angle = 30 then angle = 150 end_sub
sub timer1() object_redraw 1 timer_interval 0.1 end_sub
| |
| | | Fredisland
Nombre de messages : 261 Date d'inscription : 30/03/2018
| Sujet: Re: Dessin de VU-metre analogique Mer 27 Juin 2018 - 8:09 | |
| --------------------------- Panoramic_editor --------------------------- (32) Illegal instruction. Line : 13 --------------------------- OK --------------------------- - Code:
-
13 type t_grad = (dB, a%, x1%, y1%, x2%, y2%, x3%, y3%) | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Dessin de VU-metre analogique Mer 27 Juin 2018 - 9:05 | |
| Oui c'est un programme pour FBPano, pas pour Panoramic | |
| | | Fredisland
Nombre de messages : 261 Date d'inscription : 30/03/2018
| | | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Dessin de VU-metre analogique Jeu 28 Juin 2018 - 9:11 | |
| Voici une version à 2 vu-mètres pour la stéréo. Ici l'aiguille de gauche parcourt la partie verte et celle de droite la partie rouge. Le programme ne montre que le dessin. Il n'y a pas encore de fonctions sonores dans FBPano. Cela viendra plus tard ... - Code:
-
' VU-metre analogique ' L'echelle va de 30° à 150° et correspond à des intensités de 0 à 1.5 ' --------------------------------------------------------------------
' Definition d'un type "Graduation" : ' dB : niveau en decibels ' a : angle en degrés sur l'échelle ' x1, y1 : origine du trait de graduation ' x2, y2 : extrémité du trait de graduation ' x3, y3 : position du label
type t_grad = (dB, a%, x1%, y1%, x2%, y2%, x3%, y3%)
const N = 11 ' Nb de graduations
dim grad<t_grad>(N) ' Graduations
data -20, -10, -7, -5, -3, -2, -1, 0, 1, 2, 3 ' Labels
dim xc%, yc%, r% ' Centre et rayon du cercle
dim font% = FL_TIMES ' Police de caractères dim size% = 20 ' Taille des caractères
const WCAN = 400, HCAN = 300 ' Taille du CANVAS
form 0, 100, 100, 2 * WCAN + 30, HCAN + 20, "VU-mètre"
xcanvas 1, 10, 10, WCAN, HCAN xcanvas 2, WCAN + 20, 10, WCAN, HCAN
on_canvas_draw 1, draw1 on_canvas_draw 2, draw2
on_timer 1, timer1 on_timer 2, timer2
init() start 0
sub init() ' Initialise les variables globales
dim i%, z, ar, dx%, dy%, xt%, yt%, wt%, ht%, r1%, da
xc = WCAN \ 2 yc = 0.8 * HCAN r = 0.6 * HCAN
2d_font font, size
for i = 1 to N with grad(i) read .dB z = 10^(.dB / 20) ' Intensité .a = 30 + 120 * (1 - z / 1.5) ar = .a * 0.01745 ' Radians
dx = r * cos(ar) dy = r * sin(ar)
.x1 = xc + dx .y1 = yc - dy
.x2 = xc + 1.1 * dx .y2 = yc - 1.1 * dy
2d_text_extension str(.dB), xt, yt, wt, ht
r1 = 1.05 * r + ht da = wt / (2 * r1) ar = ar + da
.x3 = xc + r1 * cos(ar) .y3 = yc - r1 * sin(ar) end_with next i end_sub
sub draw_vu(angle%) ' Dessine le VU-mètre pour une position donnée de l'aiguille en degrés
dim i%, ar
2d_box 0, 0, WCAN, HCAN, FL_BORDER_BOX, &hFFFFCC00
2d_pen_color_fl FL_BLACK 2d_pen_style 0, 2 2d_pie xc, yc, 15
2d_pen_color_fl FL_RED 2d_pen_style 0, 10 2d_arc xc, yc, r, r, 30, 70
2d_pen_color_fl FL_GREEN 2d_pen_style 0, 10 2d_arc xc, yc, r, r, 70, 150
2d_pen_color_fl FL_BLACK 2d_pen_style 0, 2 2d_arc xc, yc, r, r, 30, 150
2d_font font, size + 10 2d_print_box "dB", 50, 0.3 * HCAN, WCAN - 100, 100
' Dessin des graduations
2d_font font, size
for i = 1 to N with grad(i) 2d_line .x1, .y1, .x2, .y2 2d_print str(.dB), .x3, .y3, .a + 270 end_with next i
' Dessin de l'aiguille
ar = angle * 0.01745 2d_pen_style 0, 2 2d_line xc, yc, xc + r * cos(ar), yc - r * sin(ar) end_sub
sub draw1() ' Parcourt la parte verte (71° - 150°)
dim_static angle% = 150
draw_vu angle
angle = angle - 1 if angle = 71 then angle = 150 end_sub
sub draw2() ' Parcourt la parte rouge (30° - 71°)
dim_static angle% = 71
draw_vu angle
angle = angle - 1 if angle = 30 then angle = 71 end_sub
sub timer1() object_redraw 1 timer_interval 0.1 end_sub
sub timer2() object_redraw 2 timer_interval 0.1 end_sub
| |
| | | Navigateur
Nombre de messages : 42 Age : 76 Localisation : Les Clayes-sous-bois 78340 Date d'inscription : 02/09/2016
| Sujet: Re: Dessin de VU-metre analogique Jeu 28 Juin 2018 - 11:52 | |
| Bonjour,
Merci Jean pour ces beaux vumètres illustrant bien l'utilisation du nouvel objet CANVAS.
J'ai testé le programme proposé avec la version 0.34 et FBIde.
J'attends avec impatience les fonctions sonores.
Navigateur | |
| | | jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Dessin de VU-metre analogique Ven 29 Juin 2018 - 9:24 | |
| Bonjour, Pour les fonctions sonores je compte faire une interface pour la bibliothèque FBSOUND de D. J. Peters : https://freebasic.net/forum/viewtopic.php?f=14&t=17740Tu peux déjà l'installer et la tester avec FreeBASIC. Personnellement je trouve les résultats assez impressionnants (mais je ne suis pas expert dans ce domaine ...) | |
| | | Contenu sponsorisé
| Sujet: Re: Dessin de VU-metre analogique | |
| |
| | | | Dessin de VU-metre analogique | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |